Skip to content

Latest commit

 

History

History
107 lines (69 loc) · 3.54 KB

RELEASE.md

File metadata and controls

107 lines (69 loc) · 3.54 KB

Cutting a CLI Release

Bootstrap Cross-Compilation for Go

This only has to be done once.

Change directory to the go source. Then run the bootstrap command for each operating system and architecture.

$ cd `which go`/../../src
$ sudo GCO_ENABLED=0 GOOS=windows GOARCH=386 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=darwin GOARCH=386 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=linux GOARCH=386 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=darwin GOARCH=amd64 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 ./make.bash --no-clean
$ sudo GCO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 ./make.bash --no-clean

Update the Changelog

Make sure all the recent changes are reflected in the "next release" section of the Changelog. Make this a separate commit from bumping the version.

Bump the version

Edit the Version constant in exercism/main.go, and edit the Changelog.

All the changes in the "next release" section should be moved to a new section that describes the version number, and gives it a date.

The "next release" section should contain only "Your contribution here".

Note: It's useful to add the version to the commit message when you bump it: e.g. Bump version to v2.3.4.

Generate the Binaries

$ rm release/*
$ CGO_ENABLED=0 bin/build-all

Cut Release on GitHub

Go to the exercism/cli "new release" page.

Describe the release, select a specific commit to target, name the version v{VERSION}, where VERSION matches the value of the Version constant.

Upload all the binaries from release/*.

Paste the release text and describe the new changes (tail -n +57 RELEASE.md | head -n 16 | pbcopy):

### Exercism Command-Line Interface (CLI)

Exercism takes place in two places: the discussions happen on the website, and you work on exercises locally. The CLI bridges the gap, allowing you to fetch exercises and submit solutions to the site.

This is a stand-alone binary, which means that you don't need to install any particular language or environment in order to use it.

To install, download the archive that matches your operating system and architecture, unpack the archive, and put the binary somewhere on your path.

You will need to configure the CLI with your [Exercism API Key](http://exercism.io/account/key) before submitting.

For more detailed instructions, see the [CLI page on Exercism](http://exercism.io/cli).

#### Recent Changes

* ABC...
* XYZ...

Update Homebrew

This is helpful for the (many) Mac OS X users.

First, get a copy of the latest tarball of the source code:

cd ~/tmp && wget https://github.com/exercism/cli/archive/vX.Y.Z.tar.gz

Get the SHA256 of the tarball:

shasum -a 256 vX.Y.Z.tar.gz

Update the homebrew formula:

cd $(brew --repository)
git checkout master
brew update
brew bump-formula-pr --strict exercism --url=https://github.com/exercism/cli/archive/vX.Y.Z.tar.gz --sha256=$SHA

For more information see their contribution guidelines.

Update the Docs Site

If there are any significant changes, we should describe them on cli.exercism.io.

The codebase lives at exercism/cli-www.