[Initial import of Package Christian Neukirchen **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 **20050927142717] [Add primitive running of unit tests Christian Neukirchen **20050927155254] [Small UI fix Christian Neukirchen **20050927155304] [Call tests in-process Christian Neukirchen **20050927161528] [Clean up self.config Christian Neukirchen **20050927162354] [Remove overly verbose debug info. Mauricio Fernandez **20050927182611] [Ignore 'boring' files. Mauricio Fernandez **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 **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 **20050928123817 Description of the FHS-compliants paths we should be installing to. ] [Allow individual and "batch" renames in the "file classification calls". Mauricio Fernandez **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 **20050928162412] [InstallFile#eql?: see if the classes match. Mauricio Fernandez **20050928165633] [PackageSpecification#add_file: fix translation for directories. Mauricio Fernandez **20050928165724] [PackageSpecification#add_file: fixed @translate. Mauricio Fernandez **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 **20050928173035] [Refactored the lib/bin/etc definition and fixed the semantics. Mauricio Fernandez **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 **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 **20050929154845] [Move constants from Package::PackageSpecification to Package. Mauricio Fernandez **20050928124931] [Bugfix: the regexps in IGNORE_FILES were broken. Mauricio Fernandez **20050928125021] [Make Mozillion a proper AUTHOR Christian Neukirchen **20050929155821] [Resolve merging mess Christian Neukirchen **20050929162754] [Resolved conflict created by the last pull from chris2' repos. Mauricio Fernandez **20050929161509] [Reapplied chris2' "Clean up self.config" patch. Mauricio Fernandez **20050929162741 It was reverted by accident while resolving. ] [Merge Christian Neukirchen **20050929163042] [Add and integrate Rakefile Christian Neukirchen **20050929172752] [Allow to override the IGNORE defaults for "boring" files. Mauricio Fernandez **20050929171041 Semantics: doc [stuff] # ignores files doc Dir["foo/**/*"] # ditto doc "bla.orig" # doesn't ignore ] [Add TODO Christian Neukirchen **20050929181723] [Added some LF chars at EOF. Mauricio Fernandez **20050929230343] [Updated the TODO. Mauricio Fernandez **20050929230940] [Added shebang correction to the TODO. Mauricio Fernandez **20051001102312] [Package.setup, PackageSpecification#initialize: honor config.save settings. Mauricio Fernandez **20051001102345] [Test the semantics of the file specification methods. Mauricio Fernandez **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 **20051001120142 Unit tests updated. ] [Package.setup and related: first baby steps towards versioning. Mauricio Fernandez **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 **20051001145019] [Minor refactoring of the unit tests. Mauricio Fernandez **20051001145242] [Put InstallFile and MkDir under the Actions namespace. Mauricio Fernandez **20051001154137] [Minor reformatting plus reindentation of the Actions namespace. Mauricio Fernandez **20051001154315] [InstallFile#<=>, MkDir#<=>: refactored. Mauricio Fernandez **20051001155522] [Actions::FULL_ORDER: fixed ordering of Actions classes. Mauricio Fernandez **20051001160359 Unit tests updated. ] [Added code coverage task to the Rakefile. Mauricio Fernandez **20051001161603 Requires rcov. ] [Avoid repeated loading of test/test_all.rb when running the tests. Mauricio Fernandez **20051001163455] [PackageSpecification_1_0.declare_file_type: new file tagging metaprogramming. Mauricio Fernandez **20051001174433 Mild refactoring to allow for easier testing. ] [PackageSpecification_1_0#add_file: accept a callback. Mauricio Fernandez **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 **20051001230747] [Implemented Actions::FixShebang. Updated Actions::FULL_ORDER. Mauricio Fernandez **20051001234147 FixShebang actions aren't being added to the action list yet. ] [Synthesize FixShebang actions for files tagged as #bin(). Mauricio Fernandez **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 **20051002110816] [Reindented the constants and singleton method definitions under Package. Mauricio Fernandez **20051002111543 The package namespace doesn't increase the indentation level; this patch makes indentation consistent. ] [Update TODO. Mauricio Fernandez **20051002112719] [non-op changes to make vim happier. Mauricio Fernandez **20051002144650] [Refactored PackageSpecification#translate and #add_file. Mauricio Fernandez **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 **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 **20051004103925 translate(:ext, "foo/a" => "") used to entail translate_dir(:ext, "foo/b/x") # => "/x" Updated unit tests. ] [Refactored tests in TestFileSpecificationDirTranslation. Mauricio Fernandez **20051004110340] [PackageSpecification_1_0#aoki: added support for ext/, ignore boring files. Mauricio Fernandez **20051004110951 #aoki now uses #translate instead of changing @translate directly. ] [Fix unit_test declaration Christian Neukirchen **20051013125221]