-
Notifications
You must be signed in to change notification settings - Fork 8
Introducing the release process and Maru versioning #485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #485 +/- ##
============================================
+ Coverage 83.73% 83.78% +0.04%
- Complexity 1137 1140 +3
============================================
Files 229 229
Lines 8128 8128
Branches 639 639
============================================
+ Hits 6806 6810 +4
+ Misses 994 991 -3
+ Partials 328 327 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a release process and versioning scheme for Maru, establishing workflows for automated releases triggered by Git tags and documenting the manual release procedures.
Key Changes:
- Adds release documentation in README.md following semantic versioning with Conventional Commits
- Creates automated GitHub Actions release workflow triggered by version tags
- Extends the build-and-publish workflow to support artifact uploads for releases
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| README.md | Documents the release process, versioning scheme, and contribution guidelines requiring Conventional Commits |
| CHANGELOG.md | Introduces changelog structure with sections for breaking changes, additions/improvements, and bug fixes |
| .github/workflows/release.yml | Implements automated release workflow that validates tags, builds Docker images, creates distribution archives, and generates GitHub releases |
| .github/workflows/maru-build-and-publish.yml | Adds upload_dist_artifact parameter and artifact upload functionality to support the release process |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
.github/workflows/release.yml
Outdated
| # Compute date and commit hash | ||
| DATE=$(date -u +%Y%m%d%H%M%S) | ||
| COMMIT_HASH=$(git rev-parse --short HEAD) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So it seems to me this workflow would only be triggered when pushed to main? But just to check, because if a PR can trigger this workglow, we might need sth like this from linea-monorepo to correctly get the latest commit hash from the PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the releases I created to debug the workflow were created from this branch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yes, but it means the commit hash got from git rev-parse --short HEAD would not be the same as the last commit hash on your local branch, should we align to use the same approach as linea-monorepo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I fixed it. You can check this run https://github.com/Consensys/maru/actions/runs/20163650877/job/57881749108
| # Compute date and commit hash | ||
| DATE=$(date -u +%Y%m%d%H%M%S) | ||
| COMMIT_HASH=$(git show-ref -s $TAG_NAME | cut -c1-7) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Git show-ref may return wrong SHA for annotated tags
The command git show-ref -s $TAG_NAME returns the SHA that the tag reference points to directly. For annotated tags, this returns the tag object's SHA rather than the underlying commit's SHA. To reliably get the commit hash regardless of tag type, git rev-parse $TAG_NAME^{} or git rev-list -n 1 $TAG_NAME would be more appropriate. This could result in an incorrect commit hash being included in the version string for annotated tags.
Note
Introduces a tag-triggered release workflow that builds/pushes Docker images, publishes a distribution artifact, drafts a GitHub release, and updates docs with changelog/release guidance plus a PR template.
release.ymlworkflow: Triggers onv*tags, validates tag, computes full version (<tag>-<date>-<hash>), builds and pushesconsensys/maruimage, downloads build artifact, archives distribution, and drafts a GitHub Release with DockerHub link.maru-build-and-publish.yml: Adds optionalupload_dist_artifactinput and step to uploadapp/build/install/app/asmaru-distributionfor reuse in releases.CHANGELOG.md: Added initial changelog with entry for introducing the release process.README.md: Adds contribution (conventional commits) and detailed release process instructions.Written by Cursor Bugbot for commit 670e3be. This will update automatically on new commits. Configure here.