- Make sure autogenerated code is clean
  git clean -df main/src;./gradlew autogenerate
- Make sure all unit tests pass
  ./gradlew test
- Update change.txt
- Update README.md
- Update build.gradle
- Examples might need to be updated too
  * git diff --name-status TAG_NAME examples
- Update project website
  cd docs/website
  conf.py <--- text substitution is now used to spread the version name
  index.rst <-- just the date
  rm -rf _build;make html;cd _build;rm html.zip;zip -r html.zip html/
- Commit and tag release
- Create zip and jar files
  VERSION=v0.22;PRJNAME=georegression-$VERSION
  git clone -b SNAPSHOT git@github.com:lessthanoptimal/GeoRegression.git $PRJNAME
  cd $PRJNAME;./gradlew autogenerate;./gradlew createVersionFile;rm -rf .git;cd ..;zip -r $PRJNAME-src.zip $PRJNAME
  cd $PRJNAME;./gradlew createLibraryDirectory;mv libraries ../$PRJNAME-libs;cd ..;zip -r $PRJNAME-libs.zip $PRJNAME-libs
- Update JavaDoc
  rm -rf build/doc/javadoc;./gradlew javadocWeb;zip -r api.zip build/docs/api-web

-----
Uploading Releases to Maven Central

To post a SNAPSHOT:
./gradlew publish

To post a full release:
git clean -fd main/;./gradlew autogenerate;./gradlew assemble;./gradlew publish -Dorg.gradle.parallel=false

A SNAPSHOT is created if SNAPSHOT is in its name.

- Then go to the website  https://oss.sonatype.org/
  * click close button
  * double check the files
  * click release button
