Contributing

Getting Started

Warchaeology is written in go and at least v1.16 should be installed.

Clone the repository

$ git clone https://github.com/nlnwa/warchaeology.git
$ cd warchaeology

Compile

$ go -o warc build .

Generate dist files

This step is automatically run by Github actions when a release is done. The description here is only for testing goreleaser configuration.

Install goreleaser. Then run:

$ goreleaser release --snapshot --rm-dist

Documentation

Documentation is generated with Hugo. A local installation is not needed unless you want to view generated documentation on localhost.

Start a webserver serving documentation on http://localhost:1313/

$ hack/doc/serve.sh

Source files for documentation are located in docs/content. The files in docs/content/cmd (except _index.md) are generated from the src code and should not be edited.

Release

Before doing a release, ensure that your local repository is on the main branch and is up to date.

$ git checkout main
$ git pull

Run hack/release/create.sh with the release version as parameter. The version should NOT contain a ‘v’ prefix. For example to release v1.0.2, run:

$ hack/release/create.sh 1.0.2

This will recreate the command line documentation, commit it and tag the release. The next thing you need to do is to push the release.

$ git push https://github.com/nlnwa/warchaeology.git v1.0.2