GitHub - rust-lang/rust-forge: Information useful to people contributing to Rust (original) (raw)
Rust Forge
Welcome to the Rust Forge! Rust Forge serves as a repository of supplementary documentation useful for members of The Rust Programming Language.
Development
You can build a local version by installing mdbook and running the following command.
This will build and run the blacksmith tool automatically. When developing it's recommended to use the serve command to launch a local server to allow you to easily see and update changes you make.
Link checking
On CI, we automatically check if all intra-doc links in the Forge Markdown files are valid. If you would like to perform this check locally, install mdbook-linkcheck2 using cargo install mdbook-linkcheck2@0.11.0 --locked and then simply run mdbook build or mdbook serve.
Blacksmith
Blacksmith is a tool that can run before the Forge is built. It downloads information about Rust releases, which is used to render a page with historical Rust releases.
Since it takes a while to compile and run, it is disabled by default. To enable it, run mdbook serve or mdbook buildwith the environment variable RUN_BLACKSMITH=1.
JavaScript
Forge uses JavaScript to display dates for releases and "no tools breakage week". When making modifications to the JavaScript, make sure it matches thestandard style. You can install standard and automatically format the code using the following commands.
Install commands
With Yarn
yarn global add standard
With NPM
npm install --global standard
Formatting
Contributing
Adding teams
Any Rust team, working group, or project group can have a section in the Rust Forge. First, please send a PR to add your team to the repos/rust-lang/rust-forge.toml file to give your team permissions.
To add your team to the book, add it to src/SUMMARY.md, like below, replacing <TEAM_NAME> with a filesystem- and URL-friendly version of your team's name:
If you run mdbook build, mdbook will automatically create the folder and file for your team.
It's recommended that you put general team information in src/<TEAM_NAME>/index.md, such as where the meetings happen, repositories that the team manages, links to chat platforms, etc. Larger topics should be made as a subpage, e.g. (src/release/topic.md).
Teams are responsible for merging their own content. Please add your team to the [assign.owners] section of triagebot.toml so that the bot will auto-assign someone from the team.
Maintenance of Rust Forge
The Rust infra team is responsible for maintaining the Rust Forge, ensuring that its build and publish system works, and coordinating any technical issues with teams.