ContainerImage.Pinniped/doc/contributing.md

81 lines
2.2 KiB
Markdown

# Contributing to Pinniped
We would love for you to contribute to Pinniped! Here is a basic list of things
you may want to know to get started.
1. Check out our [Code of Conduct](code-of-conduct.md).
1. Learn about the [scope](scope.md) of our project.
1. Coming soon: details about how to legally contribute to the project!
1. See below for how to [file a bug report](#bugs).
1. See below for how to [suggest a feature](#features).
1. See below for how to [build the code](#building).
1. See below for how to [run the tests](#testing).
## Bugs
To file a bug report, please first open an
[issue](https://github.com/suzerain-io/pinniped/issues/new?template=bug_report.md). The project team
will work with you on your bug report.
Once the bug has been validated, a [pull
request](https://github.com/suzerain-io/pinniped/compare) can be opened to fix
the bug.
For specifics on what to include in your bug report, please follow the
guidelines in the issue and pull request templates!
## Features
To suggest a feature, please first open an
[issue](https://github.com/suzerain-io/pinniped/issues/new?template=feature-proposal.md) and tag it with
`proposal`. The project team will work with you on your feature request.
Once the feature request has been validated, a [pull
request](https://github.com/suzerain-io/pinniped/compare) can be opened to
implement the feature.
For specifics on what to include in your feature request, please follow the
guidelines in the issue and pull request templates!
## Building
The [Dockerfile](../Dockerfile) at the root of the repo is how we build and
package the `pinniped-server` code. After you make a change to the code, you can
rebuild that docker image with the following command.
```cmd
# From the root of the repo...
docker build .
```
## Testing
### Running Lint
```cmd
./hack/module.sh lint
```
### Running Unit Tests
```cmd
./hack/module.sh unittest
```
### Running Integration Tests
More details coming soon!
### Pre-commit hooks
This project uses the [pre-commit] to agree on some conventions about whitespace/file encoding.
```cmd
$ brew install pre-commit
[...]
$ pre-commit install
pre-commit installed at .git/hooks/pre-commit
```
[pre-commit]: https://pre-commit.com/