- Obtain an up-to-date distribution of the Go language for your OS and architecture
- Run
go versionto 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 namedircdogin 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
-unreleasedfrom 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.0replaced 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.1is 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
### FixedTo 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.