Space: Apache Connectors Framework
(https://cwiki.apache.org/confluence/display/CONNECTORS)
Page: Release Process
(https://cwiki.apache.org/confluence/display/CONNECTORS/Release+Process)
Added by Karl Wright:
---------------------------------------------------------------------
h1. The ManifoldCF Release Process
ManifoldCF is a little harder to release than most software projects because it
has a fair number of connectors which are conditionally compiled. Thus, you
cannot do a full release until the required dependencies are installed on your
release machine.
Releases heretofore have been done on Windows (both US locale and Japan
locale), and thus we feel that the release process is fairly robust for that
platform. Batch scripts have been created that ease the process mightily. On
Linux there has been no such development; if you like, you can be the first
release engineer who wants to port the scripts.
h2. Branches and tags
For any release, there should be a release branch. This branch should be
created by the appropriate "svn copy" command from trunk. For example:
{{svn copy https://svn.apache.org/repos/asf/manifoldcf/trunk
https://svn.apache.org/repos/asf/manifoldcf/branches/release-0.6-branch}}
A major release will have its own release branch labeled with the release
number (e.g. "release-0.6-branch"). A minor release will continue in the
appropriate major release branch, and have the required changes pulled up from
trunk one at a time. Thus 0.6.1 would be released from "release-0.6-branch"
also.
When the time comes to build a release candidate, the release engineer should
make an appropriately-labeled copy of the release branch in the "tags" area.
For instance:
{{svn copy
https://svn.apache.org/repos/asf/manifoldcf/branches/release-0.6-branch
https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6-RC0}}
When the release is finally completed, the appropriate tag is then renamed to
be the release name, e.g.:
{{svn move https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6-RC0
https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6}}
h2. Building ManifoldCF for release
NOTE: In order to proceed, you MUST have svn 1.7 or higher installed! The ant
build scripts require this in order to be able to apply patches on Windows
platforms. On Windows, you will also need GnuPG installed (from
[http://www.gnupg.org/download/]), and have your signing key created and
installed (read this: [http://www.apache.org/dev/release-signing]). Also needed
is the utility "pscp.exe".
The first step of the build process is to check out the release branch into a
work area. Technically it is more correct to check out the tag, but in
practice that's not necessary because only the release engineer should be
working on the release branch. All other development should be taking place in
trunk.
{{svn co https://svn.apache.org/repos/asf/manifoldcf/release-0.6-branch
myworkarea}}
Then, check out the Windows release scripts also:
{{svn co https://svn.apache.org/repos/asf/manifoldcf/release-scripts}}
The release scripts perform all the required fetching of dependencies
automatically, through ant. But they do not know how to deal with proxies, so
if you have a proxy you will need to figure out how to deal with that.
Next, you will need to create a place to put the release in your
people.apache.org public_html area. This directory should be named
"apache-manifoldcf-<release_name>". The release candidate will be copied there.
The next step is to fire off the release script itself. You will need to
supply your people.apache.org username also:
{{cd myworkarea}}
{{../release-scripts/release.bat 0.6 kwright}}
After being prompted a few times for your key file password, and for your
people.apache.org password, your release candidate should be created and copied
to an appropriate subdirectory in your user area on people.apache.org, e.g.
http://people.apache.org/~kwright/apache-manifoldcf-0.6.
Change your notification preferences:
https://cwiki.apache.org/confluence/users/viewnotifications.action