🚀 This release addresses the issues and performance degredations that were uncovered as part of the 0.5.0 release. A list of the issues addressed can be found here: https://github.com/pencilblue/pencilblue/issues?q=milestone%3A0.5.1
🐎 1. The MongoDB driver was updated in an effort to increase performance around serialization and deserialization of BSON
- Memory leaks in MemoryEntityService resolved
- 🐎 Performance improvements to AnalyticsManager and Google Analytics provider
- Auto generation of URLs for articles bug that did not strip all special characters
- Backward compatibility bug for admin navigation
🚀 The 0.5.0 release is finally here and along with it comes exciting new features and bug fixes. Here are some of the big features included in 0.5.0.
- #680 Multitenancy - Run multiple websites from a single instance of PB
- #501 Localized Routing - Allows for localizing content based on the route
- Base Object Service - Provides an easy interface to interacting with collections
- 👍 #738 Replica Set Support for MongoDB
- 👍 #744 Connect to multiple DB Support
- 🐎 #747 Localization performance refactor
- 🐎 #886 Plugin initialization performance improvements
The complete list of issues can be found here.
🚀 The multi-tenancy feature forced us to rethink a large portion of our architecture and we couldn’t have done it without the help of our friends at CareerBuilder. Despite massive changes to the underpinnings of PencilBlue we are happy to announce that we are still backward compatible with previous releases.
🔧 Multi-tenancy works through sub-domains. This makes it very easy to develop locally in a multi-site environment. The various sites are controlled through the admin interface of PencilBlue through a global site. This “global” site is determined by your config.js file. Developing locally for each site is as easy as configuring your hosts file to include the additional sites.
🔌 This feature simplifies your infrastructure because you can run all of your micro sites or client sites under the same instance. This is possible because each plugin can be installed on a global basis or for an individual site meaning that a theme can be created and installed each site.
🔍 Localized routing allows for using a special path parameter, “locale”, to indicate that the route is localized. The routing engine will detect the parameter and attempt to display the content in the locale provided by the route. A template flag, “localized_alternate”, can be included in header templates to provide the appropriate SEO links. In conjunction with multi-site, the localized routing feature allows administrators to assign specific locales to each site.
Looking ahead here are the features that we are looking to implement in the first two quarters of the year:
- #884 Simplification of the localization structure (issue 884)
- #737 Ability to run siteRoot under a sub path (issue 737)
- 🔨 Refactoring of navigation structure
- 🔨 RequestHandler refactor
- Dynamic user roles and permissions
- ✅ Increased unit test coverage
- Conversion of the admin section to a purely API driven model
- 👌 Improved taxonomy
We are always happy to answer questions. One way we are making this easier is through our Gitter channel. Fellow users as well as contributors are there to help and as usual we can reached via our Twitter handle, @GetPencilBlue.