Skip to content
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

Pairing the list back to 3 orgs and a note that a full list will be compiled by the Express TC. #1

Closed
wants to merge 10 commits into from
92 changes: 92 additions & 0 deletions Applications/Express.md
@@ -0,0 +1,92 @@
## Express

The express project is applying to become an incubating
[Top Level Project of the Node.js Foundation][].

### About Express, User base, Community and Ecosystem

Express is one of the most popular web server frameworks available for Node.js.
For many Node.js developers, express is their primary interface with Node.js
on the server.

Express has consistently been among the top packages installed via npm, with
nearly 4.5 million downloads in just the past month.

It is important to recognize that Express is not the only web framework in the
Node.js ecosystem and that by incubating Express, neither the Node.js
Foundation or Node.js core would be "picking a winner" or endorsing Express
over any other overlapping or similar project.

### Scope

The express project is composed of a collection of separate modules and
documentation currently spread out over multiple GitHub organizations. This top
level project would consist initially of the following GitHub Organizations and
repositories within:

* jshttp
* expressjs
* pillarjs

The following projects will move into one of these organizations.

* other
* strongloop/express
* component/escape-html
* dougwilson/depd
* visionmedia/bytes.js
* crypto-utils/random-bytes
* crypto-utils/uid-safe

In addition, strongloop will contribute the basic express API documentation
included in the strongloop/expressjs.com to the strongloop/express repository.

Many repositories in these organizations may be moved out or removed entirely
during incubation at the discretion of the Express TSC. Prior to graduating
from incubation a full list of repositories will need to be provided to the TSC.

### Formation of an Express TC

The current GitHub organization owners for each of the pillarjs, expressjs,
and jshttp GitHub organizations will be invited to form the TC of the Express
Top Level project. It is not expected that every existing owner will wish to
participate. Two months after the initial invitation, any owner that is not
actively participating would be automatically removed from the TC.

Anyone currently having Collaborator permissions to any of the above listed
repositories will continue to have those permissions. Onboarding of new
Collaborators would follow a process decided by the Express TC but it is
expected to be similar, if not identical, to the process used by Node.js core.

The Express TC's purpose is the support, maintenance and further development of
the Express top level project under the Node.js Foundation.

The TC's responsibilities include:

* Management of the full set of GitHub repositories listed above
* Technical direction of the overall Express project
* Express Project governance and process
* Contribution policy
* GitHub repository hosting
* Conduct guidelines
* Maintaining the list of additional Collaborators

### Contribution and Governance Process

The contribution and governance policies would be bootstrapped using the basic
document templates provided by the Node.js TSC, and fine tuned / customized by
the Express TC once formed. It is expected that the contribution policy would
be very similar to that used by Node.js core.

The Node.js Code of Conduct, Moderation Policy and TSC Escalation policies
would apply.

The Node.js TSC will select one or more mentors to assist the Express TC in
it's formation and throughout the Top Level Project incubation process.

### Intellectual Property and Other Assets

TBD

[Top Level Project of the Node.js Foundation]: https://github.com/nodejs/TSC/blob/master/Project-Lifecycle.md#top-level-project-and-working-group-requirements
[Developer's Certificate of Origin]: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10
64 changes: 64 additions & 0 deletions BasePolicies/CONTRIBUTING.md
@@ -0,0 +1,64 @@
# Node.js Community Contributing Guide 1.0

This document describes a very simple process suitable for most projects
in the Node.js ecosystem. Projects are encouraged to adopt this whether they
are hosted in the Node.js or not.

The goal of this document is to create a contribution process that:

* Encourages new contributions.
* Encourages contributors to remain involved.
* Avoids unnecessary processes and beuracracy whenenver possible.
* Creates a more transparent decision making process which makes it clear how
contributors can be involved in decision making.

This document is based on much prior art in the Node.js community, io.js,
and the Node.js project.

## Vocabulary

* A **Contributor** is any individual creating or commenting on an issue or pull request.
* A **Committer** is a subset of contributors who have been given write access to the repository.
* A **TC** is a group of committers representing the required technical expertise to
resolve rare disputes.

# Logging Issues

Log an issue for any question or problem you might have. When in doubt, log an issue,
any additional policies about what to include will be provided in the responses.

Committers may direct you to another repository, ask for additional clarifications, and
add appropriate metadata before the issue addressed.

Please be courteous, respectful, and follow the project's Code of Conduct.

# Contributions

Any change to resources in this repository must be pull requests. This applies to all change
to documentation, code, binary files, etc. Even long term committers and TC members must be
pull requests.

No pull request can be merged by the person that created it.

For non-trivial contributions pull requests should sit for at least 36 hours to ensure that
contributors in other timezones have time to review.

The default for each contribution is that it is accepted once no commiter has an objection.
There is no additional "sign off" process for contributions to land. Once all issues brought
by committers is addressed it can be landed by any committer. The majority of contributions
should land this way without escalation to the TC.

If a contribution is controversial and committers cannot agree about how to get it to land
or if it should land then it should be escalated to the TC. TC members should regularly
discuss pending contributions in order to find a resolution.

# TC Process

The TC uses a "consensus seeking" process for issues that are esclated to the TC.
The group tries to find a resolution that has no open objections among TC members.
If a resolution cannot be reached that has no objections then a majority wins vote
is called.

Members can be added to the TC at any time. Any committer can nominate another committer
to the TC and the TC uses its standard consensus seeking process to evaluate whether or
not to add this new member.
5 changes: 3 additions & 2 deletions WORKING_GROUPS.md
Expand Up @@ -27,6 +27,7 @@ Working Group membership or normal TSC motion and vote.
NOTE: Technical Working Groups exist in the [nodejs/node repository](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md).

* [Inclusivity](#inclusivity)
# [Express](#express)

### [Inclusivity](https://github.com/nodejs/inclusivity)

Expand All @@ -40,11 +41,11 @@ for the Node.js project:
Its responsibilites are:

* Foster a welcoming environment that ensures participants are valued and can
feel confident contributing or joining discussions, regardless of any aspect of
feel confident contributing or joining discussions, regardless of any aspect of
their identity.
* Proactively seek and propose concrete steps the project can take to increase
inclusivity.
* Serve as a resource for the development and enforcement of workflows that
* Serve as a resource for the development and enforcement of workflows that
protect community members and projects from harassment and abuse.
* Acknowledge and celebrate existing diversity accomplishments within the
project while seeking to build upon them.
Expand Down