<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>COMMITTERS</filename>
    </added>
    <added>
      <filename>COPYING</filename>
    </added>
    <added>
      <filename>doc/benchmarks.txt</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,5 +8,3 @@ log/*.log
 doc/rdoc/*
 tmp/*
 pkg/*
-Manifest
-nbproject/*</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,38 @@
-v0.5.3. Purple Yogurt release
+== 0.5.3 Purple Yogurt release
+ * Add prefix option to thin script to mount app under a given path.
 
-v0.5.2. Cheezburger release
+== 0.5.2 Cheezburger release
+ * Add cluster support through the -s option in the thin script, start 3 thins like this:
+    thin start -s3 -p3000
+   3 thin servers will be started on port 3000, 3001, 3002, also the port number will be
+   injected in the pid and log filenames.
+ * Fix IOError when writing to logger when starting server as a daemon.
+ * Really change directory when the -c option is specified.
+ * Add restart command to thin script.
+ * Fix typos in thin script usage message and expand chdir path.
+ * Rename thin script options to be the same as mongrel_rails script [thronedrk]:
+     -o --host  =&gt; -a --address
+     --log-file =&gt; --log
+     --pid-file =&gt; --pid
+     --env      =&gt; --environment
+ 
+== 0.5.1 LOLCAT release
+ * Add URL rewriting to Rails adapter so that page caching works and / fetches index.html if present.
+ * Fix bug in multiline response header parsing.
+ * Add specs for the Rails adapter.
+ * Fix Set-Cookie headers in Rails adapter to handle multiple values correctly.
+ * Fix Ruby 1.9 incompatibility in Response#headers= and Rakefile.
+ * Fix parser to be Ruby 1.9 compatible [Aman Gupta]
+ * Set gemspec to use EventMachine version 0.8.1 as it's the latest one having precompiled windows binaries.
+   [Francis Cianfrocca].
+ * Add -D option to thin script to set debugging on.
+ * Output incoming data and response when debugging is on.
 
-v0.5.1. LOLCAT release
-
-v0.5.0. full rewrite to use EventMachine, Rack, and Mongrel parser
-
-v0.4.1. Fix Rails environment option not being used in thin script.
-
-v0.4.0. First alphaish release as a gem.
+== 0.5.0
+ * Full rewrite to use EventMachine, Rack and Mongrel parser
+ 
+== 0.4.1
+ * Fix Rails environment option not being used in thin script.
+ 
+== 0.4.0
+ * First alphaish release as a gem.</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -1,168 +1,11 @@
-require 'lib/thin'
-require 'echoe'
-
-# sudo flag
-windows             = (PLATFORM =~ /mswin|cygwin/)
-SUDO                = windows ? &quot;&quot; : &quot;sudo&quot;
-
-# ruby version
-RUBY_1_9            = RUBY_VERSION =~ /^1\.9/
-def gem
-  RUBY_1_9 ? 'gem19' : 'gem'
-end
-
-# ragel
-RAGEL_BASE          = 'parser'
-RAGEL_TARGET        = &quot;#{RAGEL_BASE}.c&quot;
-RAGEL_FILE          = &quot;#{RAGEL_BASE}.rl&quot;
-
-# ext
-EXT_BASE            = 'thin_parser'
-EXT_DIR             = &quot;ext/#{EXT_BASE}&quot;
-EXT_BUNDLE          = &quot;#{EXT_DIR}/#{EXT_BASE}.#{Config::CONFIG['DLEXT']}&quot;
-SO_FILE             = &quot;#{EXT_BASE}.so&quot;
-
-Echoe.new(Thin::NAME) do |p|
-  p.author = &quot;Marc-Andre Cournoyer&quot;
-  p.email = &quot;macournoyer@gmail.com&quot;
-  p.description = &quot;Thin takes the http parser from Mongrel, the 
-    connection engine from EventMachine and the web server interface
-    from Rack, creating a highly flexible, small, fast, and sexy
-    web app server for Ruby.&quot;
-  p.summary = &quot;A thin and fast web server&quot;
-  p.url = &quot;http://code.macournoyer.com/thin/&quot;
-  p.docs_host = &quot;macournoyer.com:~/code.macournoyer.com/thin/doc/&quot;
-  p.clean_pattern = ['ext/thin_parser/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'lib/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'ext/thin_parser/Makefile', 'pkg', 'lib/*.bundle', '*.gem', '*.gemspec', '.config', 'coverage']
-  p.ignore_pattern = /^(.git|benchmark|site|tasks)|.gitignore/
-  p.rdoc_pattern = ['README', 'LICENSE', 'changes.txt', 'lib/**/*.rb', 'doc/**/*.rdoc']
-  p.ruby_version = '&gt;= 1.8.6'
-  p.dependencies = ['rack &gt;= 0.2.0']
-  p.extension_pattern = nil
-  p.need_tar_gz = false
-  
-  if RUBY_PLATFORM !~ /mswin/
-    p.extension_pattern = [&quot;ext/**/extconf.rb&quot;]
-  end
-  
-  p.eval = proc do
-    case RUBY_PLATFORM
-    when /mswin/
-      self.files += ['lib/thin_parser.so']
-      add_dependency('eventmachine', '&gt;= 0.8.1')
-    else
-      add_dependency('daemons', '&gt;= 1.0.9')
-      add_dependency('eventmachine')
-    end
-  end
-end
-
-task :clean =&gt; :clobber_package
-
-task :tag_warn do
-  puts &quot;*&quot; * 40
-  puts &quot;Don't forget to tag the release:&quot;
-  puts &quot;  git tag -a v#{Thin::VERSION::STRING}&quot;
-  puts &quot;*&quot; * 40
-end
-
-task :gem =&gt; [:compile,:tag_warn]
+RUBY_1_9 = RUBY_VERSION =~ /^1\.9/
+WIN      = (PLATFORM =~ /mswin|cygwin/)
+SUDO     = (WIN ? &quot;&quot; : &quot;sudo&quot;)
 
-desc &quot;Compile the Ragel state machines&quot;
-task :ragel do
-  Dir.chdir EXT_DIR do
-    File.unlink RAGEL_TARGET if File.exist? RAGEL_TARGET
-    sh &quot;ragel #{RAGEL_FILE} | rlgen-cd -G2 -o #{RAGEL_TARGET}&quot;
-    raise &quot;Failed to compile Ragel state machine&quot; unless File.exist? RAGEL_TARGET
-  end
-end
-
-case RUBY_PLATFORM
-when /mswin/
-  FILENAME = &quot;lib/#{SO_FILE}&quot;
-  file FILENAME do
-    Dir.chdir EXT_DIR do
-      ruby &quot;extconf.rb&quot;
-      system('nmake')
-    end
-    cp EXT_BUNDLE, 'lib/'
-  end
-  desc &quot;compile mswin32 extension&quot;
-  task :compile =&gt; [FILENAME]
-else
-  # task :compile defined by echoe due to defined extension_pattern
-end
-
-namespace :deploy do
-  task :site =&gt; %w(site:upload rdoc:upload)
-  
-  desc 'Deploy on code.macournoyer.com'
-  task :alpha =&gt; %w(gem:upload deploy:site)
-  
-  desc 'Deploy on rubyforge'
-  task :public =&gt; %w(gem:upload_rubyforge deploy:site)  
-end
-desc 'Deploy on all servers'
-task :deploy =&gt; %w(deploy:alpha deploy:public)
-
-def upload(file, to, options={})
-  sh %{ssh macournoyer@macournoyer.com &quot;rm -rf code.macournoyer.com/#{to}&quot;} if options[:replace]
-  sh %{scp -rq #{file} macournoyer@macournoyer.com:code.macournoyer.com/#{to}}
-end
-
-namespace :site do
-  task :build do
-    mkdir_p 'tmp/site/images'
-    cd 'tmp/site' do
-      sh &quot;SITE_ROOT='/thin' ruby ../../site/thin.rb --dump&quot;
-    end
-    cp 'site/style.css', 'tmp/site'
-    cp_r Dir['site/images/*'], 'tmp/site/images'
-  end
-  
-  desc 'Upload website to code.macournoyer.com'
-  task :upload =&gt; 'site:build' do
-    upload 'tmp/site/*', 'thin'
-  end
-end
+require 'rake'
+require 'rake/clean'
+require 'lib/thin'
 
-if RUBY_1_9
-  task :spec do
-    warn 'RSpec not yet supporting Ruby 1.9, so cannot run the specs :('
-  end
-else
-  # RSpec not yet working w/ Ruby 1.9
-  require 'spec/rake/spectask'
-  
-  desc &quot;Run all examples&quot;
-  Spec::Rake::SpecTask.new('spec') do |t|
-    t.spec_files = FileList['spec/**/*_spec.rb']
-  end
-end
+Dir['tasks/**/*.rake'].each { |rake| load rake }
 
 task :default =&gt; [:compile, :spec]
-
-desc 'Show some stats about the code'
-task :stats do
-  line_count = proc do |path|
-    Dir[path].collect { |f| File.open(f).readlines.reject { |l| l =~ /(^\s*(\#|\/\*))|^\s*$/ }.size }.inject(0){ |sum,n| sum += n }
-  end
-  lib = line_count['lib/**/*.rb']
-  ext = line_count['ext/**/*.{c,h}'] 
-  spec = line_count['spec/**/*.rb']
-  ratio = '%1.2f' % (spec.to_f / lib.to_f)
-  
-  puts &quot;#{lib.to_s.rjust(6)} LOC of lib&quot;
-  puts &quot;#{ext.to_s.rjust(6)} LOC of ext&quot;
-  puts &quot;#{spec.to_s.rjust(6)} LOC of spec&quot;
-  puts &quot;#{ratio.to_s.rjust(6)} ratio lib/spec&quot;
-end
-
-desc &quot;install the gem&quot;
-task :thin_install =&gt; [:clean,:package] do
-  sh %{#{SUDO} #{gem} install pkg/#{Thin::NAME}-#{Thin::VERSION::STRING}*.gem --no-update-sources}
-end
-
-desc &quot;uninstall the gem&quot;
-task :thin_uninstall =&gt; :clean do
-  sh %{#{SUDO} #{gem} uninstall #{Thin::NAME}}
-end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,17 +1,21 @@
 == BUGS
  * Carl Mercier is experiencing weird stuff, response headers seems to be happened
    to the top of every HTML page in the browser ?wtf?
+ * Thin uses more memory then Mongrel on some apps, investigate why
 
 == FEATURES
- * Add --prefix option to thin script
- * IPv6 support (bind to ::1)
+ * IPv6 support (should be able to bind to ::1)
  
 == TASKS
- * Add a better god sample file in example, maybe generate one !?
- * Change benchmarking test to use
-   http://blog.evanweaver.com/files/doc/fauna/benchmark_unit/
  * Provide precompiled win32 binaries in Gem
+ * Load options from a config file
+ * Create a Stats adapter to show server stats in the browser
+ * Check for memory usage/leaks using dike or other.
+ * Change benchmarking tests to use
+   http://blog.evanweaver.com/files/doc/fauna/benchmark_unit/
+ * Add a better god sample file in example/,
+   maybe generate one w/ thin config and use this in replacement
+   of mongrel_cluster to launch cluster at startup and all.
  * Port response writing to a C extension
- * Benchmark CGI and FastCGI too [Carlos Junior]
  * Investigate http://rev.rubyforge.org/ (only Ruby 1.9)
- * Check for memory usage/leaks using dike or other.
+ * Benchmark CGI and FastCGI too [Carlos Junior]</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -138,7 +138,9 @@ class Thin &lt; Atchoum::Website
       li { a &quot;Kevin Williams Blog&quot;, :href =&gt; 'http://www.almostserio.us/articles/2008/01/11/thin-web-server-for-ruby-rocks' }
       li { a &quot;Dinooz&quot;, :href =&gt; 'http://www.nicomoayudarte.com/' }
       li { a &quot;Mobile Dyne Systems&quot;, :href =&gt; 'http://www.mobiledyne.com/' }
-      li { a &quot;Mobile Dyne Systems&quot;, :href =&gt; 'http://feelfree.homelinux.com' }
+      li { a &quot;feelfree.homelinux.com&quot;, :href =&gt; 'http://feelfree.homelinux.com' }
+      li { a &quot;to2posts.com&quot;, :href =&gt; 'http://to2blogs.com/' }
+      li { a &quot;James on Software&quot;, :href =&gt; 'http://jamesgolick.com/' }
     end
     
     p { &quot;If you'd like to have your site listed here, #{a 'drop me an email', :href =&gt; 'mailto:macournoyer@gmail.com'}&quot; }</diff>
      <filename>site/thin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,13 +15,11 @@ spec = Gem::Specification.new do |s|
 
   s.required_ruby_version = '&gt;= 1.8.6' # Makes sure the CGI eof fix is there
   
-  if WIN
-    s.add_dependency      'eventmachine', '&gt;= 0.8.1' # Latest precompiled version released
-  else
-    s.add_dependency      'eventmachine'
-    s.add_dependency      'daemons',      '&gt;= 1.0.9' # Daemonizing doesn't work on win
-  end
   s.add_dependency        'rack',         '&gt;= 0.2.0'
+  s.add_dependency        'eventmachine', '&gt;= 0.8.1'
+  unless WIN
+    s.add_dependency        'daemons',      '&gt;= 1.0.9'
+  end
 
   s.files                 = %w(COPYING CHANGELOG README Rakefile) +
                             Dir.glob(&quot;{benchmark,bin,doc,example,lib,spec}/**/*&quot;) + 
@@ -59,11 +57,20 @@ namespace :gem do
   desc 'Upload gem to rubyforge.org'
   task :upload_rubyforge =&gt; :gem do
     sh 'rubyforge login'
-    sh &quot;rubyforge add_release thin thin #{Thin::VERSION::STRING} pkg/thin-#{Thin::VERSION::STRING}.gem&quot;
-    sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/thin-#{Thin::VERSION::STRING}.gem&quot;    
+    sh &quot;rubyforge add_release thin thin #{Thin::VERSION::STRING} pkg/#{spec.full_name}.gem&quot;
+    sh &quot;rubyforge add_file thin thin #{Thin::VERSION::STRING} pkg/#{spec.full_name}.gem&quot;    
   end
 end
 
+task :install =&gt; [:clobber, :compile, :package] do
+  sh &quot;#{SUDO} #{gem} install pkg/#{spec.full_name}.gem&quot;
+end
+
+task :uninstall =&gt; :clean do
+  sh &quot;#{SUDO} #{gem} uninstall -v #{Thin::VERSION::STRING} -x #{Thin::NAME}&quot;
+end
+
+
 def gem
   RUBY_1_9 ? 'gem19' : 'gem'
-end
+end
\ No newline at end of file</diff>
      <filename>tasks/gem.rake</filename>
    </modified>
    <modified>
      <diff>@@ -12,4 +12,4 @@ else
   Spec::Rake::SpecTask.new('spec') do |t|
     t.spec_files = FileList['spec/**/*_spec.rb']
   end
-end
+end
\ No newline at end of file</diff>
      <filename>tasks/spec.rake</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>LICENSE</filename>
    </removed>
    <removed>
      <filename>benchmark/benchmarks.txt</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>a4b49dc9ce34af6473bad89dac4be1aa8366dd46</id>
    </parent>
  </parents>
  <author>
    <name>Kevin Williams</name>
    <email>kevwil@gmail.com</email>
  </author>
  <url>http://github.com/macournoyer/thin/commit/6134e4395966cc3b7a4623aff635378a64f6e54c</url>
  <id>6134e4395966cc3b7a4623aff635378a64f6e54c</id>
  <committed-date>2008-01-16T23:15:01-08:00</committed-date>
  <authored-date>2008-01-16T23:15:01-08:00</authored-date>
  <message>sync with main repo, tweak rakefile(s) again for better win32 gem, need to handle not forking in win32 from the executable script (daemons doesn't work on win32)</message>
  <tree>4a8d03e0b043648ceb06703ed4fcf06f87df01d2</tree>
  <committer>
    <name>Kevin Williams</name>
    <email>kevwil@gmail.com</email>
  </committer>
</commit>
