the future of history


A major upgrade to how we track changes and notify folks about what has changed.


cards revision history have long been among Wagn's strengths.  And the more we make it that everything is a cardSkin in version 1.12,  accounts and JavaScript in 1.13, and now Email template in version 1.14 were all recently converted to cards) – the more useful those revisions have become as a log of your creative work.


But the revision system had some key flaws.  For example, Wagn didn't track name or type changes, and it didn't group together edits to multiple cards that took place as part of one submission.  It was also very difficult to navigate changes for structured cards; you had to look through one field card at a time.


Wagn 1.14 fixes all of those issues and adds a much more compelling interface to boot.  Now you can...

  • review and revert changes to a card's name and/or type in addition to content.
  • browse through lists of acts on a card, each of which might include actions on multiple cards.  You can then expand actions to see more detail.
  • load changes to content-heavy pages much more quickly.
  • view all changes to included cards as part of the same revision list.

In parallel, we began an overhaul of the system for following cards (receiving notifications for changes).  Now you can:

  • see the actual content changed in the email (emails will include diffs in Wagn 1.16)
  • view and edit the list of cards that you're following by editing your card name+*following.
  • customize follower notification email

In fact, not just follower emails but all Wagn emails are now handled in cards and fully customizable, including:

A bit more on the geeky side, it's also worth noting that Wagn 1.14 marks a major milestone for Wagn in that it's the first release in which all actions can be accomplished via our RESTful Web API.  That is to say that every server action you'll ever take on Wagn, from signing up to signing in to opening a card to following it to anything else will involve a simple CRUD (create, read, update, or delete) operation on a card.


If you're already at Wagn 1.13, this should be a  pretty standard upgrade.  However, do expect the migration to take a while; it's doing a lot of work restructuring the entire revisions table!


If you're not already at Wagn 1.13, have a look at this before proceeding:

Wagn 1.13 is Wagn's first minor release in the form of a ruby gem.


If you are upgrading from a site that is not already using the Wagn gem, then you will need to upgrade to the Wagn gem before following the new standard upgrade procedure or the notes below.


If you are upgrading from a pre-1.13 version using the Wagn gem, there are several things to keep in mind:

  • Make sure you are in the folder where your Wagn web site is located (usually 'cd /var/www/your_wagn_website' will do)
  1. Wagn 1.13 move all javascript into cards, which means you'll need an Execjs.  If you're using a mac, then no worries; it's already built-in.  Otherwise, you need to add this line to your Gemfile:
    gem 'therubyracer'
  2. You should no longer have to run `rake wagn:migrate`.  The main command is now:
    wagn update
    which runs the migrations in additions to some other helpful commands.  See the Updating card for more details.
  3. If you're running Wagn in production, you may have been running a symlink from your deck's "public" directory to the one in the gem directory.  This symlink is no longer needed and should be removed. However, you can still improve performance of certain requests with a similar symlink to public/assets.  This symlink is automatically generated when you run `wagn update` and can be generated directly (with no other side effects) by running `rake wagn:update_assets_symlink`.
  4. If you were using any mods, you may need to singularize some directory names.  For example:
    would become
  5. If you're interested in developing Wagn mods or the Wagn core, please contact us directly.  Wagn 1.13 adds a lot more support there, but the documentation is lagging!




+tickets by status


in progress