Community

Slang is fully open-source and all developments for Slang take place within the public GitHub repo. If you’d like to contribute to the project, we are excited to have your input. Please review the following materials to learn more about our community structure and our process for accepting patches.

Slang GitHub Repo

Community Discussion

We use the GitHub discussion page for all community announcements and discussions. All community members are welcomed to post questions, ideas, suggestions for new features in the discussion page. We will also use the discussion page to announce or provide update on new feature developments.

We use Discord for community and developer discussions. All community members are welcomed to ask for help, post questions, ideas, and suggestions for new features. We will also use to announce or provide update on new feature developments.

GitHub Discussions Discord Discussions

Community Structure

We distinguish in our community between “Community Member”, “Committer” and “Owners”.

Community Member

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 report issues, start discussion threads, or submit pull requests.

Committer

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.) 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 CODEOWNERS file.

Submissions to /proposals/ in the spec repository are considered Slang Proposed Features (SPFs), and require a Language Owner (more info below) to approve the submission.

Owner

An owner of a directory in the Slang repository has the right to approve pull requests touching the directory. A pull request is approved only when at least one owner of each directory affected by the changes have given their approval. Currently all members of shader-slang/dev are owners of every directory.

Language Owner: A language owner is the owner of the proposals in the spec repository. 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 a language owner before any implementation pull request for the new language feature can be approved.

Process for Code Changes

Process for Bug Fixes

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 a committer who is familiar with 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. 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. Smaller pull requests will be more likely to get quick reviews than large pull requests.

Process for Slang Feature Changes

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.

Slang Feature Change Documentation

Submitting a Pull Request

If you are ready to start contributing, please follow our guide for creating a pull request. All pull requests are expected to meet our bar of code quality.

Pull Request Guidelines Code Quality Guidelines

Become a committer

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.

How to Become a Committer