Skip to content

Commit

Permalink
Create CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
eerkunt authored Oct 8, 2019
1 parent 1b4dd19 commit 123c0f3
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Contributing to terraform-compliance

**First**: if you're unsure or afraid of anything, just ask or submit the issue or pull request anyways.
You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely
asked to change something. We appreciate any sort of contributions, and don't want a wall of rules to get
in the way of that.

However, for those individuals who want a bit more guidance on the best way to contribute to the project,
read on. This document will cover what we're looking for. By addressing all the points we're looking for,
it raises the chances we can quickly merge or address your contributions.

## Reporting an Issue

Currently `terraform-compliance` supports 3 types of issue types ;

- [Bug Reporting](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=eerkunt&labels=bug&template=bug_report.md&title=)
- [Feature Request](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
- [General Question](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=&labels=&template=general-question.md&title=)

If you are going to reporting something else, please create a [General Question](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=&labels=&template=general-question.md&title=) issue.

## Pull Request Process

Normally, we expect to have either a [Bug Reporting](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=eerkunt&labels=bug&template=bug_report.md&title=) or
a [Feature Request](https://github.com/eerkunt/terraform-compliance/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=) before
having a Pull Request for in the codebase that will effect any functionality. This is not a hard requirement, you are free
to create a new Pull Request if you find something is wrong or missing within the codebase or documentation.

There is few mandatory requirement for the Pull Requests ;

1. All code changes that effects functionality MUST have [tests](https://github.com/eerkunt/terraform-compliance/tree/master/tests) implemented within the same Pull Request.
2. Any functionality change must be recorded within the [CHANGELOG](https://github.com/eerkunt/terraform-compliance/blob/master/CHANGELOG.md).
3. Your Pull Request must pass the CI in order to be processed.

Usually, Pull Requests are being processed within the same day, worst case your PR will wait for 1-2 days.

## Code Structure

```
.
├── terraform_compliance
│   ├── common
│   ├── extensions
│   └── steps
├── docs
│   └── pages
│   ├── Examples
│   ├── bdd-references
│   ├── contribution
│   ├── installation
│   ├── usage
│   └── using-in-a-pipeline
└── tests
└── terraform_compliance
├── common
├── extensions
└── steps
```

All functionality defined in `terraform_compliance` directory where all test defined on `tests` with the same structure. So if you
change something in the `terraform_compliance/steps`, then the tests must exist in `tests/steps`.

`terraform-compliance` uses [radish](http://radish-bdd.io/) for the BDD framework, with lots of [extensions](https://github.com/eerkunt/terraform-compliance/tree/master/terraform_compliance/extensions) written to parse and process
terraform files. Most of the functionality is described in https://terraform-compliance.com.

## Release Cycle

Usually after every functionality change we try to release a new package immediately.

0 comments on commit 123c0f3

Please sign in to comment.