This is our internal documentation for how to make a new release. This is only relevant to release managers. Also see Roadmap.
./i18n_update.sh
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
icons.txt
:
diff -r languagetool-office-extension/src/main/resources/third-party-licenses languagetool-wikipedia/src/main/resources/third-party-licenses
diff -r languagetool-office-extension/src/main/resources/third-party-licenses languagetool-standalone/src/main/resources/third-party-licenses
wti pull
JLanguageTool.VERSION
in JLanguageTool.java
manifest.xml
description.xml
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
./build.sh languagetool-wikipedia package -DskipTests
languagetool-wikipedia/target
./build.sh languagetool-office-extension package -DskipTests
languagetool-office-extension/target
, rename the *.zip to *.oxt and install it in LibreOffice/OpenOffice, test with https://github.com/languagetool-org/languagetool/blob/master/languagetool-office-extension/src/test/resources/manual-testing.odt?raw=trueorg.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
)orglanguagetool-xyz
(usually at the bottom of the list)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-5.x.zip
also as LanguageTool-stable.zip
LanguageTool-5.x.oxt
also as LanguageTool-stable.oxt
CHANGES.md
README.md
git checkout vx.y-release
JLanguageTool.VERSION
in JLanguageTool.java
manifest.xml
description.xml
revision
in top-level pom.xmlmvn versions:set
(use ${revision}
when prompted for new version)git checkout master; git merge vX.Y-release
git pull
(not pull -r)git push
git checkout vX.Y
mvn javadoc:aggregate
, then upload target/site/apidocs/
to storagebox (see above) at old-lt-org/development/api
- note: this requires a local mvn install -DskipTests
git checkout master
languagetool.update.xml
(this is linked in resources/description.xml and allows updating LT from within the LO/OO extension manager) -
see personal Zim notes at “LanguageTooler -> Release” for how to access the file
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: