This file covers general concepts that apply to all AWS Crypto Tools projects. This and related guides should help you get started. For more in-depth guidance, see the contributing guide.
Getting started guides for each language:
Every user must create their own fork of the project repository. Any development must be done on that user's fork and pull requests come from a branch on the user's fork to a branch on the project fork.
We recommend that you never make changes to the branch
that you intend to make a pull request into.
In other words,
if you want to make a pull request into the development branch on the project fork,
do not make changes in the development branch on your fork.
Instead, make a new branch on your fork
that branches from development
and contains your changes.
git checkout development
git checkout -b my-awesome-changesKeeping branches separate like this
helps you and us keep track of and organize changes,
especially when multiple pull requests might be merging into the same branch
over the same time period.
For example,
if you and someone else both open a pull request to development
at the same time with different changes,
one of those pull requests will be merged first.
Once the other pull request merges,
you now need to reconcile your pull request with the merged changes.
This is simplest if your changes and the merged changes
are in separate branches
and your development branch
always has the same state as
the project fork's development branch.
Our projects use a variety of CI platforms:
- GitHub Actions : Linux, MacOS, and Windows CI platform tightly integrated with GitHub.
- TravisCI Linux and MacOS CI platform. NOTE: We do not frequently use TravisCI for MacOS testing.
- AWS CodeBuild Linux and Windows CI platform.
- AppVeyor : Windows CI platform. NOTE: Usually only used on older projects that we have not migrated to something else yet.