Skip to content

Commit e5e70f5

Browse files
committed
Initial pass at CONTRIBUTING guide
1 parent 0d4f349 commit e5e70f5

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

CONTRIBUTING.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Contributing to Kaspa
2+
3+
Thanks for your interest in contributing to Kaspa!
4+
5+
We welcome contributions of all sizes and there are many opportunities to contribute at any level — from clarifying documentation and fixing small bugs to implementing full features and reviewing pull requests.
6+
7+
Reach out to `@Node Developers` in Discord in the [#development](https://discord.com/channels/599153230659846165/755890250643144788) channel.
8+
9+
Follow along the R&D Telegram group.
10+
11+
## Quick summary
12+
13+
- Open a GitHub Issue or Pull Request to start any discussion. Use Issues for design or spec discussions and PRs when you have code to share.
14+
- Look for `good first issue` if you're getting started; these are intentionally approachable.
15+
- Write detailed pull requests descriptions: explain what you changed, why, design decisions, and any trade-offs.
16+
- **Anyone** willing to contribute is encouraged to review pull requests and ask questions. Your approval and review counts!
17+
18+
## How to get started
19+
20+
1. Find an issue (or open one) — good first issues are a great first step.
21+
2. Fork the repo and create a feature branch with a short, descriptive name.
22+
3. Implement your change and include tests where appropriate.
23+
4. Make each commit atomic and focused. Update tests or add new ones in the same commit that changes behaviour.
24+
5. Push to your fork and open a Pull Request against the `master` branch (or the branch named in the issue).
25+
26+
## Pull request guidelines
27+
28+
### Before making a Pull Request:
29+
- Run `cargo check` to make sure your code adheres to coding standards
30+
- Run `cargo nextest run --release` and make sure you all tests still pass
31+
32+
### Please make your PRs easy to review. A helpful PR contains:
33+
34+
- A clear, descriptive title of what the PR does.
35+
- A summary of what changed and the motivation.
36+
- Any relevant background or links to design discussions or Issues.
37+
- A short description of how the change was tested (unit tests, integration tests, manual steps). Reviewers will use this to test your changes.
38+
- Notes about backwards-compatibility, migrations, or behaviour changes.
39+
- If the change is large, consider splitting it into a small series of focused PRs.
40+
41+
### Commit message tips:
42+
43+
- Start with a short subject line (<= 50 chars), leave a blank line, then add details.
44+
- Try to keep your commits atomic as this makes reviewing them in the context of a PR easier, making the PR overall easier to review and eventually merge
45+
46+
## Reviewing Pull Requests
47+
48+
If you can meaningfully review a pull request, please do so even if you have not contributed code to the repo. This helps in improving the quality of code and gives you a great opportunity to learn more about the codebase through the context of a change.
49+
50+
- Leave review comments, ask clarifying questions, request documentation, point out potential regressions.
51+
- Even if you can't read the code but know how to test it, do that too! Ask for information on how to test the change if it's missing from the PR and run it.
52+
- Use Approve when you believe the change is correct and safe to merge.
53+
- Use Request Changes when you find real issues; explain the issue and prefer actionable guidance.
54+
55+
## Using Issues and Pull Requests for discussion
56+
57+
- Use a GitHub Issue to propose or discuss ideas before writing code if the change affects APIs, consensus, or requires design feedback.
58+
- You can also contribute
59+
- When you start implementing, link the Issue in your Pull Request and mention any related discussions.
60+
- If a PR is experimental or a work in progress, create the Pull Request in your fork of the repository first.
61+
62+
## Testing and CI
63+
64+
Add or update tests for behavior changes. Ensure CI passes before requesting a merge. If your change requires a special test or manual validation, describe it in the PR.
65+
66+
## Code of conduct
67+
68+
Be respectful and constructive in discussions. We expect contributors to follow common open-source etiquette; if you're unsure about tone, err on the side of politeness.
69+
70+
## Thank You
71+
72+
Thanks for helping make Kaspa better. If you have questions, reach out to the channels described at the top of this document
73+

0 commit comments

Comments
 (0)