-
Notifications
You must be signed in to change notification settings - Fork 208
blog: implement contributor guide for local PipeCD setup #6375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
blog: implement contributor guide for local PipeCD setup #6375
Conversation
Signed-off-by: Shivansh Sahu <sahushivansh142@gmail.com>
eeshaanSA
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this, @shivansh-gohem. You seem to have mistaken the local development setup with the quick start guide.
The quickstart setup is aimed towards end-users who want to setup PipeCD and try the features out. The actual development setup would be ideally done through the source code, forked from GitHub. Please check how to setup a local development environment documentation on GitHub.
8eab5b6 to
6b3b822
Compare
|
Hi @eeshaanSA, Thank you again for the critical feedback. I sincerely apologize for the initial error confusing the End-User Quickstart with the Contributor Local Development Setup. I have located the correct documentation and have completely rewritten the blog post. The PR now contains a guide focused on the correct developer workflow: building and running the Control Plane and Piped Agent directly from the Go source code (using make run/pipecd and make run/piped), which is the true path for contribution. |
|
|
||
| ## 1. Prepare and Start the Local Cluster | ||
|
|
||
| First, update dependencies and set up a local registry and cluster for the control plane to use. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need more info on "How to" do this.
| tags: ["Local Development", "Go", "Kubernetes", "Dev Setup"] | ||
| --- | ||
|
|
||
| ## Why a Local Development Environment is Essential |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need a better title
|
|
||
| Make sure you have: | ||
|
|
||
| - Go (v1.21 or higher) | ||
| - Docker | ||
| - kubectl | ||
| - PipeCD repository cloned locally: | ||
|
|
||
| git clone https://github.com/pipe-cd/pipecd.git | ||
| cd pipecd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is essential to create a fork of the target repository in order to make successful open source contributions. This is highly inaccurate
|
@shivansh-gohem, have you tried setting up PipeCD using this guide? |
6b3b822 to
61618b5
Compare
|
Hi @eeshaanSA , I verified the full build process locally (make run/pipecd). The build revealed that Node.js and Yarn were missing from the prerequisites list (causing the web build to fail). I have updated the guide to include them, along with the correct make update/web-deps command. I also fixed the Fork instruction and the Title as requested. The PR is now ready for review |
|
Hi @eeshaanSA, Just a gentle bump on this PR. I believe I have addressed all the feedback from your last review (updated the title, corrected the fork instructions, and verified the local setup steps including the Yarn dependencies). Please let me know if there are any further changes needed. Thank you! |
| 2. Click **+ ADD**, give it a name (for example, `dev`), and save. | ||
| 3. **Crucial step:** Copy the generated **Piped ID** and **Base64 encoded key** immediately. | ||
|
|
||
| ### Create the Piped configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need a v1 pipedConfig example here too now, which might be a little complicated.
|
Hi @eeshaanSA, Thank you for testing this out and for the honest feedback. I understand that the local development setup has some underlying stability issues right now and that the shift to the v1 pipedConfig adds complexity. I appreciate you saving me from spinning my wheels on this while those architectural changes are discussed. I will put this PR on hold. Since I have been focusing on [EPIC] Improve and Expand Contributing Section in Documentation #6124, I would love to stay within that scope if possible. I know I previously mentioned tackling the 'Contribute to piped Plugins' section next. Is that area also blocked by the v1 config issues (since it requires a local agent), or would that be a safe documentation task to pick up now? |
|
/cc @eeshaanSA |
|
Hi @eeshaanSA, I have re-verified the setup locally with a clean cluster on the latest master. make up/local-cluster: Success make run/pipecd: Success (All pods healthy: server, gateway, ops are Running) UI Access: Success The stability issues are resolved. Ready for merge! |
|
Please resolve the issues in the PR, and please, avoid submitting low quality PRs if you want your PRs to be merged soon. |
61618b5 to
f0a9525
Compare
|
Thanks for the feedback. I checked the pkg/config/testdata and realized I had a typo in the config kind (Pipecd instead of Piped). I have corrected the guide to use the valid apiVersion: pipecd.dev/v1beta1 and kind: Piped structure. The PR is now updated and squashed. Ready for review. |
eeshaanSA
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please resolve the comments, and the changes requested. Additionally, title needs to be changed.
eeshaanSA
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please resolve the comments and implement the changes. Additionally, we need a better title. "How to set-up..."
|
Would you mind reviewing this PR? Your help would be appreciated. |
|
@shivansh-gohem Also according to the steps mentioned in the doc the local dev server doesnt seems to be starting , are you sure you tried running on your env , does it works fine ? I am using github codespaces Btw |
interesting, could you please share screenshots, and also try the setup on CONTRIBUTING.md please? |
|
Don't know about GitHub workspaces, but it should work in a local env. |
rahulshendre
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shivansh-gohem the “Context” heading feels a bit out of place here. The content reads more like a summary or an introduction to the next step rather than background context. Renaming it to something like “Next Steps” would be better.
@eeshaanSA, could you suggest a good replacement.
Seems to be working now , a silly mistake by me |
| tags: ["Local Development", "Go", "Kubernetes", "Dev Setup"] | ||
| --- | ||
|
|
||
| ## Why a Local Development Environment is Essential |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Local Development Setup for PipeCD Contributors" , you can use this as title
| ``` | ||
| ## 1. Prepare and Start the Local Cluster | ||
|
|
||
| First, update dependencies and set up a local registry and cluster for the control plane to use. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This step prepares a local Kubernetes cluster and container registry required for running the PipeCD control plane locally" , this would fit in good here
| If you plan to contribute code, fix bugs, or add new plugins to PipeCD, you should run the control plane and Piped agent directly from the source code. This local development setup lets you test your Go changes live before submitting a pull request. | ||
|
|
||
| This guide walks through building and running the components from source so you can iterate quickly and confidently. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Estimated setup time: 20–30 minutes" we can also add this , should we @eeshaanSA ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 to this. Adding an estimated setup time would set expectations for new contributors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shivansh-gohem lets add the estimated time one here rather than on top
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Ayushmore1214! I have moved the 'Estimated setup time' line down to the position you requested (after the intro, before Prerequisites).
|
|
||
| Use your local code and the config file you just created: | ||
| ```bash | ||
| make run/piped CONFIG_FILE=piped-config.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the Piped run command you seem to have missed INSECURE=true.
The official CONTRIBUTING.md mentions it, and without it the connection fails
f0a9525 to
715165a
Compare
|
Thanks everyone! I have updated the PR with all requests: Title & Metadata: Updated title to 'How to set up...' and filled in the Frontmatter with valid details. Content Updates: Added 'Estimated setup time', updated the Step 1 description, and removed the inaccurate note on forking. Corrections: Added INSECURE=true to the run command and renamed the final section to 'Next Steps'. Ready for final review. |
Signed-off-by: Shivansh Sahu <sahushivansh142@gmail.com>
715165a to
bc73eeb
Compare
Ayushmore1214
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 👍
Hi @eeshaanSA and @khanhtc1202,
This PR delivers the local setup guide you assigned.
Goal: Create a simple, step-by-step tutorial for new contributors on setting up the Control Plane and Piped agent locally via the Quickstart method.
Source: The guide is based on the official quickstart and my personal successful end-to-end setup (validated in PR #6332).
Ready for review! Thank you.