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 clean test
./build.sh languagetool-standalone package -DskipTests
languagetool-standalone/target/
testrules.sh
and testrules.bat
./build.sh languagetool-wikipedia package -DskipTests
./build.sh languagetool-office-extension package -DskipTests
org.languagetool.dev.RuleOverview
and paste the result to languages.html
(when running from IntelliJ IDEA, set “Working directory” to $MODULE_WORKING_DIR$
)languages.html
git 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
scp LanguageTool-5.x.zip LanguageTool-5.x.oxt CHANGES.md README.md user@storagebox:old-lt-org/download/
scp LanguageTool-5.x.oxt user@storagebox:old-lt-org/download/LanguageTool-stable.oxt
scp LanguageTool-5.x.zip user@storagebox:old-lt-org/download/LanguageTool-stable.zip
git checkout vx.y-release
JLanguageTool.VERSION
in JLanguageTool.java
manifest.xml
description.xml
revision
in top-level pom.xmlgit 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)
sha256sum <file>
).Just update the LT dependencies in BuildConfig.groovy
. Deployment
happens automatically, the
create-snapshot.sh
script does this automatically every day.
Not really related to a release, but should be done once in a while and the release is a good opportunity: