Skip to content

ReleaseDocumentation

Charles Oliver Nutter edited this page Sep 1, 2026 · 89 revisions

JRuby release preparation

  • AA. Software setup

    • Install maven
    • Install Java
    • Install install4j9
      Notes
      • Retrieve from https://www.ej-technologies.com/install4j/download9
      • Install it
      • I believe there is license key prompt
      • Resulting config is in (~/.config/install4j/v9/config.xml).
  • A. Pre-prep

    • Make sure a release has no blockers (tests in later steps are good at shagging issues out)
    • Make sure there are no untargetted closed issues or PRs
    • Move remaining open issues for the current issues to future release milestones
  • B. Set up environment

    • switch to JDK 21 for JRuby 10.x, JDK 8 for JRuby 9.x
    • ensure current jruby/bin is in PATH
    • specify version for release: export JRUBY_VERSION=10.1.1.0
    • specify Ruby version for this release: export RUBY_VERSION=4.0
    • set REPO=<path to repository for release>
    • set INSTALL4J_EXECUTABLE=<path to install4jc command
  • C. Run tool/release.sh to push bits (same as the following steps):

    what script does
    • echo $JRUBY_VERSION > VERSION
    • mvn
    • git add VERSION bin/.jruby.release core/pom.xml lib/pom.xml pom.xml shaded/pom.xml
    • git commit -m "Version $JRUBY_VERSION updated for release"
    • cd .. && rm -rf release && git clone jruby release && cd release
    • mvn clean deploy -Psonatype-oss-release -Prelease
    • jrake post_process_artifacts # final prep of release artifacts including installer
  • D. Sanity tests (now all done in CI with every push; repeating here is optional)

  • E. Release Notes and Web site prep (jruby.github.io)

    • Run from jruby.org site repo (git@github.com:jruby/jruby.github.io.git) with Ruby 3.4 (Ruby 4.0 fails to install some extensions)
    • Run bundle exec rake update_for_version (with the env JRUBY_VERSION still set). This will:
    what script does
    • edit _config.yml
    • edit downloads.html
    • add _posts/2013-12-06-jruby-1-7-9.markdown
    • add files/downloads/9.3.3.0/index.html
    • edit files/downloads/index.html to add new release
    • Add text to newly generated _post to highlight interesting fixes/features
      • Notable changes, especially stdlib updates, Java integration changes, security issues
      • External contributors in alphabetical order by GitHub account name
    • Using CRuby run bundle exec rake server and check all links
  • F. Publish

  • G. Notifications

Clone this wiki locally