|
| 1 | +# Rhino Release Process |
| 2 | + |
| 3 | +## Prepare the repository |
| 4 | + |
| 5 | +Update the version in gradle.properties to the new release version. |
| 6 | + |
| 7 | +Update RELEASE_NOTES.md to include at least a summary of the major features |
| 8 | +of the release. (This is historical, but many find it helpful to have a single |
| 9 | +file in the repo that lists the major changes.) |
| 10 | + |
| 11 | +Update README.md to add a row to the table of releases that points to the |
| 12 | +GitHub release that we'll create in the next step (just follow the pattern |
| 13 | +that's there). |
| 14 | + |
| 15 | +Now might be a good time to run "./gradlew publishToMavenLocal" and use the |
| 16 | +published JARs as a sanity check. |
| 17 | + |
| 18 | +## Update Compatibility Table |
| 19 | + |
| 20 | +The offial Kangax "compat table" now supports Rhino, but it's convenient |
| 21 | +to have our own that shows progress across all releases. Here's how to |
| 22 | +update it: |
| 23 | + |
| 24 | + git clone -b gh-pages https://github.com/gbrail/node-compat-table.git |
| 25 | + cd node-compat-table |
| 26 | + |
| 27 | +Now, edit "rhinoall.sh" to include the new release -- it includes a series |
| 28 | +of lines that fetch old releases, and use your local build of the new one. |
| 29 | +Then, update the table: |
| 30 | + |
| 31 | + ./rhinoall.sh |
| 32 | + |
| 33 | +The resulting "index.html" can be copied into "docs/compat/engines.html" in |
| 34 | +this repo. |
| 35 | + |
| 36 | +## Push the Release to GitHub |
| 37 | + |
| 38 | +At this point, the current contents of your directory correspond to the |
| 39 | +new release. Prepare a pull request containing the changes, submit it, |
| 40 | +and merge it -- the result will be that the head of the "master" branch |
| 41 | +will build your new release. |
| 42 | + |
| 43 | +Update to that branch and create a tag for the release, where XX is a number |
| 44 | +like "1_7_14": |
| 45 | + |
| 46 | + git pull origin master |
| 47 | + git tag Rhino_XX_Release |
| 48 | + git push origin Rhino_XX_Release |
| 49 | + |
| 50 | +Now, on the Rhino "Releases" tab in GitHub, create a release that corresponds |
| 51 | +to the new tag. Include the following: |
| 52 | + |
| 53 | +* A cut and paste of the part of RELEASE_NOTES.md added for the release |
| 54 | +* The three JARs created by "./gradlew.jar" |
| 55 | +* The ZIP file created by "./gradlew distZip" |
| 56 | +* A ZIP of the source will be included automatically by GitHub |
| 57 | + |
| 58 | +## Push the release to Maven Central |
| 59 | + |
| 60 | +The "Publish to Maven Central" action on GitHub Actions will automatically |
| 61 | +build the release, sign the JARs, and push it to oss.sonatype.org in the |
| 62 | +"org.mozilla" area. Log in to oss.sonatype.org, verify that all the checks |
| 63 | +that happen there were successful, and "close" the release. It will appear |
| 64 | +on Maven Central a few hours later. |
| 65 | + |
| 66 | +## Update Homebrew |
| 67 | + |
| 68 | +The Homebrew team for Mac does not necessarily pick up Rhino releases |
| 69 | +automatically. It may be necessary to submit a PR to the "homebrew/homebrew" |
| 70 | +repo in GitHub for a change to the file "Library/Formula/rhino.rb". |
| 71 | + |
| 72 | +## Prepare for Next Release |
| 73 | + |
| 74 | +Now it's time to move to the next "SNAPSHOT" release. Update gradle.properties, |
| 75 | +create a PR, and push the new PR. Now development can proceeed anew! |
| 76 | + |
0 commit comments