Welcome! We're excited you want to take part in the Caracara community!
Please review this document for details regarding getting started with your first contribution, packages you'll need to install as a developer, and our Pull Request process. If you have any questions, please let us know by posting your question in the discussion board.
- Have you read the Code of Conduct? The Code of Conduct helps us establish community norms and how they'll be enforced.
- See something? Say something! Submit a bug report to let the community know what you've experienced or found. Bonus points if you suggest possible fixes or what you feel may resolve the issue. For example: "Attempted to use the XZY API class but it errored out. Could a more descriptive error code be returned?"
- Join the discussion board where you can:
- Interact with other members of the community
- Suggest new functionality
- Provide feedback
- Show others how you are using Caracara today
- Submit a Pull Request
We use GitHub issues to track bugs. Report a bug by opening a new issue.
When you submit code changes, your submissions are understood to be under the same Unlicense license that covers the project. If this is a concern, contact the maintainers before contributing.
Our Pull Request template provides an area for you to post the bandit analysis results from your local unit tests. This detail is generated by the command bandit ...
and is executed when you run the "run-tests.sh" BASH script found in the util folder. These results are produced only when all unit tests have passed successfully, and are required for Pull Request approval.
[main] INFO profile include tests: None
[main] INFO profile exclude tests: None
[main] INFO cli include tests: None
[main] INFO cli exclude tests: None
[main] INFO running on Python 3.9.2
Run started:2021-03-26 21:13:00.083912
Test results:
No issues identified.
Code scanned:
Total lines of code: 6415
Total lines skipped (#nosec): 0
Run metrics:
Total issues (by severity):
Undefined: 0.0
Low: 0.0
Medium: 0.0
High: 0.0
Total issues (by confidence):
Undefined: 0.0
Low: 0.0
Medium: 0.0
High: 0.0
Files skipped (0):
To read more about bandit, you can visit their documentation website.
All submitted code must meet minimum linting requirements.
- We use
flake8
andpylint
for linting. - All code that is included within the installation package must pass linting workflows when the Pull Request checks have completed.
- You will be asked to correct linting errors before your Pull Request will be approved.
- Unit tests do not need to meet this requirement, but try to keep linting errors to a minimum.
- Samples are checked for linting, but failures will not stop builds at this time.
- Refer to the
lint.sh
script within the util folder to review our standard linting parameters.
You can quickly check the linting for all code within the src folder by executing the command
util/lint.sh
from the root of the project directory.
More information about flake8 can be found here.
More information about pylint can be found here.
Please use the pull request template provided, making sure the following details are included in your request:
- Is this a breaking change?
- Are all new or changed code paths covered by unit testing?
- A complete listing of issues addressed or closed with this change.
- A complete listing of any enhancements provided by this change.
- Any usage details developers may need to make use of this new functionality.
- Does additional documentation need to be developed beyond what is listed in your Pull Request?
- Any other salient points of interest.
All Pull Requests must be approved by at least one maintainer. Once approved, a maintainer will perform the merge and execute any backend
processes related to package deployment. At this time, contributors do not have the ability to merge to the main
branch.
If you have suggestions on how this process could be improved, please let us know by posting an issue.