Run mvn ossindex:audit -Dossindex.fail=true
to see if there are any vulnerable dependencies.
Run mvn versions:display-plugin-updates
and mvn versions:display-dependency-updates to identify any updates that need to be made.
Make sure to run full regression tests after making updates with mvn -Prelease-profile clean verify
.
If you've done this before, have all programs installed, all necessary karma granted, and everything configured, steps 1 though 9 will take around an hour (tests take a while to run). If you've never done this before, you will probably run into an issue not covered in this set of instructions. So, it will take longer (maybe a couple hours, maybe a couple days).
Either way, please update these instructions with any clarifications you think might help the next release manager.
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
<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.
git add CHANGES.txt && git commit -m "Update CHANGES.txt for X.Y.Z release." && git push origin
mvn apache-rat:check
and fix any missing license headers / add excluded for properly non-licensed failssetenv MAVEN_OPTS "-Xms128m -Xmx256m"
(or export MAVEN_OPTS="-Xms128m -Xmx256m" if you are using bash)mvn release:prepare
BUILD SUCCESSFUL
messagegnupg
(or variant) installed (see https://www.apache.org/dev/openpgp.html)mvn release:perform
apache.releases.https
.mvn release:perform
alleges SUCCESS
Apache Tika X.Y.Z release candidate #N
.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}
and tika-server-X.Y.Z.jar{.asc|.sha512}
, and CHANGES.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
dist.dev.tika/KEYS
-- if it isn't there already copy the KEYS
file to go along with the jars and other release artifacts; add your key to KEYS
if you haven't alreadysvn add X.Y.Z
svn commit -m "Add Tika X.Y.Z RC#N artifacts."
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)Send [RESULT] [VOTE]
tallying the VOTE to dev@tika.apache.org and user@tika.apache.org
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
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
collapse
tag for the now old version.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
src/site/apt/1.15/formats.apt
https://dist.apache.org/repos/dist/release/tika/X.Y.Z/CHANGES-X.(Y-1).txt
to https://archive.apache.org/dist/tika/X.(Y-1)/CHANGES-X.(Y-1).txt
).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
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
mvn site:run
.mvn clean install
svn add <any files changed for site>
(probably: src/site/apt/X.Y.Z
and src/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).
NOTE: if anything goes wrong during mvn:release-prepare
or mvn release:perform
:
mvn release:clean
gi
t
push --delete origin X.Y.Z-rcN && git tag --delete X.Y.Z-rcN
After the release, consider making a PR to make the upgrade in Apache Solr. See UpgradingTikaInSolr.
After the release, announce any CVEs that were fixed and update security.apt
and republish the site.
Release Process for tika-docker