|
moddevaid - script to interface to the Module::DevAid module |
moddevaid - script to interface to the Module::DevAid module
This describes version 0.2201 of moddevaid.
moddevaid [--changes_file filename ] [ --commit_todo ] [ --dist_name string ] [ --gen_readme | --nogen_readme ] [ --gen_todo | --nogen_todo ] { --modules filename } [ --pod_file filename ] [ --readme_file filename ] { --scripts filename } [ --todo_file filename ] [ --version_file filename ] [ --old_version_file filename ] command
where command is one of
DUMP | CHANGES | LIST | README | TODO | VERSION | RELEASE
Script to aid with development, by helping (and testing) auto-building of certain files, and with the steps needed in building and committing a release.
At this point this only uses the darcs revision system.
Takes a project description, either through the command line options, or via a project config file. (see CONFIG FILE for more information).
If gen_readme is true, the README file will be generated from select sections of the --pod_file file. The important ones are NAME, DESCRIPTION, INSTALLATION, REQUIRES and AUTHOR.
The commands are:
When making a release do the following:
1. Check for unrecorded changes: ``darcs whatsnew -s'' and/or ``darcs whatsnew -ls'' and commit them.
2. If darcs test isn't set, check that the tests pass: ``Build test''. (If darcs test is set, the tests will have been run on commits)
3. Update version.txt (can't automate this since it requires a human decision as to what the next version number is).
4. ``moddevaid RELEASE''
The information about a project can be given in a config file, which defaults to 'mod_devaid.conf' in the current directory. If you want to use a different file, set the MOD_DEVAID_CONF environment variable, and the script will use that.
The options which can be set in the config file are exactly the same as those which can be set on the command line, with two additions: the version_bump_code manpage and the version_bump_files manpage.
The options are set with a 'option = value' setup. Blank lines are ignored.
For example:
dist_name = My::Module
modules = lib/My/Module.pm lib/My/Module/Other.pm
gen_readme = 1
Use with CAUTION.
This defines additional code which can be used for the automatic update of version numbers in files. It has to be defined all on one line, and basically be a subroutine definition, like so:
version_bump_code = sub { my $version = shift; # code to update files ... };
Reference to a function which will perform custom actions to automatically change the version-id. The default actions go through the modules and scripts and update anything matching a standard VERSION-setting string, and which matches a 'This describes version' string. This subroutine is for doing anything additional or different.
This is given one arguments, the version string.
The list of files altered by the version_bump_code, so that all the version changes can be committed at the same time. This is needed because some tests require the test files to have the version-id in them, and therefore all version commits should be done at the same time, otherwise the tests will fail, and the commits won't work.
Getopt::Long Pod::Usage Module::DevAid Data::Dumper
perl(1). Module::DevAid
Kathryn Andersen (RUBYKAT)
perlkat AT katspace dot com
http://www.katspace.com
Copyright (c) 2004-2007 by Kathryn Andersen
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
|
moddevaid - script to interface to the Module::DevAid module |