- Fork https://github.com/cloudtools/troposphere
- Make the code better
- Make the code pass tests
- Create a Pull Request
How to Get Help¶
We have a Google Group, cloudtools-dev, where you can ask questions and engage with the troposphere community. Issues and pull requests are always welcome!
How to Test Your Code¶
The latest test scripts can be found at Travis-CI. If you look at the details of a job, you can see what automated tests will be run against any commits to the project.
- Create a virtualenv (e.g. virtualenv ~/virtualenv/troposphere)
- Activate it: source ~/virtualenv/troposphere/bin/activate
- pip install –upgrade pip setuptools wheel
- pip install -r requirements-dev.txt
- Run tests
- pycodestyle .
- pyflakes .
- python setup.py test
- Alternatively, make can be used to run the tests, i.e. make test.
Tests are run against Python 2.7, 3.4, 3.5 and 3.6.
Contributing Example Code¶
New example code should go into troposphere/examples. The expected CloudFormation Template should be stored in troposphere/tests/examples_output/. When tests are run the output of the code in the examples directory will be compared with the expected results in the example_output directory.
Steps to release a new version¶
- Change version in troposphere/__init__.py
- Update CHANGELOG.md with changes made since last release
- Create a signed tag:
git tag --sign -m "Release 1.1.1" 1.1.1
- Create PyPI release:
python setup.py sdist upload --sign
- Push commits:
- Push tag:
git push --tags
- Update github release page: https://github.com/cloudtools/troposphere/releases
Helper to create CHANGELOG entries¶
git log --reverse --pretty=format:"%s" | tail -100 | sed 's/^/* /'
Helper to list supported resources¶
grep -h 'resource_type = "AWS::' troposphere/* | sed 's/[ ]*resource_type = "'// | cut -f1-3 -d: | sort | uniq | sed 's/^/- /'