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)
- Tracking issue: go release tag fails semver version check HOT 2
- Members of struct after Pass-through type inside struct's formatting is ignored HOT 2
- install as a CLI HOT 2
- Remove empty lines in if and for similar to functions HOT 13
- Proposal: Clothe naked returns HOT 10
- panic while handling some //line directives HOT 2
- Breaks import comment HOT 1
- feature: Enforce line breaks between multiline function calls with func() argument HOT 1
- add simplifications for Go 1.22 HOT 1
- panic: invalid semver string: "v1.22rc2" HOT 1
- Making every added formatting rule Optional HOT 3
- missing binary release at latest version-v0.6.0 HOT 1
- Single import should not be grouped with parentheses
- Generated file not ignored HOT 2
- prevent indentation confusion
- Gofumpt removing newlines before comments HOT 7
- gofumpt is very slow when `go` is behind an asdf shim HOT 3
- Split long lines only available behind environment string
- Publish v1 HOT 2
- how to ignore certain folders? HOT 8
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.