<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>vendor/spartan-1.0/lib/spartan/default_test_case_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/spartan-1.0/lib/spartan/rails23_test_case_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/spartan-1.0/lib/spartan/test_definition_context.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,180 +2,211 @@ require File.expand_path(File.dirname(__FILE__) + '/../../unit_test_helper')
 
 unit_tests do
   
-  test &quot;wait_for_text waits for the innerHTML content of an element when a locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
-    client.wait_for_text &quot;some text&quot;, :element =&gt; &quot;a_locator&quot;
-  end
+  describe &quot;wait_for_text&quot; do
 
-  test &quot;wait_for_text waits for the page content when no locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
-    client.wait_for_text &quot;some text&quot;
-  end
+    test &quot;wait_for_text waits for the innerHTML content of an element when a locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
+      client.wait_for_text &quot;some text&quot;, :element =&gt; &quot;a_locator&quot;
+    end
+
+    test &quot;wait_for_text waits for the page content when no locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
+      client.wait_for_text &quot;some text&quot;
+    end
+
+    test &quot;wait_for_text waits for the page content regexp when no locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
+      client.wait_for_text(/some text/)
+    end
+  
+    test &quot;wait_for_text uses default timeout when none is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, nil)
+      client.wait_for_text &quot;some text&quot;
+    end
+  
+    test &quot;wait_for_text uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :explicit_timeout)
+      client.wait_for_text &quot;some text&quot;, :timeout_in_seconds =&gt; :explicit_timeout
+    end
 
-  test &quot;wait_for_text waits for the page content regexp when no locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
-    client.wait_for_text(/some text/)
-  end
-  
-  test &quot;wait_for_text uses default timeout when none is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, nil)
-    client.wait_for_text &quot;some text&quot;
-  end
-  
-  test &quot;wait_for_text uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :explicit_timeout)
-    client.wait_for_text &quot;some text&quot;, :timeout_in_seconds =&gt; :explicit_timeout
-  end
-  
-  test &quot;wait_for_no_text waits for the innerHTML content of an element when a locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
-    client.wait_for_no_text &quot;some text&quot;, :element =&gt; &quot;a_locator&quot;
-  end
-  
-  test &quot;wait_for_no_text waits for the page content for regexp when no locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
-    client.wait_for_no_text(/some text/)
-  end
-  
-  test &quot;wait_for_no_text waits for the page content when no locator is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
-    client.wait_for_no_text &quot;some text&quot;
-  end
-  
-  test &quot;wait_for_no_text uses default timeout when none is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, nil)
-    client.wait_for_no_text &quot;some text&quot;
-  end
-  
-  test &quot;wait_for_no_text uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :explicit_timeout)
-    client.wait_for_no_text &quot;some text&quot;, :timeout_in_seconds =&gt; :explicit_timeout
-  end
-  
-  test &quot;wait_for_ajax uses Ajax.activeRequestCount when default js framework is prototype&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().Ajax.activeRequestCount == 0;&quot;, anything)
-    client.wait_for_ajax
-  end
-  
-  test &quot;wait_for_ajax uses jQuery.active when default js framework is jQuery&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:jquery)
-    client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().jQuery.active == 0;&quot;, anything)
-    client.wait_for_ajax
-  end
-  
-  test &quot;wait_for_ajax can override default js framework&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().jQuery.active == 0;&quot;, anything)
-    client.wait_for_ajax :javascript_framework =&gt; :jquery    
-  end
-  
-  test &quot;wait_for_ajax uses default timeout when none is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(anything, nil)
-    client.wait_for_ajax
-  end
-  
-  test &quot;wait_for_ajax uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(anything, :explicit_timeout)
-    client.wait_for_ajax :timeout_in_seconds =&gt; :explicit_timeout
-  end
-  
-  test &quot;wait_for_effect uses Effect.Queue.size() when default js framework is prototype&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().Effect.Queue.size() == 0;&quot;, anything)
-    client.wait_for_effects
-  end
-  
-  test &quot;wait_for_effects uses default timeout when none is provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(anything, nil)
-    client.wait_for_effects
-  end
-  
-  test &quot;wait_for_effects uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.stubs(:default_javascript_framework).returns(:prototype)
-    client.expects(:wait_for_condition).with(anything, :explicit_timeout)
-    client.wait_for_effects :timeout_in_seconds =&gt; :explicit_timeout
   end
   
-  test &quot;wait_for_field_value uses provided locator&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
-    client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;
+  describe &quot;wait_for_no_text&quot; do
+
+    test &quot;wait_for_no_text waits for the innerHTML content of an element when a locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
+      client.wait_for_no_text &quot;some text&quot;, :element =&gt; &quot;a_locator&quot;
+    end
+  
+    test &quot;wait_for_no_text waits for the page content for regexp when no locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
+      client.wait_for_no_text(/some text/)
+    end
+  
+    test &quot;wait_for_no_text waits for the page content when no locator is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(%r{document.body.innerHTML.match\(/some text/\)}m), anything)
+      client.wait_for_no_text &quot;some text&quot;
+    end
+  
+    test &quot;wait_for_no_text uses default timeout when none is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, nil)
+      client.wait_for_no_text &quot;some text&quot;
+    end
+  
+    test &quot;wait_for_no_text uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :explicit_timeout)
+      client.wait_for_no_text &quot;some text&quot;, :timeout_in_seconds =&gt; :explicit_timeout
+    end
   end
-  
-  test &quot;wait_for_field_value uses provided field value&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/element.value == 'a value'/), anything)
-    client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;
+
+  describe &quot;wait_for_ajax&quot; do
+
+    test &quot;wait_for_ajax uses Ajax.activeRequestCount when default js framework is prototype&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().Ajax.activeRequestCount == 0;&quot;, anything)
+      client.wait_for_ajax
+    end
+  
+    test &quot;wait_for_ajax uses jQuery.active when default js framework is jQuery&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:jquery)
+      client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().jQuery.active == 0;&quot;, anything)
+      client.wait_for_ajax
+    end
+  
+    test &quot;wait_for_ajax can override default js framework&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().jQuery.active == 0;&quot;, anything)
+      client.wait_for_ajax :javascript_framework =&gt; :jquery    
+    end
+  
+    test &quot;wait_for_ajax uses default timeout when none is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(anything, nil)
+      client.wait_for_ajax
+    end
+  
+    test &quot;wait_for_ajax uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(anything, :explicit_timeout)
+      client.wait_for_ajax :timeout_in_seconds =&gt; :explicit_timeout
+    end
+
   end
-  
-  test &quot;wait_for_field_value uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :the_timeout)
-    client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;, :timeout_in_seconds =&gt; :the_timeout
+
+  describe &quot;wait_for_effect&quot; do
+
+    test &quot;wait_for_effect uses Effect.Queue.size() when default js framework is prototype&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(&quot;selenium.browserbot.getCurrentWindow().Effect.Queue.size() == 0;&quot;, anything)
+      client.wait_for_effects
+    end
+  
+    test &quot;wait_for_effects uses default timeout when none is provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(anything, nil)
+      client.wait_for_effects
+    end
+  
+    test &quot;wait_for_effects uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.stubs(:default_javascript_framework).returns(:prototype)
+      client.expects(:wait_for_condition).with(anything, :explicit_timeout)
+      client.wait_for_effects :timeout_in_seconds =&gt; :explicit_timeout
+    end
+
   end
-  
-  test &quot;wait_for_no_field_value uses provided locator&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
-    client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;
+
+  describe &quot;wait_for_field_value&quot; do
+
+    test &quot;wait_for_field_value uses provided locator&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
+      client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;
+    end
+  
+    test &quot;wait_for_field_value uses provided field value&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/element.value == 'a value'/), anything)
+      client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;
+    end
+  
+    test &quot;wait_for_field_value uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :the_timeout)
+      client.wait_for_field_value &quot;a_locator&quot;, &quot;a value&quot;, :timeout_in_seconds =&gt; :the_timeout
+    end
+
   end
-  
-  test &quot;wait_for_no_field_value uses provided field value&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(regexp_matches(/element.value != 'a value'/), anything)
-    client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;
+
+  describe &quot;wait_for_no_field_value&quot; do
+
+    test &quot;wait_for_no_field_value uses provided locator&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/findElement\('a_locator'\)/), anything)
+      client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;
+    end
+  
+    test &quot;wait_for_no_field_value uses provided field value&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(regexp_matches(/element.value != 'a value'/), anything)
+      client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;
+    end
+  
+    test &quot;wait_for_no_field_value uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :the_timeout)
+      client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;, :timeout_in_seconds =&gt; :the_timeout
+    end
+
   end
   
-  test &quot;wait_for_no_field_value uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :the_timeout)
-    client.wait_for_no_field_value &quot;a_locator&quot;, &quot;a value&quot;, :timeout_in_seconds =&gt; :the_timeout
-  end
+  describe &quot;wait_for_visible&quot; do
 
-  test &quot;wait_for_visible uses provided locator&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(&quot;selenium.isVisible('a_locator')&quot;, anything)
-    client.wait_for_visible &quot;a_locator&quot;
-  end
+    test &quot;wait_for_visible uses provided locator&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(&quot;selenium.isVisible('a_locator')&quot;, anything)
+      client.wait_for_visible &quot;a_locator&quot;
+    end
 
-  test &quot;wait_for_visible uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :the_timeout)
-    client.wait_for_visible &quot;a_locator&quot;, :timeout_in_seconds =&gt; :the_timeout
-  end
+    test &quot;wait_for_visible uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :the_timeout)
+      client.wait_for_visible &quot;a_locator&quot;, :timeout_in_seconds =&gt; :the_timeout
+    end
 
-  test &quot;wait_for_not_visible uses provided locator&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(&quot;!selenium.isVisible('a_locator')&quot;, anything)
-    client.wait_for_not_visible &quot;a_locator&quot;
   end
+  
+  describe &quot;wait_for_not_visible&quot; do
+
+    test &quot;wait_for_not_visible uses provided locator&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(&quot;!selenium.isVisible('a_locator')&quot;, anything)
+      client.wait_for_not_visible &quot;a_locator&quot;
+    end
+
+    test &quot;wait_for_not_visible uses explicit timeout when provided&quot; do
+      client = Class.new { include Selenium::Client::Extensions }.new
+      client.expects(:wait_for_condition).with(anything, :the_timeout)
+      client.wait_for_not_visible &quot;a_locator&quot;, :timeout_in_seconds =&gt; :the_timeout
+    end
 
-  test &quot;wait_for_not_visible uses explicit timeout when provided&quot; do
-    client = Class.new { include Selenium::Client::Extensions }.new
-    client.expects(:wait_for_condition).with(anything, :the_timeout)
-    client.wait_for_not_visible &quot;a_locator&quot;, :timeout_in_seconds =&gt; :the_timeout
   end
 
 end</diff>
      <filename>test/unit/selenium/client/extensions_tests.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,9 @@
 require File.expand_path(File.dirname(__FILE__) + '/spartan/internals')
-require File.expand_path(File.dirname(__FILE__) + '/spartan/object_extensions')
+require File.expand_path(File.dirname(__FILE__) + '/spartan/test_definition_context')
 require File.expand_path(File.dirname(__FILE__) + '/spartan/test_case_extensions')
+require File.expand_path(File.dirname(__FILE__) + '/spartan/default_test_case_generator')
+require File.expand_path(File.dirname(__FILE__) + '/spartan/rails23_test_case_generator')
 require &quot;test/unit&quot;
 
-Object.send :include, Spartan::ObjectExtensions
+Object.send :include, Spartan::DefaultTestCaseGenerator
 Test::Unit::TestCase.send :extend, Spartan::TestCaseExtensions</diff>
      <filename>vendor/spartan-1.0/lib/spartan.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,11 +14,13 @@ module Spartan
       underscored.gsub(/(^(.)|_+(.))/) {|c| ($2 || $3).upcase}
     end
     
-    def self.define_test_class(suffix, &amp;block)
+    def self.define_test_class(options, &amp;block)
+      suffix = options[:suffix] || &quot;Test&quot;
+      base_class = options[:base_class] || Test::Unit::TestCase
       test_file_path = self.definition_file_path(&amp;block)
       test_file_name = File.basename(test_file_path, &quot;_tests.rb&quot;)
       test_class = Object.const_set &quot;#{self.camelize(test_file_name)}#{suffix}&quot;,  
-                   Class.new(Test::Unit::TestCase)
+                   Class.new(base_class)
       test_class.class_eval(&amp;block)
       test_class
     end</diff>
      <filename>vendor/spartan-1.0/lib/spartan/internals.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,22 +2,21 @@ module Spartan
   module TestCaseExtensions
 
     def test(description, &amp;block)
-      define_method test_method_name_for(description) do
+      define_method spartan_context.valid_test_method_name_for(description) do
         instance_eval(&amp;block)
       end
     end
 
-    def test_method_name_for(description)
-      test_name = &quot;test_#{description.gsub(/[ \.,;:\(\)-]+/, &quot;_&quot;)}&quot;
-      if duplicated_test_method?(test_name)
-        raise &quot;'#{description}' is already defined in this test case (cut-and-paste?)&quot;
-      end
-      test_name
+    def describe(description, &amp;block)
+      spartan_context.descriptions_in_progress.push description
+      yield
+      spartan_context.descriptions_in_progress.pop
     end
 
-    def duplicated_test_method?(test_name)
-      instance_methods.include?(test_name) ||
-      instance_methods.include?(test_name.to_sym) # Ruby 1.9
+    # Dedicated test definition context to avoid polluting TestCase's namespace
+    def spartan_context
+      @spartan_context ||= TestDefinitionContext.new(self)
     end
+
   end
 end
\ No newline at end of file</diff>
      <filename>vendor/spartan-1.0/lib/spartan/test_case_extensions.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>vendor/spartan-1.0/lib/spartan/object_extensions.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>b278b56e099e373e3d5ca8818bb211e875e1eb03</id>
    </parent>
  </parents>
  <author>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </author>
  <url>http://github.com/ph7/selenium-client/commit/4d7b165f77e67af0c4a7f64e4b65a8406861abea</url>
  <id>4d7b165f77e67af0c4a7f64e4b65a8406861abea</id>
  <committed-date>2009-07-10T12:48:53-07:00</committed-date>
  <authored-date>2009-07-10T12:48:53-07:00</authored-date>
  <message>Upgrading spartan</message>
  <tree>d58a081864b65d66a41be9c04465f91f2b1646e3</tree>
  <committer>
    <name>Philippe Hanrigou</name>
    <email>philippe.hanrigou@gmail.com</email>
  </committer>
</commit>
