From 4bfb0d8a82c43e3ae96e325754636631502a1672 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Sat, 3 Jan 2026 14:05:53 +0000 Subject: [PATCH 1/8] docs(contributing): expand contribution guidelines with new sections and details Signed-off-by: Mohammed Firdous --- .../contribution-guidelines/contributing.md | 79 ++++++++++++++++++- .../contribution-guidelines/contributing.md | 79 ++++++++++++++++++- 2 files changed, 152 insertions(+), 6 deletions(-) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing.md b/docs/content/en/docs-dev/contribution-guidelines/contributing.md index 87eb1a51c0..a2c2247737 100644 --- a/docs/content/en/docs-dev/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-dev/contribution-guidelines/contributing.md @@ -1,9 +1,82 @@ --- -title: "Contributing" -linkTitle: "Contributing" +title: "Contribute to PipeCD" +linkTitle: "Contribute to PipeCD" weight: 1 description: > This page describes how to contribute to PipeCD. --- -PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! [Contributing to PipeCD](https://github.com/pipe-cd/pipecd/tree/master/CONTRIBUTING.md) is the best place to start with. \ No newline at end of file +PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! + +## Ways to contribute + +There are many ways to contribute, and many don't involve writing code: + +- **Use PipeCD** — Follow the [Quickstart](/docs/quickstart/) and report issues you encounter +- **Triage issues** — Browse [open issues](https://github.com/pipe-cd/pipecd/issues), provide workarounds, ask for clarification, or suggest labels +- **Fix bugs** — Issues labeled [good first issue](https://github.com/pipe-cd/pipecd/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) are great starting points +- **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) +- **Write blog posts** — See [Contribute to PipeCD Blogs](../contributing-blogs/) +- **Build plugins** — See [Contribute to piped Plugins](../contributing-plugins/) + +## Join the community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. + +### Community meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +## Development setup + +PipeCD consists of several components: + +| Component | Description | +|-----------|-------------| +| [cmd/pipecd](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipecd) | Control Plane — manages deployment data and provides gRPC API | +| [cmd/piped](https://github.com/pipe-cd/pipecd/tree/master/cmd/piped) | Piped agent — runs in your cluster | +| [cmd/pipectl](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipectl) | Command-line tool | +| [web](https://github.com/pipe-cd/pipecd/tree/master/web) | Web UI | +| [docs](https://github.com/pipe-cd/pipecd/tree/master/docs) | Documentation | + +### Quick start + +```bash +# Update dependencies +make update/go-deps +make update/web-deps + +# Start local cluster and registry +make up/local-cluster + +# Run Control Plane +make run/pipecd + +# Port forward (in another terminal) +kubectl port-forward -n pipecd svc/pipecd 8080 + +# Access UI at http://localhost:8080?project=quickstart +# Login: hello-pipecd / hello-pipecd +``` + +For full setup instructions including Piped agent, see the [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md#development). + +## Pull request process + +1. **Claim the issue** — Comment "I'd like to work on this" to get assigned +2. **Investigate first** — Discuss your approach in the issue before coding +3. **Keep PRs small** — Aim for ~300 lines of diff +4. **Sign off commits** — Use `git commit -s` for DCO compliance +5. **Run checks** — Execute `make check` before submitting + +All PRs should target the `master` branch. + +## Code of Conduct + +PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). + +## Full contributing guide + +For complete details on development, commit messages, licensing, and more, see [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md). diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md index 87eb1a51c0..a2c2247737 100644 --- a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md @@ -1,9 +1,82 @@ --- -title: "Contributing" -linkTitle: "Contributing" +title: "Contribute to PipeCD" +linkTitle: "Contribute to PipeCD" weight: 1 description: > This page describes how to contribute to PipeCD. --- -PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! [Contributing to PipeCD](https://github.com/pipe-cd/pipecd/tree/master/CONTRIBUTING.md) is the best place to start with. \ No newline at end of file +PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! + +## Ways to contribute + +There are many ways to contribute, and many don't involve writing code: + +- **Use PipeCD** — Follow the [Quickstart](/docs/quickstart/) and report issues you encounter +- **Triage issues** — Browse [open issues](https://github.com/pipe-cd/pipecd/issues), provide workarounds, ask for clarification, or suggest labels +- **Fix bugs** — Issues labeled [good first issue](https://github.com/pipe-cd/pipecd/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) are great starting points +- **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) +- **Write blog posts** — See [Contribute to PipeCD Blogs](../contributing-blogs/) +- **Build plugins** — See [Contribute to piped Plugins](../contributing-plugins/) + +## Join the community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. + +### Community meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +## Development setup + +PipeCD consists of several components: + +| Component | Description | +|-----------|-------------| +| [cmd/pipecd](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipecd) | Control Plane — manages deployment data and provides gRPC API | +| [cmd/piped](https://github.com/pipe-cd/pipecd/tree/master/cmd/piped) | Piped agent — runs in your cluster | +| [cmd/pipectl](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipectl) | Command-line tool | +| [web](https://github.com/pipe-cd/pipecd/tree/master/web) | Web UI | +| [docs](https://github.com/pipe-cd/pipecd/tree/master/docs) | Documentation | + +### Quick start + +```bash +# Update dependencies +make update/go-deps +make update/web-deps + +# Start local cluster and registry +make up/local-cluster + +# Run Control Plane +make run/pipecd + +# Port forward (in another terminal) +kubectl port-forward -n pipecd svc/pipecd 8080 + +# Access UI at http://localhost:8080?project=quickstart +# Login: hello-pipecd / hello-pipecd +``` + +For full setup instructions including Piped agent, see the [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md#development). + +## Pull request process + +1. **Claim the issue** — Comment "I'd like to work on this" to get assigned +2. **Investigate first** — Discuss your approach in the issue before coding +3. **Keep PRs small** — Aim for ~300 lines of diff +4. **Sign off commits** — Use `git commit -s` for DCO compliance +5. **Run checks** — Execute `make check` before submitting + +All PRs should target the `master` branch. + +## Code of Conduct + +PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). + +## Full contributing guide + +For complete details on development, commit messages, licensing, and more, see [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md). From 5002f5a30ba0cc0124d9e4b87d8369f8e69fbca0 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Sun, 4 Jan 2026 08:36:19 +0000 Subject: [PATCH 2/8] docs: update contribution guidelines with Code of Conduct and community engagement details Signed-off-by: Mohammed Firdous --- .../contribution-guidelines/contributing.md | 225 +++++++++++++++--- .../contribution-guidelines/contributing.md | 225 +++++++++++++++--- 2 files changed, 396 insertions(+), 54 deletions(-) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing.md b/docs/content/en/docs-dev/contribution-guidelines/contributing.md index a2c2247737..75700bb746 100644 --- a/docs/content/en/docs-dev/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-dev/contribution-guidelines/contributing.md @@ -8,7 +8,11 @@ description: > PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! -## Ways to contribute +## Code of Conduct + +PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Please read it to understand which actions are acceptable and which are not. + +## Ways to Contribute There are many ways to contribute, and many don't involve writing code: @@ -16,20 +20,30 @@ There are many ways to contribute, and many don't involve writing code: - **Triage issues** — Browse [open issues](https://github.com/pipe-cd/pipecd/issues), provide workarounds, ask for clarification, or suggest labels - **Fix bugs** — Issues labeled [good first issue](https://github.com/pipe-cd/pipecd/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) are great starting points - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) -- **Write blog posts** — See [Contribute to PipeCD Blogs](../contributing-blogs/) -- **Build plugins** — See [Contribute to piped Plugins](../contributing-plugins/) +- **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) -## Join the community +## Join the Community ### Slack -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). -### Community meetings +### Become a Member -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). +If you'd like to join the pipe-cd GitHub organization: -## Development setup +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. + +## Development Setup + +### Project Structure PipeCD consists of several components: @@ -38,45 +52,202 @@ PipeCD consists of several components: | [cmd/pipecd](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipecd) | Control Plane — manages deployment data and provides gRPC API | | [cmd/piped](https://github.com/pipe-cd/pipecd/tree/master/cmd/piped) | Piped agent — runs in your cluster | | [cmd/pipectl](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipectl) | Command-line tool | +| [cmd/launcher](https://github.com/pipe-cd/pipecd/tree/master/cmd/launcher) | Command executor for remote upgrade | | [web](https://github.com/pipe-cd/pipecd/tree/master/web) | Web UI | | [docs](https://github.com/pipe-cd/pipecd/tree/master/docs) | Documentation | -### Quick start +### Prerequisites + +- Go (check `go.mod` for version) +- Node.js and Yarn (for web development) +- Docker +- kubectl +- kind (Kubernetes in Docker) + +### Starting a Local Environment + +#### 1. Update Dependencies ```bash -# Update dependencies make update/go-deps make update/web-deps +``` + +> Starting a local environment may fail if dependencies are not up to date. -# Start local cluster and registry +#### 2. Start Local Cluster and Registry + +```bash make up/local-cluster +``` + +This creates the `pipecd` Kubernetes namespace and starts a local registry. -# Run Control Plane +To clean up later: + +```bash +make down/local-cluster +``` + +#### 3. Run Control Plane + +```bash make run/pipecd +``` -# Port forward (in another terminal) +To stop: + +```bash +make stop/pipecd +``` + +#### 4. Port Forward + +In a separate terminal: + +```bash kubectl port-forward -n pipecd svc/pipecd 8080 +``` + +#### 5. Access the UI + +Open [http://localhost:8080?project=quickstart](http://localhost:8080?project=quickstart) -# Access UI at http://localhost:8080?project=quickstart -# Login: hello-pipecd / hello-pipecd +Login credentials: +- **Username:** `hello-pipecd` +- **Password:** `hello-pipecd` + +### Running Piped Agent + +1. Ensure Control Plane is running and accessible. + +2. Register a new Piped: + - Go to Settings → Piped (or [http://localhost:8080/settings/piped?project=quickstart](http://localhost:8080/settings/piped?project=quickstart)) + - Add a new piped and copy the generated Piped ID and base64 key + +3. Create `piped-config.yaml` in the repository root: + + > **Tip:** Create a `.dev` folder (gitignored) for multiple config files. + + ```yaml + apiVersion: pipecd.dev/v1beta1 + kind: Piped + spec: + projectID: quickstart + pipedID: + pipedKeyData: + apiAddress: localhost:8080 + repositories: + - repoId: example + remote: git@github.com:pipe-cd/examples.git + branch: master + syncInterval: 1m + platformProviders: + - name: example-kubernetes + type: KUBERNETES + config: + kubeConfigPath: /path/to/.kube/config + ``` + +4. Start the Piped agent: + + ```bash + make run/piped CONFIG_FILE=path/to/piped-config.yaml INSECURE=true + ``` + +### Useful Commands + +Check the [Makefile](https://github.com/pipe-cd/pipecd/blob/master/Makefile) for available commands. Common ones: + +```bash +make check # Run all checks (lint, test, etc.) +make test/go # Run Go tests +make test/web # Run web tests +make build/go # Build Go binaries ``` -For full setup instructions including Piped agent, see the [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md#development). +## Pull Request Process -## Pull request process +### Before You Start -1. **Claim the issue** — Comment "I'd like to work on this" to get assigned -2. **Investigate first** — Discuss your approach in the issue before coding -3. **Keep PRs small** — Aim for ~300 lines of diff -4. **Sign off commits** — Use `git commit -s` for DCO compliance -5. **Run checks** — Execute `make check` before submitting +1. **Find or create an issue** — Check if an issue exists, or open one for new features/bugs +2. **Claim the issue** — Comment "I'd like to work on this" to get assigned (expected to submit PR within 7 days) +3. **Investigate first** — Discuss your approach in the issue before coding to reduce back-and-forth on the PR +4. **Focus on one issue** — Especially for newcomers, work on one issue at a time -All PRs should target the `master` branch. +### Submitting a Pull Request -## Code of Conduct +1. **Keep PRs small** — Aim for ~300 lines of diff. Split larger changes into multiple PRs. + +2. **Use descriptive titles** — Follow commit message style: present tense, capitalize first letter + + ``` + Add imports to Terraform plan result + ``` + +3. **Sign off commits** — Required for DCO compliance: + + ```bash + git commit -s -m "Your commit message" + ``` + +4. **Run checks before submitting:** + + ```bash + make check + ``` + +5. **Target the `master` branch** — All PRs should be opened against `master` + +### User-Facing Changes + +If your change affects users, update the PR description: + +```md +**Does this PR introduce a user-facing change?**: +- **How are users affected by this change**: +- **Is this breaking change**: +- **How to migrate (if breaking change)**: +``` + +### Licensing + +By contributing, you agree to license your contributions under the Apache License Version 2.0. Add this header to new files: + +```go +// Copyright 2025 The PipeCD Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +``` + +## Reporting Issues + +### Bugs + +File bugs at [GitHub Issues](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fbug&projects=&template=bug-report.md): + +- **One issue, one bug** +- **Provide reproduction steps** — List all steps to reproduce the issue + +### Security Issues + +Report security vulnerabilities privately via Slack or Twitter DM to maintainers listed in [MAINTAINERS.md](https://github.com/pipe-cd/pipecd/blob/master/MAINTAINERS.md). + +### Feature Requests -PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). +- [Enhancement request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fenhancement&projects=&template=enhancement.md) — Improvements to existing features +- [Feature request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Ffeature&projects=&template=new-feature.md) — Entirely new features -## Full contributing guide +## What Happens Next? -For complete details on development, commit messages, licensing, and more, see [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md). +The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md index a2c2247737..75700bb746 100644 --- a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md @@ -8,7 +8,11 @@ description: > PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! -## Ways to contribute +## Code of Conduct + +PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Please read it to understand which actions are acceptable and which are not. + +## Ways to Contribute There are many ways to contribute, and many don't involve writing code: @@ -16,20 +20,30 @@ There are many ways to contribute, and many don't involve writing code: - **Triage issues** — Browse [open issues](https://github.com/pipe-cd/pipecd/issues), provide workarounds, ask for clarification, or suggest labels - **Fix bugs** — Issues labeled [good first issue](https://github.com/pipe-cd/pipecd/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) are great starting points - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) -- **Write blog posts** — See [Contribute to PipeCD Blogs](../contributing-blogs/) -- **Build plugins** — See [Contribute to piped Plugins](../contributing-plugins/) +- **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) -## Join the community +## Join the Community ### Slack -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). -### Community meetings +### Become a Member -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). +If you'd like to join the pipe-cd GitHub organization: -## Development setup +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. + +## Development Setup + +### Project Structure PipeCD consists of several components: @@ -38,45 +52,202 @@ PipeCD consists of several components: | [cmd/pipecd](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipecd) | Control Plane — manages deployment data and provides gRPC API | | [cmd/piped](https://github.com/pipe-cd/pipecd/tree/master/cmd/piped) | Piped agent — runs in your cluster | | [cmd/pipectl](https://github.com/pipe-cd/pipecd/tree/master/cmd/pipectl) | Command-line tool | +| [cmd/launcher](https://github.com/pipe-cd/pipecd/tree/master/cmd/launcher) | Command executor for remote upgrade | | [web](https://github.com/pipe-cd/pipecd/tree/master/web) | Web UI | | [docs](https://github.com/pipe-cd/pipecd/tree/master/docs) | Documentation | -### Quick start +### Prerequisites + +- Go (check `go.mod` for version) +- Node.js and Yarn (for web development) +- Docker +- kubectl +- kind (Kubernetes in Docker) + +### Starting a Local Environment + +#### 1. Update Dependencies ```bash -# Update dependencies make update/go-deps make update/web-deps +``` + +> Starting a local environment may fail if dependencies are not up to date. -# Start local cluster and registry +#### 2. Start Local Cluster and Registry + +```bash make up/local-cluster +``` + +This creates the `pipecd` Kubernetes namespace and starts a local registry. -# Run Control Plane +To clean up later: + +```bash +make down/local-cluster +``` + +#### 3. Run Control Plane + +```bash make run/pipecd +``` -# Port forward (in another terminal) +To stop: + +```bash +make stop/pipecd +``` + +#### 4. Port Forward + +In a separate terminal: + +```bash kubectl port-forward -n pipecd svc/pipecd 8080 +``` + +#### 5. Access the UI + +Open [http://localhost:8080?project=quickstart](http://localhost:8080?project=quickstart) -# Access UI at http://localhost:8080?project=quickstart -# Login: hello-pipecd / hello-pipecd +Login credentials: +- **Username:** `hello-pipecd` +- **Password:** `hello-pipecd` + +### Running Piped Agent + +1. Ensure Control Plane is running and accessible. + +2. Register a new Piped: + - Go to Settings → Piped (or [http://localhost:8080/settings/piped?project=quickstart](http://localhost:8080/settings/piped?project=quickstart)) + - Add a new piped and copy the generated Piped ID and base64 key + +3. Create `piped-config.yaml` in the repository root: + + > **Tip:** Create a `.dev` folder (gitignored) for multiple config files. + + ```yaml + apiVersion: pipecd.dev/v1beta1 + kind: Piped + spec: + projectID: quickstart + pipedID: + pipedKeyData: + apiAddress: localhost:8080 + repositories: + - repoId: example + remote: git@github.com:pipe-cd/examples.git + branch: master + syncInterval: 1m + platformProviders: + - name: example-kubernetes + type: KUBERNETES + config: + kubeConfigPath: /path/to/.kube/config + ``` + +4. Start the Piped agent: + + ```bash + make run/piped CONFIG_FILE=path/to/piped-config.yaml INSECURE=true + ``` + +### Useful Commands + +Check the [Makefile](https://github.com/pipe-cd/pipecd/blob/master/Makefile) for available commands. Common ones: + +```bash +make check # Run all checks (lint, test, etc.) +make test/go # Run Go tests +make test/web # Run web tests +make build/go # Build Go binaries ``` -For full setup instructions including Piped agent, see the [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md#development). +## Pull Request Process -## Pull request process +### Before You Start -1. **Claim the issue** — Comment "I'd like to work on this" to get assigned -2. **Investigate first** — Discuss your approach in the issue before coding -3. **Keep PRs small** — Aim for ~300 lines of diff -4. **Sign off commits** — Use `git commit -s` for DCO compliance -5. **Run checks** — Execute `make check` before submitting +1. **Find or create an issue** — Check if an issue exists, or open one for new features/bugs +2. **Claim the issue** — Comment "I'd like to work on this" to get assigned (expected to submit PR within 7 days) +3. **Investigate first** — Discuss your approach in the issue before coding to reduce back-and-forth on the PR +4. **Focus on one issue** — Especially for newcomers, work on one issue at a time -All PRs should target the `master` branch. +### Submitting a Pull Request -## Code of Conduct +1. **Keep PRs small** — Aim for ~300 lines of diff. Split larger changes into multiple PRs. + +2. **Use descriptive titles** — Follow commit message style: present tense, capitalize first letter + + ``` + Add imports to Terraform plan result + ``` + +3. **Sign off commits** — Required for DCO compliance: + + ```bash + git commit -s -m "Your commit message" + ``` + +4. **Run checks before submitting:** + + ```bash + make check + ``` + +5. **Target the `master` branch** — All PRs should be opened against `master` + +### User-Facing Changes + +If your change affects users, update the PR description: + +```md +**Does this PR introduce a user-facing change?**: +- **How are users affected by this change**: +- **Is this breaking change**: +- **How to migrate (if breaking change)**: +``` + +### Licensing + +By contributing, you agree to license your contributions under the Apache License Version 2.0. Add this header to new files: + +```go +// Copyright 2025 The PipeCD Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +``` + +## Reporting Issues + +### Bugs + +File bugs at [GitHub Issues](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fbug&projects=&template=bug-report.md): + +- **One issue, one bug** +- **Provide reproduction steps** — List all steps to reproduce the issue + +### Security Issues + +Report security vulnerabilities privately via Slack or Twitter DM to maintainers listed in [MAINTAINERS.md](https://github.com/pipe-cd/pipecd/blob/master/MAINTAINERS.md). + +### Feature Requests -PipeCD follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). +- [Enhancement request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fenhancement&projects=&template=enhancement.md) — Improvements to existing features +- [Feature request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Ffeature&projects=&template=new-feature.md) — Entirely new features -## Full contributing guide +## What Happens Next? -For complete details on development, commit messages, licensing, and more, see [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md). +The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! From 40fd9d464bf1c303a49c32d93b2d3e126ecb77ee Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Thu, 8 Jan 2026 08:22:04 +0000 Subject: [PATCH 3/8] Update contributing guidelines to include plugin configuration details Signed-off-by: Mohammed Firdous --- .../contribution-guidelines/contributing.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md index 75700bb746..b7ead554e3 100644 --- a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md @@ -142,13 +142,18 @@ Login credentials: remote: git@github.com:pipe-cd/examples.git branch: master syncInterval: 1m - platformProviders: - - name: example-kubernetes - type: KUBERNETES - config: - kubeConfigPath: /path/to/.kube/config + plugins: + - name: kubernetes + port: 7001 + url: # Get from https://github.com/pipe-cd/pipecd/releases + deployTargets: + - name: local + config: + kubeConfigPath: /path/to/.kube/config ``` + > **Note:** Plugins are versioned independently from PipeCD. Download URLs for official plugins can be found on the [PipeCD releases page](https://github.com/pipe-cd/pipecd/releases). Look for releases tagged with `pkg/app/pipedv1/plugin/kubernetes/`. + 4. Start the Piped agent: ```bash From 9173fd3e9cd1c74d6437cda16166bb81973a0cc2 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Thu, 8 Jan 2026 09:04:04 +0000 Subject: [PATCH 4/8] Add contributing guidelines for PipeCD Signed-off-by: Mohammed Firdous --- .../{contributing.md => contributing-to-pipecd.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/content/en/docs-dev/contribution-guidelines/{contributing.md => contributing-to-pipecd.md} (100%) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing.md b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md similarity index 100% rename from docs/content/en/docs-dev/contribution-guidelines/contributing.md rename to docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md From de0cfddf8772ac99e141573cbd2c4c292417e7a6 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Fri, 9 Jan 2026 09:45:36 +0000 Subject: [PATCH 5/8] Reorganize community contribution section in contributing guidelines Signed-off-by: Mohammed Firdous --- .../contributing-to-pipecd.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md index 75700bb746..49cd6a1701 100644 --- a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md +++ b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md @@ -22,25 +22,6 @@ There are many ways to contribute, and many don't involve writing code: - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) - **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) -## Join the Community - -### Slack - -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. - -### Community Meetings - -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). - -### Become a Member - -If you'd like to join the pipe-cd GitHub organization: - -- Have at least 5 PRs merged to repositories in the pipe-cd organization -- Attend a PipeCD public community meeting - -Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. - ## Development Setup ### Project Structure @@ -251,3 +232,22 @@ Report security vulnerabilities privately via Slack or Twitter DM to maintainers ## What Happens Next? The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! + +## Join the Community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +### Become a Member + +If you'd like to join the pipe-cd GitHub organization: + +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. From ec13e5464bd73a0638bde3451f42bbb882706793 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Sun, 11 Jan 2026 08:24:10 +0000 Subject: [PATCH 6/8] Add community engagement section to contributing guidelines Signed-off-by: Mohammed Firdous --- .../contributing-to-pipecd.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md index 49cd6a1701..75700bb746 100644 --- a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md +++ b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md @@ -22,6 +22,25 @@ There are many ways to contribute, and many don't involve writing code: - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) - **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) +## Join the Community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +### Become a Member + +If you'd like to join the pipe-cd GitHub organization: + +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. + ## Development Setup ### Project Structure @@ -232,22 +251,3 @@ Report security vulnerabilities privately via Slack or Twitter DM to maintainers ## What Happens Next? The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! - -## Join the Community - -### Slack - -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. - -### Community Meetings - -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). - -### Become a Member - -If you'd like to join the pipe-cd GitHub organization: - -- Have at least 5 PRs merged to repositories in the pipe-cd organization -- Attend a PipeCD public community meeting - -Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. From 18547b876bf94ce4a9f4305c254b1005cf46b48c Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Mon, 12 Jan 2026 11:34:51 +0000 Subject: [PATCH 7/8] Reorganize community section in contributing guidelines Signed-off-by: Mohammed Firdous --- .../contributing-to-pipecd.md | 38 +++++++++---------- .../contribution-guidelines/contributing.md | 38 +++++++++---------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md index 75700bb746..8778ab2be6 100644 --- a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md +++ b/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md @@ -22,25 +22,6 @@ There are many ways to contribute, and many don't involve writing code: - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) - **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) -## Join the Community - -### Slack - -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. - -### Community Meetings - -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). - -### Become a Member - -If you'd like to join the pipe-cd GitHub organization: - -- Have at least 5 PRs merged to repositories in the pipe-cd organization -- Attend a PipeCD public community meeting - -Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. - ## Development Setup ### Project Structure @@ -248,6 +229,25 @@ Report security vulnerabilities privately via Slack or Twitter DM to maintainers - [Enhancement request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fenhancement&projects=&template=enhancement.md) — Improvements to existing features - [Feature request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Ffeature&projects=&template=new-feature.md) — Entirely new features +## Join the Community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +### Become a Member + +If you'd like to join the pipe-cd GitHub organization: + +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. + ## What Happens Next? The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md index b7ead554e3..48f948c864 100644 --- a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md @@ -22,25 +22,6 @@ There are many ways to contribute, and many don't involve writing code: - **Improve docs** — See [Contribute to PipeCD Documentation](../contributing-documentation/) - **Participate in discussions** — Share ideas in [GitHub Discussions](https://github.com/pipe-cd/pipecd/discussions) -## Join the Community - -### Slack - -We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. - -### Community Meetings - -We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). - -### Become a Member - -If you'd like to join the pipe-cd GitHub organization: - -- Have at least 5 PRs merged to repositories in the pipe-cd organization -- Attend a PipeCD public community meeting - -Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. - ## Development Setup ### Project Structure @@ -253,6 +234,25 @@ Report security vulnerabilities privately via Slack or Twitter DM to maintainers - [Enhancement request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Fenhancement&projects=&template=enhancement.md) — Improvements to existing features - [Feature request](https://github.com/pipe-cd/pipecd/issues/new?assignees=&labels=kind%2Ffeature&projects=&template=new-feature.md) — Entirely new features +## Join the Community + +### Slack + +We have a `#pipecd` channel on [CNCF Slack](https://cloud-native.slack.com/) for discussions and help. You can also assist other users in the channel. + +### Community Meetings + +We host [PipeCD Development and Community Meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/96831504919?password=2f60b8ec-5896-40c8-aa1d-d551ab339d00) every 2 weeks where we share project news, demos, answer questions, and triage issues. View the [Meeting Notes and Agenda](https://bit.ly/pipecd-mtg-notes). + +### Become a Member + +If you'd like to join the pipe-cd GitHub organization: + +- Have at least 5 PRs merged to repositories in the pipe-cd organization +- Attend a PipeCD public community meeting + +Membership isn't required to contribute—it's for those who want to contribute long-term or take ownership of features. + ## What Happens Next? The maintainers will review your PR. We'll help with obvious issues and work with you to get it merged. Thank you for contributing! From 0e5e269e29c9bccea04dcb6884ccd998bb0ed3a8 Mon Sep 17 00:00:00 2001 From: Mohammed Firdous Date: Thu, 15 Jan 2026 14:01:56 +0000 Subject: [PATCH 8/8] Add contributing guidelines for PipeCD Signed-off-by: Mohammed Firdous --- .../{contributing-to-pipecd.md => contributing.md} | 0 .../{contributing.md => contributing-to-pipecd.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/content/en/docs-dev/contribution-guidelines/{contributing-to-pipecd.md => contributing.md} (100%) rename docs/content/en/docs-v1.0.x/contribution-guidelines/{contributing.md => contributing-to-pipecd.md} (100%) diff --git a/docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md b/docs/content/en/docs-dev/contribution-guidelines/contributing.md similarity index 100% rename from docs/content/en/docs-dev/contribution-guidelines/contributing-to-pipecd.md rename to docs/content/en/docs-dev/contribution-guidelines/contributing.md diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing-to-pipecd.md similarity index 100% rename from docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md rename to docs/content/en/docs-v1.0.x/contribution-guidelines/contributing-to-pipecd.md