Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions community/how-to-contribute/coding-conventions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: Coding Conventions
---

# Coding Conventions

This page outlines the coding conventions and standards across Cadence repositories. For language-specific tooling, build instructions, and formatting details, refer to the CONTRIBUTING.md file in each repository.

## Pull Request Titles

### Conventional Commits Format

<!-- NEW REQUIREMENT: Conventional Commits for consistency across repos -->
All pull request titles should follow the [Conventional Commits](https://www.conventionalcommits.org/) format:

```
<type>(<optional scope>): <description>

Examples:
feat(worker): Add batch processing API
fix(history): Resolve deadlock in workflow execution
docs: Update getting started guide
```

**Types:**
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **refactor**: Code change that neither fixes a bug nor adds a feature
- **test**: Adding or updating tests
- **chore**: Changes to build process, dependencies, or tools

### PR Title Guidelines

<!-- Source: https://github.com/cadence-workflow/cadence/blob/master/CONTRIBUTING.md#L253-L265 -->
Follow the [Chris Beams guide](http://chris.beams.io/posts/git-commit/) to writing git commit messages. All PR titles should:

- Start with UPPER case
- Be specific (avoid generic titles like "bug fixes")
- Use imperative mood ("Add feature" not "Added feature")

**Examples from Cadence repositories:**
- [Make sync activity retry multiple times before fetch history from remote](https://github.com/cadence-workflow/cadence/pull/1379)
- [Enable archival config per domain](https://github.com/cadence-workflow/cadence/pull/1351)

## License Headers

<!-- Source: https://github.com/cadence-workflow/cadence-go-client/blob/master/CONTRIBUTING.md#L47-L52 -->
<!-- Source: https://github.com/cadence-workflow/cadence-java-client/blob/master/CONTRIBUTING.md#L27-L40 -->
All source files must include the Apache 2.0 license header. Each repository has tools to check and generate headers—see the repository's CONTRIBUTING.md for specific commands.

## Language-Specific Details

For style guides, formatting tools, linters, and build commands, please refer to each repository's CONTRIBUTING.md:

- **Go**: [cadence CONTRIBUTING.md](https://github.com/cadence-workflow/cadence/blob/master/CONTRIBUTING.md)
- **Go**: [cadence-go-client CONTRIBUTING.md](https://github.com/cadence-workflow/cadence-go-client/blob/master/CONTRIBUTING.md)
- **Java**: [cadence-java-client CONTRIBUTING.md](https://github.com/cadence-workflow/cadence-java-client/blob/master/CONTRIBUTING.md)
- **JavaScript**: [cadence-web CONTRIBUTING.md](https://github.com/cadence-workflow/cadence-web/blob/master/CONTRIBUTING.md)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ There are many ways to contribute to the Cadence project including the following

## Core Team

To have the most influence on the Cadence project, join our core team. We announce open roles in the team in our Slack workspace, Linkedin and other mediums we use (or you can use [this query](https://www.uber.com/us/en/careers/list/?query=cadence)). Apply when theres an opening and join us. Currently we have offices in Seattle (US), Bay Area (US), and Aarhus (Denmark).
To have the most influence on the Cadence project, join our core team. We announce open roles in the team in our Slack workspace, Linkedin and other mediums we use (or you can use [this query](https://www.uber.com/us/en/careers/list/?query=cadence)). Apply when there's an opening and join us. Currently we have offices in Seattle (US), Bay Area (US), and Aarhus (Denmark).

---

Expand All @@ -26,7 +26,7 @@ This is where our biggest community is and this is how people get to know about

### User / Consumer

Go to our [Github organization](https://github.com/cadence-workflow) and start using Cadence. Thats it\! Tell us how your first experience was so we can improve. Get into discussions in our Slack workspace to explain your use case. Get help from our support channels. Feel free to ask for free consultation on your design. We learn a lot from our users and from their experiences.
Go to our [Github organization](https://github.com/cadence-workflow) and start using Cadence. That's it\! Tell us how your first experience was so we can improve. Get into discussions in our Slack workspace to explain your use case. Get help from our support channels. Feel free to ask for free consultation on your design. We learn a lot from our users and from their experiences.

### Alpha Tester

Expand All @@ -38,15 +38,15 @@ Champions are the first users or the power users of Cadence in a company. They i

### Writer

Another way to help us cultivate our community is to share documents about Cadence\! Whether its writing blogs or technical articles, recording video tutorials or organizing collaborations; sharing how your experience is with Cadence and how others can benefit from it is a great way to help build a community. This also helps gain public visibility on the personal level.
Another way to help us cultivate our community is to share documents about Cadence\! Whether it's writing blogs or technical articles, recording video tutorials or organizing collaborations; sharing how your experience is with Cadence and how others can benefit from it is a great way to help build a community. This also helps gain public visibility on the personal level.

---

## Technical Contributor

### Developer

You can become an individual developer by taking up tasks and projects. If this is your first time and want to see how your experience is going to be, you are welcome to take any issue tagged with good-first-issue or up-for-grabs. We are happy to explain what needs to be done along with providing more details and pointers, if needed. Your journey starts there and can continue with working on bigger and more serious projects based on your past involvement.
You can become an individual developer by taking up tasks and projects. If this is your first time and want to see how your experience is going to be, you are welcome to take any issue tagged with "good-first-issue" or "up-for-grabs". We are happy to explain what needs to be done along with providing more details and pointers, if needed. Your journey starts there and can continue with working on bigger and more serious projects based on your past involvement.

### Reviewer

Expand Down Expand Up @@ -76,7 +76,7 @@ The Cadence team hosts monthly webinars, joins conferences and presents in diffe

### Selling Managed Cadence

Cadence is an open source project without monetary concerns. We are proud to use the exact same open source version of Cadence at Uber at scale which maps to thousands of use cases, billions of workflows and over 100K+ updates per second\! While we improve the experience with operating Cadence day by day, there are still many companies who would prefer buying a managed version of our technology due to not having resources or just to have a piece of mind.
Cadence is an open source project without monetary concerns. We are proud to use the exact same open source version of Cadence at Uber at scale which maps to thousands of use cases, billions of workflows and over 100K+ updates per second\! While we improve the experience with operating Cadence day by day, there are still many companies who would prefer buying a managed version of our technology due to not having resources or just to have a piece of mind.

We currently work very closely with companies selling Cadence as a such offering to help them succeed so we can build a happier community.

Expand Down Expand Up @@ -106,4 +106,4 @@ We aspire to build the most flexible, reliable and scalable orchestration engine

### Orchestration Expert

You can help our community compare Cadence to other orchestration technologies holistically. Starting from the onboarding experience, to feature-set; from observability to performance and scale; from intuitiveness/ease-of-use to contribution experience; you can help others evaluate Cadence. Your comparison will also help us improve Cadence even better\!
You can help our community compare Cadence to other orchestration technologies holistically. Starting from the onboarding experience, to feature-set; from observability to performance and scale; from intuitiveness/ease-of-use to contribution experience; you can help others evaluate Cadence. Your comparison will also help us improve Cadence even better\!
9 changes: 8 additions & 1 deletion sidebarsCommunity.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@ export default {
// dirName: '.',
// },
{ type: 'doc', id: 'support' },
{ type: 'doc', id: 'how-to-contribute' },
{
type: 'category',
label: 'How to Contribute',
items: [
{ type: 'doc', id: 'how-to-contribute/index' },
{ type: 'doc', id: 'how-to-contribute/coding-conventions' },
],
},
{ type: 'doc', id: 'governance' },
{ type: 'doc', id: 'team' },
// { type: 'doc', id: 'resources' },
Expand Down