The current master branch has been extensively tested and could be a 1.0 candidate except for the changes in zafu (we want new users to get used to rubyless, not the old hacks).
In order to ease the path to 1.0 and to make sure all the changes we made lately behave smoothly in production, we decided to release a 0.15 stable version and continue the hardcore work on rubyless on a separate branch.
Two lines to have a running website with zena.
# sudo gem install zena # zena myapp
If you have installed rmagick, you get all the image processing goodies in zena (editor, automatic size adjustments, etc). If you don’t you’ll get images resized by your browser (distorted).
A quick list of the most important changes since the last stable release (0.12) apart from the huge work done on the code to make it easier to maintain, read and test:
We were runnging 1.2.3. This means we are now running on the latest stable version of rails.
We went through a rewrite of unknown link because access was too complicated. Basically, we made redactions visible to all writers and removed private nodes. We also brought back diff view and version preview.
We looked at how zena behaves with YSlow and realized that all assets were queried (at least for an etag). We removed the need for a these queries by timestamping assets and setting a far future date for content expiration in apache settings in /etc/apache2/conf.d/zena.
ExpiresDefault "access plus 1 year"
You should rerun apache2_setup for this to be changed on your server:
cap apache2_setup
Our work on access simplification enabled us to cache version_id into the node (vhash attribute) for fast and easy loading of versions (keeping vhash up-to-date was not exactly easy).
We could also remove the need for 1+n database calls when listing nodes (one call for the list and n calls for each versions). We benchmarked this:
Load a list of 1466 nodes with titles: 0.12-stable: 13064 ms vhash without preload: 2055 ms vhash with preload: 580 ms
That’s a 22x performance increase.
You’ll see a lot of little enhancements when using zena:
Gaspard Bucher
comments