Skip to content

Latest commit

 

History

History
107 lines (87 loc) · 5.68 KB

CONTRIBUTING.md

File metadata and controls

107 lines (87 loc) · 5.68 KB

Contributing to this repository

Getting started

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.

Before you begin

  • Have you read the Code of Conduct? The Code of Conduct helps us establish community norms and how they'll be enforced.

Table of Contents

How you can contribute

  • 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:
  • Submit a Pull Request

Bug reporting is handled using GitHub's issues

We use GitHub issues to track bugs. Report a bug by opening a new issue.

Pull Requests

All contributions will be submitted under the Unlicense license

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.

Posting bandit results to Pull Requests

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.

Example bandit analysis results
[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):

More details regarding Bandit

To read more about bandit, you can visit their documentation website.

Linting

All submitted code must meet minimum linting requirements.

  • We use flake8 and pylint 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.

Pull Request template

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.

Approval / Merging

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.

Suggestions

If you have suggestions on how this process could be improved, please let us know by posting an issue.