-
Notifications
You must be signed in to change notification settings - Fork 444
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
[LANGPLAT-87] Implement automated release tagging for dd-trace-go v2 #3159
base: v2-dev
Are you sure you want to change the base?
Conversation
- Added the autoreleasetagger tool to automate tagging and versioning of Go modules. - Implemented main.go with functionality to: - Find and filter Go modules. - Update dependencies. - Commit changes if needed. - Create and push tags if needed. - Split tag creation and pushing logic into separate functions. - Added integration tests in main_integration_test.go to verify. Signed-off-by: Kemal Akkoyun <[email protected]>
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.
main_integration_test.go is really well organized and easy to follow!
@@ -0,0 +1,91 @@ | |||
# Auto Release Tagger | |||
|
|||
This tool ensures that all modules in a monorepo are tagged correctly, respecting dependency order—tagging dependencies first before their dependents. |
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 found this sentence hard to read, maybe you mean this instead?
This tool ensures that all modules in a monorepo are tagged correctly, respecting dependency order—tagging dependencies first before their dependents. | |
This tool ensures that all modules in a monorepo are tagged correctly, respecting dependency order by tagging dependencies first before their dependents. |
?
@@ -0,0 +1,91 @@ | |||
# Auto Release Tagger |
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.
Up top can we also specify when you would use this tool? It's during the release process? And what is this new tool affording us that we did not have previously (with the old release process)?
go run ./tools/autoreleasetagger -root ../.. | ||
``` | ||
|
||
Dry run: |
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.
Would be nice to see a quick statement about when/why you would do a Dry Run instead of a regular run, so that a reader can decide the correct use case for this command.
e.g.
Dry run: Simulate the tagging process to check for potential issues
go run ./tools/autoreleasetagger -dry-run -root ../.. | ||
``` | ||
|
||
Run without pushing tags: |
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.
Same comment as Dry Run. Admittedly, commenting that because I at first had to think critically about why you might want to do those operations.
What does this PR do?
This PR introduces the
autoreleasetagger
tool, which automates the process of tagging and versioning Go modules.It includes the main functionality for finding modules, updating dependencies, committing changes, and creating/pushing tags.
Additionally, it adds integration tests to verify the tool's behavior and ensures compliance with Go style guidelines.
Motivation
https://datadoghq.atlassian.net/browse/LANGPLAT-87
Reviewer's Checklist
v2-dev
branch and reviewed by @DataDog/apm-go.Unsure? Have a question? Request a review!