Skip to content

Commit 9d5074d

Browse files
Update Governance and Announce Team (#233)
1 parent f9f1918 commit 9d5074d

File tree

3 files changed

+113
-39
lines changed

3 files changed

+113
-39
lines changed

community/governance.mdx

Lines changed: 85 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Governance
3-
date: 2025-01-07
3+
date: 2025-05-09
44
authors: demirkayaender
55
tags:
66
- announcement
@@ -16,30 +16,76 @@ This document outlines the governance model for the Cadence Workflow project. It
1616

1717
The governance of the Cadence project adheres to the following principles:
1818

19-
1. **Transparency**: Discussions, decisions, and contributions are made in public forums.
20-
2. **Inclusivity**: Contributions are welcome from anyone, regardless of affiliation, experience, or background.
21-
3. **Meritocracy**: Decisions are guided by technical merit and the value of contributions to the community.
19+
1. **Meritocracy**: Decisions are guided by technical merit and the value of contributions to the community.
20+
2. **Transparency**: Discussions, decisions, and contributions are made in public forums.
21+
3. **Inclusivity**: Contributions are welcome from anyone, regardless of affiliation, experience, or background.
2222
4. **Sustainability**: Processes are designed to ensure the long-term health and success of the project.
2323

24-
---
24+
### Meritocracy
25+
Any official role (defined below) in the Cadence project requires a proven track record of contributions.
2526

26-
## Roles and Responsibilities
27+
Cadence is used in many tier 0-2 services across many companies, which are part of their infra/foundation or core business. This is also necessary to keep Cadence reliable and trustable. We would like to grow our community with people who care about the project and put careful effort into improving it.
2728

28-
Ways to contribute to the Cadence project can be found in [this document](https://cadenceworkflow.io/community/how-to-contribute).
29+
Primary contributions are commits, publications in official Cadence mediums (GitHub, cadenceworkflow.io etc.), or community support (over Slack, GitHub, StackOverflow etc.) where the Cadence community can directly benefit from.
2930

30-
---
31+
To become eligible for an official role, contributions should sustain for at least 6 months with a convincing case for future commitment. For example, to become a maintainer, a contributor should have regular commits within the last 6 months and should explain how they will continue contributing.
32+
33+
Candidates need to join at least one community meeting to gain familiarity from other members in related roles and to contribute in project processes.
34+
35+
After being eligible, a contributor could apply to have an official role. Anyone with an official role should disclose their real name publicly apart from their GitHub aliases and provide their emails to the Cadence team for contact purposes. The Technical Steering Committee will then hold a voting process to move forward or to give feedback.
36+
37+
### Transparency
38+
Plans, roadmaps and projects are posted publicly. Similarly, Cadence community meetings are open to everyone. Planning discussions are held in community meetings. People with official roles are published publicly. Lastly, our decision making process is documented transparently (explained below).
39+
40+
Our decisions and processes are explained with clear reasons, motivation and goals; which are all based on addressing community needs and improving our technology.
3141

32-
## Decision-Making Process
42+
### Inclusivity
43+
The Cadence project strives to have contributions from more and diverse contributors. We believe we can build our best only if we can receive inputs from more people.
3344

34-
### 1\. Consensus-Based Decisions
45+
Basic contributions such as sending PRs, leaving reviews, creating or responding to issues, and submitting project proposals are open to everyone without requiring any prior approval.
3546

36-
Most decisions are made through open discussions on GitHub or community meetings. Contributors and committers work towards consensus, ensuring that all voices are heard.
47+
Official roles are open to everyone regardless of affiliation, experience, or background. Our criteria will be merely based on the objective requirements mentioned above.
3748

38-
Based on the requests from the past, feedback during planning sessions and the criticality of the features Cadence core team, which is also the technical steering committee, will propose a plan for the next year or 6 months.
49+
### Sustainability
50+
Processes are designed to ensure the long-term health and success of the project.
3951

40-
### 2\. Appeals
52+
We aim to ensure avoiding bugs, security issues, having unfunded projects, half-done projects, unmaintained issues, launches without ownership. A clear understanding of maintainability is needed for any project’s approval.
4153

42-
If a contributor disagrees with a decision, they can escalate the issue for review through Github or community meetings, explaining why a change in current proposal is necessary by comparing their ideas to existing items in the planning proposal.
54+
We strive to simplify our project to make it easier to understand, contribute, and avoid having a single point of failures.
55+
56+
---
57+
58+
## Official Roles
59+
### Maintainer
60+
A maintainer is a person who understands the Cadence codebase, with consistent past contributions. Maintainer rights and responsibilities are as follows:
61+
* Merge rights (code-review is still required in most cases),
62+
* Review Contributions,
63+
* Fix Bugs and Update Dependencies,
64+
* Release Updates,
65+
* Manage Issues,
66+
* Enforce Standards
67+
68+
Eligibility requirements are
69+
* Minimum 6 months of consistent code contributions (PRs)
70+
* Attendance in community meetings to talk about updates and provide their inputs
71+
* Voted approval from Technical Steering Committee
72+
73+
### Member of the Technical Steering Committee (TSC)
74+
Cadence Technical Steering Committee
75+
* Sets technical vision and strategy,
76+
* Makes technical decisions,
77+
* Approves design documents,
78+
* Resolves technical disagreements,
79+
* Contributes to planning,
80+
* Govern standards and practices,
81+
* Facilitates contributions
82+
83+
Eligibility requirements are
84+
* Must already be a maintainer
85+
* 2+ approved large project proposals
86+
* Involvement in 2 large projects’ designs
87+
* Attendance in community meetings to talk about updates and provide their inputs
88+
* Voted approval from Technical Steering Committee
4389

4490
---
4591

@@ -60,6 +106,28 @@ If a contributor disagrees with a decision, they can escalate the issue for revi
60106
* Abide by the [Code of Conduct](https://github.com/uber/.github/blob/dcd96c52f2d1d839208315a2572cf37f48e52e96/CODE_OF_CONDUCT.md).
61107
* Treat all community members with respect and professionalism.
62108

109+
---
110+
111+
## Governing Model & Voting Process
112+
Cadence follows an **electoral** governing model where official voting will be held for certain decisions such as becoming an official member, technical discussions (major changes, controversial features, features deprecations, major releases etc.), planning, policy etc.
113+
114+
A member of TSC can call for voting for a subject in case they want an official opinion from every member. Before any election, two weeks notice should be given to members.
115+
116+
Voting can be held online or offline if a member cannot make the meeting or if a common meeting time cannot be found. Even if the voting happens offline, members can still partially meet online to discuss the case.
117+
118+
Each election should be posted in a TSC dedicated GitHub repo. Each member is reached via their email, which is shared with every TSC member. It’s the member’s responsibility to provide a working email address in case the email bounces back. The member who calls for voting sends email notifications.
119+
120+
Voting has to be recorded and should clearly show a vote was casted from the voters account (email or GitHub or another account officially linked to the voter). A vote could be in “favor”, “not in favor” or “abstain”.
121+
122+
In case, a response wasn’t received from all the members within two weeks. All the pending votes, with already 2 weeks notice period expired, will be casted till the end of the first day (Pacific Time) of the coming month. This way, every member can expect a voting might be happening and they can find voting issues in the dedicated repo. Decisions will be made based on received votes at that time.
123+
124+
At any time after the initial notification, if more than half of the total number of TSC members sends “favor” or “not in favor”, a decision can be made without waiting for other members, since their vote will have no effect.
125+
126+
Otherwise, voting results are decided based on the total number of “favor” and “not in favor” votes, ignoring “abstain” votes. Whichever vote has a majority will be the decision. If no majority is reached, TSC can continue with a re-election or status-quo is maintained (i.e. no change).
127+
128+
Every decision should be published at a TSC GitHub repo with vote numbers for TSC visibility, and announced publicly.
129+
130+
63131
---
64132

65133
## **Code of Conduct**
@@ -70,19 +138,19 @@ The Cadence community follows a [Code of Conduct](https://github.com/uber/.githu
70138

71139
## **Project Roadmap**
72140

73-
The core team is responsible for maintaining and updating the project roadmap. The roadmap outlines:
141+
The TSC is responsible for maintaining and updating the project roadmap. The roadmap outlines:
74142

75143
* Upcoming features and milestones.
76144
* Technical debt and areas of improvement.
77145
* Long-term goals for the project.
78146

79-
The roadmap is published and updated regularly on the [project website](https://cadenceworkflow.io/) and GitHub.
147+
The roadmap is published and updated regularly on the [GitHub Roadmap Project](https://github.com/orgs/cadence-workflow/projects/1) where high level details are posted in our [project website](https://cadenceworkflow.io/).
80148

81149
---
82150

83151
## **Licensing**
84152

85-
All repositories under the Cadence Workflow organization are released under the [MIT License](https://github.com/cadence-workflow/cadence/blob/master/LICENSE), unless otherwise specified.
153+
All repositories under the Cadence Workflow organization are released under the [Apache 2.0 License](https://github.com/cadence-workflow/cadence/blob/master/LICENSE), unless otherwise specified.
86154

87155
---
88156

community/team.mdx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# Team
22

33
import {
4-
CoreTeamRow,
4+
MaintainersRow, TSCRow,
55
} from '@site/src/components/TeamProfileCards';
66

7-
## Core Team {#core-team}
7+
## Maintainers {#maintainers}
88

9-
> The Cadence team develops and maintains the Cadence open source project as well as foundational services for Uber's Platform.
10-
> Current members of the Cadence team are listed in alphabetical order below.
9+
<MaintainersRow />
1110

12-
<CoreTeamRow />
11+
## Technical Steering Committee {#tsc}
12+
13+
<TSCRow />

src/components/TeamProfileCards/index.tsx

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ function TeamProfileCardCol(props: ProfileProps) {
8585
);
8686
}
8787

88-
/* Core Team: */
89-
export function CoreTeamRow(): JSX.Element {
88+
/* Maintainers: */
89+
export function MaintainersRow(): JSX.Element {
9090
return (
9191
<div className="row">
9292
<TeamProfileCardCol name="Abhishek Jha" githubUrl="https://github.com/abhishekj720" linkedinUrl="https://www.linkedin.com/in/mrjhaabhishek/">
@@ -98,14 +98,7 @@ export function CoreTeamRow(): JSX.Element {
9898
<TeamProfileCardCol name="Andre Oliveira" githubUrl="https://github.com/uandreo"> </TeamProfileCardCol>
9999
<TeamProfileCardCol name="Assem Hafez" githubUrl="https://github.com/Assem-Uber"> </TeamProfileCardCol>
100100
<TeamProfileCardCol name="Bowen Xiao" githubUrl="https://github.com/bowenxia"> </TeamProfileCardCol>
101-
<TeamProfileCardCol name="chopincode" githubUrl="https://github.com/chopincode"> </TeamProfileCardCol>
102101
<TeamProfileCardCol name="David Porter" githubUrl="https://github.com/davidporter-id-au"> </TeamProfileCardCol>
103-
<TeamProfileCardCol name="Ender Demirkaya" githubUrl="https://github.com/demirkayaender" linkedinUrl="https://www.linkedin.com/in/enderdemirkaya/">
104-
Ender joined the Cadence team as a tech lead and later transitioned into a management role. <br />
105-
His career started with his own startup, followed with Microsoft, working for another startup and Meta. <br />
106-
His prior work involves building Bing's/Azure's key value store (ObjectStore), distributed NAS, and search engines. <br />
107-
He's into outdoors and endurance sports while not working.
108-
</TeamProfileCardCol>
109102
<TeamProfileCardCol name="Felipe Imanishi" githubUrl="https://github.com/fimanishi" linkedinUrl="https://www.linkedin.com/in/fimanishi">
110103
Felipe is a Software Engineer contributing to Cadence from San Francisco. He found CS later in his career, and he is glad he did. Felipe is always looking to learn more and Cadence is provides an endless source of topics. Outside of work, Felipe is probably doing something with his two sons.
111104
</TeamProfileCardCol>
@@ -115,13 +108,10 @@ export function CoreTeamRow(): JSX.Element {
115108
Jakob Haahr Taankvist is a Software Engineer, contributing to the Cadence project from Denmark. With a background in formal games and traffic optimization, he now explores workflow orchestration.<br />
116109
Outside of work, Jakob is on a mission to evaluate how well Danish ice hockey arenas double as programming spots while cheering on his son's games. 🏒💻
117110
</TeamProfileCardCol>
118-
<TeamProfileCardCol name="Jonathan Baker" githubUrl="https://github.com/jonathanbaker7"> </TeamProfileCardCol>
119111
<TeamProfileCardCol name="Josué Alexander Ibarra" githubUrl="https://github.com/ibarrajo" linkedinUrl="https://www.linkedin.com/in/elninja/">
120112
Josue Ibarra is a Developer Advocate for Cadence Workflows at Uber, based in Seattle.<br />
121113
Passionate about building better systems with Cadence, he balances his love for coding with hobbies like motorcycles, sailing, and cooking. 🚀🍳🏍️
122114
</TeamProfileCardCol>
123-
<TeamProfileCardCol name="Ketsia Mbaku" githubUrl="https://github.com/ketsiambaku"> </TeamProfileCardCol>
124-
<TeamProfileCardCol name="Kisel Jan" githubUrl="https://github.com/dkrotx"> </TeamProfileCardCol>
125115
<TeamProfileCardCol name="Nate Mortensen" githubUrl="https://github.com/natemort">
126116
Nate originally got into programming by modding Minecraft and has been contributing to open source software ever since.
127117
When he's not working on Cadence he's on a mission to try every pizza in Seattle.
@@ -135,11 +125,6 @@ export function CoreTeamRow(): JSX.Element {
135125
<TeamProfileCardCol name="Shaddoll" githubUrl="https://github.com/Shaddoll"> </TeamProfileCardCol>
136126
<TeamProfileCardCol name="Shijie Sheng" githubUrl="https://github.com/shijiesheng"> </TeamProfileCardCol>
137127
<TeamProfileCardCol name="Steven L" githubUrl="https://github.com/Groxx"> </TeamProfileCardCol>
138-
<TeamProfileCardCol name="Taylan Isikdemir" githubUrl="https://github.com/taylanisikdemir" linkedinUrl="https://www.linkedin.com/in/taylan-isikdemir">
139-
Taylan majored in CS and his software engineering journey includes working at Microsoft Azure, Google Cloud, and helping build an observability startup from ground up. <br />
140-
Taylan is tech lead of Cadence team at Uber, based in Seattle. <br />
141-
When he is not working, you'll probably find him playing basketball or kickboxing.
142-
</TeamProfileCardCol>
143128
<TeamProfileCardCol name="Tim Li" githubUrl="https://github.com/timl3136"> </TeamProfileCardCol>
144129
<TeamProfileCardCol name="tubignat" githubUrl="https://github.com/tubignat"> </TeamProfileCardCol>
145130
<TeamProfileCardCol name="Vinay Kumar Yadav" githubUrl="https://github.com/vinay116"> </TeamProfileCardCol>
@@ -148,6 +133,26 @@ export function CoreTeamRow(): JSX.Element {
148133
);
149134
}
150135

136+
/* Technical Steering Committee: */
137+
export function TSCRow(): JSX.Element {
138+
return (
139+
<div className="row">
140+
<TeamProfileCardCol name="Ender Demirkaya" githubUrl="https://github.com/demirkayaender" linkedinUrl="https://www.linkedin.com/in/enderdemirkaya/">
141+
Ender joined the Cadence team as a tech lead and later transitioned into a management role. <br />
142+
His career started with his own startup, followed with Microsoft, working for another startup and Meta. <br />
143+
His prior work involves building Bing's/Azure's key value store (ObjectStore), distributed NAS, and search engines. <br />
144+
He's into outdoors and endurance sports while not working.
145+
</TeamProfileCardCol>
146+
<TeamProfileCardCol name="Taylan Isikdemir" githubUrl="https://github.com/taylanisikdemir" linkedinUrl="https://www.linkedin.com/in/taylan-isikdemir">
147+
Taylan majored in CS and his software engineering journey includes working at Microsoft Azure, Google Cloud, and helping build an observability startup from ground up. <br />
148+
Taylan is tech lead of Cadence team at Uber, based in Seattle. <br />
149+
When he is not working, you'll probably find him playing basketball or kickboxing.
150+
</TeamProfileCardCol>
151+
<TeamProfileCardCol name="Kisel Jan" githubUrl="https://github.com/dkrotx"> </TeamProfileCardCol>
152+
</div>
153+
);
154+
}
155+
151156
/* HonoraryContributors */
152157
export function HonoraryContributorsRow(): JSX.Element {
153158
return (

0 commit comments

Comments
 (0)