After a long a difficult path with lots of rewrite, the 1.0 branch is finally ready for experimenters between the beach and the disco (or between two hiking trails).
Main changes
We are very excited about this 1.0 release because it will solve many issues we had on the 0.x branch. Issues mainly related to scalability (increasing complexity without decreasing performance). The biggest problem was “how do we store multi-lingual, versioned custom attributes ?”. We also wanted to enable proper multi-lingual sorting in the database. We solved this issue with the property gem.
The second issue was extensibility: it should be easy to evolve the templating language or adapt it for a custom application. Method declaration should be trivial and safe. See rubyless for details.
Extract from the changelog:
- complete rewrite of the storage engine (property gem)
- rewrite of the template engine zafu to use rubyless
- rewrite of the query compilation engine to use RubyLess and offer better introspection
- XML API with support for pseudo sql queries
- enhanced attributes support (indexing, inheritance, type)
- changed bricks layout to be like gems
- pdf generation support
- started PostgreSQL support
- inline JS windows instead of popup with attach/dettach support
Why it’s not a release candidate
Here is a short list of the things this release is missing in order to replace the current 0.x branch or to have our confidence as a production version:
- missing features in Zafu: not all features from the 0.x branch have been rewritten for this branch. This means that until we have ported all existing websites that we manage on the 1.0 branch, we have no guarantee that everything that was done on the 0.x branch can be done in the 1.0.
- field bugs: this version, although it is extensively tested way beyond what was done before has not been tested in the field. This means that there might be some annoying bugs that our test suite does not catch.
- possible API changes: the templating language has been rewritten and we hope the beta versions will help us correct things that are counter-intuitive.
- missing documentation: this is not really related to our code quality expectations as above, but it is part of the ecosystem. We need more tutorials, reworked website navigation, etc.
- ticket tracking cleanup: during our big rewrite we have pushed the bug tracker on the side. We need to update the content there to reflect the current version.
Experiment and give us some feedback !
Install the gem with:
# sudo gem install zena --pre
# zena myapp
# cd myapp
( eventually change config/database.yml for MySQL )
# rake zena:init RAILS_ENV=production
Please report any bug on the bug tracker with the tag beta. You can also discuss issues on the mailing list, but beware that it’s a “summer” release with slow response times so don’t panic if replies take some time.
Thanks a lot for your patience (this one took a while to come out).