Thank you for considering contributing to ejson2env!
-
Review this document and the Code of Conduct.
-
Setup a Go development environment if you haven't already.
-
Get the Shopify version the project by using Go get:
$ go get -u github.com/Shopify/ejson2env/cmd/ejson2env
-
Fork this project on GitHub.
-
Setup your fork as a remote for your project:
$ cd $GOPATH/src/github.com/Shopify/ejson2env
$ git remote add <your username> <your fork's remote path>
- Create your feature branch based off of the
master
branch. (It might be worth doing agit pull
if you haven't done one in a while.)
$ git checkout master
$ git pull
$ git checkout -b <the name of your branch>
-
Code/write! ⌨️
- If working on code, please run
go fmt
andgolangci-lint
before opening a PR againstmain
.
- If working on code, please run
-
Push your changes to your fork's remote:
$ git push -u <your username> <the name of your branch>
-
Sign the Contributor License Agreement.
-
Open a PR against Shopify/ejson2env!
Binaries and packages are built with GoReleaser. GoReleaser runs when a new version is tagged.
Before releasing a new version, bump /VERSION
, commit the changes and open a PR to merge the changes into main
.
Tag the commit in main
using git tag vx.y.z
, e.g. v1.0.0
.
In order to release the rubygem, find someone in the owners list at https://rubygems.org/gems/ejson2env and ask them to add you, then:
- Download the gem file from the release
gem push ejson2env-x.y.z.gem
Releasing the homebrew package is more awkward. There is surely a more efficient way to do this but current process is:
dev clone homebrew-shopify
- Edit
ejson2env.rb
, changing the URL to reflect the new version. Also remove thebottle do
paragraph. - Run
brew install ./ejson2env.rb
and change thesha256
line to the SHA that is printed as an error. cd /usr/local/Homebrew/Library/Taps/shopify/homebrew-shopify
cp $(dev project-path homebrew-shopify)/ejson2env.rb .
brew install --build-bottle ejson2env
brew bottle ejson2env
- This will generate a file called
ejson2env--vx.y.z.high_sierra.tar.gz
. Rename it, turning--
into-
, e.g.ejson2env-vx.y.z.high_sierra.tar.gz
. - Find some public place to upload this file. I use a personal S3 bucket but there are definitely better ways.
- reset your changes in the homebrew tap and
dev cd homeshop
- Copy the
bottle do
paragraph printed by thebrew bottle
command intoejson2env.rb
, and addroot_url "https://...
. The final expected URL is going to be"#{root_url}/ejson2env...tar.gz
. - Commit and push directly to master.
brew update && brew uninstall ejson2env && brew install ejson2env
. If this didn't work, or didn't correctly install from the bottle (i.e. took more than 10 seconds to install), troubleshoot, or revert.