You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/README.md
+10-27Lines changed: 10 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,9 @@
10
10
11
11
## FAQ
12
12
13
-
**Q:** What about https://go.dev/blog/toolchain?
13
+
**Q:** What about [https://go.dev/blog/toolchain](https://go.dev/blog/toolchain)?
14
14
15
-
**A:** It is about forward-compatibility, `vmatch` installs the Go version specified in your project.
15
+
**A:** It is about forward-compatibility, `vmatch` installs the Go version specified in your project. I've found Go's promises of backward-compatibility to be squishy in practice, `brew install go` has not been sufficient for some project setups.
16
16
17
17
**Q:** What about `go run` (Go 1.24 and after `go run` calls are cached)?
18
18
@@ -42,10 +42,6 @@ Mainly, you should have `~/.vmatch/bin` in your PATH.
42
42
brew update && brew upgrade vmatch
43
43
```
44
44
45
-
### Note on expectations
46
-
47
-
When the specified Go version is downloaded for the first time, it may take a while.
48
-
49
45
## Integrations
50
46
51
47
### VS Code
@@ -56,7 +52,7 @@ Open your project via `code .` or similar from your shell where `vmatch doctor`
56
52
57
53
#### golangci-lint
58
54
59
-
Follow guidance at https://golangci-lint.run/welcome/integrations/#visual-studio-code but specify the full path of your ~/.vmatch/bin/golangci-lint as an alternate lint tool, like this:
55
+
Follow guidance at [https://golangci-lint.run/welcome/integrations/#visual-studio-code](https://golangci-lint.run/welcome/integrations/#visual-studio-code) but specify the full path of your ~/.vmatch/bin/golangci-lint as an alternate lint tool, like this:
60
56
61
57
```json
62
58
"go.alternateTools": {
@@ -66,7 +62,7 @@ Follow guidance at https://golangci-lint.run/welcome/integrations/#visual-studio
66
62
67
63
### Renovate
68
64
69
-
I _think_ one can configure Renovate to maintain the `.golangci-version` file for you, see https://www.jvt.me/posts/2022/12/15/renovate-golangci-lint/ for an example.
65
+
I _think_ one can configure Renovate to maintain the `.golangci-version` file for you, see [https://www.jvt.me/posts/2022/12/15/renovate-golangci-lint/](https://www.jvt.me/posts/2022/12/15/renovate-golangci-lint/) for an example.
70
66
71
67
## How
72
68
@@ -95,27 +91,14 @@ Go versions are downloaded from Google servers and stored under `~/.vmatch`, lik
95
91
96
92
Contents of `~/.vmatch/bin` are symlinked from `$(go env GOPATH)/bin`, expect for `go` or `golangci-lint`, because those are shell scripts that wrap `vmatch`.
97
93
98
-
If your `go.mod` does not specify the full version, for example `1.24` instead of `1.24.3`, `vmatch` defaults to `1.24.0` for simplicity, surprisingly, sometimes there is a Go 1.minor and sometimes a Go 1.minor.0 version released. https://dl.google.com/go/go1.20.darwin-amd64.pkg and https://dl.google.com/go/go1.21.0.darwin-amd64.pkg are examples.
99
-
100
-
## Stargazers over time
101
-
102
-
[](https://starchart.cc/anttiharju/vmatch)
94
+
If your `go.mod` does not specify the full version, for example `1.24` instead of `1.24.3`, `vmatch` defaults to `1.24.0` for simplicity, surprisingly, sometimes there is a Go 1.minor and sometimes a Go 1.minor.0 version released. [https://dl.google.com/go/go1.20.darwin-amd64.pkg](https://dl.google.com/go/go1.20.darwin-amd64.pkg) and [https://dl.google.com/go/go1.21.0.darwin-amd64.pkg](https://dl.google.com/go/go1.21.0.darwin-amd64.pkg) are examples.
103
95
104
-
## Retrospective on the project
96
+
## Usage
105
97
106
-
While developing `vmatch`, I learned a lot about Go, `brew`, GitHub Actions, Git pre-commit hooks, and developer tooling. There's a surprising amount of detail that has to be accommodated in many places.
98
+
After you have completed the installation, you can simply use `go` and `golangci-lint` as usual, as long as there's a `.golangci-version` or `go.mod` file available in current directory or above.
107
99
108
-
I think this project could be pushed a lot further, especially in terms of where it is distributed, and adding new features like always being on the latest patch of `Go`. Unfortunately life is too short, and the project is at a state where it is very usable for my personal use.
100
+
Note that when a version is downloaded for the first time, your commands may appear to hang. The time it takes depends on your internet speed and computer.
109
101
110
-
Long-term, `Nix` (see https://nixos.org), would likely be the generic solution for managing your development environment. Rolling it out to an entire team might have a relatively high barrier, even with projects like `Flox` (see https://flox.dev), so `vmatch` attempts to be a low-barrier-of-entry solution.
111
-
112
-
If you find bugs, issue reports are very much appreciated and PRs are welcome. If you plan to push the project a lot further (for example managing `node` in a similar fashion), I'd recommend you to maintain a fork, say, `vmatch-node`.
113
-
114
-
During the project a lot of supporting infrastructure was set up:
115
-
116
-
-https://github.com/anttiharju/homebrew-tap/tree/fe24baf82fb570b6ec74694750080789742750e7 (whopping 174 commits, corresponding roughly to the same number of releases!)
-https://github.com/anttiharju/check-relative-markdown-links/tree/f79dc07684109baed16d10dd8ff2ade9bb94ce22 (a bash prototype for a tool that's more generally applicable and therefore useful than `vmatch`)
119
-
-https://github.com/anttiharju/editorconfig/tree/9fa1679fcb6d55ed841a2ad36d142afd2d7cf30f (a centrally managed editorconfig distributed via GitHub Actions to my repositories!)
102
+
## Stargazers over time
120
103
121
-
all of which make it easier for me to build new tools, on-demand, with minimal effort spent on trivial things like tooling automation. With [Go rewrite of `check-relative-markdown-links`](https://github.com/anttiharju/check-relative-markdown-links/issues/5) being the first!
104
+
[](https://starchart.cc/anttiharju/vmatch)
While developing `vmatch`, I learned a lot about Go, `brew`, GitHub Actions, Git pre-commit hooks, and developer tooling. There's a surprising amount of detail that has to be accommodated in many places.
4
+
5
+
I think this project could be pushed a lot further, especially in terms of where it is distributed, and adding new features like always being on the latest patch of `Go`. Unfortunately life is too short, and the project is at a state where it is very usable for my personal use.
6
+
7
+
Long-term, `Nix` (see [nixos.org](https://nixos.org)), would likely be the generic solution for managing your development environment. Rolling it out to an entire team might have a relatively high barrier, even with projects like `Flox` (see [flox.dev](https://flox.dev)), so `vmatch` attempts to be a low-barrier-of-entry solution.
8
+
9
+
If you find bugs, issue reports are very much appreciated and PRs are welcome. If you plan to push the project a lot further (for example managing `node` in a similar fashion), I'd recommend you to maintain a fork, say, `vmatch-node`.
10
+
11
+
During the project a lot of supporting infrastructure was set up:
12
+
13
+
-[github.com/anttiharju/homebrew-tap](https://github.com/anttiharju/homebrew-tap/tree/299612d532b3a676f5bfea84c3115ff562c9e23a) (whopping 174 commits, corresponding roughly to the same number of releases!)
-[github.com/anttiharju/check-relative-markdown-links](https://github.com/anttiharju/check-relative-markdown-links/tree/f79dc07684109baed16d10dd8ff2ade9bb94ce22) (a bash prototype for a tool that's more generally applicable and therefore useful than `vmatch`)
16
+
-[github.com/anttiharju/editorconfig](https://github.com/anttiharju/editorconfig/tree/9fa1679fcb6d55ed841a2ad36d142afd2d7cf30f) (a centrally managed editorconfig distributed via GitHub Actions to my repositories!)
17
+
18
+
all of which make it easier for me to build new tools, on-demand, with minimal effort spent on trivial things like tooling automation. With [Go rewrite of `check-relative-markdown-links`](https://github.com/anttiharju/check-relative-markdown-links/issues/5) being the first!
Copy file name to clipboardExpand all lines: docs/commands/go.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,4 +4,4 @@
4
4
vmatch go # followed by any args you would give to go
5
5
```
6
6
7
-
This command is not meant to be used, but rather, you would have `~/.vmatch/bin/go` in your path as the `go` program.
7
+
This command is not meant to be used directly, but rather through `~/.vmatch/bin/go`which should be the `go`in your PATH. Whether this is the case can be verified with [`vmatch doctor`](./doctor.md)
Copy file name to clipboardExpand all lines: docs/commands/golangci-lint.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,4 +4,4 @@
4
4
vmatch golangci-lint # followed by any args you would give to golangci-lint
5
5
```
6
6
7
-
This command is not meant to be used, but rather, you would have `~/.vmatch/bin/golangci-lint`in your path as the `golangci-lint`program.
7
+
This command is not meant to be used directly, but rather through `~/.vmatch/bin/golangci-lint`which should be the `golangci-lint`in your PATH. Whether this is the case can be verified with [`vmatch doctor`](./doctor.md)
0 commit comments