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
docs: update readme with Versioning/Release Process (#273)
* Initial release_process.md document
Initial release_process.md document
* Update Versioning and Release Process
Update Versioning and Release Process
* Update Release Process in readme
Update Release Process in readme
* Update versioning policy from feedback
Update versioning policy from feedback
* Update README.md
Co-authored-by: Steve Loeppky <[email protected]>
* Initial release_process.md document
Initial release_process.md document
* Update Versioning and Release Process
Update Versioning and Release Process
---------
Co-authored-by: Steve Loeppky <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+44-4Lines changed: 44 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,51 @@ modules that read chain state directly.
9
9
10
10
## Versioning
11
11
12
-
Blockchain state versioning does not naturally align with common semantic versioning conventions.
12
+
We adopt a policy similar to the [Builtin-Actors repository](https://github.com/filecoin-project/builtin-actors?tab=readme-ov-file#versioning), with these key differences:
13
+
- The minor number in the version correlates with the `ActorVersion` from the Builtin-Actors repository. (Builtin-Actors uses the major version number for this.)
14
+
- We don't use major versions; these are always set to 0. This is because of Go's special handling of versions to avoid the need to change import paths for every single package, including internal ones, which would result in having more than one version of go-state-types in the dependency tree.
13
15
14
-
Any change in behaviour, including repairing any error that may have affected blockchain evaluation,
15
-
must be released in a major version change. We intend that to be a rare event for the contents of
16
-
this repository.
16
+
Additional notes:
17
+
18
+
- We strive for round minor versions (e.g., 0.x.0) to denote the definitive release for a given network upgrade. However, due to the unpredictability of software engineering, further releases may be made by bumping the patch number (e.g., 0.x.1).
19
+
- Development versions use qualifiers like `-dev` (development) and `-rc` (release candidate).
20
+
21
+
As an example of application of this policy for Go-State-Types to a v14 builtin-actor version lineage:
22
+
23
+
- Unstable development versions are referenced by a `-dev` qualifier.
24
+
- Stable development versions are tagged as release candidates: `0.14.0-rc1`, `0.14.0-rc2`, etc.
25
+
- Definitive release: `0.14.0`.
26
+
- Patched releases: `0.14.1`, `0.14.2`.
27
+
- Network upgrade goes live with `0.14.2`.
28
+
- Patched releases can also occur after a network upgrade.
29
+
30
+
## Release Process
31
+
32
+
<details>
33
+
<summary>Cutting a development or release candidate release:</summary>
34
+
35
+
1. Go to [Go-State-Types Releases](https://github.com/filecoin-project/go-state-types/releases).
36
+
2. Click the "Draft a new release" button in the right corner.
37
+
3. In the "Choose a tag" dropdown, enter the desired version and click "Create new tag: vX.XX.X on publish".
38
+
4. Target the master branch.
39
+
5. Set the previous tag to compare against, the last stable release, and click the "Generate release notes" button.
40
+
6. Check the "Set as a pre-release" checkbox.
41
+
7. Click "Publish release" to create the development or release candidate release.
42
+
43
+
</details>
44
+
45
+
<details>
46
+
<summary>Cutting a definitive release:</summary>
47
+
48
+
1. Go to [Go-State-Types Releases](https://github.com/filecoin-project/go-state-types/releases).
49
+
2. Click the "Draft a new release" button in the right corner.
50
+
3. In the "Choose a tag" dropdown, enter the desired version and click "Create new tag: vX.XX.X on publish".
51
+
4. Target the master branch.
52
+
5. Set the previous tag to compare against, the last stable release, and click the "Generate release notes" button.
53
+
6. Ensure the "Set as a pre-release" checkbox is **not** checked.
54
+
7. Click "Publish release" to create the definitive release.
55
+
56
+
</details>
17
57
18
58
## License
19
59
This repository is dual-licensed under Apache 2.0 and MIT terms.
0 commit comments