Skip to content

Small libraries and helpers concerning errors, logging, nsq

Notifications You must be signed in to change notification settings

Scalingo/go-utils

Repository files navigation

Various Go Utils and Helpers

Travis Status for Scalingo/go-utils

Structure of This Repository

This repository is hosting modules, each of these modules are independant, they should all have their own:

  • Dependencies (handled with go modules)
  • README.md
  • CHANGELOG.md
  • Versioning through git tags. (Example for etcd → tag will look like etcd/v1.0.0)

Release a New Version of a Module

Bump new version number in:

  • module/CHANGELOG.md
  • module/README.md

Commit, tag and create a new release:

module="XXX"
version="X.Y.Z"

git switch --create release/${module}/${version}
git add ${module}/CHANGELOG.md ${module}/README.md
git commit --message="[${module}] Bump v${version}"
git push --set-upstream origin release/${module}/${version}
gh pr create --reviewer=EtienneM --title "$(git log -1 --pretty=%B)"

Once the pull request merged, you can tag the new release.

Tag the New Release

git tag ${module}/v${version}
git push origin master ${module}/v${version}

Use One Module in Your Project

With go modules, it's as easy as go get github.com/Scalingo/go-utils/module

For instance:

go get github.com/Scalingo/go-utils/logger
go get github.com/Scalingo/go-utils/logger@v1.0.0
go get github.com/Scalingo/go-utils/logger@<branch name>