Comments (4)
This issue covers multiple topics. The first is tagged versions; are these really necessary? With Go modules, you can easily pin to a v0 pseudo-version. For example, the command below pins to the latest commit from master:
go get mvdan.cc/[email protected]
You can figure out what the latest pseudo-version is with a command like go get -json mvdan.cc/gofumpt
. You can also use go list -f '{{.Module.Version}}' mvdan.cc/gofumpt
, which will directly print the version string alone.
The second bit of the issue is about fancy releases with tarballs and all the extras. I expect any gofumpt user to also have Go installed, so I think a go get
command is the right way to install the tool. I've also reasoned above that I don't think semver releases are necessary at this point, so I'm not sure that there's anything I should do here.
from gofumpt.
An advantage of a fancy release with tarballs is that you get a pre-built binary which is much faster to install than downloading all the source code and rebuilding from zero. It's also more robust as you only need GitHub to be up, not all the infrastructure required to download everything in gofumpt
's dependency graph. See golangci-lint
's install instructions for an example.
from gofumpt.
With proxy.golang.org being live, it can be relied on for "robust" downloads :)
A build from zero should also take mere seconds on most machines, so I'm not sure if we're solving a real problem.
As a side point - the install instructions you link to follow a curl ... | sh
pattern, which I don't think should be recommended. go get ...
can't run arbitrary code, at least.
I appreciate your input here, by the way - I'm just not convinced that all this extra machinery makes sense for small projects. Particularly those which are Go tools, where the users are developers well familiar with go get
.
from gofumpt.
I think this is a bit overkill right now. If the Go proxy and module version pinning don't work, please let me know and we can consider reopening. Thanks!
from gofumpt.
Related Issues (20)
- gofumpt lint conflict with go-swagger comments HOT 2
- CLI argument to ignore paths HOT 13
- Support running controversial/experimental rules individually HOT 1
- How do I use "-extra" in VS Code HOT 1
- ldflags failed for gofumpt 0.4.0 release HOT 4
- gofumpt re-formats tabs to spaces (was: New release built with go 1.19?) HOT 3
- Groups with comments below single var declaration are unexpectedly formatted HOT 1
- Provide pre-commit hook configuration HOT 3
- Does gofumpt ignore folders like testdata? HOT 2
- Multiline blocks allow newline before closing brace HOT 1
- Enforce some consistency with newlines at the start and end of parameter lists HOT 3
- Unnecessary newline in arguments when putting type parameters on a separate line
- Document WHEN generated code is touched and how to mitigate it HOT 2
- gofumpt badge HOT 1
- Fails to install with Go 1.20.3 HOT 1
- Panic on formatting of multiple files
- Don't group variables when //go:embed is present. HOT 2
- No empty lines before a simple error check not working HOT 2
- gofumpt conflicts with goimports-reviser based import formatting. HOT 1
- Feature suggestion: Distinguishing between ex-repo, intra-repo, and internal packages HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gofumpt.