Contributing
There are plenty of options, that are not covered by the script yet. If you want to add a new feature, please read ahead. Bugfixes, documentation improvements and general suggestions are also more than welcome!
General workflow
Unless you're fixing a typo or want to fix something trivial, please stick to the following steps:
- Create an issue in GitHub, describing the problem or the feature request, so that we can disuss it and track the change.
- If you want to work on the issue yourself, please state so in the description or add a relevant comment.
- Fork the repository, commit your changes (check the brief coding standards section below) and open a pull request:
- Try to follow the seven golden rules when crafting your commit message(s).
- In case you wonder about existing commits:
✨ ,🔖 and so on, actually have a meaning. That being said, as long as the patch makes sense, it's not a strict requirement to follow it. Just make sure that the commit description is descriptive enough.
Coding standards
Before you open a pull request:
- Rebase your branch against
upstream/master
. Squash any unncessary commits, if possible (git rebase -i ...
). - Make sure that any new features and/or changes are reflected in the
README.md
file. - Make sure that the code is formatted properly:
pipenv run autopep8 -ir .
- Make sure that all unit tests are passing:
pipenv run pytest
NOTE: You'll need to create a test profile using test_credentials.sh.
- If you want to check the script in action, you can use the following command:
pipenv run python -m aws_ssh_sync.main
- If you change any dependencies, then it might be a good idea to build and install a
pip
package locally. Check instructions in RELEASE.md for more details.