diff --git a/README.md b/README.md index 84a62ee..1443077 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,7 @@ go get github.com/planetlabs/go-stac ``` See the [reference documentation](https://pkg.go.dev/github.com/planetlabs/go-stac) for example usage in a Golang project. + +## Development + +See the [development doc](./development.md) for information on developing and releasing the `go-stac` library. diff --git a/development.md b/development.md new file mode 100644 index 0000000..d4c0f1b --- /dev/null +++ b/development.md @@ -0,0 +1,26 @@ +# Development + +See the [`go.mod`](./go.mod) file for the version of Go used for development. + +Commits pushed to the default branch will be linted and tested. You can run the linter locally before pushing a commit by installing [`golangci-lint`](https://golangci-lint.run/) (see the [`test.yml`](./.github/workflows/test.yml) workflow file for the exact version): + +```shell +golangci-lint run -verbose +``` + +To run the tests: + +```shell +go test ./... +``` + +## Releasing + +Releases are created by pushing a tag named like `v{major}.{minor}.{patch}`. After determining the appropriate release number, create and push a release tag from the default branch: + +```shell +git tag v1.2.3 +git push origin v1.2.3 +``` + +After the [release workflow](./.github/workflows/release.yml) runs, this will create a [draft release](https://github.com/planetlabs/go-stac/releases) on GitHub. After making any edits to the release notes, publish the draft release.