@@ -18,58 +18,53 @@ Visit the
18
18
find the latest release version and associated container image tags.
19
19
20
20
For example, release ` 3.2.0-alpha1 ` provides updated container images and
21
- configuration files.
21
+ configuration files. You'll need:
22
22
23
- ## 2. Update GCR Links in Code
23
+ - The new version number (e.g., ` 3.2.0-alpha1 ` )
24
+ - The 8-character configuration hash from the release page
24
25
25
- Use ` git grep ` to find all Google Container Registry (GCR) references that need
26
- updating:
26
+ ## 2. Automated Update with Script
27
27
28
- ``` bash
29
- # Search for GCR image references
30
- git grep " gcr.io/o1labs-192920/mina-daemon"
28
+ OpenMina provides an automation script to handle the bulk of the update process:
31
29
32
- # Search for any mina-daemon references
33
- git grep " mina-daemon "
30
+ ``` bash
31
+ ./website/docs/developers/scripts/update-ocaml-node.sh < old_hash > < new_hash > < old_version > < new_version >
34
32
```
35
33
36
- Update the image tags in the found files to match the new release version.
37
- Typically this involves changing version strings in Docker Compose files,
38
- testing configurations, and CI workflows.
34
+ ** Example usage:**
39
35
40
- ## 3. Update Configuration Files
36
+ For example, to update from ` 3.2.0-alpha1 ` to ` 3.2.0-beta1 ` (as done in commit
37
+ [ 31caeee6] ( https://github.com/o1-labs/openmina/commit/31caeee6af7bf20b8578a23bf69718dbe68fe5cc ) ):
41
38
42
- Update the configuration file hash to match the new release. The config files
43
- with the pattern ` config_[8-character-hash] ` come from the OCaml node release
44
- and need to be referenced in the OpenMina codebase.
45
-
46
- The configuration hash corresponds to the genesis state and network parameters
47
- for the specific release. You may need to:
39
+ ``` bash
40
+ ./website/docs/developers/scripts/update-ocaml-node.sh 7f94ae0b 978866cd " 3.2.0-alpha1" " 3.2.0-beta1"
41
+ ```
48
42
49
- - Update references to the config filename in code to match the new hash
50
- - Download or reference the new config files from the OCaml node release
51
- - Verify the new configuration is compatible with OpenMina
43
+ ** Parameters:**
52
44
53
- ## 4. Example Workflow
45
+ - ` old_hash ` : Current 8-character config hash
46
+ - ` new_hash ` : New 8-character config hash from the release
47
+ - ` old_version ` : Current version (e.g., ` 3.1.0 ` )
48
+ - ` new_version ` : New version (e.g., ` 3.2.0-alpha1 ` )
54
49
55
- Based on PR # 1236 , a typical update involves :
50
+ The script automatically updates :
56
51
57
- ``` bash
58
- # 1. Find current references
59
- git grep " gcr.io/o1labs-192920/mina-daemon"
60
- git grep " 3\.1\.0" # Search for old version numbers
52
+ - Configuration file references in testing code
53
+ - Docker image tags in CI workflows and compose files
54
+ - Version strings throughout the codebase
61
55
62
- # 2. Update image tags throughout the codebase
63
- # Replace old tags with new release version
56
+ ## 3. Manual Verification
64
57
65
- # 3. Search for config file references in code
66
- git grep " config_"
58
+ After running the script, verify all references were updated correctly:
67
59
68
- # 4. Update any hardcoded version references
69
- git grep -i " mina.*3\.1\.0" # Example for version 3.1.0
60
+ ``` bash
61
+ # Search for any remaining old references
62
+ git grep " gcr.io/o1labs-192920/mina-daemon"
63
+ git grep " config_<old_hash>"
64
+ git grep " <old_version>"
70
65
```
71
66
72
- ## 5 . Verification Steps
67
+ ## 4 . Verification Steps
73
68
74
69
After making updates:
75
70
@@ -80,13 +75,15 @@ After making updates:
80
75
with the updated OCaml node
81
76
5 . ** CI Pipeline** : Verify that automated testing passes with new versions
82
77
83
- ## 6 . Commit Structure
78
+ ## 5 . Commit Structure
84
79
85
- Following the pattern from PR #1236 :
80
+ Following the pattern from commit
81
+ [ 31caeee6] ( https://github.com/o1-labs/openmina/commit/31caeee6af7bf20b8578a23bf69718dbe68fe5cc ) :
86
82
87
- 1 . ** Main Update Commit** : "Update OCaml node dependencies to [ version] "
88
- 2 . ** Changelog** : Add entry documenting the version bump
89
- 3 . ** Config Updates** : Separate commit for configuration file changes if needed
83
+ 1 . ** Main Update Commit** : "OCaml nodes: bump up to release [ version] "
84
+ - Updates 6 files: CI workflows, Docker compose, and testing configurations
85
+ - Atomic change affecting all OCaml node references
86
+ 2 . ** Changelog** : Add entry documenting the version bump if needed
90
87
91
88
## Related Resources
92
89
0 commit comments