Skip to content

Commit

Permalink
Add tools/mod to module_dirs
Browse files Browse the repository at this point in the history
As `tools/mod` also contains the `go.mod` file. We should add it to the
`module_dirs` variable, so that when executing `./scripts/fix.sh`, the
proper checks and fixes can be applied.

To address the issue of broken unit tests and code coverage due to the
directory's lack of Go code, we've introduced a new mod.go file. This
file acts as a placeholder, enabling tools like golangci-lint and
go test to function correctly.

---

Discovered when working on #18575

The directories are checked against the following:
- Command: `find . -type f -name go.mod -exec dirname {} \;`
- Output:
```
./etcdutl
.
./tools/testgrid-analysis
./tools/rw-heatmaps
./tools/mod
./etcdctl
./tests
./server
./api
./client/internal/v2
./client/v3
./client/pkg
./pkg
```

Signed-off-by: Chun-Hung Tseng <[email protected]>
  • Loading branch information
henrybear327 committed Sep 16, 2024
1 parent 6c1fe4a commit 117598a
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 3 deletions.
2 changes: 1 addition & 1 deletion scripts/test_lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ function run_for_module {
}

function module_dirs() {
echo "api pkg client/pkg client/internal/v2 client/v3 server etcdutl etcdctl tests tools/rw-heatmaps tools/testgrid-analysis ."
echo "api pkg client/pkg client/internal/v2 client/v3 server etcdutl etcdctl tests tools/mod tools/rw-heatmaps tools/testgrid-analysis ."
}

# maybe_run [cmd...] runs given command depending on the DRY_RUN flag.
Expand Down
2 changes: 1 addition & 1 deletion tools/mod/libs.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
//go:build libs

// This file implements that pattern:
// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
// https://go.dev/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
// for etcd. Thanks to this file 'go mod tidy' does not removes dependencies.

package libs
Expand Down
9 changes: 9 additions & 0 deletions tools/mod/mod.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package mod

// As this directory implements the pattern for tracking tool dependencies as documented here:
// https://go.dev/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
// it doesn't contain any valid Go code directly.

// This would break scripts for unit testing and coverage calculation. However,
// to ensure tools like golangci-lint and go test run normally and perform go mod checks,
// we've added this empty file.
2 changes: 1 addition & 1 deletion tools/mod/tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
//go:build tools

// This file implements that pattern:
// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
// https://go.dev/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
// for etcd. Thanks to this file 'go mod tidy' does not removes dependencies.

package tools
Expand Down

0 comments on commit 117598a

Please sign in to comment.