-
Notifications
You must be signed in to change notification settings - Fork 246
ci: release process with changelog #2998
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
base: main
Are you sure you want to change the base?
Conversation
|
The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).
|
|
Claude finished @auricom's task in 2m 17s —— View job Code Review Complete ✅I've performed a comprehensive review of the release workflow and documentation changes. Here are my findings: 🎯 Overall AssessmentThis PR introduces a solid automated release workflow with good documentation. The workflow handles Docker image releases with changelog generation, and the RELEASE.md provides comprehensive guidance. However, there are several important issues to address before this is production-ready. 🔴 Critical Issues1. Missing git-cliff Configuration (.github/workflows/release.yml:33)The workflow uses Impact: Workflow will fail or generate incorrect changelogs. Recommendation: Add a [changelog]
header = """
# Changelog\n
"""
body = """
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {{ commit.message | upper_first }}\
{% endfor %}
{% endfor %}
"""
[git]
conventional_commits = true
filter_unconventional = true
commit_parsers = [
{ message = "^feat", group = "Features"},
{ message = "^fix", group = "Bug Fixes"},
{ message = "^doc", group = "Documentation"},
{ message = "^perf", group = "Performance"},
{ message = "^refactor", group = "Refactor"},
{ message = "^style", group = "Styling"},
{ message = "^test", group = "Testing"},
{ message = "^chore", skip = true},
]2. Logic Error in Changelog File Handling (.github/workflows/release.yml:60-64)if [ -f "CHANGELOG.md" ]; then
# Add generated changelog to CHANGELOG_RELEASE_NOTES.md
cat RELEASE_CHANGELOG.md >> CHANGELOG_RELEASE_NOTES.md
echo "Changelog prepared for release: $TAG" >> CHANGELOG_RELEASE_NOTES.md
fiProblems:
Expected behavior (based on RELEASE.md): The workflow should either:
Recommendation: Clarify the intent. If the goal is to update CHANGELOG.md: if [ -f "CHANGELOG.md" ]; then
# Prepend the new release to CHANGELOG.md
echo -e "## [$TAG] - $(date +%Y-%m-%d)\n" > temp_changelog.md
cat RELEASE_CHANGELOG.md >> temp_changelog.md
echo -e "\n" >> temp_changelog.md
cat CHANGELOG.md >> temp_changelog.md
mv temp_changelog.md CHANGELOG.md
fi3. Hardcoded GitHub Token in Environment (.github/workflows/release.yml:208)env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}While Recommendation: Remove the
|
Summary of ChangesHello @auricom, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly overhauls the project's release documentation by introducing a structured and comprehensive release process. It defines clear version support policies, details both automated and manual steps for creating and publishing releases, and establishes robust guidelines for changelog management and external communication. The changes aim to standardize release procedures, enhance transparency, and provide a clearer understanding of release content and upgrade compatibility for users and contributors. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
| fetch-depth: 0 # Full history needed for changelog generation | ||
|
|
||
| - name: Install git-cliff | ||
| uses: taiki-e/install-action@v2 |
Check warning
Code scanning / CodeQL
Unpinned tag for a non-immutable Action in workflow Medium
Uses Step
| contents: write | ||
| steps: | ||
| - name: Create GitHub Release | ||
| uses: softprops/action-gh-release@v2 |
Check warning
Code scanning / CodeQL
Unpinned tag for a non-immutable Action in workflow Medium
Uses Step
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.
Code Review
This pull request introduces a comprehensive and well-documented release process, including changelog management and automated workflows. The changes are primarily in RELEASE.md and provide detailed steps for both Docker image and Go module releases. My review focuses on improving the clarity of the new process. I've suggested clarifying the manual steps required before tagging a release and detailing the lifecycle of the temporary release branches created by the automation. Overall, this is a great step towards standardizing the release workflow.
| 1. 📝 Review the release branch `release/<tag-name>` | ||
| 2. 📝 Edit and refine the generated changelog if needed | ||
| 3. 📝 Add **recommended upgrade priority** (Critical/High/Medium/Low) | ||
| 4. 📝 Add **general description** of the release | ||
| 5. 📝 Ensure **tested upgrade paths** are documented (1-2 lines in changelog) | ||
| 6. ✅ Merge the release branch or update the GitHub Release directly |
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.
The process for refining the changelog could be clarified. The 'Quick Steps' (lines 254-258) show editing and pushing to the release/<tag-name> branch. However, it's not clear how these committed changes are then reflected in the final GitHub Release. Does the developer need to manually copy the refined changelog from the branch to the GitHub Release draft?
Additionally, step 6 here says 'Merge the release branch...'. It would be helpful to specify the merge target for this branch (e.g., a version branch like v0.3), or confirm if it should be discarded after the release is published (as suggested on line 666). Clarifying the lifecycle and purpose of the release/<tag-name> branch would prevent confusion.
|
|
||
| ### Changelog Workflow | ||
|
|
||
| The release workflow automatically generates changelogs from `./CHANGELOG.md`: |
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.
To improve clarity, it would be helpful to explicitly state that CHANGELOG.md needs to be manually updated before the automated workflow is triggered by a tag push. This involves moving changes from [Unreleased] to a new version section. While this is mentioned in other parts of the document (e.g., line 246), adding it here would make the Changelog Workflow section self-contained and easier to follow.
| The release workflow automatically generates changelogs from `./CHANGELOG.md`: | |
| The release workflow starts with a manual update to `./CHANGELOG.md`, after which automation takes over: |
Overview