Skip to content

Commit 63bc49a

Browse files
authored
Add contribution guide (cadence-workflow#315)
1 parent 4c1e9cf commit 63bc49a

File tree

3 files changed

+53
-17
lines changed

3 files changed

+53
-17
lines changed

community/how-to-contribute/getting-started.mdx

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,64 @@ title: Getting Started
44

55
# Getting Started
66

7-
Thank you for your interest in contributing to Cadence! We're excited to have you join our community. This guide will help you get started with contributing to any Cadence repository.
7+
Thank you for your interest in contributing to Cadence! We're excited to have you join our community. There are many [ways](ways-to-contribute) to contribute to Cadence. This guide focuses on technical contributions.
88

99
## Join the Community
1010

11-
The best way to get started is to connect with the Cadence community:
12-
13-
### CNCF Slack Workspace
14-
15-
Join our community on the CNCF Slack workspace:
11+
Consider joining our community on the CNCF Slack workspace:
1612
- **Join via**: [Community Inviter](https://communityinviter.com/apps/cloud-native/cncf)
17-
- **Channel**: **#cadence-users**
13+
- **Channel**: **#cadence-contributors**
1814

1915
This is the best place to ask questions, discuss features, and connect with maintainers and other contributors.
2016

21-
### Other Community Channels
17+
---
18+
19+
## 1 - Find an Issue
20+
21+
Issues may be created in any of the Cadence repositories, but we frequently aggregate issues in the main [Cadence](https://github.com/cadence-workflow/cadence/issues) repository. In particular, we try and maintain a set of [good first issues](https://github.com/cadence-workflow/cadence/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22%20label%3Aup-for-grabs). These are curated issues that we would eagerly accept and are limited in scope.
22+
23+
Once you've found an issue, we encourage you to comment on it indicating that you're interested in working on it. This gives maintainers an opportunity to provide any additional context and helps ensure that there isn't any duplicated effort.
24+
25+
### Creating New Issues
26+
27+
If you don't find something that interests you or you have a more specific contribution, feel free to create a new issue. This provides an opportunity to collect feedback and describe the issue independent of a specific implementation.
28+
29+
Whether Cadence accepts specific contributions is up to the project maintainers, as described in the [governance model](/community/governance).
30+
31+
## 2 - Address the Issue
32+
33+
Each repository has a `CONTRIBUTING.md` file in its root which provides specific instructions regarding tooling, code standards, and conventions. A great first step for contributing to any project is building the code and running the tests. If you are ever unsure on how to proceed, please reach out on Slack.
34+
35+
Where possible, issues should include specific references to the relevant code. If you don't know where to begin, comment on the issue or reach out in slack.
36+
37+
## 3 - Write Tests
38+
39+
Test coverage is mandatory, regardless of the author. This has been an effective strategy in finding bugs and ensuring code quality. Beyond demonstrating that new functionality works, it ensures that future changes don't accidentally break it.
40+
41+
Where possible, integration tests are another powerful tool for ensuring that functionality works end to end. Cadence is a complex distributed system supporting many different databases and clients written in many languages. Integration tests ensure that behavior works consistently across all of them.
42+
43+
## 4 - Create a Pull Request
44+
45+
Once you're ready to collect fedback, create a Pull Request. Refer to the [Pull Request Conventions](pull-request-conventions) for more details.
46+
47+
We don't expect pull requests to be a fully polished and complete contribution. Bias for opening one sooner rather than later to start discussions about the approach and specific implementation details.
48+
49+
Github Actions are used to execute the tests and any other validations. These must be approved by a maintainer in order to run.
50+
51+
Based on availability and experience, a specific maintainer will be assigned to review the contribution. They will make a best effort attempt to promptly respond to questions/comments.
52+
53+
At any point feel free to reach out in `#cadence-contributors` asking for additional review or feedback.
54+
55+
## 5 - Receive Feedback
56+
57+
All contributions, regardless of the author, will receive comments and feedback. Writing software is a collaborative process and there is no such thing as perfect code.
58+
59+
Comments that begin with `nit:` indicate that the reviewer is expressingly a stylistic preference. They'd prefer the proposed change, such as renaming a variable, but it isn't considered to be an issue that would block merging in the pull request.
2260

23-
- For general Q&A, support/help, and announcements see [GitHub Discussions](https://github.com/cadence-workflow/cadence/discussions)
24-
- To report bugs or request new features use [GitHub Issues](https://github.com/cadence-workflow/cadence/issues)
25-
- For specific code questions/bugs use [Stack Overflow](https://stackoverflow.com/questions/tagged/cadence-workflow)
61+
All comments and feedback should be respectful and constructive, following Cadence's [Contribution Guidelines](/community/governance#contribution-guidelines). Reviewers ask the same in return.
2662

27-
## Contributing
63+
## 6 - Approval
2864

29-
We will continue fleshing out our contribution guide. Until then, refer to our repository README files for details.
65+
Work with the assigned reviewer(s), iterating on the pull request to receive approval for the changes.
3066

31-
Once you are ready to open a pull request, see [Pull Request Conventions](pull-request-conventions).
67+
Pull Requests require approval from at least two maintainers to be merged. Merging or authoring a pull request is considered implicit approval.

community/how-to-contribute/index.mdx renamed to community/how-to-contribute/ways-to-contribute.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
title: How to Contribute
2+
title: Ways to Contribute
33
date: 2025-01-07
44
authors: demirkayaender
55
tags:
66
- announcement
77
---
88

9-
# How to Contribute
9+
# Ways to Contribute
1010

1111
Cadence is a project with high ambitions and we cannot achieve it without a strong community. We would love for you to get involved and be recognized for your efforts through our official channels.
1212

sidebarsCommunity.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ export default {
1010
type: 'category',
1111
label: 'How to Contribute',
1212
items: [
13-
{ type: 'doc', id: 'how-to-contribute/index' },
1413
{ type: 'doc', id: 'how-to-contribute/getting-started' },
14+
{ type: 'doc', id: 'how-to-contribute/ways-to-contribute' },
1515
{ type: 'doc', id: 'how-to-contribute/pull-request-conventions' },
1616
],
1717
},

0 commit comments

Comments
 (0)