THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
git clone https://github.com/apache/tika.git release OR git clone https://github.com/apache/tika.git -b branch_1x
Add to the <scm> section in tika-parent's pom
No Format <connection>scm:git:https://github.com/apache/</connection> <developerConnection>scm:git:https://github.com/apache/</developerConnection> <url>https://github.com/apache/tika</url>
Background: for some reason in the 2.x branch these lines are deleted during each release process. They are not deleted in the 1.x branch.
- Update CHANGES.txt with release date (Release X.Y.Z - MM/dd/yyyy (date format matters!) and (if needed) add additional changelog entries.
- On the Tika JIRA, create versions X.Y.Z, X.(Y+1), and X.(Y+2), if not already done.
- Move any lingering unresolved issues from X.Y.Z to X.(Y+1).
- Query open issues: e.g. "project = Tika AND resolution = unresolved AND fixVersion = 1.16"
- Upper right, select bulk change
- Select all, modify to fixVersion = X.(Y+1)
- At the bottom of the screen, unselect the email updates
- Move any lingering unresolved issues from X.Y.Z to X.(Y+1).
git add CHANGES.txt && git commit -m "Update CHANGES.txt for X.Y.Z release." && git push origin
- Run
mvn apache-rat:check
and fix any missing license headers / add excluded for properly non-licensed fails setenv MAVEN_OPTS "-Xms128m -Xmx256m"
(or export MAVEN_OPTS="-Xms128m -Xmx256m" if you are using bash)mvn release:prepare
- Make sure all the release numbers are set to X.Y.Z (from X.Y.Z-SNAPSHOT)
- When prompted, the scm tag name should be X.Y.Z (version number). If this is a release candidate, the tag should be X.Y.Z-rcN.
- Watch for a
BUILD SUCCESSFUL
message - Make sure you have
gnupg
(or variant) installed (see https://www.apache.org/dev/openpgp.html)
mvn release:perform
- Make sure you can log on to https://repository.apache.org/
- Make sure you have the following entry in your ~/.m2/settings.xml file: https://maven.apache.org/settings.html#Servers. The server ID should be
apache.releases.https
.
- Head over to https://repository.apache.org/ (Apache's Nexus Server)
- Login with your ASF username and password
- Make sure there is only one repo from your build and that it contains everything. A transmission failure can lead to multiple repositories, none of which are valid... even when
mvn release:perform
allegesSUCCESS
- "Close" the staging repository with message
Apache Tika X.Y.Z release candidate #N
. - Copy the URL from the closed staged repository for Tika (you'll need this later)
- Update CHANGES.txt with a "Release X.Y.Z + 1 - Current Development" section.
- Check the contents of
target/checkout/target/X.Y.Z/*
into https://dist.apache.org/repos/dist/dev/tika/ (tika-X.Y.Z-src.zip{.asc|.sha512}
,tika-app-X.Y.Z.jar{.asc|.sha512}
andtika-server-X.Y.Z.jar{.asc|.sha512}
, andCHANGES.txt
.svn co https://dist.apache.org/repos/dist/dev/tika/ dist.dev.tika
cd dist.dev.tika
mkdir X.Y.Z
rm -r X.Y.Z-1
(remove the former dist dev version folder)cp ../release/target/checkout/target/X.Y.Z/* X.Y.Z
(copy the artifacts into the new dist.dev.tika/X.Y.Z directory)cd X.Y.Z
mv CHANGES.txt CHANGES-X.Y.Z.txt
- make sure the KEYS files is at
dist.dev.tika/KEYS
-- if it isn't there already copy theKEYS
file to go along with the jars and other release artifacts; add your key toKEYS
if you haven't already svn add X.Y.Z
svn commit -m "Add Tika X.Y.Z RC#N artifacts."
- See the file in
target/checkout/target/vote.txt
- it contains the contents of the release email you should send (with subject[VOTE] Apache Tika X.Y.Z Release Candidate N
to dev@tika.apache.org and to user@tika.apache.org). Ensure all URLs are correct and update the email to include links to the artifacts from #8 (including .sha512, .asc and CHANGES.txt) - If the VOTE passes:
Send
[RESULT] [VOTE]
tallying the VOTE to dev@tika.apache.org and user@tika.apache.org- Head over to Nexus from #6 and "Release" the repository with message Apache Tika X.Y.Z release (and make sure the box is checked to auto drop).
svn rm https://dist.apache.org/repos/dist/release/tika/X.Y.Z-1*
(delete the previous release)svn mv https://dist.apache.org/repos/dist/dev/tika/X.Y.Z/* https://dist.apache.org/repos/dist/release/tika/X.Y.Z/*
git clone https://github.com/apache/tika.git X.Y.Z-rcN
- Add final tag for the release and delete the X.Y.Z-rcN tag:
- Look up commit for X.Y.Z-rcN commit:
git rev-list \-n 1 1.25-rc2
; let's say '0090ebac8e4ff4083a9c0c5d3dc55f545ad6f951' git tag -a X.Y.Z 0090eba -m "Tagging X.Y.Z release"
git tag -d X.Y.Z-rcN
git push --tags
git push origin :refs/tags/X.Y.Z-rcN
- Look up commit for X.Y.Z-rcN commit:
- If VOTE fails:
- Drop the new Tika staging repository on https://repository.apache.org
- Make an entry in CHANGES.txt which documents the subsequent changes between release candidates. This is extremely useful if the candidates are cut from master and master has moved on since the release candidate was originally cut.
- Go back to #1.
- Update the version of any unreleased modules (like tika-dotnet).
- Update Tika site.
- Update parent version number in the site pom.xml file.
- Update the Documentation section of src/site/site.xml. Make sure to add the
collapse
tag for the now old version. - Update the "Full List of Supported Formats" section of the formats page of version X.Y.Z using TIKA-411; e.g.
java -jar release-X.Y.Z/tika-app/target/tika-app-1.15.jar --list-parser-details-apt >> src/site/apt/1.15/formats.apt
- Update the version towards the top of X.Y.Z/formats.apt:
src/site/apt/1.15/formats.apt
- Update the version number in the dependency examples and the commandline options in the new X.Y.Z src/site/apt/X.Y.Z/gettingstarted.apt page.
- Update src/site/resources/doap.rdf with the new release.
- Create a new example and formats page (truncated to where step 15.3 should go next time) for the next version (but don't list it in the sidebar).
- Update src/site/apt/index.apt.vm to include the announcement and change link to previous release CHANGES.txt file (from
https://dist.apache.org/repos/dist/release/tika/X.Y.Z/CHANGES-X.(Y-1).txt
tohttps://archive.apache.org/dist/tika/X.(Y-1)/CHANGES-X.(Y-1).txt
). - Update src/site/apt/X.Y.Z/index.apt.
- Generate the contributor list with https://github.com/chrismattmann/apachestuff/blob/master/extract-tika-contribs
- Update the link to the JIRA query (e.g. https://s.apache.org/XowY) via Apache's shortening service https://s.apache.org
- Generate the issues list by running https://github.com/chrismattmann/apachestuff/blob/master/extract-tika-issues.py CHANGES-X.Y.Z.txt output.txt X.Y.Z
- Generate the Javadoc.
unzip tika-X.Y.Z-src.zip
mvn javadoc:aggregate
mkdir .../tika-site/publish/X.Y.Z
mv target/site/apidocs .../tika-site/publish/X.Y.Z/api
- Update tika-server documentation:
- In the unzipped src release,
cd tika-server
mvn -Pserver install
(in the tika-server module to build the miredot documentation)mkdir .../tika-site/src/site/resources/X.Y.Z
rm -r tika-site/src/site/resources/X.Y.Z/miredot
(if it exists?!)cp -r tika-server/target/miredot .../tika/site/src/site/resources/X.Y.Z
- In the unzipped src release,
- Update the downloads section.
- Check everything looks good with
mvn site:run
. mvn clean install
svn add <any files changed for site>
(probably:src/site/apt/X.Y.Z
andsrc/site/resources/X.Y.Z/miredot
) &&svn commit -m "Update website for X.Y.Z release."
On the Tika JIRA, "release" version X.Y.Z and update any (new) straggler X.Y.Z issues to X.(Y+1).
- Send announcements to user@tika.apache.org, dev@tika.apache.org, and announce@apache.org lists (from your Apache email) - see https://s.apache.org/ytaod for a sample. If editing and resending an earlier email, make sure that you use text format and/or make sure that editing the links updates the underlying links and not just the anchor text.
- Log on to https://reporter.apache.org/addrelease.html?tika and add the release data (version and date) to the database
...