Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add notes about repeatable builds

...

  • Perform an git clone and switch to the correct branch
  • (Hint: using ant pre-release  may save you the following three stepsstep, plus steps 2-3 in the Maven release process.)
  • Edit "build.properties.default" and change the lines after "# ----- Reproducible builds -----" to a new value.

    • Note that the value of ant.tstamp.now property is in seconds (unlike the value returned by System.currentTimeMillis() method which is milliseconds, see bug 65527 for how this happened for Tomcat 8.5.70).
      The value can be printed in a Bash shell with the following command:
      date +%s
      To print seconds since epoch, and date and time in human-readable format in UTC time zone:
      date -u '+%s %Y-%m-%d %H:%M:%S %Z'
  • Edit "build.properties.default" and change the line version.suffix=-dev to version.suffix=

    • This can be done with sed -i.bak "s/^version.suffix=.*/version.suffix=/" build.properties.default
  • Edit "webapps/docs/changelog.xml" and remove rtext="in development" from the latest version
    • Remember that notepad.exe will remove UTF-8 Byte-Order Marks (BOMs). Use write.exe or Notepad++ instead.
  • (??) For repeatable releases: ant installer ; then copy the signature files Uninstall.exe.sig and tomcat-installer.exe.sign into res/install-win; Any reason not to just perform the release directly from here, instead of resetting the directory, going the 'git archive', etc.? It's probably cleaner to work from the tag...)
  • Commit these changes
    • git add res/install-win/*.sig
    • git add build.properties.release (if you used 'ant pre-release')
    • git add res/maven/mvn.properties.release (if you used 'and pre-release')
    • git commit -a -m "Tag 9.0.94"
    • git tag 9.0.94
    • git push origin 9.0.94
  • Check the diff mailed to the dev list
  • Reset to the 9.0.x branch (git reset HEAD~ && git checkout build.properties.default && git checkout webapps/docs/changelog.xml && rm -f build.properties.release res/maven/mvn.properties.release)

...