This is our internal documentation for how to make a new release. This is only relevant to release managers.
NOTE: As of March 2025, LanguageTool has switched to a snapshot-based release model. Get the latest snapshot from https://languagetool.org/download/snapshots/.
java -versiongit pull -rgit checkout -b vX.Y-releasewti pull
revisionmvn versions:set (set the version number of today’s release when prompted)<version>${revision}</version> to the new version number in all pom.xml files (using ${revision}
as a variable would cause issues when publishing the artifact via Sonatype)mvn clean testorg.languagetool.dev.RuleOverview and paste the result to languages.html (when running from IntelliJ IDEA, set “Working directory” to $MODULE_WORKING_DIR$)CHANGES.md file
languages.htmlREADME.md filegit status and check the output under “untracked files”*.bak files in resourcesNow we’re ready to create and upload the Maven artifacts. Details are at http://central.sonatype.org/pages/ossrh-guide.html:
mvn clean javadoc:jar source:jar install -DskipTestsmvn -P sign-and-release deploy -DskipTests
~/.m2/settings.xml and using central as the <id>git tag -a vX.Y -m 'version X.Y'git push origin vX.Ygit checkout vx.y-release<version>x.y</version> to <version>${revision}</version> in all pom.xml filesproperties -> revision to the new x.y-SNAPSHOT versionmvn versions:set (use ${revision} when prompted for new version)git checkout master; git merge vX.Y-releasegit pull (not pull -r)git pushsha256sum <file>).Just update the LT dependencies in BuildConfig.groovy. Deployment happens automatically.
Not really related to a release, but should be done once in a while, and the release is a good opportunity: