Skip to content

Create CONTRIBUTING.md #92

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Mar 25, 2021
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## PR TITLE
> Please fill out all values and then remove any help text before submitting your PR.
> You can use [this PR](https://github.com/CrowdStrike/falconpy/pull/67) as a reference example.

- [ ] Enhancement
- [ ] Major Feature update
- [ ] Bug fixes
- [ ] Breaking Change
- [ ] Updated unit tests
- [ ] Additional documentation required

> Check the values above that match your PR and remove the remaining.

```shell
COVERAGE RESULTS SHOULD BE POSTED HERE
```

## Added features and functionality
+ Details of new features and functionality should be listed here

## Issues resolved
+ Bug fix: Bugs should be listed individually. Please link your PR to any related issues so that they are triaged properly. Add a link to this line to the issue.
+ BE EXPLICIT in what you are resolving

## Other
+ List any other details here
+ Documentation regarding your changes can also be listed here

84 changes: 84 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Contributing to this repository <!-- omit in toc -->

## Getting started <!-- omit in toc -->
_Welcome!_ We're excited you want to take part in the FalconPy community!

Please review this document for details regarding project needs, contributor requirements and our pull request process. If you have any questions, please let us know by
posting in your question in the [discussion board](https://github.com/CrowdStrike/falconpy/discussions).

### Before you begin
- Have you read the [Code of Conduct](CODE_OF_CONDUCT.md)?

### Table of Contents
- [How you can contribute](#how-you-can-contribute)
- [Pull Requests](#pull-requests)
- [Suggestions](#suggestions)

## How you can contribute
- Submit a [bug report](https://github.com/CrowdStrike/falconpy/issues).
- Join the [discussion board](https://github.com/CrowdStrike/falconpy/discussions) where you can:
- [Interact](https://github.com/CrowdStrike/falconpy/discussions/categories/general) with other members of the community
- Suggest [new functionality](https://github.com/CrowdStrike/falconpy/discussions/categories/ideas)
- Provide [feedback](https://github.com/CrowdStrike/falconpy/discussions/categories/q-a)
- [Show others](https://github.com/CrowdStrike/falconpy/discussions/categories/show-and-tell) how you are using FalconPy today
- Submit a [Pull Request](#pull-requests)

### Bug reporting is handled using GitHub's issues
We use GitHub issues to track bugs. Report a bug by opening a [new issue](https://github.com/CrowdStrike/falconpy/issues).

### GitHub's discussion board is used for questions, suggestions and feedback.
We use GitHub's discussion board functionality to handling community discussions related to
[questions](https://github.com/CrowdStrike/falconpy/discussions/categories/q-a),
[feedback](https://github.com/CrowdStrike/falconpy/discussions/categories/general)
or [functionality enhancements](https://github.com/CrowdStrike/falconpy/discussions/categories/ideas).

## 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](LICENSE) that covers the project.
If this is a concern, contact the maintainers before contributing.

### Additional contributor package requirements
The file `requirements-dev.txt` contains additional Python requirements used for developing unit tests and for accessing the integrated debugger within FalconShell.
Review this file's contents and install these requirements before proceeding:
+ flake8
+ pytest
+ pytest-cov
+ coverage
+ iPython

### Unit testing & Code coverage
+ All submitted code must also have an associated unit test that tests __all__ code paths within this new segment. (:100: percent coverage)
- If the code submission is already covered by an existing unit test, additional unit tests are not required.
- Please include coverage testing results in your Pull Request. (Example: [PR #67](https://github.com/CrowdStrike/falconpy/pull/67))
+ Unit testing is intended to prove out code formatting and functionality, not necessarily API functionality. Unit testing does not need to communicate with the API in order to provide the necessary coverage.
+ All new contributions __must__ pass unit testing before they will be merged.
- For scenarios where unit testing passes in the PR and fails post-merge, a maintainer will address the issue. If the problem is programmatic and related to code within the pull request, the merge may be reverted.
+ The util folder contains BASH scripts for triggering unit tests that match unit testing performed as part of our GitHub workflows.

### Linting
All submitted code must meet minimum linting requirements. We use `flake8` for linting. Refer to the "lint.sh" script within the util folder to review our standard linting parameters.

### Branch targeting
_Please do not target the `main` branch with your Pull Request unless directed to do so by a maintainer_. Instead, target your PR at the most recent development branch.

We use [SemVer](https://semver.org/) as our versioning scheme. (Example branch name: _ver_0.4.3_)

If you are unable to identify the current development branch, please reach out to the maintainers or post a message to the general discussion board.

### 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 [starting a new discussion](https://github.com/CrowdStrike/falconpy/discussions).
17 changes: 17 additions & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile requirements-dev.in
#
# These packages are not necessary in order to
# communicate with the CrowdStrike Falcon OAuth2 API.
#
# These packages are only required if you intend
# on using FalconShell, or are a contributor and are
# developing unit tests for the project.
coverage>=5.5 # via -r requirements-dev.in
flake8>=3.9.0 # via -r requirements-dev.in
ipython>=7.21.0 # via -r requirements-dev.in
pytest-cov>=2.11.1 # via -r requirements-dev.in
pytest>=6.2.2 # via -r requirements-dev.in