For general contribution and community guidelines, please see the community repo.
- Fork the project
- Clone your fork
- Make local changes to your fork by editing files
- Commit your changes
- Push your local changes to the remote server
- Create new Pull Request
From here your pull request will be reviewed and once you've responded to all feedback it will be merged into the project. Congratulations, you're a contributor!
To start developing and testing using our development scripts , the following tools need to be installed:
- Docker
- docker-compose
To run the test suite, run:
./bin/test.sh
This will spin up a containerized Conjur environment and build the test containers, and will run all tests.
To run the tests against a specific version of Golang, you can run the following:
./bin/test.sh 1.21
This will spin up a containerized Conjur environment and build the test containers,
and will run the tests in a golang:1.21
container
Supported arguments are 1.21
and 1.22
, with the
default being 1.22
if no argument is given.
To start a container with terminal access, and the necessary test running dependencies installed, run:
./bin/dev.sh
You can then run the following command from the container terminal to run all tests:
go test -coverprofile="output/c.out" -v ./... | tee output/junit.output;
exit_code=$?;
echo "Exit code: $exit_code"
Releases should be created by maintainers only. To create a tag and release, follow the instructions in this section.
- Review the git log and ensure the changelog contains all relevant recent changes with references to GitHub issues or PRs, if possible. Also ensure the latest unreleased version is accurate - our pipeline generates a VERSION file based on the changelog, which is then used to assign the version of the release and any release artifacts.
- Review the changes since the last tag, and if the dependencies have changed revise the NOTICES to correctly capture the included dependencies and their licenses / copyrights.
- Ensure that all documentation that needs to be written has been written by TW, approved by PO/Engineer, and pushed to the forward-facing documentation.
- Scan the project for vulnerabilities
- Merging into main/master branches will automatically trigger a release. If successful, this release can be promoted at a later time.
- Jenkins build parameters can be utilized to promote a successful release or manually trigger aditional releases as needed.
- Reference the internal automated release doc for releasing and promoting.