Developing/Maintaining of the Workflow distribution 
------------------------------------------------------
$Id: developing.txt 322 2007-07-06 14:41:41Z jonasbn $

This is intended as a developer handbook for developers and maintainers of the
Workflow distribution.

This document is a collection of notes and are currently far from complete.
Feedback additions, corrections and suggestions are more than welcome.


VERSION NUMBERS

The main version number for Workflow is isolated in the file VERSION in the root
of the distribution directory, this file is increased accodingly when a new
release is prepared. See RELEASING below.

All modules and scripts carry a version number, that is maintained manually. We
update this when functionality changes. Whitespace changes, POD additions does
not necessarily require an version update, but this is left to the developers
descretion, but please update the version of bugs are fixed, functionality is
changed or added since the version can be used to identify differing behaviour
at load time.

SCM

	HTTP: http://perl-workflow.svn.sourceforge.net/viewvc/perl-workflow/

	Checking out:
	
	% svn co https://perl-workflow.svn.sourceforge.net/svnroot/perl-workflow perl-workflow

TAGGING

	Example:
	
	%  svn cp https://perl-workflow.svn.sourceforge.net/svnroot/perl-workflow/trunk/workflow \
	https://perl-workflow.svn.sourceforge.net/svnroot/perl-workflow/tags/Release_0_28

	see also VERSION NUMBERS

PATCHES

Patches are more than welcome, patches should adhere to the strategy described
in VERSION NUMBERS.

Patches are preferred accompanied by documentation and tests. If this is not the
case, please make an appropriate entry in the Changes file, which in-depth
describes the purpose/motivation of the patch and what it influences.

To create a patch using the diff command, use the following format:

    % diff -u file.new file.org > file.patch
    
    Using subversion to generate a patch
    
    % svn diff -u file.new > file.patch
    

RELEASES

We aim for release early release often. We do currently not run with a beta
release schema.


RELEASING

In order to make a release the following steps should be taken. This process
will hopefully be automated at some point, perhaps using release from CPAN,
which supports both CPAN and SourceForge.

1. Close the changes file

    Insert proper version number in Changes file
    
    Insert date in Changes file
    
    Update VERSION file

2. Clean the directory and prepare the for the build

    % ./Build realclean
    
    % perl Build.PL

3. Make sure all tests pass

    % export TEST_POD=1

    % ./Build test

4. Update MANIFEST file

    % ./Build manifest
    
5. Make dist

    % ./Build dist

6. Make distcheck

    % ./Build distcheck

7. Upload to appropriate distribution channels like PAUSE/CPAN and Sourceforge

8. Make a tag in the SCM, see TAGGING above

TESTS

todo...

BUGS

todo...

RESOURCES

Subversion

Developer mailing list

	perl-workflow-devel@lists.sourceforge.net

Commit mailing list and RSS feed

	perl-workflow-svn@lists.sourceforge.net

RSS: http://rss.gmane.org/messages/excerpts/gmane.comp.lang.perl.modules.workflow.scm 
HTTP: http://dir.gmane.org/gmane.comp.lang.perl.modules.workflow.scm
NNTP: nntp://news.gmane.org/gmane.comp.lang.perl.modules.workflow.scm

Jonas B. Nielsen (jonasbn) <jonasbn@cpan.org>, current maintainer.
