From 69ebb229cbb6a7fa99265af54d99ef56bd52bf71 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 8 Mar 2024 12:46:17 +0100 Subject: [PATCH 1/8] chore: add charter --- GOVERNANCE.md | 10 ++++++++++ PROJECT_CHARTER.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 GOVERNANCE.md create mode 100644 PROJECT_CHARTER.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000000..7ae47985afe5 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,10 @@ +# `jest` Project Governance + +## Maintainers +- [@SimenB](https://github.com/SimenB) + +Maintainers are responsible for issue/PR triage, feature additions, maintenance, bugfixes, security fixes, releases, promoting existing contributors to maintainers, managing repo and CI configuration, etc. + +## Contributors + +Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors do not have any additional permissions on the project. diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md new file mode 100644 index 000000000000..087ffa417495 --- /dev/null +++ b/PROJECT_CHARTER.md @@ -0,0 +1,49 @@ +# `jest` Charter + +Jest is a modular test runner and framework for JavaScript, designed for running using Node.js on all of its supported platforms. It is a modular runner than can run and test any JavaScript, TypeScript, or other language that compiles to JavaScript. It is designed to be easy to use and to have a low barrier to entry, while still being flexible and powerful. + +## Section 0: Guiding Principles + +The `jest` project is part of the [OpenJS Foundation][openjs foundation], which operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. + +## Section 1: Scope + +`jest` is primarily a test framework and test runner, focused on making it easy to test any JS code, either written for the server, the client or both. The Jest project consists of many different smaller modules, such as the assertion library, test runner, diffing algorithm, object serializer, task manager and more. The project is designed to be modular, so that it can be used in a variety of different environments and for different purposes. + +## Section 2: Relationship with OpenJS Foundation CPC. + +Technical leadership for the projects within the [OpenJS Foundation][openjs foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the `jest` project, it is delegated to the [`jest` Maintainers](GOVERNANCE.md#maintainers) (the “Maintainers”). The OpenJS Foundation's business leadership is the Board of Directors (the “Board”). + +This `jest` Charter reflects a carefully constructed balanced role for the Maintainers and the CPC in the governance of the OpenJS Foundation. The charter amendment process is for the Maintainers to propose changes using simple majority of the full Maintainers, the proposed changes being subject to review and approval by the CPC. The CPC may additionally make amendments to the project charter at any time, though the CPC will not interfere with day-to-day discussions, votes or meetings of the Maintainers. + +### 2.1 Other Formal Project Relationships + +Section Intentionally Left Blank + +## Section 3: `jest`'s Maintainers Governing Body + +`jest` is governed by its [maintainers](GOVERNANCE.md#maintainers). + +## Section 4: Roles & Responsibilities + +The roles and responsibilities of `jest`'s Maintainers are described in [GOVERNANCE.md](./GOVERNANCE.md). + +### Section 4.1 Project Operations & Management + +Section Intentionally Left Blank + +### Section 4.2: Decision-making, Voting, and/or Elections + +Section Intentionally Left Blank + +### Section 4.3: Other Project Roles + +Section Intentionally Left Blank + +## Section 5: Definitions + +- *Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. A Contributor may be promoted to a Maintainer by the Maintainers. Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. + +- *Maintainers*: Contributors with any kind of decision-making authority in the project. + +[openjs foundation]: https://openjsf.org From a346a2c9e629d5d6d661983c116d8e999589301a Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 8 Mar 2024 12:50:15 +0100 Subject: [PATCH 2/8] differentiate between outside contributors and ones with commit access --- GOVERNANCE.md | 7 ++++++- PROJECT_CHARTER.md | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 7ae47985afe5..27e1d6175afb 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -1,10 +1,15 @@ # `jest` Project Governance ## Maintainers + - [@SimenB](https://github.com/SimenB) Maintainers are responsible for issue/PR triage, feature additions, maintenance, bugfixes, security fixes, releases, promoting existing contributors to maintainers, managing repo and CI configuration, etc. ## Contributors -Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors do not have any additional permissions on the project. +Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors Have access to triaging issues/PRs and commit access to the repository. + +## Outside Contributors + +Anyone who contributes code or content or time, via issues or pull requests or otherwise. Outside Contributors do not have any additional permissions on the project. diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index 087ffa417495..7850af0fb029 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -42,8 +42,10 @@ Section Intentionally Left Blank ## Section 5: Definitions -- *Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. A Contributor may be promoted to a Maintainer by the Maintainers. Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. +- *Outside Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. An Outside Contributor may be promoted to a Contributor or Maintainer by the Maintainers. Outside Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. -- *Maintainers*: Contributors with any kind of decision-making authority in the project. +- *Contributors*: Contributors have triaging rights and commit access to the repository. + +- *Maintainers*: Contributors with any kind of decision-making authority in the project, and access to publishing and CI setup. [openjs foundation]: https://openjsf.org From 37b4d42b0113c8742aea58288dcbdac610c4606e Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 8 Mar 2024 14:23:57 +0100 Subject: [PATCH 3/8] prettier --- PROJECT_CHARTER.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index 7850af0fb029..d53a51762e0e 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -42,10 +42,10 @@ Section Intentionally Left Blank ## Section 5: Definitions -- *Outside Contributors*: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. An Outside Contributor may be promoted to a Contributor or Maintainer by the Maintainers. Outside Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. +- _Outside Contributors_: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. An Outside Contributor may be promoted to a Contributor or Maintainer by the Maintainers. Outside Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. -- *Contributors*: Contributors have triaging rights and commit access to the repository. +- _Contributors_: Contributors have triaging rights and commit access to the repository. -- *Maintainers*: Contributors with any kind of decision-making authority in the project, and access to publishing and CI setup. +- _Maintainers_: Contributors with any kind of decision-making authority in the project, and access to publishing and CI setup. [openjs foundation]: https://openjsf.org From 5f8adfade4f7955dff04da6e020d7f50697f2604 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sat, 9 Mar 2024 07:52:13 +0100 Subject: [PATCH 4/8] Update PROJECT_CHARTER.md Co-authored-by: Tobie Langel --- PROJECT_CHARTER.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index d53a51762e0e..92202f37d6cc 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -4,7 +4,7 @@ Jest is a modular test runner and framework for JavaScript, designed for running ## Section 0: Guiding Principles -The `jest` project is part of the [OpenJS Foundation][openjs foundation], which operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. +The `jest` project is part of the [OpenJS Foundation][openjs foundation]. The project operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. ## Section 1: Scope From 096202f7eb43fdfe9e610b68d1a79e8435f4aa1a Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 22 Apr 2024 08:55:08 +0200 Subject: [PATCH 5/8] decision making --- PROJECT_CHARTER.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index 92202f37d6cc..5e90f057640a 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -34,7 +34,7 @@ Section Intentionally Left Blank ### Section 4.2: Decision-making, Voting, and/or Elections -Section Intentionally Left Blank +The project will define a consensus-driven governance model in GOVERNANCE.md as need arises. ### Section 4.3: Other Project Roles From 302b719c79781fcbd3a321af38dfae12b380d6e3 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 22 Apr 2024 08:55:12 +0200 Subject: [PATCH 6/8] definitions --- PROJECT_CHARTER.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index 5e90f057640a..b397710f84b2 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -42,10 +42,8 @@ Section Intentionally Left Blank ## Section 5: Definitions -- _Outside Contributors_: contribute code or other artifacts, but do not have the right to commit to the codebase. Contributors work with the project’s maintainers to have code committed to the code base. An Outside Contributor may be promoted to a Contributor or Maintainer by the Maintainers. Outside Contributors should rarely be encumbered by the Maintainers and never by the CPC or OpenJS Foundation Board. +_Maintainers_: responsible for the technical direction of the project and for release management. -- _Contributors_: Contributors have triaging rights and commit access to the repository. - -- _Maintainers_: Contributors with any kind of decision-making authority in the project, and access to publishing and CI setup. +_Core contributors_: Maintainers delegate project responsibilities to core contributors, as documented in [GOVERNANCE.md](./GOVERNANCE.md). [openjs foundation]: https://openjsf.org From 470616ce916e5dce49d1ffa9bea4ab4c5e38f694 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 22 Apr 2024 08:56:04 +0200 Subject: [PATCH 7/8] how to become contributor --- GOVERNANCE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 27e1d6175afb..5e9824059f39 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -6,9 +6,11 @@ Maintainers are responsible for issue/PR triage, feature additions, maintenance, bugfixes, security fixes, releases, promoting existing contributors to maintainers, managing repo and CI configuration, etc. +Promoting contributors to maintainers is done by a maintainer after a significant number of high-quality PRs. + ## Contributors -Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors Have access to triaging issues/PRs and commit access to the repository. +Anyone who contributes code or content or time, via issues or pull requests or otherwise. Contributors have access to triaging issues/PRs and commit access to the repository. ## Outside Contributors From 24d18c8a75a93f587730f4cdf89ce6902cc3830d Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 23 Apr 2024 19:24:57 +0200 Subject: [PATCH 8/8] Apply suggestions from code review Co-authored-by: Jordan Harband --- PROJECT_CHARTER.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PROJECT_CHARTER.md b/PROJECT_CHARTER.md index b397710f84b2..2a7ef62251ea 100644 --- a/PROJECT_CHARTER.md +++ b/PROJECT_CHARTER.md @@ -8,13 +8,13 @@ The `jest` project is part of the [OpenJS Foundation][openjs foundation]. The pr ## Section 1: Scope -`jest` is primarily a test framework and test runner, focused on making it easy to test any JS code, either written for the server, the client or both. The Jest project consists of many different smaller modules, such as the assertion library, test runner, diffing algorithm, object serializer, task manager and more. The project is designed to be modular, so that it can be used in a variety of different environments and for different purposes. +`jest` is primarily a test framework and test runner, focused on making it easy to test any JS code, either written for the server, the client or both. The Jest project consists of many different smaller modules, such as the assertion library, test runner, diffing algorithm, object serializer, task manager, and more. The project is designed to be modular, so that it can be used in a variety of different environments and for different purposes. ## Section 2: Relationship with OpenJS Foundation CPC. Technical leadership for the projects within the [OpenJS Foundation][openjs foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the `jest` project, it is delegated to the [`jest` Maintainers](GOVERNANCE.md#maintainers) (the “Maintainers”). The OpenJS Foundation's business leadership is the Board of Directors (the “Board”). -This `jest` Charter reflects a carefully constructed balanced role for the Maintainers and the CPC in the governance of the OpenJS Foundation. The charter amendment process is for the Maintainers to propose changes using simple majority of the full Maintainers, the proposed changes being subject to review and approval by the CPC. The CPC may additionally make amendments to the project charter at any time, though the CPC will not interfere with day-to-day discussions, votes or meetings of the Maintainers. +This `jest` Charter reflects a carefully constructed balanced role for the Maintainers and the CPC in the governance of the OpenJS Foundation. The charter amendment process is for the Maintainers to propose changes using simple majority of the full Maintainers, the proposed changes being subject to review and approval by the CPC. The CPC may additionally make amendments to the project charter at any time, though the CPC will not interfere with day-to-day discussions, votes, or meetings of the Maintainers. ### 2.1 Other Formal Project Relationships