# Contributor guide

Receptor is an open source project that lives at https://github.com/ansible/receptor

## Code of conduct

All project contributors must abide by the Ansible Code of Conduct.

## Contributing

Receptor welcomes community contributions! See the Developer guide for information about receptor development.

### Pull requests

Contributions to Receptor go through the Github pull request process.

An initial checklist for your change to increase the likelihood of acceptance: - No issues when running linters/code checkers - No issues from unit/functional tests - Write descriptive and meaningful commit messages. See How to write a Git commit message and Learn to write good commit message and description.

## Release process

Before starting the release process verify that make test and go test tests/goroutines/simple_config.go tests pass.

Maintainers have the ability to run the Stage Release workflow. Running this workflow will:

- Build and push the container image to ghcr.io. This serves as a staging environment where the image can be tested.

- Create a draft release at https://github.com/ansible/receptor/releases

After the draft release has been created, edit it and populate the description. Once you are done, click “Publish release”.

After the release is published, the Promote Release workflow will run automatically. This workflow will:

- Publish `receptorctl` to PyPI.

- Pull the container image from ghcr.io, re-tag, and push to Quay.io.

- Build binaries for various OSes/platforms, and attach them to the release.

Note

If you need to re-run Stage Release more than once, delete the tag beforehand to prevent the workflow from failing.