You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update RELEASE.adoc
* Update doc/read-the-docs-site/RELEASE.adoc
Co-authored-by: Michael Peyton Jones <[email protected]>
* Update doc/read-the-docs-site/RELEASE.adoc
Co-authored-by: Michael Peyton Jones <[email protected]>
* Rearrange the steps
---------
Co-authored-by: Michael Peyton Jones <[email protected]>
Copy file name to clipboardExpand all lines: doc/read-the-docs-site/RELEASE.adoc
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,15 +64,17 @@ In all other cases, we always start a new major or minor release from master.
64
64
65
65
Suppose we are releasing version `x.y.z.0`.
66
66
67
-
1. Prepare the release by running `./scripts/prepare-release.sh x.y.z.0 <packages>`.
68
-
This updates versions and version bounds, and assembles the changelogs.
69
-
- `<packages>` should normally be empty, which will prepare the default packages, or can be an explicit list of packages to prepare.
70
-
2. Review the changelogs and edit manually if needed.
71
-
3. Tag `x.y.z.0-rc1` on master.
67
+
1. Tag `x.y.z.0-rc1` on master.
72
68
- There's no need to create a release branch at this point.
73
69
A release branch is only needed if bugs are found in `x.y.z.0-rc1` and we need to backport a fix from master.
74
-
4. Run the release QA process.
75
-
5. If no release blocking issue is found, tag `x.y.z.0` and upload the packages to https://github.com/input-output-hk/cardano-haskell-packages[CHaP].
70
+
- This step can be omitted if no additional tests and checks are needed in the release QA process. See "Release QA Process" below.
71
+
2. Run the release QA process. See "Release QA Process" below.
72
+
3. If no release blocking issue is found, run `./scripts/prepare-release.sh x.y.z.0 <packages>`.
73
+
This updates versions and version bounds, and assembles the changelogs.open a PR for updating the cabal files and the changelog files.
74
+
- `<packages>` should normally be empty, which will prepare the default packages, or can be an explicit list of packages to prepare.
75
+
4. Review the changelogs and edit manually if needed.
76
+
5. Open a PR for updating the cabal files and the changelog files.
77
+
6. Once the PR is merged, tag the commit `x.y.z.0`, and open a PR in the https://github.com/input-output-hk/cardano-haskell-packages[CHaP repository] for publishing the new version.
76
78
- Adding the `x.y.z.0` tag triggers a GitHub action that publishes Haddock to `+https://input-output-hk.github.io/plutus/x.y.z.0/+`.
77
79
The GitHub action is only triggered by pushing tags of the form `[0-9]+.[0-9]+.[0-9]+.[0-9]+`.
78
80
- If issues are found, create a release branch `release/x.y.z`, fix the issues on master, backport the fixes to `release/x.y.z`, tag `x.y.z.0-rc2`, and go to step 4.
@@ -81,10 +83,6 @@ It is desirable to minimize the amount of change between `rc1` and `rc2`, becaus
81
83
For instance, if `plutus-ledger-api` is the only package changed, there is no need to re-run tests on `plutus-core` or `plutus-tx`.
82
84
Another example is if a security audit is done on `rc1`, and the changes in `rc2` do not modify the audited code, then the audit does not need to be re-done.
83
85
84
-
6. After the release, update version numbers in cabal files to `x.y.z+1.0`.
85
-
- This may not be the actual version of the next release - it could be `x+1.0.0`.
86
-
We don't need to be precise here; we just need a version number higher than the latest release.
87
-
88
86
=== Patch Releases
89
87
90
88
Suppose we are releasing version `x.y.z.w`.
@@ -93,15 +91,17 @@ Suppose we are releasing version `x.y.z.w`.
93
91
If so, create branch `release/x.y.z` from the `x.y.z.0` tag.
94
92
- We create release branches lazily, because we do not expect to make many patch releases.
95
93
2. Backport the needed fixes from master to `release/x.y.z`.
96
-
3. Prepare the release by running `./scripts/prepare-release.sh x.y.z.w <packages>`.
97
-
4. Tag `x.y.z.w-rc1` on the release branch.
98
-
5. Run the release QA process.
99
-
6. If no release blocking issue is found, tag version `x.y.z.w` and upload the packages to CHaP.
100
-
- If issues are found, fix them on master, backport the fixes to `release/x.y.z`, and go to step 3.
94
+
3. Tag `x.y.z.w-rc1` on the release branch.
95
+
- This step can be omitted if no additional tests and checks are needed in the release QA process. See "Release QA Process" below.
96
+
4. Run the release QA process. See "Release QA Process" below.
97
+
5. If no release blocking issue is found, run `./scripts/prepare-release.sh x.y.z.w <packages>`.
98
+
6. Open a PR for updating the cabal files and the changelog files.
99
+
7. Once the PR is merged, tag the commit `x.y.z.w`, and open a PR in the CHaP repository for publishing the new version.
100
+
- If issues are found, fix them on master, backport the fixes to `release/x.y.z`, and go to step 5.
101
101
102
102
=== Release QA Process
103
103
104
-
All applicable tests and checks should be carried out prior to tagging and publishing a release.
104
+
All applicable tests and checks that haven't been run on the release candidate should be carried out prior to tagging and publishing a release.
105
105
- This includes all tests that can be done with only the Plutus repo, such as unit tests, property-based tests, conformance tests and nightly tests.
106
106
- In some cases we need input from domain experts and/or security audit (e.g., when adding a cryptography builtin).
107
107
The right group of people should be involved and sign off on the tests and checks.
0 commit comments