[Initial import of Package
Christian Neukirchen <chneukirchen@gmail.com>**20050926144837
 This is not meant to be used by anyone at the moment.
] [diff-between-dir-and-file-actions
mfp@acm.org**20050927124645] 
[Add missing data/ management in the aoki method.
mfp@acm.org**20050927124900
 Other things are still missing but this is the most common one.
] 
[Create a top-level config(x) function to emulate (partially) setup.rb's runtime.
mfp@acm.org**20050927125059
 The emulation is very incomplete (no support for the builddir and related
 information), but it's enough to make ruby-gettext work...
] 
[Full support of aoki directory layout
Christian Neukirchen <chneukirchen@gmail.com>**20050927142717] 
[Add primitive running of unit tests
Christian Neukirchen <chneukirchen@gmail.com>**20050927155254] 
[Small UI fix
Christian Neukirchen <chneukirchen@gmail.com>**20050927155304] 
[Call tests in-process
Christian Neukirchen <chneukirchen@gmail.com>**20050927161528] 
[Clean up self.config
Christian Neukirchen <chneukirchen@gmail.com>**20050927162354] 
[Remove overly verbose debug info.
Mauricio Fernandez <mfp@acm.org>
**20050927182611] 
[Ignore 'boring' files.
Mauricio Fernandez <mfp@acm.org>
**20050928104416
 The list of such files was taken from setup.rb.
 Files are rejected at the #bin(), #lib()... level, not only in #aoki, so that
 these semantics are consistent across all 'file classification' calls.
] 
[Put everything inside the Package namespace.
Mauricio Fernandez <mfp@acm.org>
**20050928105054
 The Package class is renamed to Package::PackageSpecification.
 Package.setup is placed in the top-level module, so it is still used as
 Package.setup. The cheap setup.rb compatibility method Object#config is
 kept as a private class of Object to allow basic setup.rb hooks like
 those in ruby-gettext to run.
] 
[Fixed bug where changing a kind's dir actually changed its prefix
paul@luon.net**20050928122343] 
[Added README.FHS.
Mauricio Fernandez <mfp@acm.org>
**20050928123817
 Description of the FHS-compliants paths we should be installing to.
] 
[Allow individual and "batch" renames in the "file classification calls".
Mauricio Fernandez <mfp@acm.org>
**20050928155340
 It is now possible to do things like
   bin "bin/foo.rb" => "foo"
   lib Dir["stuff/**/*.rb"] => lambda{|x| x.downcase }
   lib "foo" => "bar", "bar" => "foo"
 No support for mixed cases:
   lib "foo" => "bar", "foobar"    # SyntaxError
   lib "foobar", "foo" => "bar"    # to be done/avoided
] 
[Package::PackageSpecification#aoki: ignore ext/.
Mauricio Fernandez <mfp@acm.org>
**20050928162412] 
[InstallFile#eql?: see if the classes match.
Mauricio Fernandez <mfp@acm.org>
**20050928165633] 
[PackageSpecification#add_file: fix translation for directories.
Mauricio Fernandez <mfp@acm.org>
**20050928165724] 
[PackageSpecification#add_file: fixed @translate.
Mauricio Fernandez <mfp@acm.org>
**20050928171309
 The semantics still have to be described in full detail.
 Currently, given
   @translate[:lib] = {'foo' => 'bar'}
 
   foo/x.rb   => bar/x.rb
   foo/a/x.rb => foo/a/x.rb
] 
[Try to document the semantics of Package.setup{ } in semantics.txt.
Mauricio Fernandez <mfp@acm.org>
**20050928173035] 
[Refactored the lib/bin/etc definition and fixed the semantics.
Mauricio Fernandez <mfp@acm.org>
**20050928174225
 Now 
    lib Dir["foo/**/*.rb"]
 works as intended, so
    lib "foo.rb", "bar.rb"
 and
    lib ["foo.rb", "bar.rb"]
 are equivalent.
] 
[Added PackageSpecification#translate.
Mauricio Fernandez <mfp@acm.org>
**20050929002451
 In practice, we can write
   translate(:lib, '' => 'libfoo')
   translate(:lib, 'bar' => 'libfoo/baz')
 instead of
   @translate[:lib] = {'' => 'libfoo', 'bar' => 'libfoo/baz'}
 Both forms work but the former should be more convenient.
] 
[Add AUTHORS
Christian Neukirchen <chneukirchen@gmail.com>**20050929154845] 
[Move constants from Package::PackageSpecification to Package.
Mauricio Fernandez <mfp@acm.org>
**20050928124931] 
[Bugfix: the regexps in IGNORE_FILES were broken.
Mauricio Fernandez <mfp@acm.org>
**20050928125021] 
[Make Mozillion a proper AUTHOR
Christian Neukirchen <chneukirchen@gmail.com>**20050929155821] 
[Resolve merging mess
Christian Neukirchen <chneukirchen@gmail.com>**20050929162754] 
[Resolved conflict created by the last pull from chris2' repos.
Mauricio Fernandez <mfp@acm.org>
**20050929161509] 
[Reapplied chris2' "Clean up self.config" patch.
Mauricio Fernandez <mfp@acm.org>
**20050929162741
 It was reverted by accident while resolving.
] 
[Merge
Christian Neukirchen <chneukirchen@gmail.com>**20050929163042] 
[Add and integrate Rakefile
Christian Neukirchen <chneukirchen@gmail.com>**20050929172752] 
[Allow to override the IGNORE defaults for "boring" files.
Mauricio Fernandez <mfp@acm.org>
**20050929171041
 Semantics:
   doc [stuff]          # ignores files
   doc Dir["foo/**/*"]  # ditto
   doc "bla.orig"       # doesn't ignore
] 
[Add TODO
Christian Neukirchen <chneukirchen@gmail.com>**20050929181723] 
[Added some LF chars at EOF.
Mauricio Fernandez <mfp@acm.org>
**20050929230343] 
[Updated the TODO.
Mauricio Fernandez <mfp@acm.org>
**20050929230940] 
[Added shebang correction to the TODO.
Mauricio Fernandez <mfp@acm.org>**20051001102312] 
[Package.setup, PackageSpecification#initialize: honor config.save settings.
Mauricio Fernandez <mfp@acm.org>**20051001102345] 
[Test the semantics of the file specification methods.
Mauricio Fernandez <mfp@acm.org>**20051001105551
 This unit test verifies the semantics of:
 * simple calls
 * mixtures of String/Array arguments
 * file ignoring
 * file renaming
] 
[Perform type-checking in the file tagging calls.
Mauricio Fernandez <mfp@acm.org>**20051001120142
 Unit tests updated.
] 
[Package.setup and related: first baby steps towards versioning.
Mauricio Fernandez <mfp@acm.org>**20051001144006
 Added Package.package_specification_with_semantics that returns the
 appropriate PackageSpecification class. 
 Now Package.setup must be used as follows:
   Package.setup("1.0") {    }
 Unit tests updated.
] 
[Package.setup: accept :run_tasks, :parse_cmdline, :load_conf options.
Mauricio Fernandez <mfp@acm.org>**20051001145019] 
[Minor refactoring of the unit tests.
Mauricio Fernandez <mfp@acm.org>**20051001145242] 
[Put InstallFile and MkDir under the Actions namespace.
Mauricio Fernandez <mfp@acm.org>**20051001154137] 
[Minor reformatting plus reindentation of the Actions namespace.
Mauricio Fernandez <mfp@acm.org>**20051001154315] 
[InstallFile#<=>, MkDir#<=>: refactored.
Mauricio Fernandez <mfp@acm.org>**20051001155522] 
[Actions::FULL_ORDER: fixed ordering of Actions classes.
Mauricio Fernandez <mfp@acm.org>**20051001160359
 Unit tests updated.
] 
[Added code coverage task to the Rakefile.
Mauricio Fernandez <mfp@acm.org>**20051001161603
 Requires rcov.
] 
[Avoid repeated loading of test/test_all.rb when running the tests.
Mauricio Fernandez <mfp@acm.org>**20051001163455] 
[PackageSpecification_1_0.declare_file_type: new file tagging metaprogramming.
Mauricio Fernandez <mfp@acm.org>**20051001174433
 Mild refactoring to allow for easier testing.
] 
[PackageSpecification_1_0#add_file: accept a callback.
Mauricio Fernandez <mfp@acm.org>**20051001175009
 The block will be passed the following parameters:
   |type, destination, options| 
 where type will be either :dir or :file.
] 
[Actions::FULL_ORDER: more robust.
Mauricio Fernandez <mfp@acm.org>**20051001230747] 
[Implemented Actions::FixShebang. Updated Actions::FULL_ORDER.
Mauricio Fernandez <mfp@acm.org>**20051001234147
 FixShebang actions aren't being added to the action list yet.
] 
[Synthesize FixShebang actions for files tagged as #bin().
Mauricio Fernandez <mfp@acm.org>**20051002000329
 FileSpecification_1_0#add_file: changed the arguments to the callback; they
 are now
  |kind, type, dest, options|
 where kind is :bin, :lib, etc., type is :dir or :file.
 Implemented Actions::FixShebang#eql? and related methods (#hash, #<=>).
] 
[Small fixes in semantics.txt.
Mauricio Fernandez <mfp@acm.org>**20051002110816] 
[Reindented the constants and singleton method definitions under Package.
Mauricio Fernandez <mfp@acm.org>**20051002111543
 The package namespace doesn't increase the indentation level; this patch
 makes indentation consistent.
] 
[Update TODO.
Mauricio Fernandez <mfp@acm.org>**20051002112719] 
[non-op changes to make vim happier.
Mauricio Fernandez <mfp@acm.org>**20051002144650] 
[Refactored PackageSpecification#translate and #add_file.
Mauricio Fernandez <mfp@acm.org>**20051003175805
 PackageSpecification#add_translation is used to accept things like
   translate(:ext, "*/" => "")
 which uses Dir[] to find all the matching directories.
 PackageSpecification#translate_dir should ease testing.
 
 Note that the semantics of translate(type, src => dest) must yet be specified
 fully. In particular, should we use
   translate(:bin, 'bin' => '')  
 (as implied by #aoki) or
   translate(:lib, '' => 'foo') 
 [instead of
   translate(:lib, 'lib' => 'foo')     ]
 
 Once we define that, we will require extensive unit testing.
] 
[Further work on PackageSpecification_1_0#translate and related methods.
Mauricio Fernandez <mfp@acm.org>**20051004102048
 PackageSpecification#add_translation: only verifies whether the source
 directory exists if given a glob (#is_glob?), which therefore has to be
 expanded based on what's actually on disk, using #expand_dir_glob.
 Added TRANSLATE_DEFAULT_OPTIONS, which holds the default options for
 translate:
   { :inherit => true }
 Updated unit tests and verified that semantics.txt is consistent with
   translate(:lib, "lib" => "")
 as used by #aoki. There was no inconsistency to begin with.
] 
[Bugfix in PackageSpecification_1_0#translate_dir: avoid "/x" expansions.
Mauricio Fernandez <mfp@acm.org>**20051004103925
   translate(:ext, "foo/a" => "")
 used to entail
   translate_dir(:ext, "foo/b/x") # => "/x"
 Updated unit tests.
] 
[Refactored tests in TestFileSpecificationDirTranslation.
Mauricio Fernandez <mfp@acm.org>**20051004110340] 
[PackageSpecification_1_0#aoki: added support for ext/, ignore boring files.
Mauricio Fernandez <mfp@acm.org>**20051004110951
 #aoki now uses #translate instead of changing @translate directly.
] 
[Fix unit_test declaration
Christian Neukirchen <chneukirchen@gmail.com>**20051013125221]