We are suggesting to use lets-dev name for development binary, so you could have stable lets version untouched.

To build a binary:

go build -o lets-dev *.go

To install in system

go build -o lets-dev *.go && sudo mv ./lets-dev /usr/local/bin/lets-dev

Or if you already have lets installed in your system:

lets build-and-install [--path=<path>]

path - your custom executable $PATH, defaults to /usr/local/bin

After install - check version of lets - lets-dev --version - it should be development

It will install lets-dev to /usr/local/bin/lets-dev, or wherever you`ve specified in path, and set version to development with current tag and timestamp


To run all tests:

lets test

To run unit tests:

lets test-unit

To get coverage:

lets coverage

To test lets output we are using bats - bash automated testing:

lets test-bats
# or run one test
lets test-bats global_env.bats


To release a new version:

lets release 0.0.1 -m "implement some new feature"

This will create an annotated tag with 0.0.1 and run git push --tags


lets releases must be backward compatible. That means every new lets release must work with old configs.

For situations like e.g. new functionality, there is a version in lets.yaml which specifies minimum required lets version.

If lets version installed on the user machine is less than the one specified in config it will show and error and ask the user to upgrade lets version.