-
-
Notifications
You must be signed in to change notification settings - Fork 1
feat: charter #2
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
Open
NathanWalker
wants to merge
6
commits into
master
Choose a base branch
from
feat/charter
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
65f3a37
feat: charter
NathanWalker 03c8c3e
chore: feedback
NathanWalker a266911
cleanup
NathanWalker c860c82
cleanup
NathanWalker 1206a9e
chore: updates
NathanWalker 734d93e
chore: revise language per suggestions
NathanWalker File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# NativeScript Charter | ||
|
||
## Section 0. Guiding Principle | ||
|
||
NativeScript is part of the 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 | ||
|
||
NativeScript brings native platform APIs directly into the JavaScript runtime, enriched with robust TypeScript typings, ensuring a seamless and powerful development experience. As an open-source framework for building applications across iOS, visionOS, Android, macOS, and more, it uniquely blends familiar web development paradigms—such as CSS styling and template-driven views—with popular native languages including Swift, Kotlin, Objective-C, and Java. This integration offers developers unparalleled flexibility and ease. | ||
Its intuitive CLI further simplifies interaction with native platform development processes, making native development approachable for JavaScript developers. | ||
|
||
### 1.1: In-scope | ||
|
||
Section Intentionally Left Blank | ||
|
||
### 1.2: Out-of-Scope | ||
|
||
Section Intentionally Left Blank | ||
|
||
## Section 2. Relationship with OpenJS Foundation CPC. | ||
|
||
Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of NativeScript, it is delegated to the NativeScript Technical Steering Committee ("TSC"). OpenJS Foundation's business leadership is the Board of Directors (the "Board"). | ||
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. This paragraph is a bit odd for me, specifically the correlation of "OpenJS Foundation's business leadership is the Board of Directors (the "Board"). |
||
|
||
This charter can only be amended with the approval of the CPC. | ||
|
||
## Section 3. Establishment of the TSC | ||
|
||
TSC memberships are not time-limited. There is no maximum size of the TSC. | ||
|
||
The TSC may add additional members to the TSC through meeting consensus. The consensus requires at least five TSC members to be present to approve a new member. A TSC member can be removed from the TSC by voluntary resignation or by consensus with at least five members present. | ||
|
||
No more than two-thirds of the TSC members may be affiliated with the same employer. If a change in TSC membership or a change of employment by a TSC member creates a situation where more than two-thirds of the TSC membership shares an employer, then the situation must be immediately remedied by the removal of a member affiliated with the over-represented employer(s). | ||
|
||
The TSC shall meet once a month using tools that enable participation by the community (e.g. weekly on a Zoom meeting, or through any other appropriate means selected by the TSC). The meeting shall be directed by the TSC Chairperson. Responsibility for directing individual meetings may be delegated by the TSC Chairperson to any other TSC member. Minutes or an appropriate recording shall be taken and made available to the community through accessible public postings. | ||
|
||
TSC members are expected to regularly participate in TSC meetings and issue triaging. | ||
|
||
TSC membership may be reconsidered if a member misses two or more monthly meetings. | ||
|
||
|
||
## Section 4. Roles & Responsibilities of the TSC | ||
|
||
Subject to such policies as may be set by the CPC, the TSC members are responsible for all technical development with NativeScript, including: | ||
|
||
* Setting release dates. | ||
* Release quality standards. | ||
* Technical direction. | ||
* Project governance and process. | ||
* GitHub repository management. | ||
* Conduct and maintain guidelines defined by the OpenJS Foundation Cross Project Council. | ||
* Maintaining the list of additional collaborators. | ||
* Development process and any coding standards. | ||
* Mediating technical conflicts between collaborators or `NativeScript` projects. | ||
|
||
The TSC members will define NativeScript project's release vehicles. | ||
|
||
### Section 4.1. NativeScript Project Operations | ||
|
||
The TSC members will establish and maintain a development process for NativeScript. The development process will establish guidelines for how the developers and community will operate. It will, for example, establish appropriate timelines for TSC review (e.g. agenda items must be published at least a certain number of hours in advance of a TSC meeting). | ||
|
||
Note that project operations remain subject to any relevant policy or process specified by the OpenJS Foundation board or Cross Project Council. | ||
|
||
### Section 4.2. Decision-making, Voting, and/or Elections | ||
|
||
#### Section 4.2.1. Elections | ||
|
||
Leadership roles in NativeScript will be peer elected representatives of the community. | ||
|
||
For election of persons (such as the Chair), a multiple-candidate method should be used, such as: | ||
|
||
- [Condorcet](http://en.wikipedia.org/wiki/Condorcet_method) or | ||
- Single Transferable Vote | ||
|
||
Multiple-candidate methods may be reduced to simple election by plurality when there are only two candidates for one position to be filled. No election is required if there is only one candidate and no objections to the candidates election. Elections shall be done within NativeScript by the members of the TSC. | ||
|
||
NativeScript will elect from members of NativeScript: | ||
|
||
- a Chair and a Vice Chair to work on building an agenda for NativeScript meetings | ||
|
||
NativeScript shall hold annual elections to select a Chair and Vice Chair. NativeScript can choose to hold those elections at different times of the year or concurrently. | ||
|
||
There are no limits on the number of terms a Chair and Vice Chair may serve. | ||
|
||
#### Section 4.2.2. Decision Making | ||
|
||
The TSC follows a Lazy Consensus Seeking decision-making model inspired by the [Apache Software Foundation's model](https://community.apache.org/committers/decisionMaking.html#lazy-consensus). | ||
|
||
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 4.2.3. Voting | ||
|
||
Voting should only be done as a last resort. | ||
|
||
If a proposal cannot reach consensus after a reasonable period of discussion, a member can call for objections to be overruled through an asynchronous vote. If this call is seconded by another member, an asynchronous vote must be organized. For the objections to be overruled, at least 2/3 of all members must vote in favor of overruling the objections. | ||
|
||
This voting process is designed to make it difficult to move a proposal forward without consensus, but prevent someone from blocking progress through objections. | ||
|
||
TSC members are all _voting_ members. | ||
|
||
## Section 5. Changes to this Document | ||
|
||
Changes to this document require CPC approval. | ||
|
||
---- | ||
|
||
This work is a derivative of the [Node.js Project TSC Charter](https://github.com/nodejs/node/blob/main/TSC_CHARTER.md). |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 believe these sections are mandatory, no?