Skip to content

Commit

Permalink
Merge pull request #113 from deepmind/release-automation
Browse files Browse the repository at this point in the history
Added CHANGELOG.md and automating the release process
  • Loading branch information
adrianchifor authored May 31, 2018
2 parents 179650d + 27e5d2d commit 79140b2
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
*.pyc
*.swp
*.bak
build/
dist/
kapitan.egg-info/
Expand Down
100 changes: 100 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
## 0.16.4:
- Fixed deep_get recursion and search (#108)
- Customizable indentation of yaml/json (#110)

## 0.16.3:
- Allow recursive search and globbing in searchvar and inventory commands (#97)
- terraform in CI image (#98)
- Updated kube.libjsonnet and fixed secrets example (#101)
- Added secrets info in docs
- Updates to GPG backend functions (#103):
- RSA private keys `?{gpg:common/rsa.key|rsa}`
- Support for pipes `?{gpg:mysql/root/password|randomstr|base64}`
- SHA256 function `?{gpg:mysql/root/password|randomstr|sha256}`
- Deprecated `|randomstrb64` in favor of `|randomstr|base64`

## 0.16.2:
- Do not escape forward slashes in `json.dump` (#92)
- sha256 jsonnet function (#94)

## 0.16.1:
- Fix for #81
- Clearer message for version check (#82)
- Support for jinja2 'do' extension (#89)

## 0.16.0:
- Updated reclass
- (https://github.com/deepmind/kapitan/pull/78) Support for creating a target secret on compile time, if the secret does not already exist:
```
?{gpg:path/to/new_secret|randomstr:32}
```
If `path/to/new_secret` does not exist under `secrets_path` it evaluates `randomstr:32`, which returns a 32 byte-log random string generated by [secrets.token_urlsafe](https://docs.python.org/3/library/secrets.html#secrets.token_urlsafe) and creates the secret with its content.
- (https://github.com/deepmind/kapitan/pull/79) Support for YAML C bindings to improve compilation performance.

If you're using the pip version of Kapitan, you can benefit from YAML C bindings support by running:

Linux: `sudo apt-get install python3-yaml`
Mac: `brew install libyaml`

## 0.15.0:
- Updates to `deepmind/kapitan:ci` Docker image
- `kapitan secrets --write` and `kapitan secrets --update-targets` are now consistent in terms of the recipients list #67
- Significant performance improvement to `kapitan compile` #71
- `kapitan compile` now writes the version to `.kapitan` and future executions will check if the last used kapitan version is <= than the current kapitan version, to keep compilations consistent. You can skip version check by doing `kapitan compile --ignore-version-check`. For more info see #57 and #72

## 0.14.0:
- Kapitan now requires python 3.6
- Fixed dockerfile to ensure delegated volumes (#47)
- Fixed missing target compiled directory
- Target compilation error improvements (#62)
- gnupg updated to 0.4.2
- Inventory target pattern command parsing improvements

## 0.13.0:
- Added --pattern feature to inventory cli (https://github.com/deepmind/kapitan/issues/41)
- now using python3 lru_cache instead of memoize
- fixed searchvar (https://github.com/deepmind/kapitan/issues/40)

## 0.12.0:
- moved to python 3 (python 2 should still work but no longer supported)
- updated to jsonnet v0.10.0
- new yaml jinja2 filter
- target secrets support (https://github.com/deepmind/kapitan/pull/36)
- more tests

## 0.11.0:
- Supports compiling specific targets
- Breaking change: non inventory target files are gone

## 0.10.0:
- Supports reading targets from the inventory as well as target files
- Breaking change: the keys in compile items changed, see https://github.com/deepmind/kapitan/pull/22

## 0.9.19:
- checks for gpg key expiry
- allow base64 encoding content for secrets
- support for revealing files in directories

## 0.9.18:
- fixes a bug that overwrites the output_path if it is set to '.'

## 0.9.17:
- breaking change: the compile command will compile all targets found (https://github.com/deepmind/kapitan/pull/16)
- log/print friendlier error messages avoiding tracebacks for known failure behaviours (https://github.com/deepmind/kapitan/pull/15) (fixes https://github.com/deepmind/kapitan/issues/11)

## 0.9.16:
- gpg secrets support
- compiled secret tags
- new --reveal flag for compile sub-command
- new --no-verify for secrets sub-command
- new yaml_dump() native jsonnet function

## 0.9.15:
- Documentation Improvements
- New --version flag
- Now using jsonnet 0.9.5
- inventory_global in jinja and jsonnet
- Packaged lib/kapitan.libjsonnet

## 0.9.14:
Initial public version
47 changes: 47 additions & 0 deletions make_release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash

set -e

if [[ "$#" -ne 1 ]]; then
echo "Please pass version to release (e.g. ./make_release.sh 0.16.5)"
exit 1
fi

VERSION=$1

sed -i.bak "s/VERSION =.*/VERSION = '$VERSION'/g" ./kapitan/version.py
echo "Updated version on ./kapitan/version.py to $VERSION"

echo "Making commit and tag for new release..."

BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "master" ]]; then
echo "Not on master branch, aborting."
exit 1
fi

echo "Pulling first..."
git pull

echo "Committing..."
git add ./kapitan/version.py
git commit -m "Version incremenet $VERSION"

echo "Tagging..."
git tag "v$VERSION" master

echo "Pushing..."
git push origin master && git push origin "v$VERSION"

echo "Making release to PyPi..."
# Install deps
pip3 install --user --upgrade setuptools wheel twine
# Package kapitan
rm -r dist/ build/
python3 setup.py sdist bdist_wheel
# Upload kapitan to PyPi
twine upload dist/*

echo "Done"
echo
echo "Don't forget to update CHANGELOG.md and the tag release message"

0 comments on commit 79140b2

Please sign in to comment.