Skip to content

Commit c3d8a5f

Browse files
authored
Update contribution text. (#11)
1 parent 734833e commit c3d8a5f

File tree

4 files changed

+36
-21
lines changed

4 files changed

+36
-21
lines changed

community/become-a-committer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Consistent quality and dedication are key criteria. Committers typically have:
4040

4141
## The Committer Nomination Process
4242

43-
Once you meet the criteria above, you can nominate yourself to become a committer. This process includes:
43+
Once you meet the criteria above, you can request to be nominated to become a committer. This process includes:
4444

4545
**Nomination:** You can ask a committer to nominate you to become a committer via our discord channel.
4646

community/code-quality.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Thank you for your interest in contributing to Slang! We welcome contributions f
55

66
**Follow Project Standards:** Adhere to the code style and conventions currently used in Slang. This includes formatting, naming conventions, and structural patterns.
77

8-
**Consistent Formatting:** Use spaces/tabs, line lengths, and other formatting elements as defined by the existing code. All code must be formatted with `clang-format` using the configuration in root directory.
8+
**Consistent Formatting:** Use spaces/tabs, line lengths, and other formatting elements as defined by the existing code. All code must be formatted with `clang-format` using the configuration in the root source directory.
99

1010
**Comments and Documentation:** Document all public methods, significant logic blocks, and any complex code in a clear, concise manner. Each comment should add value to the code and explain why something is done, not just what it does.
1111

community/index.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,40 +10,44 @@ We use the [GitHub discussion page](https://github.com/shader-slang/slang/discus
1010

1111
## Community Structure
1212

13-
We distinguish in our community between “community”, “committer” and OWNERs in our system inspired by eg. [Chromium](https://chromium.googlesource.com/chromium/src/+/lkgr/docs/code_reviews.md#expectations-of-owners).
13+
We distinguish in our community between "Community Member", "Committer" and "Owners".
1414

1515
#### Community Member
1616

17-
The term community refers to everyone using Slang or participating in the Slang open source project in any form. All community members are welcomed to
17+
The term community refers to everyone using Slang or participating in the Slang open source project in any form. All community members are welcome to
1818
report issues, start discussion threads, or submit pull requests.
1919

2020
#### Committer
2121

22-
A committer is a community member who has write access to the Slang repository and can approve pull requests. This is a status that can be earned by maintaining a track record of submiting and landing code changes to the Slang project. All community members can review code submitted by other community members, but for a pull request to be considered approved and ready for merging, at least one **owner** (more info below) of each file you are touching must provide an approving review. Ideally a committer should choose reviewers who are familiar with the area of code you are touching. If you have doubts, look at the git blame for the file and the OWNERS files.
22+
A committer is a community member who has write access to the Slang repository and can approve pull requests. This is a status that can be earned by maintaining a track record of submitting and landing code changes to the Slang project (see more details on [the process of becoming a committer](/community/become-a-committer).) All community members can review code submitted by other community members, but for a pull request to be considered approved and ready for merging, at least one **owner** (more info below) of each file you are touching must provide an approving review. Ideally a committer should choose reviewers who are familiar with the area of code you are touching. If you have doubts, look at the git blame for the file and the OWNERS files.
2323

24-
Submissions to a repository by a change contributor who is not a Slang committer require two committers to approve the submission. If the author of the pull request is already a committer, then only one other committer is needed to review.
24+
Submissions to `docs/proposals` are considered **Slang Proposed Features (SPFs)**, and require two *Language Owners* (more info below) to approve the submission.
2525

2626
#### Owner
2727

28-
Every file in the Slang repository has a list of owners. An owner of a directory has right to approve pull requests touching the directory. A pull request is approved only when at least two owners of each directory affected by the changes have given their approval. If you are a committer and think you’re ready to become an owner of a directory, put up a PR to the relevant OWNERs and get two owners to review it. In face of conflict between owner, owner need to reach consensus amongst themselves.
28+
Every file in the Slang repository has a list of owners. An owner of a directory has the right to approve pull requests touching the directory. A pull request is approved only when at least two owners of each directory affected by the changes have given their approval. If you are a committer and think you’re ready to become an owner of a directory, put up a PR to the relevant OWNERs and get two owners to review it. In case of conflict between owners, owners need to reach consensus amongst themselves.
2929

30-
#### Language Owner
30+
##### Language Owner
3131

32-
A language owner is the owner of the [`/docs/proposals/`](https://github.com/shader-slang/slang/tree/master/docs/proposals) directory. All new Slang language and core module features (e.g. new language syntax or new function or type in the Slang core module) starts with a design document submitted to this directory. The language and core module design must be approved by two language owners before any implementation pull request for the new language feature can be approved.
32+
A language owner is the owner of the [`/docs/proposals/`](https://github.com/shader-slang/slang/tree/master/docs/proposals) directory. All new Slang language and core module features (e.g. new language syntax, new functions, or new types in the Slang core module) starts with a design document submitted to this directory. The language and core module design must be approved by two language owners before any implementation pull request for the new language feature can be approved.
3333

3434
## Processes for Code Changes
3535

3636
#### Process for Bug Fixes
37-
A bug fix starts with an GitHub issue describing the bug. Any community member can submit a pull request coming from your personal fork of Slang containing fixes for the bug. Such pull requests needs to be reviewed and approved by two committers who are owners of the files being changed by the pull request. Once the pull request is approved and passed all CI tests, it can be merged to the main branch.
37+
A bug fix starts with a GitHub issue describing the bug. Any community member can submit a pull request coming from your personal fork of Slang containing fixes for the bug. Such pull requests needs to be reviewed and approved by two committers who are owners of the files being changed by the pull request. Once the pull request is approved and has passed all CI tests, it can be merged to the main branch.
38+
39+
Pull requests are expected to be reviewed by the committers within 24 hours after they are created or updated, and to close within a week.
3840

3941
#### Process for Slang Feature Changes
4042

41-
Changes that add or modify syntax, language feature, Slang's core module, or the compilation and reflection API must go through our process for language changes. The full process is [documented here](/community/language-change-process).
43+
Changes that add or modify syntax, language features, Slang's core module, or the compilation and reflection API must go through our process for language changes. The full process is [documented here](/community/language-change-process).
4244

4345
## Submitting a Pull Request
4446

4547
If you are ready to start contributing, please follow our [guide for creating a pull request](https://github.com/shader-slang/slang/blob/master/CONTRIBUTION.md). All pull requests are expected to meet our [bar of code quality](/community/code-quality).
4648

4749
## Become a Committer
4850

49-
If you think you might be ready to be a committer, ask one of the reviewers of your pull request or another committer familiar with your work to see if they will nominate you. They will discuss that in #slang-committers discord — two others in that will need to second the nomination. See [how to become a committer here](/community/become-a-committer).
51+
If you think you might be ready to be a committer, ask one of the reviewers of your pull request or another committer familiar with your work to see if they will nominate you. They will discuss that in #slang-committers discord — two others in that will need to second the nomination. See [how to become a committer here](/community/become-a-committer).
52+
53+
All committers are by-default the owner of all directories except the `docs/proposals` directory.

community/language-change-process.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,37 @@
22

33
Changes that touch Slang's language and user-facing interfaces, including syntax, core module and public APIs need to follow the feature change process described in this document.
44

5+
Before undertaking the rest of the process, you are encouraged to “pitch” your idea on the Slang GitHub forum, in order to solicit informal feedback from the community. Feedback at this stage can help refine an idea, suggest directions, and identify potential collaborators.
6+
57
## File a Feature Tracker
6-
The first step of doing a feature change is to file an "Feature Tracker" issue on our github with associated FeatureTracker label to begin including all template fields included. You will need to be a committer, or ask a committer or community member with greater access to the repo to do this, see [community structure](/community/index#community-structure) for how to do so.
8+
The first step of doing a feature change is to file a "Feature Tracker" issue on our github with associated FeatureTracker label to begin including all template fields included. You will need to be a committer, or ask a committer or community member with greater access to the repo to do this, see [community structure](/community/index#community-structure) for how to do so.
79

8-
This will be your "Feature tracker" and you'll need to keep it updated.
10+
This will be your "Feature Tracker" and you'll need to keep it updated.
911

1012
## Feature Proposal
1113
In the feature tracker issue, include in the proposal a link to your design — a link to a PR, google doc, your choice.
1214
The proposal document should include the detailed design and proposed changes in the Slang compiler implementation.
1315

14-
## Annouce the Experimental Feature
16+
## Announce the Experimental Feature
17+
18+
Announce your intent to implement the feature in the [Announcement Channel in GitHub Discussions](https://github.com/shader-slang/slang/discussions/categories/announcements).
19+
20+
## Iterate on design and implementation
21+
22+
The OWNERs of docs/proposals (aka the “language OWNERs”) may weigh in on feature proposal issues to give guidance on what they expect will or will not be accepted as changes to the language.
23+
24+
If it is clear to the language OWNERs that a proposed feature will not be accepted, they may close out the issue with an explanation of the reasoning.
25+
Ideally, you should wait to get positive feedback from at least one language OWNER before moving forward with implementation, to avoid the possibility of wasted effort.
1526

16-
Announce the intent to experiment feature in the [Announcement Channel in GitHub Discussions](https://github.com/shader-slang/slang/discussions/categories/announcements). Assuming positive community support for your proposal, move your tracking issues status to “Implementation” and begin putting up PRs for reviews by relevant code OWNERs.
27+
Assuming positive community support for your proposal, move your tracking issue's status to "experimental" and begin putting up PRs for reviews by relevant code OWNERs.
1728

18-
## Submit Pull Requests
29+
During the implementation period, you are expected to:
1930

20-
Once announced, you can begin the work to implement the proposed feature, and iterate on implementation, design documentation and user reference documentation at the same time. The implementation can be merged to main branch at any frequency agreed by the dev team and the owner of the feature.
31+
- Keep reference docs (language ref, library ref) updated regularly along with implementation pull requests to allow the community to try your feature out.
2132

22-
Reference docs (language ref, library ref) should be updated regularly during this process along with implementation pull requests to allow the community to try your feature out.
33+
- Commit the implementation of a new feature to top-of-tree, and marked the feature as experimental (and thus requiring an opt-in by users).
2334

24-
Note that the implementation of a new feature is being made as commits to top-of-tree, albeit marked as experimental (and thus requiring an opt-in by users). The usual process for reviewing and merging pull requests will apply; there is not a separate, lower, quality bar for code changes related to experimental features.
35+
- Maintain the same level of code quality as other changes to the codebase. Note that the usual process for reviewing and merging pull requests will apply to your experimental feature implemnetation; there is not a separate, lower, quality bar for code changes related to experimental features.
2536

2637
## Transition to Stable Status
2738

@@ -35,4 +46,4 @@ At decision time, the owners listed in `docs/proposals/OWNERS.txt` will discuss
3546

3647
We expect that between 3-7 days will be given for community feedback in typical cases. Some lived experience is needed before we can make a policy about how long review periods need to last.
3748

38-
The total time spent from creation of the tracking issue to when a feature is marked stable may vary with the complexity of a feature, but we expect that it will typically fall in the 1-3 month range. Even if a small feature might be proposed and implemented in a matter of days, it would need to be given sufficient time in the experimental state for community engagement and feedback before being considered for stabilization.
49+
The total time spent from creation of the tracking issue to when a feature is marked "stable" may vary with the complexity of a feature, but we expect that it will typically fall in the 1-3 month range. Even if a small feature might be proposed and implemented in a matter of days, it would need to be given sufficient time in the experimental state for community engagement and feedback before being considered for stabilization.

0 commit comments

Comments
 (0)