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_2xTHIS HASN'T BEEN NECESSARY IN RECENT RELEASES. 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 originmvn 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:prepareBUILD SUCCESSFUL messagegnupg (or variant) installed (see https://www.apache.org/dev/openpgp.html)mvn release:performapache.releases.https.mvn release:perform alleges SUCCESSApache 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.tikacd dist.dev.tikamkdir X.Y.Zrm -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.Zmv CHANGES.txt CHANGES-X.Y.Z.txtdist.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.Zsvn 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-rcNgit 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-rcNgit push --tagsgit push origin :refs/tags/X.Y.Z-rcNcollapse 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.aptsrc/site/apt/1.15/formats.apthttps://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-no-forkmkdir .../tika-site/publish/X.Y.Zmv target/reports/apidocs .../tika-site/publish/X.Y.Z/apicd tika-servermvn -Pserver install (in the tika-server module to build the miredot documentation)mkdir .../tika-site/src/site/resources/X.Y.Zrm -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.Zmvn site:run.mvn clean installsvn 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:cleangit push --delete origin X.Y.Z-rcN && git tag --delete X.Y.Z-rcNAfter 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