It's done! After roughly a years worth of work, along with some excellent contributions from the community (thanks Brian King, James Prior and Neil Middleton), BrowserCMS 3.4 is done. This release contains two major additions:
- It's now Rails 3.1.x compatible
- Mountable App: BrowserCMS can be now be added to existing Rails applications.
Note: We recommend using Ruby 1.9.3 with this release (though Ruby 1.9.2 will probably still work)
A primary goal of this project is have a simple upgrade path for existing projects. As such, we have baked in the support for upgrading your project right into the core tool itself. See the [Upgrade Guide](https://github.com/browsermedia/browsercms/wiki/Upgrading-a-BrowserCMS-project) for more details, but upgrading a CMS project is now (nearly) as simple as running the following command in your project:
$ bcms upgrade
CMSifying your Rails project
The entire project was reworked to become a Mountable Engine, meaning it should easier to add to an existing Rails project via running the following command in your Rails project. You can now add BrowserCMS to your Rails 3.1.x project by running:
$ bcms install
Integrating with the CMS
Once the CMS is installed, you can integrate with the existing templates, users, groups and pages. See Adding BrowserCMS to an existing Rails project for details on how you can integrate them. While User authentication/authorization is definitely something that needs more refinement, this release adds some support for modifying your existing User objects to behave as though they were a CMS User (and get access to CMS pages, etc).
- Most core files in the CMS are namespaced under Cms:: . This should reduce the chance of conflicting classes (i.e. what was User is now Cms::User)
- Table names can optionally be namespaced. By default, there is no namespace for standalone BrowserCMS projects. You can set: Cms.table_prefix = "cms_" to change this.
- Prefixing tables will be reflected in cms migrations (like create_content_table) automatically. Passing :prefix=>false will add no prefix.
- When defining migrations for cms tables, (using create_table), you can use prefix() to apply the current prefix. i.e.
Other Notable Fixes
- [#301] New `bcms upgrade` script for updating BrowserCMS projects.
- [#433] Starting new projects should work regardless of whether later versions of Rails are installed (i.e. Rails 3.2).
- [#3] Asset Pipeline: All bcms assets are now served using the assets pipeline.
- [#448] Mountable Engines - BrowserCMS is now a mountable engine, which should make integrating it with other projects easier.
- [#416] BrowserCMS can be added to Gemfiles using :git or :path, which should make testing gems or projects easier.
- [#480] Standardized Version Column - Changed how version tables point back to their 'original' record to make working with namespaces easier. Module developers will need to update their migrations for the next release of their modules.
- [#466] Generate blocks with attachments correctly - When generating blocks that have an attachment, the initially generated code should work correctly without addition customization or tweaking.
- [#450] Generate Engines - BrowserCMS modules are created as Mountable Engines when running `bcms module`.
- [#487] CKEditor Gem - Replace the built in CKeditor gem with the Asset pipeline aware ckeditor_rails gem.