Samizdat: Co-op Engine

Home | About | Documentation | Developers | Download

Samidat 0.7.0 (2012-05-12)

This version features massive improvements both in the user interface and under the hood. Posts by registered members are now organized into blogs, publishing a message with several pictures and other multimedia parts can now be done in a single step, sub-tags provide even finer control over site structure, while translations have been promoted from special-class comments into its own kind of a message part. Other changes include short message cut mark, support for comments with empty titles, Lock Comments moderation action, and public moderators list.

Samizdat Storage, Cache, and Sanitize modules were split out into their own sub-projects called Graffiti, SynCache, and Whitewash. Since Samizdat 0.6.2, Graffiti has grown the ability to handle transitive properties and negative sub-queries, and migrated from Ruby/DBI to Sequel as a backend interface to relational databases. Whitewash moved away from reliance on HTMLTidy and REXML, both cleanup and parsing of HTML is now handled by Nokogiri.

Samizdat itself has migrated from cgi.rb to Rack as its interface with the Web server, examples in the documentation show the new recommended way to setup Samizdat using Thin Ruby application server and Varnish cache behind Nginx front-end web server. Mahoro file type detection library was replaced with Magic FFIbindings, while fast_gettext is now preferred over Ruby/GetText for i18n.


How to upgrade

If you're running vanilla 0.6.2, you can use the included database migration script (doc/migration/upgrade_from_v0.6.2.sql). When you look inside it, you can see that it's doing many invasive changes to the database schema and triggers, so try to run it on a backup copy before applying it to your production database. If you're running one of the post-0.6.2 snapshots, edit out the parts of the script that you have already applied. You will also need to install Thin or another Rack-compatible web application server, see doc/install.txt and doc/examples/ for instructions.