|  | 
|  | 1 | +# Contributing Guidelines | 
|  | 2 | + | 
|  | 3 | +Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional | 
|  | 4 | +documentation, we greatly value feedback and contributions from our community. | 
|  | 5 | + | 
|  | 6 | +Please read through this document before submitting any issues or pull requests to ensure we have all the necessary | 
|  | 7 | +information to effectively respond to your bug report or contribution. | 
|  | 8 | + | 
|  | 9 | + | 
|  | 10 | +## Table of Contents | 
|  | 11 | + | 
|  | 12 | +* [Table of Contents](#table-of-contents) | 
|  | 13 | +* [Reporting Bugs/Feature Requests](#reporting-bugsfeature-requests) | 
|  | 14 | +* [Contributing via Pull Requests (PRs)](#contributing-via-pull-requests-prs)  | 
|  | 15 | + * [Pulling Down the Code](#pulling-down-the-code) | 
|  | 16 | + * [Running the Unit Tests](#running-the-unit-tests) | 
|  | 17 | + * [Running the Integration Tests](#running-the-integration-tests) | 
|  | 18 | + * [Making and Testing Your Change](#making-and-testing-your-change) | 
|  | 19 | + * [Committing Your Change](#committing-your-change) | 
|  | 20 | + * [Sending a Pull Request](#sending-a-pull-request) | 
|  | 21 | +* [Finding Contributions to Work On](#finding-contributions-to-work-on) | 
|  | 22 | +* [Code of Conduct](#code-of-conduct) | 
|  | 23 | +* [Security Issue Notifications](#security-issue-notifications) | 
|  | 24 | +* [Licensing](#licensing) | 
|  | 25 | + | 
|  | 26 | +## Reporting Bugs/Feature Requests | 
|  | 27 | + | 
|  | 28 | +We welcome you to use the GitHub issue tracker to report bugs or suggest features. | 
|  | 29 | + | 
|  | 30 | +When filing an issue, please check [existing open](https://github.com/aws/aws-step-functions-data-science-sdk-python/issues) and [recently closed](https://github.com/aws/aws-step-functions-data-science-sdk-python/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20) issues to make sure somebody else hasn't already | 
|  | 31 | +reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: | 
|  | 32 | + | 
|  | 33 | +* A reproducible test case or series of steps. | 
|  | 34 | +* The version of our code being used. | 
|  | 35 | +* Any modifications you've made relevant to the bug. | 
|  | 36 | +* A description of your environment or deployment. | 
|  | 37 | + | 
|  | 38 | + | 
|  | 39 | +## Contributing via Pull Requests (PRs) | 
|  | 40 | + | 
|  | 41 | +Contributions via pull requests are much appreciated. | 
|  | 42 | + | 
|  | 43 | +Before sending us a pull request, please ensure that: | 
|  | 44 | + | 
|  | 45 | +* You are working against the latest source on the *master* branch. | 
|  | 46 | +* You check the existing open and recently merged pull requests to make sure someone else hasn't already addressed the problem. | 
|  | 47 | +* You open an issue to discuss any significant work - we would hate for your time to be wasted. | 
|  | 48 | + | 
|  | 49 | +### Pulling Down the Code | 
|  | 50 | + | 
|  | 51 | +1. If you do not already have one, create a GitHub account by following the prompts at [Join Github](https://github.com/join). | 
|  | 52 | +1. Create a fork of this repository on GitHub. You should end up with a fork at `https://github.com/<username>/aws-step-functions-data-science-sdk-python`. | 
|  | 53 | + 1. Follow the instructions at [Fork a Repo](https://help.github.com/en/articles/fork-a-repo) to fork a GitHub repository. | 
|  | 54 | +1. Clone your fork of the repository: `git clone https://github.com/<username>/aws-step-functions-data-science-sdk-python` where `<username>` is your github username. | 
|  | 55 | + | 
|  | 56 | + | 
|  | 57 | +### Running the Unit Tests | 
|  | 58 | + | 
|  | 59 | +1. Install tox using `pip install tox` | 
|  | 60 | +1. Install test dependencies, including coverage, using `pip install .[test]` | 
|  | 61 | +1. cd into the aws-step-functions-data-science-sdk-python folder: `cd aws-step-functions-data-science-sdk-python` or `cd /environment/aws-step-functions-data-science-sdk-python` | 
|  | 62 | +1. Run the following tox command and verify that all code checks and unit tests pass: `tox tests/unit` | 
|  | 63 | + | 
|  | 64 | +You can also run a single test with the following command: `tox -e py36 -- -s -vv <path_to_file><file_name>::<test_function_name>`  | 
|  | 65 | + * Note that the coverage test will fail if you only run a single test, so make sure to surround the command with `export IGNORE_COVERAGE=-` and `unset IGNORE_COVERAGE` | 
|  | 66 | + * Example: `export IGNORE_COVERAGE=- ; tox -e py36 -- -s -vv tests/unit/test_sagemaker_steps.py::test_training_step_creation_with_model ; unset IGNORE_COVERAGE` | 
|  | 67 | + | 
|  | 68 | + | 
|  | 69 | +### Running the Integration Tests | 
|  | 70 | + | 
|  | 71 | +Our CI system runs integration tests (the ones in the `tests/integ` directory), in parallel, for every Pull Request.  | 
|  | 72 | +You should only worry about manually running any new integration tests that you write, or integration tests that test an area of code that you've modified.  | 
|  | 73 | + | 
|  | 74 | +1. Follow the instructions at [Set Up the AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/polly/latest/dg/setup-aws-cli.html). | 
|  | 75 | +1. To run a test, specify the test file and method you want to run per the following command: `tox -e py36 -- -s -vv <path_to_file><file_name>::<test_function_name>` | 
|  | 76 | + * Note that the coverage test will fail if you only run a single test, so make sure to surround the command with `export IGNORE_COVERAGE=-` and `unset IGNORE_COVERAGE` | 
|  | 77 | + * Example: `export IGNORE_COVERAGE=- ; tox -e py36 -- -s -vv tests/integ/test_state_machine_definition.py::test_wait_state_machine_creation ; unset IGNORE_COVERAGE` | 
|  | 78 | + | 
|  | 79 | +### Making and Testing Your Change | 
|  | 80 | + | 
|  | 81 | +1. Create a new git branch: | 
|  | 82 | + ```shell | 
|  | 83 | + git checkout -b my-fix-branch master | 
|  | 84 | + ``` | 
|  | 85 | +1. Make your changes, **including unit tests** and, if appropriate, integration tests. | 
|  | 86 | + 1. Include unit tests when you contribute new features or make bug fixes, as they help to: | 
|  | 87 | + 1. Prove that your code works correctly. | 
|  | 88 | + 1. Guard against future breaking changes to lower the maintenance cost. | 
|  | 89 | + 1. Please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. | 
|  | 90 | +1. Run all the unit tests as per [Running the Unit Tests](#running-the-unit-tests), and verify that all checks and tests pass. | 
|  | 91 | + 1. Note that this also runs tools that may be necessary for the automated build to pass (ex: code reformatting by 'black').  | 
|  | 92 | + | 
|  | 93 | + | 
|  | 94 | +### Committing Your Change | 
|  | 95 | + | 
|  | 96 | +We use commit messages to update the project version number and generate changelog entries, so it's important for them to follow the right format. Valid commit messages include a prefix, separated from the rest of the message by a colon and a space. Here are a few examples: | 
|  | 97 | +
 | 
|  | 98 | +``` | 
|  | 99 | +feature: support VPC config for hyperparameter tuning | 
|  | 100 | +fix: fix flake8 errors | 
|  | 101 | +documentation: add MXNet documentation | 
|  | 102 | +``` | 
|  | 103 | +
 | 
|  | 104 | +Valid prefixes are listed in the table below. | 
|  | 105 | +
 | 
|  | 106 | +| Prefix | Use for... | | 
|  | 107 | +|----------------:|:-----------------------------------------------------------------------------------------------| | 
|  | 108 | +| `breaking` | Incompatible API changes. | | 
|  | 109 | +| `deprecation` | Deprecating an existing API or feature, or removing something that was previously deprecated. | | 
|  | 110 | +| `feature` | Adding a new feature. | | 
|  | 111 | +| `fix` | Bug fixes. | | 
|  | 112 | +| `change` | Any other code change. | | 
|  | 113 | +| `documentation` | Documentation changes. | | 
|  | 114 | +
 | 
|  | 115 | +Some of the prefixes allow abbreviation ; `break`, `feat`, `depr`, and `doc` are all valid. If you omit a prefix, the commit will be treated as a `change`. | 
|  | 116 | +
 | 
|  | 117 | +For the rest of the message, use imperative style and keep things concise but informative. See [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/) for guidance. | 
|  | 118 | +
 | 
|  | 119 | +
 | 
|  | 120 | +### Sending a Pull Request | 
|  | 121 | +
 | 
|  | 122 | +GitHub provides additional document on [Creating a Pull Request](https://help.github.com/articles/creating-a-pull-request/). | 
|  | 123 | +
 | 
|  | 124 | +Please remember to: | 
|  | 125 | +* Use commit messages (and PR titles) that follow the guidelines under [Committing Your Change](#committing-your-change). | 
|  | 126 | +* Send us a pull request, answering any default questions in the pull request interface. | 
|  | 127 | +* Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. | 
|  | 128 | +
 | 
|  | 129 | +
 | 
|  | 130 | +## Finding Contributions to Work On | 
|  | 131 | +
 | 
|  | 132 | +Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/aws/aws-step-functions-data-science-sdk-python/labels/help%20wanted) issues is a great place to start. | 
|  | 133 | +
 | 
|  | 134 | +
 | 
|  | 135 | +## Code of Conduct | 
|  | 136 | +
 | 
|  | 137 | +This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). | 
|  | 138 | +For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact | 
|  | 139 | +opensource-codeofconduct@amazon.com with any additional questions or comments. | 
|  | 140 | +
 | 
|  | 141 | +
 | 
|  | 142 | +## Security Issue Notifications | 
|  | 143 | +
 | 
|  | 144 | +If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. | 
|  | 145 | +
 | 
|  | 146 | +
 | 
|  | 147 | +## Licensing | 
|  | 148 | +
 | 
|  | 149 | +See the [LICENSE](https://github.com/aws/aws-step-functions-data-science-sdk-python/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. | 
|  | 150 | + | 
|  | 151 | +We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. | 
0 commit comments