Beyond Boundaries: internationalization and module-readiness


Wagn 1.5 introduces no new interface but lots of behind-the-scenes improvements, including performance, handling of international (unicode) characters, and error notification. It also prepares us for an impending release of a preliminary modules/extensions api by further unifying the underlying card retrieval system.


As soon as Wagn 1.0 was released, we began prioritizing for Wagn 2.0.  The top priority was and still is creating great ways to extend Wagn's core functionality.  A modular extension system will have two key benefits:

  1. Programmers can alter Wagn's functionality to their needs without having to fork Wagn's codebase and learn all its in's and out's.
  2. We can solve idiosyncratic problems quickly without bloating the codebase.

While we're generally on board with the open source principle of releasing "early and often", that's not our approach to creating a modular extension system.  Instead, when we release an extensions api, we want to be prepared to support it for as long as we can, so that modules that use the api will function smoothly for as long as possible.


To that end, we've recently been doing round after round of clean-up to make sure the api is as simple and clear as possible.  This includes moving more configuration into cards as we did in versions 1.1 and 1.2 and creating broad, consistent patterns of settings behavior, as we did in 1.3 and 1.4.


The refactoring in Wagn 1.5 is another vital step towards the modules system, and it fact it will have a much greater impact on the card api.  It includes a unified card retrieval system that will hide the complexities of cache management, database queries, virtual card generation, built-ins, and so on behind a simple "fetch" api.


In the process, we did a lot of work on our performance.  One indicator of the improvement is the test suite, which used to take as much as 20 minutes to run but now takes under eight.  That's especially impressive given that tests will miss much of the benefit of the caching improvements, as the cache is reset before every test.


There isn't much new interface in Wagn 1.5, but there are a lot fewer bugs.  One arena of particular improvement is in error handling.  For example, it used to be the case that an error on any card on a page could break the whole page.  Now you'll just see the error where the inclusion would normally appear.  It's just one more benefit of the everything-is-a-card approach.




+tickets by status


in progress






recent changes not using special formatting.

  --Ethan McCutchen.....Fri Oct 29 22:01:50 -0700 2010