
= shipit


== Description

shipit is automation of release process with Rake tasks.

This is a port of ShipIt, originally written in Perl by Brad Fitzpatrick.
But this is very different from original version (don't use .shipit and
always use with Rake.) because almost ruby libraries use Rakefile to release
process.


== Installation

=== Archive Installation

	rake install

=== Gem Installation

	gem install shipit


== Features/Problems

* svn, git only...

== Synopsis

Example (This is from shipit gem Rakefile):

	Rake::ShipitTask.new do |s|
		s.Step.new {
			system("svn", "up")
		}.and {}
		s.Task :rubyforge
		s.Step.new {
			raise "svn2cl.sh is not found" unless system("svn2cl.sh", "--version")
		}.and {
			system("svn2cl.sh --break-before-msg=2 --group-by-day  --include-rev --separate-daylogs")
		}
		s.ChangeVersion __FILE__, "VERS"
		s.Commit
		s.Task :clean, :package
		s.RubyForge
		s.Tag
		s.Twitter
	end

See more example at Rakefile[http://svn.coderepos.org/share/lang/ruby/shipit/trunk/Rakefile] of shipit.rb.

Some constants are currently hard-coded.

* NAME -> name of the library.
* DESCRIPTION -> description of the library
* VERS -> version of the library
          This is MUST reference to version string of ChangeVersion step, or
          the package task will fail and RubyForge step release wrong version.

If you use different constants, please assign the value to above constants.

== Development

This library currently consider different environments.
If you use cutagem[http://cutagem.rubyforge.org/], this library works fine :)

And this library is hosted on CodeRepos[http://coderepos.org/share/wiki],
so you have some ideas for this library, please commit to repository:

	$ svn co http://svn.coderepos.org/share/lang/ruby/shipit/trunk shipit


== Copyright

Author::    cho45 <cho45@lowreal.net>
Copyright:: Copyright (c) 2008 cho45
License::   Ruby's
