This is our internal documentation for how to make a new release. This is only relevant to release managers. Also see Roadmap.
languagetool
: wti push
and wti pull
CHANGES.md
/media/Data/languagetool/regression-test/*.sh
)checkurl.bash
to fix old URLsWe build artifacts with Maven and upload them to oss.sonatype.org with
a script, where they can then be released on Maven Central. Note that
this is independent of the *.zip and *.oxt files we release. If there’s
a problem with the Sonatype-release for Maven Central (which is only
relevant for Java developers), we can always make the release of the
user artifacts (*.zip
and *.oxt
) and care about the other problems
later.
java -version
git pull -r
git checkout -b vX.Y-release
wti pull
revision
mvn 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 test
./build.sh languagetool-standalone package -DskipTests
languagetool-standalone/target/
testrules.sh
and testrules.bat
org.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.html
README.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 install
mvn javadoc:jar
mvn source:jar
cd languagetool-standalone/scripts
stage-artifacts.sh
script
./stage-artifacts.sh
(this will sign and upload the artifacts to the staging area, it will take > 30 minutes. NOTE: this requires a proper set-up of ~/.m2/settings.xml
)~/.m2/settings.xml
and using sonatype-nexus-staging
as the <id>
orglanguagetool-xyz
(usually at the bottom of the list)languagetool-client-example
:
rm -r ~/.m2/repository/org/languagetool/
pom.xml
and build-opensource.sh
and run it (unzips the uberjar and replaces META-INF/org/langetool/language-module.properties
with the language-module.properties
from languagetool-standalone - this is needed because with the original
file, all languages except one get lost)git tag -a vX.Y -m 'version X.Y'
git push origin vX.Y
mvn clean package
LanguageTool-6.x.zip
also as LanguageTool-stable.zip
CHANGES.md
README.md
git 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-release
git pull
(not pull -r)git push
sha256sum <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: