Releasing Apache Tika

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

  1. Create versions X.Y.Z, X.(Y+1), and X.(Y+2) in JIRA if they don’t exist

  2. 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 6: Set Maven Memory

Configure Maven memory settings:

export MAVEN_OPTS="-Xms128m -Xmx256m"

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

  1. Access Apache’s Nexus at https://repository.apache.org

  2. Log in with your Apache credentials

  3. Navigate to "Staging Repositories"

  4. Find the org.apache.tika staging repository

  5. Verify it contains all expected artifacts

  6. 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.txt to CHANGES-X.Y.Z.txt

  • Ensure the KEYS file 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):

  1. Release the Nexus staging repository (click "Release" button)

  2. 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

Release Docker and Helm Images

Follow the separate guides for releasing:

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