made README more clear
This commit is contained in:
parent
d4628bd751
commit
82ec670e8a
38
README.md
38
README.md
|
@ -1,15 +1,41 @@
|
||||||
# git-version.go
|
# git-version.go
|
||||||
|
|
||||||
Use git tags to add semver to your go package.
|
Use **git tags** to add [**semver**](https://semver.org/) to your go package in under 150 [lines of code](https://git.rootprojects.org/root/go-gitver/src/branch/master/gitver/gitver.go).
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
Goal: Either use an exact version like v1.0.0
|
Goals:
|
||||||
or translate the git version like v1.0.0-4-g0000000
|
|
||||||
to a semver like v1.0.1-pre4+g0000000
|
1. Use an exact `git tag` version, like v1.0.0, when clean
|
||||||
|
2. Translate the `git describe` version (v1.0.0-4-g0000000) to semver (v1.0.1-pre4+g0000000) in between releases
|
||||||
|
3. Note when `dirty` (and have build timestamp)
|
||||||
|
|
||||||
Fail gracefully when git repo isn't available.
|
Fail gracefully when git repo isn't available.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# How it works
|
||||||
|
|
||||||
|
You define the fallback variables in your `main.go`:
|
||||||
|
|
||||||
|
```
|
||||||
|
var (
|
||||||
|
GitRev = "0000000"
|
||||||
|
GitVersion = "v0.0.0-pre0+0000000"
|
||||||
|
GitTimestamp = "0000-00-00T00:00:00+0000"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
You `go generate` or `go run git.rootprojects.org/root/go-gitver` to generate `xversion.go`:
|
||||||
|
|
||||||
|
```
|
||||||
|
package main
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
GitRev = "0921ed1e"
|
||||||
|
GitVersion = "v1.1.2"
|
||||||
|
GitTimestamp = "2019-07-01T02:32:58-06:00"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
# Demo
|
# Demo
|
||||||
|
|
||||||
Generate an `xversion.go` file:
|
Generate an `xversion.go` file:
|
||||||
|
@ -31,7 +57,7 @@ go run git.rootprojects.org/root/go-gitver version
|
||||||
|
|
||||||
# QuickStart
|
# QuickStart
|
||||||
|
|
||||||
Add this to the top of your main file:
|
Add this to the top of your main file, so that it runs with `go generate`:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
//go:generate go run -mod=vendor git.rootprojects.org/root/go-gitver
|
//go:generate go run -mod=vendor git.rootprojects.org/root/go-gitver
|
||||||
|
@ -56,7 +82,7 @@ go generate -mod=vendor ./...
|
||||||
go build -mod=vendor -o example cmd/example/*.go
|
go build -mod=vendor -o example cmd/example/*.go
|
||||||
```
|
```
|
||||||
|
|
||||||
You don't have to use `mod vendor`, but I highly recommend it.
|
You don't have to use `-mod=vendor`, but I highly recommend it (just `go mod tidy; go mod vendor` to start).
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue