Skip to content

Commit 1bbea7e

Browse files
committed
docs(governance): fix markdown lint issues
1 parent a6d8c6b commit 1bbea7e

File tree

6 files changed

+849
-0
lines changed

6 files changed

+849
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
title: 'webpack TSC Charter'
3+
sort: 1
4+
---
5+
6+
## Section 0. Guiding Principle
7+
8+
The webpack project is part of the OpenJS Foundation. The project operates transparently, openly, collaboratively,
9+
and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders.
10+
11+
## Section 1. Scope
12+
13+
The webpack project is a highly flexible and efficient module bundler for modern JavaScript applications. Its primary
14+
purpose is to transform and bundle various modules (JavaScript, CSS, images, etc.) into a format suitable for web
15+
applications. Webpack focuses on enhancing the developer experience, providing optimizations for production environments,
16+
and enabling configurations to support a wide range of use cases and edge cases for specific projects.
17+
18+
With this, webpack not only simplifies the process of managing application dependencies, but it also offers tools to
19+
optimize performance, maintainability, and scalability. The webpack community contributes solutions to common challenges
20+
in modern web development, helping developers streamline their workflows and build robust applications.
21+
22+
### 1.1: In-scope
23+
24+
- Bundling JavaScript files and their dependencies into a single output (or multiple outputs) for browser environments
25+
- Handling of asset files such as CSS, images, fonts, and other static resources
26+
- Optimization of assets for production, including minification, compression, and tree shaking (removal of unused code)
27+
- Enabling hot module replacement (HMR) for faster development feedback loops
28+
- Configuration and extensibility through plugins and loaders
29+
- Support for code splitting and lazy loading to enhance performance
30+
- Integrating with modern JavaScript frameworks (e.g., React, Vue, Angular)
31+
- Providing detailed build reports and debugging tools for development and production
32+
- Supporting multiple output formats (e.g., AMD, CommonJS, ES Modules) for compatibility with various environments
33+
- Community-driven tools and best practices provided through
34+
[plugins](https://webpack.js.org/plugins/) and [guides](https://webpack.js.org/guides/)
35+
- Technical help and discussions via community platforms such as
36+
[GitHub Discussions](https://github.com/webpack/webpack/discussions)
37+
38+
In addition to the main repository, `webpack` (bundler), the organization maintains and manages several other core
39+
projects that are integral to the ecosystem such as `webpack-dev-server`, `webpack-cli`, and `webpack-contrib` projects.
40+
41+
These repositories, along with others housed within the `github.com/webpack` and `github.com/webpack-contrib` are owned by the webpack project.
42+
43+
### 1.2: Out-of-Scope
44+
45+
- Testing frameworks (e.g., unit, integration, or end-to-end testing tools).
46+
- APIs and tools that uses webpack in any way and are not in the webpack organization.
47+
- Server-side rendering directly (although it can integrate with SSR frameworks).
48+
- `webpack`-related frameworks and libraries that operate in their own capacity.
49+
50+
## Section 2. Relationship with OpenJS Foundation CPC.
51+
52+
Most large, complex open source communities have both a business and a technical governance model. Technical leadership
53+
for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS
54+
Cross Project Council (CPC). In the case of the webpack project, it is delegated to the webpack Technical Steering
55+
Committee ("TSC"). OpenJS Foundation's business leadership is the Board of Directors (the "Board").
56+
57+
This charter can only be amended with the approval of the CPC.
58+
59+
## Section 3. Establishment of the TSC
60+
61+
TSC members can be either _regular_ members or _voting_ members. Regular members can attend meetings and participate in
62+
TSC discussions, but do not vote. Voting members can do everything regular members can do, and also have the ability to
63+
cast votes when consensus is not reached on an issue.
64+
65+
TSC memberships are not time-limited. There is no maximum size of the TSC. The TSC must have at least four voting
66+
members.
67+
68+
The TSC may add additional voting members to the TSC through meeting consensus. The consensus requires at least five TSC members to be present to approve a new voting member. A TSC member can be removed from the TSC by voluntary
69+
resignation or by consensus with at least five voting members to be present. A vote in a TSC meeting can be used to change a regular TSC member to a voting
70+
TSC member, or to change a voting TSC member to a regular TSC member.
71+
72+
No more than one-fourth of the TSC voting members may be affiliated with the same employer. If a change in TSC voting
73+
membership or a change of employment by a TSC voting member creates a situation where more than one-fourth of the TSC
74+
voting membership shares an employer, then the situation must be immediately remedied by the removal of voting member
75+
status from one or more TSC voting members affiliated with the over-represented employer(s).
76+
77+
The TSC shall meet regularly using tools that enable participation by the community (e.g. weekly on a Google Hangout On
78+
Air, or through any other appropriate means selected by the TSC). The meeting shall be directed by the TSC Chairperson.
79+
Responsibility for directing individual meetings may be delegated by the TSC Chairperson to any other TSC voting member.
80+
Minutes or an appropriate recording shall be taken and made available to the community through accessible public
81+
postings.
82+
83+
TSC voting members are expected to regularly participate in TSC meetings and issue triaging.
84+
85+
A TSC voting member is automatically converted to a TSC regular member if they do not participate in three consecutive
86+
TSC votes.
87+
88+
## Section 4. Roles & Responsibilities of the TSC
89+
90+
Subject to such policies as may be set by the CPC, the TSC voting members are responsible for all technical development
91+
within the webpack project, including:
92+
93+
- Setting release dates.
94+
- Release quality standards.
95+
- Technical direction.
96+
- Project governance and process.
97+
- GitHub repository management.
98+
- Conduct and maintain guidelines defined by the OpenJS Foundation Cross Project Council.
99+
- Maintaining the list of additional collaborators.
100+
- Development process and any coding standards.
101+
- Mediating technical conflicts between collaborators or `webpack` projects.
102+
103+
The TSC voting members will define webpack project's release vehicles.
104+
105+
### Section 4.1. webpack Project Operations
106+
107+
The TSC voting members will establish and maintain a development process for the webpack project. The development
108+
process will establish guidelines for how the developers and community will operate. It will, for example, establish
109+
appropriate timelines for TSC review (e.g. agenda items must be published at least a certain number of hours in advance
110+
of a TSC meeting).
111+
112+
Note that project operations remain subject to any relevant policy or process specified by the OpenJS Foundation board or Cross Project Council.
113+
114+
### Section 4.2. Decision-making, Voting, and/or Elections
115+
116+
#### Section 4.2.1. Elections
117+
118+
These processes are described in webpack's [GOVERNANCE](GOVERNANCE.md) document.
119+
120+
#### Section 4.2.2. Decision Making
121+
122+
For webpack projects' decisions, Collaborators and TSC voting members shall operate under Lazy Consensus ([consensus seeking][]). When an agenda item has appeared to reach a
123+
consensus, the moderator will ask "Does anyone object?" as a final call for dissent from the consensus. For all votes, a simple majority of all TSC voting members for, or against, the issue wins. A TSC voting member may
124+
choose to participate in any vote through abstention. Votes are needed to add new members, remove members from the TSC or deciding in project critical issues, such as roadmapping major versions of webpack core.
125+
126+
## Section 5. Definitions
127+
128+
- **Project**: a technical collaboration effort, e.g. a subsystem, that is organized through the webpack organization creation.
129+
130+
---
131+
132+
This work is a derivative of the [Node.js Project TSC Charter](https://github.com/nodejs/node/blob/main/TSC_CHARTER.md).
133+
134+
[consensus seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: 'Member Expectations'
3+
sort: 2
4+
---
5+
6+
All participants in the webpack project must follow the
7+
[Code of Conduct][]. There are further expectations for members of the [TSC][].
8+
9+
When decisions are made within the established guidelines and policies of the
10+
project, those in leadership roles have a responsibility to uphold and respect
11+
the decision even if they disagree with it. This is especially important in
12+
external communications, for example in social media. Should the member be
13+
unwilling or unable to do so, then they should resign their leadership position.
14+
This does not mean that decisions cannot be revisited and discussed within the
15+
team at a later time.
16+
17+
Everyone participating in the webpack project must conduct themselves in
18+
a professional and respectful manner in accordance with our
19+
[Code of Conduct][]. In addition, some general guidelines for
20+
leadership group members include:
21+
22+
- Remediate quickly when you realize you made a mistake. Leaders are human,
23+
and they will make mistakes. However they should act swiftly to
24+
acknowledge mistakes and correct them.
25+
- Aim to remediate first and then discuss. If other members of the
26+
team express concerns about actions, acknowledge their concerns by
27+
stopping the actions in question and then discuss within the team
28+
to come to a common agreement.
29+
- Treat all community members with respect, consideration, and highest
30+
standards of ethical conduct.
31+
- Value a diversity of views and opinions. Avoid preferential
32+
treatment, and hold everyone (including ourselves) accountable to the same
33+
set of standards. Everyone gets to speak up.
34+
- Deal with issues directly with the person in question. Resist complaining
35+
about others in the project in a public sphere.
36+
- Build trust by keeping your promises.
37+
- Be the model of accountability and leadership. Provide the example of
38+
ownership and stewardship that everyone can follow to success.
39+
- Commit to ongoing development and learning best practices for governing.
40+
- Criticize ideas rather than people, discussing any concerns in person
41+
whenever possible, and taking responsibility for our statements.
42+
43+
While the guidelines above focus primarily on the spaces where
44+
we participate in official foundation work (GitHub, IRC, meetings,
45+
conferences), it is important to recognize that the public behavior
46+
of members also reflects on the webpack project.
47+
48+
If you're interested in an introduction to diversity, inclusion, and unconscious bias,
49+
[try this free training offered by our partners at the Linux Foundation](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation).
50+
51+
If it appears that any member of the project leadership is acting outside
52+
of the expectations set above please refer to our [moderation policy](./MODERATION_POLICY.md)
53+
which outlines the process of making an official complaint.
54+
55+
---
56+
57+
_This document is an adaption of the Node.js project [Member Expectations](https://github.com/nodejs/admin/blob/main/MemberExpectations.md)_
58+
59+
[Code of Conduct]: https://github.com/webpack/webpack/blob/main/CODE_OF_CONDUCT.md
60+
[TSC]: ./CHARTER.md

0 commit comments

Comments
 (0)