Skip to content

Commit

Permalink
Merge branch 'main' into dev-1
Browse files Browse the repository at this point in the history
  • Loading branch information
mertcanaltin committed Jun 20, 2024
2 parents 4d7247a + 6a70f49 commit d62084b
Show file tree
Hide file tree
Showing 11 changed files with 221 additions and 98 deletions.
25 changes: 10 additions & 15 deletions CPC-CHARTER.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,25 +176,17 @@ The CPC Voting Members will vote on candidates as described in the [Elections][]

## Section 9. Decision Making

For internal Project decisions, Collaborators shall operate under Lazy Consensus.
The CPC follows a [Consensus Seeking][] decision making model.
When an agenda item has appeared to reach a consensus the moderator will ask "Does anyone object?" as a final call for dissent from the consensus.
The CPC follows a Lazy Consensus Seeking decision-making model inspired by the [Apache Software Foundation's model][ASF community].

If an agenda item cannot reach a consensus a CPC member can call for either a closing vote or a vote to table the issue to the next meeting.
Votes shall follow the procedure described in the [Voting][] section of this charter.
Lazy consensus is achieved by making a proposal in a forum that will reach all members of the group who should have the opportunity to participate in reaching consensus and waiting for an appropriate amount of time given the nature of the decision for anyone to object. It is not necessary to get explicit approval to proceed from all members, silence indicates consent. However, objections must be resolved in order to achieve consensus.

## Section 10. Voting

The CPC follows a [Consensus Seeking][] decision making model.
When an agenda item has appeared to reach a consensus the moderator will ask "Does anyone object?" as a final call for dissent from the consensus.
Voting should only be done as a last resort.

If an agenda item cannot reach a consensus a CPC member can call for either a closing vote or a vote to table the issue to the next meeting.
The call for a vote must be seconded by a majority of the CPC or else the discussion will continue.
If a proposal cannot reach consensus after a reasonable period of discussion, a voting member can call for objections to be overruled through an asynchronous vote. If this call is seconded by another voting member, an asynchronous vote must be organized. For the objections to be overruled, at least 2/3 of all voting members must vote in favor of overruling the objections.

For all votes, a simple majority of all Voting CPC members for, or against, the issue wins.
A Voting CPC member may choose to participate in any vote through abstention.

Note that, in addition to requiring a simple majority vote of the CPC Voting CPC members, all changes to this charter are also subject to approval from the OpenJS Foundation board.
This voting process is designed to make it difficult to move a proposal forward without consensus, but prevent someone from blocking progress through objections.

## Section 11. Definitions

Expand All @@ -209,11 +201,14 @@ Contributors should rarely be encumbered by the CPC or Board.

**Governing Body**: a group of Collaborators within a Project elected to represent the Project in an official decision making role as defined in the Project's governance policies.

## Section 12. Changes to this Document

Changes to this document require CPC consensus and approval from the OpenJS Foundation Board.

[ASF community]: https://community.apache.org/committers/decisionMaking.html#lazy-consensus
[Foundation mission and vision statements]: https://openjsf.org/about/
[Foundation bylaws]: https://bylaws.openjsf.org
[Voting]: #section-10-voting
[Elections]: #section-7-elections
[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making
[Condorcet]: http://en.wikipedia.org/wiki/Condorcet_method
[Single Transferable Vote]: http://en.wikipedia.org/wiki/Single_transferable_vote
[OpenJS Foundation bylaws]: https://bylaws.openjsf.org/
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ Anyone who has been active in the foundation or one of its member projects, as d

- Abigail Cabunoc Mayes ([@abbycabs](https://github.com/abbycabs))
- Adrian Estrada ([@edsadr](https://github.com/edsadr))
- Chris de Almeida ([@ctcpip](https://github.com/ctcpip))
- Christian Bromann ([@christian-bromann](https://github.com/christian-bromann))
- Claudio Wunder ([@ovflowd](https://github.com/ovflowd))
- Cody Zuschlag([@codyzu](https://github.com/codyzu))
Expand All @@ -168,6 +169,7 @@ Anyone who has been active in the foundation or one of its member projects, as d
- Ethan Arrowood ([@Ethan-Arrowood](https://github.com/Ethan-Arrowood))
- Even Stensberg ([@evenstensberg](https://github.com/evenstensberg))
- Jean Burellier ([@sheplu](https://github.com/sheplu))
- Jon Church ([@jonchurch](https://github.com/jonchurch))
- Jordan Harband ([@ljharb](https://github.com/ljharb))
- Jory Burson ([@jorydotcom](https://github.com/jorydotcom))
- Marco Ippolito ([@marco-ippolito](https://github.com/marco-ippolito))
Expand Down Expand Up @@ -243,6 +245,10 @@ If an Observer fails to meet these expectations they can be excluded from future

* [Community / Travel Fund](./community-fund/COMMUNITY_FUND_POLICY.md) - OpenJS Foundation projects and their community members are able to take advantage of our community fund.

#### OpenJS Ecosystem Sustainability Program

* [OpenJS Ecosystem Sustainability Program](./project-resources/ESP/ECOSYSTEM_SUSTAINABILITY_PROGRAM.md) - The Ecosystem Sustainability Program is an opt-in OpenJS partner program to help secure outdated software and create new revenue streams for our projects.

### Policy Change Proposal Process

The OpenJS CPC is chartered to oversee the technical governance of all OpenJS Projects, Collaboration spaces and Working Groups under the OpenJS Foundation. The CPC establishes the default governance, conduct, and licensing policies for all Projects and Collaboration spaces. Projects have broad powers of self-governance.
Expand Down
2 changes: 1 addition & 1 deletion conduct/COC_TEAM_CHARTER.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Primary and alternate community members of the CoC Team must:
* Commit to uphold this charter
* Be willing to treat every accused individual in the same way regardless of the impact of their contributions to open source

No two primary community members can work for the same employer.
No two primary community members can work for the same employer nor hold leadership positions in the same OpenJSF project.

### Term

Expand Down
82 changes: 7 additions & 75 deletions governance/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,77 +57,11 @@ To improve organizational transparency and collaboration between the CPC and Boa

## Consensus Seeking Process

The Team follows a [Consensus Seeking][] decision-making model.
The team follows the [decision-making][cpc charter decision making] and [voting][cpc charter voting] policies described in the charter.

When an agenda item has appeared to reach a consensus, the moderator
will ask "Does anyone object?" as a final call for dissent from the
consensus.
## Elections

If an agenda item cannot reach a consensus, a Team member can call for
the item to be decided by a vote or to table the issue to the next
meeting. In both cases the decision must be seconded by a majority of the Team
or else the discussion will continue. Simple majority wins. Only Active
Members participate in a vote.

## Term for Voting Members

As per the [CPC charter][cpc charter term], the term for all voting members is 1 year:

> Voting members serve for a term of 1 year and must be re-nominated and ratified
> by the Voting CPC members each year.
The term for all voting members ends March 31st. In the event annual elections are not complete before the end of a term year, voting members will hold their seats until that election is complete.

## Term for CPC Board representatives

As per the CPC charter, the term for CPC Board representatives is 1 year. Due to the bootstrap
process and the decision to stagger CPC representative terms by 6 months, the initial term for the
[Primary CPC Director][] will end February 28, 2021 and the initial term for the
[Secondary CPC Director][] will end August 31, 2020. Subsequent terms will be for a period
of 1 year ending the last day of February for the Primary CPC Director and August 31 for the
Secondary CPC Director.

In the event that the [Tertiary CPC Director][] seat is activated and a start date is determined,
the Tertiary CPC Director will then serve for a term of 1 year from that start date.

The election process will be started 1 month in advance of the end of the term for each Director
with the goal of having it be complete 2 weeks before the term ends. We will not share the specific
results in terms of votes received by each candidate as this could discourage candidates.
Instead, general election data will be made available, for example the percentage of voter turnout.

## Election process for Non-Impact Voting CPC members

As per the [CPC charter][cpc charter], the non-impact projects elect 2 voting CPC members:

> up to two (2) Voting members may be nominated by the non-impact projects based on a process set by the CPC.
These members will be elected for a term of 1 year as follows:

* Once a year an issue will be opened in the CPC repo announcing that the period for nominations is open.

* Any member from one of the non-impact projects can self-nominate emailing the chair of the CPC with their interest in running for the CPC.

* The nomination period will be open for 2 weeks at which point the CPC chair will list the nominees in the issue.

* Each of the candidates listed will be asked to open an issue in the CPC repo which includes the following:
* Projects they are part of
* Description of their background
* The reasons they would like to act as a non-impact CPC voting member
* Confirmation that they can devote the required time/effort.
* Their employer (if applicable). This is needed due to the limitations on maximum employer representation in the CPC voting members.

* The projects will be asked to confirm membership as identified by the nominees.

* Each non-impact project will nominate two `voters` through a process of their choosing.

* Each voter will be able to vote for as many or as few candidates as they wish.

* Voting will start a week after the nomination period ends, and be open for two weeks.

* Those candidates who receive the greatest number of votes will be confirmed as the winners.
In the case of a tie between 2 or more candidates, the winner will be chosen randomly unless:
* There are only 2 candidates tied for the largest number of votes, in which case those 2 candidates will be the winners, or
* all but one of the candidates that are tied for the number of votes choose to conceed.
Elections are organized by the OpenJSF Program Director, following the [election calendar][] and the policies defined in the [CPC charter][cpc charter elections].

## Approving and Onboarding Regular Members

Expand Down Expand Up @@ -226,14 +160,12 @@ The pull request may be fast-tracked if two CPC members approve the fast-trackin
CPC members may request fast-tracking of pull requests they did not author. In that case only, the request itself is also one fast-track approval. Upvote the comment anyway to avoid any doubt.

[cpc repo]: https://github.com/openjs-foundation/cross-project-council
[cpc charter]: ../CPC-CHARTER.md
[cpc charter term]: ../CPC-CHARTER.md#voting-members
[CPC charter section 5]: ../CPC-CHARTER.md#section-5-responsibilities-and-expectations-of-the-cpc
[cpc charter decision making]: ../CPC-CHARTER.md#section-9-decision-making
[cpc charter voting]: ../CPC-CHARTER.md#section-10-voting
[cpc charter elections]: ../CPC-CHARTER.md#section-7-elections
[election calendar]: ../Dates-and-Reminders.md#elections-calendar
[cpc regular members team]: https://github.com/orgs/openjs-foundation/teams/cpc-regular-members
[README]: ../README.md
[OpenJS Foundation Directory]: https://github.com/openjs-foundation/directory-private/blob/HEAD/cpc-private.md
[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making
[Active OpenJS Collaborator]: #definition-of-an-active-openjs-collaborator
[Primary CPC Director]: https://github.com/openjs-foundation/cross-project-council/blob/HEAD/CPC-CHARTER.md#the-primary-cpc-director-as-defined-in-43d-in-the-openjs-foundation-bylaws
[Secondary CPC Director]: https://github.com/openjs-foundation/cross-project-council/blob/HEAD/CPC-CHARTER.md#the-secondary-cpc-director-as-defined-in-43e-in-theopenjs-foundation-bylaws
[Tertiary CPC Director]: https://github.com/openjs-foundation/cross-project-council/blob/HEAD/CPC-CHARTER.md#the-tertiary-cpc-director-as-defined-in-43f-in-the-openjs-foundation-bylaws
110 changes: 110 additions & 0 deletions meetings/2024/2024-05-28.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# OpenJS Foundation Cross Project Council Meeting 2024-05-28

## Links

* **Recording**: https://www.youtube.com/watch?v=XKtUkV5kf3M
* **GitHub Issue**: https://github.com/openjs-foundation/cross-project-council/issues/1306

## Present

* Joe Sepi (@joesepi)
* Ben Sternthal (@bensternthal)
* Cody Zuschlag (@codyzu)
* Robin Ginn (@rginn)
* Paula Paul (@paulapaul)
* Ulises Gascon (@UlisesGascon)
* Meghan Denny (@nektro)
* Marco Ippolito (@marco-ippolito)
* Chris de Almeida (@ctcpip)
* Jordan Harband (@ljharb)
* Tobie Langel
* Michael Dawson (@mhdawson)
* Michaela Laurencin
* Wes Todd
* Claudio Wunder (@ovflowd)

## Agenda

### Announcements

- No pending travel fund requests (one did come in with no $ amounts and more detail was requested).
- Standards working group immediately following the CPC meeting
- 15 year birthday of Node.js yesterday! https://x.com/nodejs/status/1795110360510300397


### Board Meeting Updates

- https://github.com/openjs-foundation/cross-project-council/labels/waiting-on-board
- approved the charter changes consensus definition
- SQLite was approved on request of the Node.js project

### Staff Updates

- https://github.com/openjs-foundation/cross-project-council/labels/waiting-on-legal-info
- https://github.com/openjs-foundation/cross-project-council/labels/waiting-on-staff-update
- https://github.com/openjs-foundation/cross-project-council/labels/waiting-on-website-update

*Extracted from **cross-project-council-agenda** labeled issues and pull requests from the **openjs-foundation org** prior to the meeting.

### openjs-foundation/cross-project-council

* Improving the security posture of the CPC [#1300](https://github.com/openjs-foundation/cross-project-council/issues/1300)
* Had two working sessions on this
* discussed leveraging same infrastructure and process as travel fund (form, spreadsheet, review)
* We have unblocked applications to become a regular member. One application has been accepted.
* There were requests to have these decisions documented (including the decision to unblock applications), and what if anything has changed, other than more rigorous attention to following the existing process.
* There was a request for making this process clearer, including what is done in public vs. private. Intake and evaluation is proposed to be private, announcement is expected to be public. This does need to be documented and reconciled with existing process documentation. There is a motion to adopt the process in place for the travel fund. During the call there were no objections to this.
* Next steps: in the issue itself we need to clarify the requests/conditions for membership and ensure we have enough information to address that. Suggestion to do this work async.

* Selection of new Code of Conduct Team Community Members [#1298](https://github.com/openjs-foundation/cross-project-council/issues/1298)

* Document CoC Team selection process [#1297](https://github.com/openjs-foundation/cross-project-council/issues/1297)

* Revisit CPC meeting times [#1289](https://github.com/openjs-foundation/cross-project-council/issues/1289)

* We may not be able to accommodate changes that work across the board. Leaving this as is is the best choice at the moment, and we will revisit this over time.
Joe Sepi will follow up with one person who had concerns, and then close the issue.

* Create new Ecosystem Sustainability Program [#1277](https://github.com/openjs-foundation/cross-project-council/issues/1277)

* Document best practices for org/project organization [#1263](https://github.com/openjs-foundation/cross-project-council/issues/1263)

* Community Voting Members - make project and community representation simpler [#1243](https://github.com/openjs-foundation/cross-project-council/issues/1243)

* Refine CPC Definition Of Consensus [#1241](https://github.com/openjs-foundation/cross-project-council/issues/1241)
* Believe this landed, nothing to talk about.

* Requirements for Projects releasing internal projects to 3rd party contributor [#1133](https://github.com/openjs-foundation/cross-project-council/issues/1133)
Discussion of how we can notify the community when new maintainers are added to the project (for security / disclosure purposes). Is this something the CPC controls, or is this under project control? The CPC can recommend, but not necessarily control outcomes. There is also a desire to avoid ostrich-ing ourselves. Is there a need for a statement/foundation stance on this topic. “No policy, discuss ad hoc” is a viable outcome.
Using a software package implies a trust of the maintainers, including trust that they can add a maintainer (this is also true for commercial / non open source software). When ‘shopping around’ for someone to take ownership of a project that is somewhat different (but in what ways?)
Are there any rules or governance for adopting or releasing to something/someone from outside the foundation? Is the liability different?
The implicit trust has included the right to audit new people - is that implicit trust no longer there (or do we need to make it explicit?). Comment that we have lost that trust, but it has also gone well in some areas. It’s gone very well in 99.9999+ cases, and poorly in some small numbers. Need to be aware of this..
Next steps: Suggested: Create a policy specifically for handing off a project, and instead of a policy, a checklist that the CPC should review on each case. Low bureaucracy. We owe an answer as to whether you can just ‘give it away’ or if there are CPC considerations and process (to be developed).
The existence of the CPC is a huge barrier to negative outcomes since it is a support network for maintainers to avoid making mistakes in a vacuum. Reference to recent challenges in the ecosystem that might have been avoided if there were this kind of structure/more people.

* Code of Conduct Plan of Action [#1122](https://github.com/openjs-foundation/cross-project-council/issues/1122)

* Standardize on Collab Spaces over Working Groups [#1110](https://github.com/openjs-foundation/cross-project-council/issues/1110)

* IP Policy License Exemption Request - LoopBack [#885](https://github.com/openjs-foundation/cross-project-council/issues/885)

### Next week's working session

Are there any initiatives or agenda items that we should use a working session to further progress on?
- https://github.com/openjs-foundation/cross-project-council/labels/cpc-working-session

### Regular reviews

Please review regularly our list of dates and reminders, our quarterly review issues, and check the list of issues that can be closed:

- https://github.com/openjs-foundation/cross-project-council/blob/main/Dates-and-Reminders.md
- https://github.com/openjs-foundation/cross-project-council/labels/cpc-quartely-review
- https://github.com/openjs-foundation/cross-project-council/labels/cpc-can-issue-be-closed

### Q&A, Other

## Upcoming Meetings

* **Calendar**: <https://calendar.openjsf.org>

Click `+GoogleCalendar` at the bottom right to add to your own Google calendar.
Loading

0 comments on commit d62084b

Please sign in to comment.