feat: implement automated versioning with Release Please#681
feat: implement automated versioning with Release Please#681
Conversation
Add Release Please workflow and configuration for automated version management, changelog generation, and release creation based on conventional commits. - Add .github/workflows/release-please.yml workflow - Add release-please-config.json configuration - Add .release-please-manifest.json for version tracking - Create initial CHANGELOG.md - Add CONTRIBUTING.md with release process documentation Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
Add workflow to validate PR titles follow conventional commit format, ensuring automated version bumping works correctly with Release Please. Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
|
@copilot fix the review comments |
I don't see any review comments in the details provided. Could you please share which specific review comments need to be addressed? Alternatively, you can point me to the specific issues or provide the feedback directly. |
Unpinned 3rd party Action 'Release Please' step Uses Step Unpinned 3rd party Action 'PR Title Lint' step Uses Step |
Pin third-party GitHub Actions to specific commit hashes instead of version tags for supply chain security (CWE-829): - google-github-actions/release-please-action@e4dc86ba (v4.1.1) - amannn/action-semantic-pull-request@0723387f (v5.5.3) Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
Fixed in commit 89a82c8. Both GitHub Actions are now pinned to commit SHAs:
Added verification comments following the same pattern as other workflows in the repository. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
There was a problem hiding this comment.
Pull request overview
This PR introduces automated semantic versioning and release management using Release Please, along with documentation and workflow support for conventional commits. It also adds a PR title linter to enforce conventional commit formatting for pull requests.
Changes:
- Added Release Please configuration and manifest files to drive automated versioning and changelog management.
- Introduced GitHub Actions workflows for Release Please and PR title linting, with actions pinned to specific SHAs for supply chain security.
- Created and updated project documentation (
CONTRIBUTING.md,CHANGELOG.md) to describe the release process and conventional commit requirements.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
release-please-config.json |
Defines Release Please behavior for the Go module, including release type, package name, and changelog path. |
.release-please-manifest.json |
Establishes the initial semantic version (0.0.0) for automated version tracking. |
.github/workflows/release-please.yml |
Adds a Release Please workflow triggered on pushes to main, using a SHA-pinned action for secure automated releases. |
.github/workflows/pr-title-lint.yml |
Adds a SHA-pinned PR title linter enforcing conventional commit style on pull request titles. |
CHANGELOG.md |
Introduces an initial changelog with an “Unreleased” section that Release Please will maintain going forward. |
CONTRIBUTING.md |
Documents development setup, testing, code style, conventional commit usage, and the automated/manual release processes. |
|
@copilot fix the review items |
Update comment to accurately reflect that requireScope: false makes scopes optional, not mandatory. Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
|
@copilot address the review comments |
Update workflow to use manifest command with explicit config and manifest files, enabling proper version tracking via .release-please-manifest.json as intended in the design. Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
| "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", | ||
| "packages": { | ||
| ".": { | ||
| "release-type": "go", |
There was a problem hiding this comment.
Every merge to main → release-please updates a Release PR (accumulates changelog entries from conventional commits)
When you decide to release → You merge the Release PR → release-please creates the tag and GitHub release
|
@copilot Fix the following issues:
These are the same issues that broke Release Please in go-mssqldb after PR #310 was merged. |
…tion - Change to googleapis/release-please-action@v4.1.3 (google-github-actions version is deprecated) - Add workflow_dispatch trigger for manual runs - Update manifest version to 1.9.0 (current released version) - Clarify in docs that git tag is created after Release PR merge, not during PR creation Co-authored-by: dlevy-msft-sql <194277063+dlevy-msft-sql@users.noreply.github.com>
All issues fixed in commit dfa572f:
|
Implementation Plan for Release Please Automation ✅
.github/workflows/release-please.ymlworkflow filerelease-please-config.jsonconfiguration file.release-please-manifest.jsonmanifest file (for initial version tracking)CHANGELOG.mdfile✅ Implementation Complete - All Issues Addressed
Latest Update:
googleapis/release-please-action@7987652d(v4.1.3) - the google-github-actions version is deprecatedworkflow_dispatch:trigger for manual workflow runs1.9.0(current released version)Previous Updates:
.github/workflows/pr-title-lint.ymlto clarify thatrequireScope: falsemeans scopes are optionalSecurity:
googleapis/release-please-actionto commit SHA7987652d(v4.1.3)amannn/action-semantic-pull-requestto commit SHA0723387f(v5.5.3)All files validated:
.github/workflows/release-please.yml- Using googleapis action with manifest mode and workflow_dispatch trigger.github/workflows/pr-title-lint.yml- Pinned to commit hash, comment clarifiedrelease-please-config.json- Simple Go configuration (no extra-files).release-please-manifest.json- Set to current version 1.9.0CHANGELOG.md- Initial changelogCONTRIBUTING.md- Accurate release process documentationHow It Works
Configuration Notes
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.