Skip to content

Commit fffe464

Browse files
committed
docs: security.md, contributing, governance
1 parent 60d530d commit fffe464

File tree

5 files changed

+359
-0
lines changed

5 files changed

+359
-0
lines changed

CODE_OF_CONDUCT.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
## Contributor Covenant Code of Conduct
2+
3+
### Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
8+
9+
### Our Standards
10+
11+
Examples of behavior that contributes to a positive environment for our community include:
12+
13+
* Demonstrating empathy and kindness toward other people
14+
* Being respectful of differing opinions, viewpoints, and experiences
15+
* Giving and gracefully accepting constructive feedback
16+
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17+
* Focusing on what is best not just for us as individuals, but for the overall community
18+
19+
Examples of unacceptable behavior include:
20+
21+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
22+
* Trolling, insulting or derogatory comments, and personal or political attacks
23+
* Public or private harassment
24+
* Publishing others' private information, such as a physical or email address, without their explicit permission
25+
* Other conduct which could reasonably be considered inappropriate in a professional setting
26+
27+
### Enforcement Responsibilities
28+
29+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
30+
31+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
32+
33+
### Scope
34+
35+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
36+
37+
### Enforcement
38+
39+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at the email addresses listed above in the [Reporting](#reporting) and [Escalation](#escalation) sections. All complaints will be reviewed and investigated promptly and fairly.
40+
41+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
42+
43+
### Enforcement Guidelines
44+
45+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
46+
47+
#### 1. Correction
48+
49+
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
50+
51+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
52+
53+
#### 2. Warning
54+
55+
**Community Impact**: A violation through a single incident or series of actions.
56+
57+
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
58+
59+
#### 3. Temporary Ban
60+
61+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
62+
63+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
64+
65+
#### 4. Permanent Ban
66+
67+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
68+
69+
**Consequence**: A permanent ban from any sort of public interaction within the project community.
70+
71+
### Attribution
72+
73+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0, available at [contributor-covenant.org/version/2/0/code_of_conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct).
74+
75+
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
76+
77+
For answers to common questions about this code of conduct, see the FAQ at
78+
[contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are available at [contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).

CONTRIBUTING.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Contributing to NativeScript
2+
3+
:+1: First of all, thank you for taking the time to contribute! :+1:
4+
5+
Here are some guides on how to do that:
6+
7+
- [Contributing to NativeScript](#contributing-to-nativescript)
8+
- [ Reporting Bugs](#-reporting-bugs)
9+
- [ Requesting Features](#-requesting-features)
10+
- [ Submitting a PR](#-submitting-a-pr)
11+
- [ Commit Message Guidelines](#-commit-message-guidelines)
12+
- [Where to Start](#where-to-start)
13+
14+
## <a name="bugs"></a> Reporting Bugs
15+
16+
1. Always update to the most recent [release](https://github.com/NativeScript/NativeScript/releases); the bug may already be resolved.
17+
2. Search for similar issues in the issues list for this repo; it may already be an identified problem.
18+
3. If this is a bug or problem that is clear, simple, and is unlikely to require any discussion -- it is OK to open an issue on GitHub with a reproduction of the bug including workflows and screenshots. If possible, submit a Pull Request with a failing test, entire application or module. If you'd rather take matters into your own hands, fix the bug yourself (jump down to the [Submitting a PR](#pr) section).
19+
20+
> While we are doing all we can to take care of every issue, sometimes we get overwhelmed. That's why
21+
>
22+
> - issues that are not constructive or describe problems that cannot be reproduced will be closed
23+
> - feature requests or bug reports with unanswered questions regarding the behavior/reproduction for more than 20 days will be closed
24+
25+
## <a name="features"></a> Requesting Features
26+
27+
1. Use Github Issues to submit feature requests.
28+
2. First, search for a similar request and extend it if applicable. This way it would be easier for the community to track the features.
29+
3. When requesting a new feature, please provide as much detail as possible about why you need the feature in your apps. We prefer that you explain a need rather than explain a technical solution for it. That might trigger a nice conversation on finding the best and broadest technical solution to a specific need.
30+
31+
## <a name="pr"></a> Submitting a PR
32+
33+
Before you begin:
34+
35+
- Read and sign the [NativeScript Contribution License Agreement](http://www.nativescript.org/cla).
36+
- Make sure there is an issue for the bug or feature you will be working on.
37+
38+
Following these steps is the best way to get you code included in the project:
39+
40+
1. Fork and clone the NativeScript repo
41+
42+
```bash
43+
git clone https://github.com/<your-git-username>/NativeScript.git
44+
# Navigate to the newly cloned directory
45+
cd NativeScript
46+
# Add an "upstream" remote pointing to the original {N} repo.
47+
git remote add upstream https://github.com/NativeScript/NativeScript.git
48+
```
49+
50+
1. Set up the project
51+
52+
```bash
53+
#In the repo root
54+
npm run setup
55+
#View interactive options
56+
npm start
57+
```
58+
59+
3. Create a branch for your PR
60+
61+
```bash
62+
git checkout -b <my-fix-branch> main
63+
```
64+
65+
1. The fun part! Make your code changes.
66+
67+
2. Before you submit your PR:
68+
69+
- Rebase your changes to the latest main: `git pull --rebase upstream main`.
70+
- Ensure all unit test are green for Android and iOS. Check [running unit tests](DevelopmentWorkflow.md#running-unit-tests).
71+
72+
3. Push your fork. If you have rebased you might have to use force-push your branch:
73+
74+
```
75+
git push origin <my-fix-branch> --force
76+
```
77+
78+
7. [Submit your pull request](https://github.com/NativeScript/NativeScript/compare). Please, fill in the Pull Request template - it will help us better understand the PR and increase the chances of it getting merged quickly.
79+
80+
It's our turn from there on! We will review the PR and discuss changes you might have to make before merging it! Thanks!
81+
82+
## <a name="commit-messages"></a> Commit Message Guidelines
83+
84+
Please follow standard conventional commit guidelines as outlined here: https://www.conventionalcommits.org/en/v1.0.0/. That allows us to use the commit messages to generate a changelog on releases.
85+
86+
## Where to Start
87+
88+
If you want to contribute, but you are not sure where to start - look for [issues labeled `help wanted`](https://github.com/NativeScript/NativeScript/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).
89+
90+
[commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#
File renamed without changes.

GOVERNANCE.md

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# Governance
2+
3+
NativeScript is an open source project that depends on contributions from the community. Anyone may contribute to the project at any time by submitting code, [participating in discussions](https://github.com/orgs/NativeScript/discussions), making suggestions, or any other contribution they see fit. This document describes how various types of contributors work within the NativeScript project.
4+
5+
## Roles and Responsibilities
6+
7+
### Users
8+
9+
Users are community members who have a need for the project. Anyone can be a User; there are no special requirements. Common User contributions include evangelizing the project (e.g., display a link on a website and raise awareness through word-of-mouth), informing developers of strengths and weaknesses from a new user perspective, or providing moral support (a "thank you" goes a long way).
10+
11+
Users who continue to engage with the project and its community will often become more and more involved. Such Users may find themselves becoming Contributors, as described in the next section.
12+
13+
### Contributors
14+
15+
Contributors are community members who contribute in concrete ways to the project, most often in the form of code and/or documentation. Anyone can become a Contributor, and contributions can take many forms. There is no expectation of commitment to the project, no specific skill requirements, and no selection process.
16+
17+
Contributors have read-only access to source code and so submit changes via pull requests. Contributor pull requests have their contribution reviewed and merged by a TSC member. TSC members and Committers work with Contributors to review their code and prepare it for merging.
18+
19+
As Contributors gain experience and familiarity with the project, their profile within, and commitment to, the community will increase. At some stage, they may find themselves being nominated for committership by an existing Committer.
20+
21+
### Committers
22+
23+
Committers are community members who have shown that they are committed to the continued development of the project through ongoing engagement with the community. Committers are given push access to the project's GitHub repos and must abide by the project's [Contribution Guidelines](https://github.com/NativeScript/NativeScript/blob/main/tools/notes/CONTRIBUTING.md).
24+
25+
Committers:
26+
27+
* Are expected to work on public branches of the source repository and submit pull requests from that branch to the master branch.
28+
* Are expected to delete their public branches when they are no longer necessary.
29+
* Must submit pull requests for all changes.
30+
* Have their work reviewed by TSC members before acceptance into the repository.
31+
* May label and close issues.
32+
* May merge some pull requests.
33+
34+
To become a Committer:
35+
36+
* One must have shown a willingness and ability to participate in the project as a team player. Typically, a potential Committer will need to show that they have an understanding of and alignment with the project, its objectives, and its strategy.
37+
* Committers are expected to be respectful of every community member and to work collaboratively in the spirit of inclusion.
38+
* Have submitted a minimum of 10 qualifying pull requests. What's a qualifying pull request? One that carries significant technical weight and requires little effort to accept because it's well documented and tested.
39+
40+
New Committers can be nominated by any existing Committer. Once they have been nominated, there will be a vote by the TSC members.
41+
42+
It is important to recognize that committership is a privilege, not a right. That privilege must be earned and once earned it can be removed by the TSC members by a standard TSC motion. However, under normal circumstances committership exists for as long as the Committer wishes to continue engaging with the project.
43+
44+
A Committer who shows an above-average level of contribution to the project, particularly with respect to its strategic direction and long-term health, may be nominated to become a reviewer, described below.
45+
46+
#### Process for Adding Committers
47+
48+
1. Send email congratulating the new committer and confirming that they would like to accept. This should also outline the responsibilities of a committer with a link to the maintainer guide.
49+
1. Add the GitHub user to the "committers" team
50+
1. Invite to Discord team channel
51+
1. Tweet congratulations to the new committer from the NativeScript Twitter account
52+
53+
### Reviewers
54+
55+
Reviewers are community members who have contributed a significant amount of time to the project through triaging of issues, fixing bugs, implementing enhancements/features, and are trusted community leaders.
56+
57+
Reviewers may perform all of the duties of Committers, and also:
58+
59+
* May merge external pull requests for accepted issues upon reviewing and approving the changes.
60+
* May merge their own pull requests once they have collected the feedback they deem necessary. (No pull request should be merged without at least one Committer/Reviewer/TSC member comment stating they've looked at the code.)
61+
62+
To become a Reviewer:
63+
64+
* Work in a helpful and collaborative way with the community.
65+
* Have given good feedback on others' submissions and displayed an overall understanding of the code quality standards for the project.
66+
* Commit to being a part of the community for the long-term.
67+
* Have submitted a minimum of 25 qualifying pull requests.
68+
69+
A Committer is invited to become a Reviewer by existing Reviewers and TSC members. A nomination will result in discussion and then a decision by the TSC.
70+
71+
#### Process for Adding Reviewers
72+
73+
1. Add the GitHub user to the "reviewers" GitHub team
74+
1. Tweet congratulations to the new Reviewer from the NativeScript Twitter account
75+
76+
### Technical Steering Committee (TSC)
77+
78+
The NativeScript project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
79+
80+
The TSC has final authority over this project including:
81+
82+
* Technical direction
83+
* Project governance and process (including this policy)
84+
* Contribution policy
85+
* GitHub repository hosting
86+
87+
TSC seats are not time-limited. The size of the TSC can not be larger than twenty-one members. This size ensures adequate coverage of important areas of expertise balanced with the ability to make decisions efficiently.
88+
89+
The TSC may add additional members to the TSC by a standard TSC motion.
90+
91+
A TSC member may be removed from the TSC by voluntary resignation, by a standard TSC motion, or by attending less than 3 TSC meetings annually. In all cases, the TSC member will revert to Reviewer status unless they prefer Alumni status.
92+
93+
Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item (see "TSC Meetings" below).
94+
95+
TSC members have additional responsibilities over and above those of a Reviewer. These responsibilities ensure the smooth running of the project. TSC members are expected to review code contributions, approve changes to this document, manage the copyrights within the project outputs, and attend regular TSC meetings.
96+
97+
TSC members may perform all of the duties of Reviewers, and also:
98+
99+
* May release new versions of all NativeScript projects.
100+
* May participate in TSC meetings.
101+
* May propose budget items.
102+
* May propose new NativeScript projects.
103+
104+
There is no specific set of requirements or qualifications for TSC members beyond those that are expected of Reviewers.
105+
106+
A Reviewer is invited to become a TSC member by existing TSC members. A nomination will result in discussion and then a decision by the TSC.
107+
108+
#### Process for Adding TSC Members
109+
110+
1. Add the GitHub user to the "core" GitHub team
111+
1. Set the GitHub user to be have the "Maintainer" role for the NativeScript organization
112+
1. Send a welcome email
113+
1. Tweet congratulations to the new TSC member from the NativeScript Twitter account
114+
115+
#### TSC Meetings
116+
117+
The TSC meets every month via Zoom on Thursday at 1 pm PDT. The meeting is run by a designated moderator approved by the TSC. TSC members are not required to attend every single TSC Meeting, only that they attend at least 8 a year to maintain status.
118+
119+
Items are added to the TSC agenda which are considered contentious or
120+
are modifications of governance, contribution policy, TSC membership,
121+
or release process.
122+
123+
The intention of the agenda is not to approve or review all patches.
124+
That should happen continuously on GitHub and be handled by the larger
125+
group of Committers.
126+
127+
Any community member, Committer, or Reviewer can ask that something be added to
128+
the next meeting's agenda by logging a GitHub Issue. Anyone can add the item to the agenda by adding the "tsc agenda" tag to the issue.
129+
130+
Prior to each TSC meeting, the moderator will share the Agenda with
131+
members of the TSC. TSC members can add any items they like to the
132+
agenda at the beginning of each meeting. The moderator and the TSC
133+
cannot veto or remove items.
134+
135+
No binding votes on TSC agenda items can take place without a quorum of
136+
TSC members present in the meeting. Quorum is achieved when more than
137+
half of the TSC members (minus non-attending members) are present.
138+
139+
The TSC may invite persons or representatives from certain projects to
140+
participate in a non-voting capacity.
141+
142+
The moderator is responsible for summarizing the discussion of each
143+
agenda item and sending it as a pull request after the meeting.
144+
145+
## Consensus Seeking Process
146+
147+
The TSC follows a
148+
[Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
149+
decision making model.
150+
151+
When an agenda item has appeared to reach a consensus, the moderator
152+
will ask "Does anyone object?" as a final call for dissent from the
153+
consensus.
154+
155+
If an agenda item cannot reach a consensus, a TSC member can call for
156+
either a closing vote or a vote to table the issue to the next
157+
meeting. The call for a vote must be approved by a majority of the TSC
158+
or else the discussion will continue. Simple majority wins.
159+
160+
----
161+
162+
This work is a derivative of [YUI Contributor Model](https://github.com/yui/yui3/wiki/Contributor-Model) and the [Node.js Project Governance Model](https://github.com/nodejs/node/blob/master/GOVERNANCE.md).
163+
164+
This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
165+
166+
latest updated 2020-08-04

0 commit comments

Comments
 (0)