samizdat-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Status update: Github, Nokogiri, Sequel, Rack


From: Dmitry Borodaenko
Subject: Status update: Github, Nokogiri, Sequel, Rack
Date: Mon, 7 Nov 2011 15:40:58 +0300

Greetings,

The main development repositories of Samizdat and its subprojects
SynCache, Graffiti, and Whitewash have moved from Savannah to GitHub:
https://github.com/angdraug

Whitewash was successfully migrated from REXML to Nokogiri, the
corresponding changes are now available on master branches of
whitewash and samizdat repositories.

Migration from DBI to Sequel is still in progress, corresponding
changes are available on graffiti/sequel and samizdat/experimental
branches. The migration is nearly complete: all unit tests pass, most
of the functions not covered by unit tests also work (moderation,
multimedia uploads, messages with image parts). The (hopefully) last
remaining problem is sub-tag management. Sequel package in Debian is
badly outdated, and packaging it isn't trivial (at least as long as
you'd want to run unit tests during build), so for now I'm just using
the latest git snapshot for testing. Due to Ruby bug #5508 [0], the
following rather ugly hack is needed to make it work with $SAFE=1:

--- a/lib/sequel/adapters/postgres.rb
+++ b/lib/sequel/adapters/postgres.rb
@@ -655,7 +655,7 @@ module Sequel
           converted_rec = {}
           cols.each do |fieldnum, type_proc, fieldsym|
             value = res.getvalue(recnum, fieldnum)
-            converted_rec[fieldsym] = (value && type_proc) ?
type_proc.call(value) : value
+            converted_rec[fieldsym] = (value && type_proc) ?
type_proc.call(value.untaint) : value
           end
           yield converted_rec
         end

[0] http://redmine.ruby-lang.org/issues/5508

An alternative workaround might be to prevent Sequel from mapping any
fields in Samizdat schema to BigDecimal until the above bug is fixed
(currently expected in ruby 2.0, according to Ruby Redmine).

Migration from cgi.rb to Rack is mostly complete and is also available
on the samizdat/experimental branch. It is tested with Webrick and
Thin, the only remaining task is to drop Mongrel samizdatd daemon and
update the documentation. This change was done on top of the Sequel
migration, so they both will remain on the experimental branch until
all major bugs are fixed.

All testing is done on Debian/unstable with Ruby 1.9.3, all
dependencies apart from Sequel are installed from Debian packages.

Once samizdat/experimental is stabilized and merged into master, my
next order of priority will be reviewing and merging samizdat/erb
branch from the bejbus/samizdat fork, and after that,
bejbus/samizdat/js. For any newcomers to the project, here are the
areas where help would be most appreciated:

- more unit tests for Samizdat and Graffiti (improving on the
in-memory SQLite3 tests would be very nice, especially if Samizdat's
triggers can be ported from PostgreSQL to SQLite3)
- Debian gem2deb based packages of latest Sequel and Thin
- testing all of the above with different Ruby versions (I only care
about latest 1.8 and 1.9 releases and whatever's in Debian/stable, we
don't have to support 1.8.6 or 1.9.0), different PostgreSQL versions
(I'm using 9.1 but Debian/stable has 8.4, so we should test on that,
too), and different web servers (I'm using Webrick as a development
testbed, I can also test Thin/Nginx combo, it would be nice to also
support Passenger (current Debian package is outdated and 1.8-only),
not sure if we need to care about more exotic configurations).

Thanks,

--
Dmitry Borodaenko



reply via email to

[Prev in Thread] Current Thread [Next in Thread]