card-carrying accounts


Accounts and JavaScript are now fully in cards, and Wagn itself is a gem.


Wagn 1.13 was released on July 31, 2014.  Today it's November 17, 2014.  We're a little behind on our blogging.


So the real action is in Wagn 1.14, which only a few hours away from release.  But 1.13 was a big deal, and so even if you decide (wisely) to skip straight to 1.14, it's worth noting some of the great things that this poor unheralded release brought into the world.


Wagn as a gem


Though there were several earlier point releases (starting with 1.12.7), 1.13 was the first minor release of Wagn in the form of a ruby gem. This new architecture more cleanly separates the framework code (shared by all Wagn sites) from the application code (distinct for each Wagn site), which is a huge step forward in Wagn's quest to become the first true wiki-based developer framework.  It also makes installing and upgrading Wagn much easier.  At the time of writing, the wagn gem has already been downloaded over 3200 times.


Accounts as cards


Wagn 1.13 made a lot of progress in terms of greater fidelity to the principle that everything is a card, but the greatest of these is with accounts.  Not only is all account data now stored in cards, but all account-related transactions  are conducted by creating, reading, updating, and deleting cards.  The interface for all this is quite conventional (don't worry).  If anything signing up for a Wagn site has gotten simpler and safer, now that the default sign-up process is mediated by verification links rather than the old system that mailed out passwords.  The benefits of this new system include:

  • we now track history changes to account data
  • all account transformations are exposed to the Wagn API and can be easily customized
  • account data can be queried with CQL
  • you can reuse and display account data (to those with permission) as flexibly as any other card

See the accounts card for more information on how it works.



JavaScript in cards, too


Prior to 1.13, all system JavaScript was hard-coded, and custom JavaScript was laborious to add.  Now, with the addition of JavaScript and CoffeeScript cards (as well as *script rules to organize them), JavaScript is now handled in cards like everything else.  As with accounts, this has the benefits of exposure to the API, WQL, views, history, etc. But it also makes custom JavaScript much faster to load, because Wagn automatically compiles, concatenates, and compresses all JavaScript associate with a give *script rule.  More about JavaScript.




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