This page is prepared and maintained for/by Nutch committers. You need committer rights to create a new Nutch release.
It has become tradition for the Release Manager (RM) to take due care to ensure that this release management HOW TO us kept accurate. If you fulfill the role of Release Manager, please take the time to carefully review, update, remove, or edit this documentation such that it remains a canonical, reproducible resource for the Nutch community. Thank you |
<?xml version="1.0" encoding="UTF-8" ?> <settings xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd' xmlns='http://maven.apache.org/SETTINGS/1.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> <servers> <server> <id>apache.snapshots.https</id> <username>${username}</username> <password>${password}</password> </server> <server> <id>apache.staging.https</id> <username>${username}</username> <password>${password}</password> </server> <server> <id>apache.releases.https</id> <username>${username}</username> <password>${password}</password> </server> <server> <id>gpg.passphrase</id> <passphrase>${password}</passphrase> </server> <server> <username>${username}</username> <password>${password}</password> <id>central</id> </server> <server> <username>${username}</username> <password>${password}</password> <id>snapshots</id> </server> </servers> <mirrors> <mirror> <id>central.mirror</id> <url>https://repo1.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>apache-release</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <mavenExecutorId>forked-path</mavenExecutorId> <gpg.executable>gpg</gpg.executable> <gpg.keyname>${keyname}</gpg.keyname> <!--gpg.passphrase>${password}</gpg.passphrase--> </properties> </profile> </profiles> <activeProfiles> <activeProfile>apache-release</activeProfile> </activeProfiles> </settings> |
src/bin/nutch - version number in echo "nutch X.Y"
To avoid that "forgotten" files in your development environment are packaged, make a clean checkout for the release branch or tag:
cd ... git clone --branch branch-x.x https://github.com/apache/nutch.git branch-x.x cd branch-x.x
ant test
Run the docker container
Get hold of the most recent version of maven-ant-tasks-2.X.X.jar and put it in the $NUTCH_HOME/ivy directory
Execute ant -lib ivy deploy from $NUTCH_HOME, this will sign the Maven artifacts (sources, javadoc, .jar) and send them to a Apache Nexus staging repository. Details of how to set this up can be found here. N.B. Ensure that you have an apache-release profile contained within ~/.m2/settings.xml
Once you've read, and are happy with the staging repository, close it.
git tag -a release-X -m "Apache Nutch X RC#X Tag"
git push origin release-X
Run the packaging tasks. The generated artifacts can be found in $NUTCH_HOME/dist. If you experience issues during this stage you may need to prune/delete ~/.ivy2/cache/*
ant zip-bin && ant tar-bin && ant zip-src && ant tar-src
Check out the release management area, create a new directory for the release and copy CHANGES.md there
Make sure your pgp key is listed in the Nutch KEYS file located at http://www.apache.org/dist/nutch/KEYS or better yet, use https://id.apache.org/ and add your PGP there, and it will then appear in Apache Nutch's Automatically Generated Keys
Create and open a VOTE thread on user@ and dev@nutch.apache.org. The VOTE must pass with 3 +1 binding VOTE's before any release can take place. A VOTE thread usually takes the form
title = [VOTE] Apache Nutch X.XX Release
Hi user@, dev@nutch,
A first candidate for the Nutch X.XX release is available at [0] where accompanying SHA512 and ASC signatures can also be found.
Information on verifying releases can be found at [1].
The release candidate comprises a .zip and tar.gz archive of the sources in [2] and complementary binary distributions. In addition, a staged maven repository is available at [3].
The X.XX release report is available at ${Jira release report URL included in CHANGES.md} [4]
Please vote on releasing this package as Apache Nutch X.XX. The vote is open for at least the next 72 hours and passes if a majority of at least three +1 Nutch PMC votes are cast.
[ ] +1 Release this package as Apache Nutch X.XX.
[ ] -1 Do not release this package because… Cheers, ${yourname} P.S. Here is my +1.
[0] https://dist.apache.org/repos/dist/dev/nutch/X.XX/
[1] https://nutch.apache.org/download/#verify-releases
[2] https://git-wip-us.apache.org/repos/asf?p=nutch.git;a=tag;h=a8ef2997d14eb7af95dcafee379d54b31f89dd1a
[3] https://repository.apache.org/content/repositories/orgapachenutch-XXXX
[4] ...
Once the 72 hour period expires it is time to close the VOTE thread on user@ and dev@ with a RESULT thread. This should simply state the outcome of VOTE'ing (including how many binding VOTE's were received. Finally it should included whether the VOTE passed and if the released can be made.
In the instance where the VOTE does not pass, the release manager should roll back all of the work above as well as DROP the staging artifacts.
Return to the NEXUS staging repository. Login, and RELEASE the Nutch repository.
Move the artifacts from the release management area to the release area as follows:
svn mv https://dist.apache.org/repos/dist/dev/nutch/$release.version https://dist.apache.org/repos/dist/release/nutch/$release.version --message "Release Apache Nutch $release.version"
update the version numbers on the javadoc page (content/documentation/javadoc/index.md) and the wiki FrontPage
write a short announcement about the new release in the news section (content/news/)
Send announcements to the user and developer lists as well as announce@apache.org
Finally, don't forget to remove the previous release from dist.apache.org to reduce the load on ASF mirrors, see when-to-archive and NUTCH-1742.
src/bin/nutch - version number in echo "nutch X.Y"