d574fe05ba
Signed-off-by: Matt Moyer <moyerm@vmware.com>
133 lines
5.3 KiB
Markdown
133 lines
5.3 KiB
Markdown
# Contributing to Pinniped
|
|
|
|
Contributions to Pinniped are welcome. Here are some things to help you get started.
|
|
|
|
1. Please see the [Code of Conduct](code_of_conduct.md).
|
|
1. Learn about the [scope](scope.md) of the project.
|
|
1. Coming soon: details about how to legally contribute to the project, including CLA/DCO details.
|
|
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).
|
|
|
|
## Meeting with the Maintainers
|
|
|
|
The maintainers aspire to hold a video conference every other week with the Pinniped community.
|
|
Any community member may request to add topics to the agenda by contacting a [maintainer](../MAINTAINERS.md)
|
|
in advance, or by attending and raising the topic during time remaining after the agenda is covered.
|
|
Typical agenda items include topics regarding the roadmap, feature requests, bug reports, pull requests, etc.
|
|
A [public document](https://docs.google.com/document/d/1qYA35wZV-6bxcH5375vOnIGkNBo7e4OROgsV4Sj8WjQ)
|
|
tracks the agendas and notes for these meetings.
|
|
|
|
These meetings are currently scheduled for the first and third Thursday mornings of each month
|
|
at 8 AM Pacific Time, using this [Zoom meeting](https://VMware.zoom.us/j/94638309756?pwd=V3NvRXJIdDg5QVc0TUdFM2dYRzgrUT09).
|
|
If the meeting day falls on a US holiday, please consider that occurrence of the meeting to be canceled.
|
|
|
|
## Bugs
|
|
|
|
To file a bug report, please first open an
|
|
[issue](https://github.com/vmware-tanzu/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/vmware-tanzu/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/vmware-tanzu/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/vmware-tanzu/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.
|
|
|
|
## Issues
|
|
|
|
Github [issues](https://github.com/vmware-tanzu/pinniped/issues) can also be used for general
|
|
inquiries and discussion regarding the project.
|
|
|
|
Need an idea for a project to get started contributing? Take a look at the open
|
|
[issues](https://github.com/vmware-tanzu/pinniped/issues).
|
|
Also check to see if any open issues are labeled with
|
|
["good first issue"](https://github.com/vmware-tanzu/pinniped/labels/good%20first%20issue)
|
|
or ["help wanted"](https://github.com/vmware-tanzu/pinniped/labels/help%20wanted).
|
|
|
|
## CLA
|
|
|
|
We welcome contributions from everyone but we can only accept them if you sign
|
|
our Contributor License Agreement (CLA). If you would like to contribute and you
|
|
have not signed it, our CLA-bot will walk you through the process when you open
|
|
a Pull Request. For questions about the CLA process, see the
|
|
[FAQ](https://cla.vmware.com/faq) or submit a question through the GitHub issue
|
|
tracker.
|
|
|
|
## Building
|
|
|
|
The [Dockerfile](../Dockerfile) at the root of the repo can be used to build and
|
|
package the code. After making a change to the code, rebuild the docker image with the following command.
|
|
|
|
```bash
|
|
# From the root directory of the repo...
|
|
docker build .
|
|
```
|
|
|
|
## Testing
|
|
|
|
### Running Lint
|
|
|
|
```bash
|
|
./hack/module.sh lint
|
|
```
|
|
|
|
### Running Unit Tests
|
|
|
|
```bash
|
|
./hack/module.sh units
|
|
```
|
|
|
|
### Running Integration Tests
|
|
|
|
```bash
|
|
./hack/prepare-for-integration-tests.sh && source /tmp/integration-test-env && go test -v -count 1 ./test/...
|
|
```
|
|
|
|
The `./hack/prepare-for-integration-tests.sh` script will create a local
|
|
[`kind`](https://kind.sigs.k8s.io/) cluster on which the integration tests will run.
|
|
|
|
### Observing Tests on the Continuous Integration Environment
|
|
|
|
CI will not be triggered on a pull request until the pull request is reviewed and
|
|
approved for CI by a project [maintainer](../MAINTAINERS.md). Once CI is triggered,
|
|
the progress and results will appear on the Github page for that
|
|
[pull request](https://github.com/vmware-tanzu/pinniped/pulls) as checks. Links
|
|
will appear to view the details of each check.
|
|
|
|
## Documentation
|
|
|
|
Any pull request which adds a new feature or changes the behavior of any feature which was previously documented
|
|
should include updates to the documentation. All documentation lives in this repository. This project aspires to
|
|
follow the Kubernetes [documentation style guide](https://kubernetes.io/docs/contribute/style/style-guide).
|
|
|
|
## Pre-commit Hooks
|
|
|
|
This project uses [pre-commit](https://pre-commit.com/) to agree on some conventions about whitespace/file encoding.
|
|
|
|
```bash
|
|
$ brew install pre-commit
|
|
[...]
|
|
$ pre-commit install
|
|
pre-commit installed at .git/hooks/pre-commit
|
|
```
|
|
|
|
## Becoming a Pinniped Maintainer
|
|
|
|
Regular contributors who are active in the Pinniped community and who have contributed at least several
|
|
significant pull requests may be considered for promotion to become a maintainer upon request. Please
|
|
contact an existing [maintainer](../MAINTAINERS.md) if you would like to be considered.
|