Skip to content

Conversation

@per1234
Copy link
Contributor

@per1234 per1234 commented Oct 30, 2025

The go-bindata tool is used to embed the JSON schemas used by Arduino Lint's rules as Go code, allowing the tool installation to consist of a single executable file.

Previously, the tool was installed via a go install command in the task. This approach is problematic for several reasons:

  • It installs the tool globally (in GOBIN), and thus pollutes the contributor's global environment
  • The tool must be updated manually

Since go-bindata is a Go module-based tool, it can be installed and managed by using the Go modules system, which has explicit support for tool dependencies as of the Go 1.24 release.

This will allow keeping the dependency updated via the Dependabot service, just as is done with the Go module dependencies of the codebase, and other tool dependencies.

The "go-bindata" tool is used to embed the JSON schemas used by Arduino Lint's rules as Go code, allowing the tool
installation to consist of a single executable file.

Previously, the tool was installed via a `go install` command in the task. This approach is problematic for several
reasons:

- It installs the tool globally (in GOBIN), and thus pollutes the contributor's global environment
- The tool must be updated manually

Since go-bindata is a Go module-based project, it can be installed and managed by using the Go modules system, which has
explicit support for tool dependencies as of the Go 1.24 release.

This will allow keeping the dependency updated via the Dependabot service, just as is done with the Go module
dependencies of the codebase, and other tool dependencies.
@per1234 per1234 self-assigned this Oct 30, 2025
@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure labels Oct 30, 2025
@codecov
Copy link

codecov bot commented Oct 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.33%. Comparing base (67242bf) to head (554eddc).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #981   +/-   ##
=======================================
  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.

@per1234 per1234 merged commit 1515f3d into arduino:main Oct 30, 2025
73 of 74 checks passed
@per1234 per1234 deleted the go-bindata-tool branch October 30, 2025 09:26
@per1234
Copy link
Contributor Author

per1234 commented Nov 3, 2025

This will allow keeping the dependency updated via the Dependabot service

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant