<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Handel Framework</title>
      <link>http://handelframework.com/blog/</link>
      <description>A simple commerce framework in Perl with AxKit/TT/Catalyst support.</description>
      <language>en</language>
      <copyright>Copyright 2007</copyright>
      <lastBuildDate>Sun, 24 Jun 2007 10:26:43 -0500</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.34</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Handel 1.0 Released</title>
         <description><![CDATA[<p>After just over a year of development and testing, I'm pleased to finally announce the 1.0 release of Handel. The 1.0 release has undergone a major rewrite from the 0.3x series of releases and includes many new features and fixes. The new features include:</p>

<h3>DBIx::Class Support</h3>

<p>Handel now uses DBIx::Class instead of Class::DBI as the default ORM. Many thanks to the DBix::Class folk for all the support. Without the flexibility that DBIx::Class provides, Handel 1.0 would be a much less flexible.</p>

<h3>Rose::DB::Object Support</h3>

<p>For those who prefer working with Rose instead, Handel::Storage::RDBO 1.0 has also been released.</p>

<h3>Schema Alterations</h3>

<p>You can now add/remove columns from/to the default classes and schema with only a few lines of code.</p>

<h3>Interchangable Schemas</h3>

<p>If you already have an existing schema in your application, Handel can now use that instead of it's own.</p>

<h3>Abstract Storage Layer</h3>

<p>Handel now uses an abstract storage layer for cart/order operations. The default layer is Handel::Storage::DBIC and a Handel::Storage::RDBO layer is also available. New storage layers may be written (XML, LDAP, SOAP, Amazon, Google, etc) and can be used by your Handel code with almost no code changes.</p>

<h3>Module::Starter QuickStart</h3>

<p>Handel now includes a Module::Starter module and scripts to quick get a custom cart/order system up an running and deploy the schema to an existing database.</p>

<h3>Pre 1.0 Compat Layer</h3>

<p>To make the conversion to 1.0 a little less painful, 1.0 includes a few Compat modules allowing you used the old API with a new 1.0 install.</p>

<h3>Tests, Tests, and More Tests</h3>

<p>In addition to all of the new features and refactoring, Handel now has a plethora of tests and a 99% test coverage. That means that the code base is considered to be very stable and all new code has been accounted for.</p>

<p>The new version should be available on a CPAN mirror nearest you shortly. As always, you can find the latest version in the <a href="http://svn.handelframework.com/CPAN/Handel/">Subversion repository</a>. If you need help, please join the <a href="http://lists.rawmode.org/cgi-bin/mailman/listinfo/handel">mailing list</a> or stop by #handel@irc.perl.org.</p>

<p>Happy Carting!</p>]]></description>
         <link>http://handelframework.com/blog/announcements/handel_10_released/</link>
         <guid>http://handelframework.com/blog/announcements/handel_10_released/</guid>
         <category>Announcements</category>
         <pubDate>Sun, 24 Jun 2007 10:26:43 -0500</pubDate>
      </item>
            <item>
         <title>Handel 0.99_19 Released</title>
         <description><![CDATA[<p>DBIx::Class 0.08 is out. Code coverage is up to date. All tests pass. With any luck, this will be the last release before I kick 1.0 out into the world.</p>

<p>0.99_19 Thur June 21 21:02:36 2007</p>

<ul>
<li>Storage->setup now puts non-accessor keys into %$self</li>
<li>Removed incomplete L10N Lexicons</li>
<li>Cleanup coverage before 1.0 release</li>
<li>DBIx::Class 0.08 Released & Required</li>
<li>Added AutoCommit to Handel::Test</li>
<li>Tweaked failing checkout process tests</li>
</ul>

<p>0.99_18 Wed Apr 18 19:55:09 2007</p>

<ul>
<li>Added --version to handel.pl/handel.bat</li>
<li>Fixed Handel::Compat::Currency pod</li>
<li>Updated prereq to use DBIx::Class 0.07999_02</li>
<li>Added skips for DBD::SQLite 1.13 (teh devil) causing failing tests</li>
<li>Updated Perl::Critic tests</li>
</ul>

<p>Once 1.0 is kicked out the door, I need to spend some time getting the RDBO storage layer up to date. Then, it's back to Mango.</p>]]></description>
         <link>http://handelframework.com/blog/announcements/handel_099_19_released/</link>
         <guid>http://handelframework.com/blog/announcements/handel_099_19_released/</guid>
         <category>Announcements</category>
         <pubDate>Thu, 21 Jun 2007 21:27:29 -0500</pubDate>
      </item>
            <item>
         <title>New Mango Website</title>
         <description><![CDATA[<p>Since things have died down on the Handel front until DBIx::Class 0.08 comes out, and I recently hit a progress slump on Mango, I've put up a <a href="http://mangoframework.com/blog/">new blog for Mango</a>.</p>

<p>With any luck, I'll try and post about progress often.</p>]]></description>
         <link>http://handelframework.com/blog/announcements/new_mango_website/</link>
         <guid>http://handelframework.com/blog/announcements/new_mango_website/</guid>
         <category>Announcements</category>
         <pubDate>Tue, 10 Apr 2007 11:11:51 -0500</pubDate>
      </item>
            <item>
         <title>Breaking API Change in 0.99_17</title>
         <description><![CDATA[<p>First, to those who are using 0.99_16 or so, I'm sorry, but this has to be done. Breathe in. Breathe Out. It's not going to be that bad. :-)</p>

<p>Through all of my tinkering with the Handel::Currency class to do conversions, formatting and integrate inflation into DBIx::Class, I kept feeling the urge to put some parts of it on CPAN because it felt like reusable code. During a few down days, I did just that. Thus, <a href="http://search.cpan.org/dist/Data::Currency/">Data::Currency</a> and <a href="http://search.cpan.org/dist/DBIx::Class::InflateColumn::Currency/">DBIx::Class::InflateColumn::Currency</a> were born.</p>

<p>During that process, I had a chance to clean up the Handel::Currency API into something more precise for non Handel users. The biggest change was that <sample>format</sample> is now just a property get/set like <sample>code</sample> is. It simply sets the preferred format of the current currency object. The act of formatting a currency object into a string has been moved to <sample>as_string</sample>. This felt sane because <em>format</em> can be verbish and nounish when talking about the currency object, so I chose to make it play the property role. As a matter of old code, <sample>stringify</sample> now is the same as <sample>as_string</sample>, rather than returning <sample>value</sample>.</p>

<p>So, for those using Handel 0.33, nothing is changing. When you upgrade to Handel 1.0, you can still use the Handel::Compat::Currency module if you like. For those of you using a recent version of Handel 0.99_xx, your code will have to change to use <sample>as_string</sample> instead of <sample>format</sample>. These changes will be in 0.99_17 once it hits CPAN and should be commited to the repository sometime soon.</p>

<p>I only feel slight bad about that. It <em>is</em> a developer release after all. :-)</p>]]></description>
         <link>http://handelframework.com/blog/announcements/breaking_api_change_in_099_17/</link>
         <guid>http://handelframework.com/blog/announcements/breaking_api_change_in_099_17/</guid>
         <category>Announcements</category>
         <pubDate>Mon, 19 Mar 2007 16:16:10 -0500</pubDate>
      </item>
            <item>
         <title>Mango</title>
         <description><![CDATA[<p> making it happen...</p>]]></description>
         <link>http://handelframework.com/blog/currently_working_on/mango/</link>
         <guid>http://handelframework.com/blog/currently_working_on/mango/</guid>
         <category>Currently Working On</category>
         <pubDate>Sat, 20 Jan 2007 13:54:27 -0500</pubDate>
      </item>
            <item>
         <title>Handel 0.99_16 Released</title>
         <description><![CDATA[<p>One more for the trolls, with some added order_by goodness for Kaare.</p>

<ul>
<li>Added \%options/order_by to search/items in Cart/Order</li>
<li>Added has_column to DBIC Storage to use ResultSource->has_column</li>
<li>Added has_column to Result/DBIC Result</li>
<li>Fixed TT demo code. Maybe that will die some day. Seriously. Two words: Catalyst Helpers. :-)</li>
<li>Fixed issue where Compat Currency convert failed with converter returns 0</li>
<li>Changed quickstart setup script to *_handel.pl</li>
<li>Added 0700 perms to handel.pl app script</li>
<li>Storage::process_error now only dies Handel::Exception subclasses instead of all blessed objects</li>
<li>Renamed DBIC schema classes into Schema::DBIC space, like their RDBO cousins</li>
</ul>]]></description>
         <link>http://handelframework.com/blog/announcements/handel_099_16_released/</link>
         <guid>http://handelframework.com/blog/announcements/handel_099_16_released/</guid>
         <category>Announcements</category>
         <pubDate>Thu, 21 Dec 2006 16:29:37 -0500</pubDate>
      </item>
            <item>
         <title>Handel::Storage::RDBO 0.01_02 Released</title>
         <description><![CDATA[<p>From the I need a new hobby department, I present to you the second dev release of Handel::Storage::RDBO...</p>

<ul>
<li>Reworked init_db/Storage connection with the help of John Siracusa</li>
<li>Storage connection_info is now just like the DBIC storage connection_info</li>
<li>Requires latest version of Rose::DB from svn/0.732 when released</li>
<li>Fixed pod typo in Storage::Order::Item</li>
</ul>]]></description>
         <link>http://handelframework.com/blog/announcements/handelstoragerdbo_001_02_released/</link>
         <guid>http://handelframework.com/blog/announcements/handelstoragerdbo_001_02_released/</guid>
         <category>Announcements</category>
         <pubDate>Thu, 21 Dec 2006 12:44:10 -0500</pubDate>
      </item>
            <item>
         <title>Handel::Storage::RDBO 0.01_01 Released</title>
         <description><![CDATA[<p>Just because I can, and also as an exercise to make sure the storage layer in the upcoming Handel 1.0 is abstracted to my liking, I'm happy to announce the first release of Rose::DB::Object support for Handel.</p>

<p>The dist includes the requisite storage, schema, and result classes needed to use Handel 1.0 with Rose::DB::Object classes instead of the DBIx::Class schema classes.</p>

<p>To use RDBO instead of DBIC, all you have to do is change the storage_class in your storage classes generated by the bootstrap:</p>

<pre><code>package MyApp::Storage::Cart;
use strict;
use warnings;

<p>BEGIN {<br />
    use base qw/Handel::Storage::DBIC::Cart/;<br />
};</code></pre></p>

<p>becomes:</p>

<pre><code>package MyApp::Storage::Cart;
use strict;
use warnings;

<p>BEGIN {<br />
    use base qw/Handel::Storage::RDBO::Cart/;<br />
};</code></pre></p>

<p>You will need to do this in the Cart, Cart::Item, Order, and Order::Item storage classes. At some point I will change the generation scripts to allow one to specify DBIC or RDBO during code generation.</p>

<p>Handel-Storage-RDBO-0.01_01 should be available on CPAN shortly, and requires Handel 1.0, which doesn't yet exist. Please use the latest code from the 1.0 branch for now until I get another dev release out the door:</p>

<p>http://svn.handelframework.com/CPAN/Handel/branches/DBIC-1.0/</p>

<p>-=Chris</p>]]></description>
         <link>http://handelframework.com/blog/announcements/handelstoragerdbo_001_01_released/</link>
         <guid>http://handelframework.com/blog/announcements/handelstoragerdbo_001_01_released/</guid>
         <category>Announcements</category>
         <pubDate>Tue, 19 Dec 2006 14:03:20 -0500</pubDate>
      </item>
            <item>
         <title>Storage: Handel::Storage:</title>
         <description><![CDATA[<p>RDBO in the works...</p>]]></description>
         <link>http://handelframework.com/blog/currently_working_on/storage_handelstorage/</link>
         <guid>http://handelframework.com/blog/currently_working_on/storage_handelstorage/</guid>
         <category>Currently Working On</category>
         <pubDate>Tue, 05 Dec 2006 23:16:38 -0500</pubDate>
      </item>
            <item>
         <title>1.0 Release is Near</title>
         <description><![CDATA[<p> Still some demo/test cleanup to do</p>]]></description>
         <link>http://handelframework.com/blog/currently_working_on/10_release_is_near/</link>
         <guid>http://handelframework.com/blog/currently_working_on/10_release_is_near/</guid>
         <category>Currently Working On</category>
         <pubDate>Sun, 12 Nov 2006 17:58:09 -0500</pubDate>
      </item>
            <item>
         <title>Handel 0.99_15 Released</title>
         <description><![CDATA[<p>Wow. I think my eyes are bleeding. This release has a lot of work behind it. One of the big new features is Module::Starter::Handel, the handel.pl starter script, and another Catalyst helper that  combines the old helper output with the new starter subclasses. And oh yeah, ~99% test coverage doesn't suck either.</p>

<p>I still have to make Perl::Critic happy with the test suite (test labels). The L!0N lexicons need completed, and the demos still need fixed. This might possibly be the last dev release before 1.0.</p>

<ul>
<li>L10N files now use constant-like keys rather than english errors</li>
<li>L10N::es_es.pm reworked by Diego Kuperman</li>
<li>L10N::fr reworked by Pierrick DINTRAT</li>
<li>Added l10n_lexicon_synced.t to ensure language lexicons are synced with each other via key checks</li>
<li>Removed constraint_uuid check from Checkout order/cart since it's not subclass friendly (RT#19813,TKP)</li>
<li>Checkout cart now throws an exception of now order can be found matching the search criteria</li>
<li>Converted tests to use Handel::Test</li>
<li>Cleanup tests against Perl::Critic</li>
<li>Fixed Checkout prototype mismatch warning under perl > 5.8.8</li>
<li>Added more config tests for MP1/MP2</li>
<li>Added more Schema connect tests</li>
<li>Added more Base tests</li>
<li>Added Iterator tests</li>
<li>Fixed bug in Iterator:::DBIC where first increments the resulset</li>
<li>Fixed issue in Cat Helpers that treated MyApp::Controller:: as a valid name</li>
<li>Added Catalyst Model setup tests</li>
<li>Added Catalyst Scaffold Helper tests</li>
<li>Added checkout_class to Order pod</li>
<li>Added Module::Starter::Handel to help kickstart Handel projects</li>
<li>Added currency_code_column to storage so DBIC inflators can set currency code using another column in the row</li>
<li>Removed formatting options from Currency->convert now that it always returns a currency object instead of formatted strings</li>
<li>Reworked Handel::Currency to be more object like with its parameters</li>
<li>Added Handel::Compat::Currency, inserted automatically when loading Handel::Compat</li>
<li>Added compat_currency.t tests</li>
<li>Converted to Module::Pluggable::Object</li>
<li>Cart restore now throws exception on unknown mode like it was supposed to</li>
<li>Only create currency converter when calling convert for the first time</li>
<li>Added handel.pl quickstart scripts for Module::Starter::Handel apps</li>
<li>Added Catalyst::Helper::Handel to create entire cat app w/ starter subclasses</li>
<li>Huge test coverage. 99% w00t!</li>
<li>Mostly Perl::Critic happy...except for some test labels</li>
<li>Probably last release before 1.0!</li>
</ul>]]></description>
         <link>http://handelframework.com/blog/announcements/handel_099_15_released/</link>
         <guid>http://handelframework.com/blog/announcements/handel_099_15_released/</guid>
         <category>Announcements</category>
         <pubDate>Sun, 12 Nov 2006 17:50:59 -0500</pubDate>
      </item>
            <item>
         <title>Finished With Code Coverage</title>
         <description><![CDATA[<p>It was a long journey to <a href="/coverage/coverage.html">total test coverage</a>, but I estimate I fixed about 15 unknown untested bugs in the process. That's never a bad thing. Now, it's time to fix some pod spelling, write the QuickStart pod, make Perl::Critic happy again, fix the old demo code, and release 1.0. Getting closer every day.</p>]]></description>
         <link>http://handelframework.com/blog/off_topic/finished_with_code_coverage/</link>
         <guid>http://handelframework.com/blog/off_topic/finished_with_code_coverage/</guid>
         <category>Off Topic</category>
         <pubDate>Sun, 05 Nov 2006 21:59:30 -0500</pubDate>
      </item>
            <item>
         <title>An Introduction to Handel</title>
         <description><![CDATA[<p>I've put the slides from tonights RubberCity Perl Mongers meeting <a href="http://handelframework.com/slides/intro/">presentation</a> online. You can find them in the <a href="/slides/">slides</a> directory.</p>]]></description>
         <link>http://handelframework.com/blog/presentations/an_introduction_to_handel/</link>
         <guid>http://handelframework.com/blog/presentations/an_introduction_to_handel/</guid>
         <category>Presentations</category>
         <pubDate>Wed, 01 Nov 2006 21:18:00 -0500</pubDate>
      </item>
            <item>
         <title>Code Coverage Statistics</title>
         <description><![CDATA[<p>For those who like to play along in my game of testing OCD, I've put the <a href="/coverage/coverage.html">current code coverage stats</a> online. It's getting greener all the time.  :-)</p>]]></description>
         <link>http://handelframework.com/blog/off_topic/code_coverage_statistics/</link>
         <guid>http://handelframework.com/blog/off_topic/code_coverage_statistics/</guid>
         <category>Off Topic</category>
         <pubDate>Wed, 11 Oct 2006 13:22:15 -0500</pubDate>
      </item>
            <item>
         <title>Module::Starter::Handel</title>
         <description><![CDATA[<p>After a few different people have struggled through customizing their use of Handel, I decided that it might be worth it to hack together a quickstart script that took care of all the basic subclassing hoopla. The new module can be found in <a href="http://svn.handelframework.com/CPAN/Handel/branches/DBIC-1.0/">the 1.0 dev branch</a> and it requires that you have <em>Module::Starter</em> installed.</p>

<p>To create a new project, call the <em>module-starter</em> script passing in the <em>class</em> parameter, the project name and the other parameters required by <em>module-starter</em>:</p>

<pre><code>module-starter --class=Module::Starter::Handel --module=MyProject \
    --author="Me" --email="me@example.com" --verbose</code></pre>

<p>and you should end up with some nice new spiffy project modules:</p>

<pre><code>Created MyProject
Created MyProject\lib\MyProject
Created MyProject\lib\MyProject\Cart.pm
Created MyProject\lib\MyProject\Cart
Created MyProject\lib\MyProject\Cart\Item.pm
Created MyProject\lib\MyProject\Storage
Created MyProject\lib\MyProject\Storage\Cart.pm
Created MyProject\lib\MyProject\Storage\Cart
Created MyProject\lib\MyProject\Storage\Cart\Item.pm
Created MyProject\lib\MyProject\Order.pm
Created MyProject\lib\MyProject\Order
Created MyProject\lib\MyProject\Order\Item.pm
Created MyProject\lib\MyProject\Storage\Order.pm
Created MyProject\lib\MyProject\Storage\Order
Created MyProject\lib\MyProject\Storage\Order\Item.pm
Created MyProject\lib\MyProject\Checkout.pm
Created MyProject\t
Created MyProject\t\pod-coverage.t
Created MyProject\t\pod.t
Created MyProject\t\boilerplate.t
Created MyProject\t\00-load.t
Created MyProject\.cvsignore
Created MyProject\Makefile.PL
Created MyProject\MANIFEST
Created starter directories and files</code></pre>]]></description>
         <link>http://handelframework.com/blog/new_features/modulestarterhandel/</link>
         <guid>http://handelframework.com/blog/new_features/modulestarterhandel/</guid>
         <category>New Features</category>
         <pubDate>Tue, 10 Oct 2006 23:06:38 -0500</pubDate>
      </item>
      
   </channel>
</rss>
