Skip to content

Latest commit

 

History

History
112 lines (71 loc) · 3.71 KB

CONTRIBUTING.rst

File metadata and controls

112 lines (71 loc) · 3.71 KB

Contributing to Sceptre

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behaviour to [email protected].

How to Contribute

Report Bugs

Before submitting a bug, please check our issues page to see if it's already been reported.

When reporting a bug, fill out the required template, and please include as much detail as possible as it helps us resolve issues faster.

Enhancement Proposal

Enhancement proposals should:

  • Use a descriptive title.
  • Provide a step-by-step description of the suggested enhancement.
  • Provide specific examples to demonstrate the steps.
  • Describe the current behaviour and explain which behaviour you expected to see instead.
  • Keep the scope as narrow as possible, to make it easier to implement.

Remember that this is a volunteer-driven project, and that contributions are welcome.

Contributing Code

Contributions should be made in response to a particular GitHub Issue. We find it easier to review code if we've already discussed what it should do, and assessed if it fits with the wider codebase.

A good pull request:

  • Is clear.
  • Works across all supported version of Python.
  • Complies with the existing codebase style (flake8, pylint).
  • Includes docstrings and comments for unintuitive sections of code.
  • Includes documentation for new features.
  • Includes tests cases that demonstrates the previous flaw that now passes with the included patch, or demonstrates the newly added feature. Tests should have 100% code coverage.
  • Is appropriately licensed (Apache 2.0).

Get Started

  1. Fork the sceptre repository on GitHub.

  2. Clone your fork locally:

    $ git clone [email protected]:your_name_here/sceptre.git
  3. Install your local copy into a virtualenv. Assuming you have virtualenv installed, this is how you set up your fork for local development:

    $ cd sceptre/
    $ virtualenv env
    $ source env/bin/activate
    $ pip install -r requirements_dev.txt
    $ pip install -r requirements_tests.txt
    $ pip install -e .
  4. Create a branch for local development:

    $ git checkout -b sptr-<GitHub issue number>
  5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:

    $ make lint
    $ make test
    $ make test-all
    $ make test-integration
    $ make coverage  # coverage should be 100%
  6. Make sure the changes comply with the pull request guidelines in the section on Contributing Code.

  7. Commit your changes:

    $ git add .
    $ git commit

Commit messages should follow these guidelines.

Push your branch to GitHub:

$ git push origin <description of pull request>
  1. Submit a pull request through the GitHub website.

Credits

This document took inspiration from the CONTRIBUTING files of the Atom and Boto3 projects.