- Obtain an up-to-date distribution of the Go language for your OS and architecture
- Run
go version
to check that the expected version of Go is available on your$PATH
- Check out your desired branch or tag and run
make
. This will produce an executable binary namedircdog
in the base directory of the project. (All dependencies are vendored, so you will not need to fetch any dependencies remotely.)
- Ensure dependencies are up-to-date.
- Remove
-unreleased
from the version number inlib/constants.go
. - Update the changelog with new changes.
- Remove unused sections from the changelog, change the date/version number and write release notes.
- Commit the new changelog and constants change.
- Tag the release with
git tag --sign v0.0.0 -m "Release v0.0.0"
(0.0.0
replaced with the real ver number). - Build binaries using
make release
- Sign the checksums file with
gpg --sign --detach-sig --local-user <fingerprint>
- Smoke-test a built binary locally
- Point of no return:
git push origin master --tags
(this publishes the tag; any fixes after this will require a new point release)
Once it's built and released, you need to setup the new development version. To do so:
- In
irc/constants.go
, update the version number to0.0.1-unreleased
, where0.0.1
is the previous release number with the minor field incremented by one (for instance,0.9.2
->0.9.3-unreleased
). - At the top of the changelog, paste a new section with the content below.
- Commit the new version number and changelog with the message
"Setup v0.0.1-unreleased devel ver"
.
Unreleased changelog content
## Unreleased
New release of ircdog!
### Config Changes
### Security
### Added
### Changed
### Removed
### Fixed
To debug a hang, the best thing to do is to get a stack trace. Go's nice, and you can do so by running this:
$ kill -ABRT <procid>
This will kill ircdog and print out a stack trace for you to take a look at.