Releasing Apache Tika
- Prerequisites
- Pre-Release Checks
- Release Process
- Step 1: Clone the Repository
- Step 2: Update Documentation
- Step 3: JIRA Management
- Step 4: Verify License Headers
- Step 5: Commit Changes
- Step 6: Set Maven Memory
- Step 7: Prepare the Release
- Step 8: Perform the Release
- Step 9: Verify Staging Repository
- Step 10: Upload Distribution Artifacts
- Step 11: Call the Vote
- Step 12: Release the Artifacts
- Post-Release
This guide covers the process for releasing the main Apache Tika project.
Prerequisites
Before starting the release process, ensure you have:
-
Commit access to the Apache Tika repository
-
A valid GPG key published to a public keyserver
-
Maven credentials configured in
~/.m2/settings.xml -
Access to Apache’s Nexus repository manager
Pre-Release Checks
Before starting the release, run vulnerability and dependency audits:
# Identify vulnerable dependencies
mvn ossindex:audit -Dossindex.fail=true
# Check for outdated plugins
mvn versions:display-plugin-updates
# Check for outdated dependencies
mvn versions:display-dependency-updates
# Run full regression tests
mvn -Prelease-profile clean verify
Release Process
Step 1: Clone the Repository
Clone the repository if you haven’t already:
git clone https://github.com/apache/tika.git
cd tika
Step 2: Update Documentation
Update CHANGES.txt with the release date:
Release X.Y.Z - MM/dd/yyyy
Add any changelog entries as needed.
Step 3: JIRA Management
-
Create versions X.Y.Z, X.(Y+1), and X.(Y+2) in JIRA if they don’t exist
-
Reassign any unresolved X.Y.Z issues to X.(Y+1) via bulk change
Step 4: Verify License Headers
Run the Apache RAT plugin to verify all files have proper license headers:
mvn apache-rat:check
Step 5: Commit Changes
Commit the CHANGES.txt updates:
git add CHANGES.txt
git commit -m "Prepare for X.Y.Z release"
git push
Step 7: Prepare the Release
Execute the Maven release prepare goal:
mvn release:prepare
This will prompt you to confirm:
-
The release version (X.Y.Z)
-
The SCM tag name
-
The next development version
Step 8: Perform the Release
Execute the Maven release perform goal:
mvn release:perform
Ensure you have valid Maven credentials in ~/.m2/settings.xml:
<servers>
<server>
<id>apache.releases.https</id>
<username>your-apache-id</username>
<password>your-password</password>
</server>
</servers>
Step 9: Verify Staging Repository
-
Access Apache’s Nexus at https://repository.apache.org
-
Log in with your Apache credentials
-
Navigate to "Staging Repositories"
-
Find the org.apache.tika staging repository
-
Verify it contains all expected artifacts
-
Click "Close" with an appropriate message
Step 10: Upload Distribution Artifacts
Upload artifacts to dist.apache.org:
svn co https://dist.apache.org/repos/dist/dev/tika tika-dist-dev
cd tika-dist-dev
Upload the following files with their signatures (.asc) and checksums (.sha512):
-
tika-X.Y.Z-src.zip -
tika-app-X.Y.Z.jar -
tika-server-standard-X.Y.Z.jar
Also:
-
Rename
CHANGES.txttoCHANGES-X.Y.Z.txt -
Ensure the
KEYSfile contains all contributor signatures
Step 11: Call the Vote
Send a vote request to the dev@tika.apache.org mailing list:
Subject: [VOTE] Release Apache Tika X.Y.Z
Hi all,
I have created a candidate build for Apache Tika X.Y.Z.
The release candidate artifacts can be found at:
https://dist.apache.org/repos/dist/dev/tika/
The staging repository is:
https://repository.apache.org/content/repositories/orgapachetika-XXXX
The Git tag is:
https://github.com/apache/tika/tree/X.Y.Z
Please vote:
[ ] +1 Release this package
[ ] +0 No opinion
[ ] -1 Do not release (please provide reason)
This vote will remain open for at least 72 hours.
Step 12: Release the Artifacts
Upon successful vote (at least 3 +1 votes from PMC members):
-
Release the Nexus staging repository (click "Release" button)
-
Move artifacts from dev to release distribution:
svn mv https://dist.apache.org/repos/dist/dev/tika/X.Y.Z \
https://dist.apache.org/repos/dist/release/tika/X.Y.Z \
-m "Release Apache Tika X.Y.Z"
Post-Release
Update Unreleased Modules
Update any modules that weren’t part of the release to the next SNAPSHOT version.
Update Website
Refresh the website documentation to reflect the new release:
-
Update download links
-
Update version numbers in documentation
-
Add release notes
Send Announcements
Send release announcements to:
Subject: [ANNOUNCE] Apache Tika X.Y.Z Released
The Apache Tika team is pleased to announce the release of Apache Tika X.Y.Z.
Apache Tika is a toolkit for detecting and extracting metadata and text
from various types of files.
This release includes:
[List major changes/features]
For a complete list of changes, see:
https://tika.apache.org/X.Y.Z/changes.html
Download:
https://tika.apache.org/download.html
Thanks to everyone who contributed to this release!
The Apache Tika Team
Register the Release
Register the release at https://reporter.apache.org