-
Notifications
You must be signed in to change notification settings - Fork 0
feat: create project charter #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 1 commit
b6f1f36
4becfe4
cf3213c
e7d71a0
f7455ce
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,196 @@ | ||||||||
| # LoopBack Charter | ||||||||
|
|
||||||||
| _note: the purpose of a project charter is to provide a brief introduction_ | ||||||||
| _to the project from a technical, community, or business perspective. The_ | ||||||||
| _document also connects a project's community leadership and governance with the_ | ||||||||
| _OpenJS Foundation's governance._ | ||||||||
|
|
||||||||
| ## Section 0: Guiding Principles (optional) | ||||||||
|
|
||||||||
| _directions: provide a concise, high-level statement about_ | ||||||||
| _the project's long-term principles, values, or mission._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-1-guiding-principle) | ||||||||
|
|
||||||||
| LoopBack (herein "Project") is part of the OpenJS Foundation which operates | ||||||||
| transparently, openly, collaboratively and ethically. Project proposals, | ||||||||
| timelines, and statuses must be open and visible to outsiders. | ||||||||
|
|
||||||||
| ## Section 1: Scope | ||||||||
|
|
||||||||
| _directions: Include a 3-4 sentence summary of what the project does,_ | ||||||||
| _and/or what problems it solves. Imagine trying to explain your work_ | ||||||||
| _to a colleague who is familiar with related technical concepts but unfamiliar_ | ||||||||
| _with the project. You may also want to describe the project's value to community_ | ||||||||
| _and/or business stakeholders._ | ||||||||
|
|
||||||||
| ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#scope) | ||||||||
|
|
||||||||
| The Project intends to create and maintain a collection of Node.js packages to | ||||||||
| provide developers with the tools to create enterprise solutions which require | ||||||||
| interaction between a diverse set of APIs. Notably, the Project emphasizes the | ||||||||
| creation of extensible, open APIs to empower developers with flexibility and | ||||||||
| modularity. This allows the packages easily adapted to a wide range of | ||||||||
| use-cases and allows different subsets of the Project to be used as needed. | ||||||||
|
|
||||||||
| ### 1.1: In-scope (optional) | ||||||||
|
|
||||||||
| _directions: list or bullet out problem spaces, use cases, repositories_ | ||||||||
| _or other projects which are included with the work but may not be readily_ | ||||||||
| _apparent. This may help differentiate the project from other solutions in the_ | ||||||||
| _space. If you are not using this section, please indicate your intent with the_ | ||||||||
| _phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#in-scope) | ||||||||
|
|
||||||||
| - Maintenance of existing Node.js packages | ||||||||
| - Supporting latest versions of Node.js | ||||||||
| - Managing deprecation | ||||||||
| - Modernisation and extension of existing Node.js packages | ||||||||
| - Creating new Node.js packages | ||||||||
| - Documenting and standardising interfaces for common interactions | ||||||||
|
|
||||||||
| ### 1.2: Out-of-Scope (optional) | ||||||||
|
|
||||||||
| _directions: list or bullet out areas that may be seen to be related but are_ | ||||||||
| _not included in the scope of this project. This may help clarify the kind of_ | ||||||||
| _features, contributions, issues or problems the project is looking for._ | ||||||||
| _If you are not using this section, please indicate your intent with the_ | ||||||||
| _phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#out-of-scope) | ||||||||
|
|
||||||||
| Section Intentionally Left Blank | ||||||||
|
||||||||
|
|
||||||||
| ## Section 2: Relationship with OpenJS Foundation CPC. | ||||||||
|
|
||||||||
| _directions: describe how the project intersects with the Cross Project_ | ||||||||
| _Council._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-2-evolution-of-openjs-foundation-governance) | ||||||||
|
|
||||||||
| Technical leadership for the projects within the OpenJS Foundation is delegated | ||||||||
| to the projects through their project charters by the OpenJS Foundation Cross | ||||||||
| Project Council (CPC). In the case of LoopBack, it is delegated to the LoopBack | ||||||||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| Technical Steering Committee (“TSC”). OpenJS Foundation’s business leadership is | ||||||||
| the Board of Directors (the “Board”). | ||||||||
|
|
||||||||
| This Technical Steering Committee Charter reflects a carefully constructed | ||||||||
| balanced role for the TSC and the CPC in the governance of the OpenJS | ||||||||
| Foundation. The charter amendment process is for the TSC to propose changes | ||||||||
| using lazy consensus of the TSC, the proposed changes being subject to review | ||||||||
| and approval by the CPC. The CPC may additionally make amendments to the TSC | ||||||||
| charter at any time, though the CPC will not interfere with day-to-day | ||||||||
| discussions, votes or meetings of the TSC. | ||||||||
|
|
||||||||
| ### 2.1 Other Formal Project Relationships (optional) | ||||||||
|
|
||||||||
| _directions: describe any additional affiliations or groups that liaise with_ | ||||||||
| _the project in a formal way (such as a W3C Community Group, for example)._ | ||||||||
| _If you are not using this section, please indicate your intent with the_ | ||||||||
| _phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| Section Intentionally Left Blank | ||||||||
|
|
||||||||
| ## Section 3: LoopBack TSC Governing Body | ||||||||
|
|
||||||||
| _directions: describe the structure of the group responsible for managing_ | ||||||||
| _the project and its respective organization and repositories. If there are_ | ||||||||
| _specific rules for membership or participation in the group, list them here or_ | ||||||||
| _by reference to a governance.md document._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-3-establishment-of-the-tsc) | ||||||||
|
|
||||||||
| TSC memberships are not time-limited. There is no maximum size of the TSC. The | ||||||||
| size is expected to vary in order to ensure adequate coverage of important areas | ||||||||
| of expertise, balanced with the ability to make decisions efficiently. The TSC | ||||||||
| must have at least four members. Although there are no hard requirements, the | ||||||||
| composition of the TSC should aim for geographic and employer diversity in the | ||||||||
| spirit of a distributed maintenance model. | ||||||||
|
Comment on lines
+108
to
+110
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since we already meet the requirements, could we further restrict the TSC composition requirements to align with the OpenJS Foundation Growth Project requirements? Specifically, this part:
Likewise, this means we need to document our employer affiliation - AFAIK, the governance structure from our project application form is still correct. We'll also need to document the expectation that the TSC members keep this documentation up-to-date.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IIUC, the Growth project requirements are for the projects wanting to be "impact" stage. I wouldn't worry about it for now. |
||||||||
|
|
||||||||
| ## Section 4: Roles & Responsibilities | ||||||||
|
|
||||||||
| _directions: describe the roles and responsibilities of the LoopBack Governing Body._ | ||||||||
|
|
||||||||
| ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management) | ||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-4-responsibilities-of-the-tsc) | ||||||||
|
|
||||||||
| The LoopBack TSC is responsible for: | ||||||||
achrinza marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
|
|
||||||||
| - Release dates | ||||||||
| - Creating new releases | ||||||||
| - Release quality standards | ||||||||
| - Technical direction | ||||||||
| - GitHub repository hosting | ||||||||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to expand this to encompass alternate hosting (i.e. mirroring):
Suggested change
|
||||||||
| - Infrastructure management | ||||||||
| - License and security compliance | ||||||||
| - Conduct guidelines and enforcement | ||||||||
| - Maintaing the list of LoopBack Maintainers | ||||||||
| - Mediating technical conflicts between Collaborators or Foundation projects | ||||||||
| - Hosting and publishing the monthy LoopBack Maintainers Call | ||||||||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Likewise, I think it's good to have a catch-all so that we don't have to amend this charter as frequently. Also, typo.
Suggested change
|
||||||||
|
|
||||||||
| ### Section 4.1 Project Operations & Management (optional) | ||||||||
|
|
||||||||
| _directions: use this section to describe any other specific tasks the_ | ||||||||
| _${PROJECT} Governing Body may be responsible for regarding process or project_ | ||||||||
| _operations and management. If you are not using this section, please indicate_ | ||||||||
| _your intent with the phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#roles-and-organization-management) | ||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-5-nodejs-project-operations) | ||||||||
|
|
||||||||
| The TSC and entire technical community will follow any processes as may be | ||||||||
| specified by the OpenJS Foundation Board relating to the intake and license | ||||||||
| compliance review of contributions, including the OpenJS Foundation IP Policy. | ||||||||
|
|
||||||||
| ### Section 4.2: Decision-making, Voting, and/or Elections (optional) | ||||||||
|
|
||||||||
| _directions: describe any provisions the project makes for decision-making_ | ||||||||
| _or include the information by reference your governance.md document._ | ||||||||
| _If you are not using this section, please indicate your intent with the_ | ||||||||
| _phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-6-elections) | ||||||||
|
|
||||||||
| Unless stated otherwise, the LoopBack TSC adopts a lazy consensus voting system, | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For voting, I wonder if we want to have at least another "for" vote (or half of TSC agree) and no objections, before going forward.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm open to getting at least one more explicit "for" vote. Getting half of the TSC to vote (3 votes) may be a bit difficult as we don't have any provisions to enforce participation of TSC members.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. make sense. "at least one for vote" works for me. |
||||||||
| where consensus is assumed when there are no outstanding objections from the | ||||||||
| other TSC members after a stipulated period of time of no less than 72 hours. | ||||||||
|
|
||||||||
| For more important matters such as the nomination of new TSC members, a lazy | ||||||||
| consensus for a stipulated period of no less than 1 week is used instead. | ||||||||
|
|
||||||||
| These votes must be done through a process that's accessible to the general | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For voting to approve/reject a contributor to maintainer, the votes are not public in the current process.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should the TSC voting process be private as well? We may also want to state the criteria of being TSC nominee, such as:
We may also want to draft a standard "nomination form" and process similar to becoming a Maintainer.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
sounds good as it falls under the category, IMHO. |
||||||||
| public. | ||||||||
|
|
||||||||
| ### Section 4.3: Other Project Roles (optional) | ||||||||
|
|
||||||||
| _directions: describe other roles within the project, such as chairperson,_ | ||||||||
| _tech lead, collaborator, contributor, maintainer, etc. and any responsibilities or_ | ||||||||
| _rights such role confers. You can also include this information by_ | ||||||||
| _reference to your governance.md document._ | ||||||||
| _If you are not using this section, please indicate your intent with the_ | ||||||||
| _phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-8-project-roles) | ||||||||
|
|
||||||||
| The role of a LoopBack Maintainer is given to those that the the LoopBack TSC | ||||||||
achrinza marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
| has confidence in their general understanding of the Project's codebase, and | ||||||||
| trusts that they are capable for seeking feedback and consensus on non-trivial | ||||||||
| contributions. This role provides permissions to merge pull requests in the | ||||||||
| Project's Git Repositories, and dedicated communication channels with the | ||||||||
| LoopBack TSC. Nomination for the role is done in accordance with | ||||||||
achrinza marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
| [maintainer-nomination.md](./maintainer-nomination.md). | ||||||||
|
|
||||||||
| ## Section 5: Definitions (optional) | ||||||||
|
|
||||||||
| _directions: include any definitions that may help clarify terms or ideas found_ | ||||||||
| _in this charter document. If you are not using this section, please indicate_ | ||||||||
| _your intent with the phrase, 'Section Intentionally Left Blank'._ | ||||||||
|
|
||||||||
| ex. [Node.js TSC Charter](https://github.com/nodejs/TSC/blob/HEAD/TSC-Charter.md#section-9-definitions) | ||||||||
|
|
||||||||
| - **Distributed Maintenance Model:** A working model where the composition of | ||||||||
| those maintaining the project has geographic and employer diversity. | ||||||||
| - **Project:** The LoopBack project | ||||||||
| - **General public:** A group of people who do not have any roles or | ||||||||
| responsibilities in the Project. | ||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i assume the text in italic (i.e. note, directions, ex) will be removed eventually and it's there now just to help with the review?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, these would be removed before landing the PR. I've left them there to make it easier to review.