Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Manage versioning of Task tool dependency #962

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

Merged
per1234 merged 2 commits into arduino:main from per1234:go-modules-task
Sep 15, 2025

Conversation

@per1234
Copy link
Contributor

@per1234 per1234 commented Sep 15, 2025
edited
Loading

The "Task" task runner tool is used to perform all common development and maintenance operations for the project.

Previously, the version of Task was not well managed.

The GitHub Actions workflows used the latest version of Task, only constrained by major version. This meant that the GitHub Actions workflows could break at any time through a new release of Task that contained regressions or breaking changes.

The contributors used whichever version of Task happened to be installed on their machine. This meant that they might get different results from that produced by the environment of the GitHub Actions workflows.

The better solution is to take the same approach for managing the Task dependency as is done for the project's other dependencies:

  • Install a specific version of Task according to a single source of versioning data.
  • Use the Dependabot service to get automated update pull requests.

Since Task is a Go module-based project, this can be accomplished by using the Go modules system, which has explicit support for tool dependencies as of the Go 1.24 release. The "yq" tool dependency is managed via the Go modules system. It must be invoked via go tool in order for the managed
version to be used.

@per1234 per1234 self-assigned this Sep 15, 2025
@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure labels Sep 15, 2025
@per1234 per1234 changed the title (削除) Invoke yq via go tool (削除ここまで) (追記) Manage versioning of Task tool dependency (追記ここまで) Sep 15, 2025
Copy link

codecov bot commented Sep 15, 2025
edited
Loading

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.33%. Comparing base (ec8d60c) to head (fa98bca).
⚠️ Report is 13 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@
## main #962 +/- ##
=======================================
 Coverage 83.33% 83.33% 
=======================================
 Files 1 1 
 Lines 180 180 
=======================================
 Hits 150 150 
 Misses 19 19 
 Partials 11 11 
Flag Coverage Δ
unit 83.33% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The "yq" tool dependency is managed via the Go modules system. It must be invoked via `go tool` in order for the managed
version to be used.
The "Task" task runner tool is used to perform all common development and maintenance operations for the project.
Previously, the version of Task was not well managed.
The GitHub Actions workflows used the latest version of Task, only constrained by major version. This meant that the
GitHub Actions workflows could break at any time through a new release of Task that contained regressions or breaking
changes.
The contributors used whichever version of Task happened to be installed on their machine. This meant that they might
get different results from that produced by the environment of the GitHub Actions workflows.
The better solution is to take the same approach for managing the Task dependency as is done for the project's other
dependencies:
* Install a specific version of Task according to a single source of versioning data.
* Use the Dependabot service to get automated update pull requests.
Since Task is a Go module-based project, this can be accomplished by using the Go modules system, which has explicit
support for tool dependencies as of the Go 1.24 release.
@per1234 per1234 merged commit c142981 into arduino:main Sep 15, 2025
71 of 74 checks passed
@per1234 per1234 deleted the go-modules-task branch September 15, 2025 18:15
Copy link
Contributor Author

per1234 commented Nov 3, 2025

Use the Dependabot service to get automated update pull requests.

I discovered that I was mistaken about this effect. Although Dependabot does provide update PRs when tool dependencies are managed via the alternative provisional "tools.go" approach, unfortunately it does not for tools managed via the newer tools directive: dependabot/dependabot-core#12050

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Labels

topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /