Giter Site home page Giter Site logo

rust-forge's Introduction

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.

mdbook build

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.

mdbook serve

JavaScript

Forge uses JavaScript to display dates for releases and "no tools breakage week". When making modifications to the JavaScript, make sure it matches the standard 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

standard --fix js/

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:

- [<TEAM NAME>](src/<TEAM_NAME>/README.md)

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>/README.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).

- [TOPIC](src/<TEAM_NAME>/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.

rust-forge's People

Contributors

aaronepower avatar aidanhs avatar alexcrichton avatar apiraino avatar arielb1 avatar aturon avatar brson avatar camelid avatar dependabot-preview[bot] avatar dependabot[bot] avatar ehuss avatar fmckeogh avatar jdno avatar johntitor avatar jonas-schievink avatar jyn514 avatar kennytm avatar kobzol avatar kodraus avatar mark-i-m avatar mark-simulacrum avatar nikomatsakis avatar nilstrieb avatar pietroalbini avatar ralfjung avatar rylev avatar spastorino avatar steveklabnik avatar tesuji avatar xampprocky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-forge's Issues

forge.rust-lang.org doesn't have the newest 2018 Rust release 1.31.0

Content Bug Report

Those who can't use rustup have to download it from the rustforge webpage: "Standalone installers".
Unfortunately that page doesn't show the newest stable release 1.31.0.

Page(s) Affected

https://forge.rust-lang.org/other-installation-methods.html#standalone

What needs to be fixed?

Update the URLs.

Suggested Improvement

Replace rust-1.30.1 with rust-1.31.0 in the file names, at least it worked for the linux tar ball that I needed.

Offer zip builds

If you go here:

http://forge.rust-lang.org/other-installation-methods#standalone-installers

you see MSI and TAR.GZ installers for Windows. This is strange because typically
programming language vendors will offer:

  1. MSI or EXE installer
  2. ZIP file with compiler or interpreter that can be extracted and run

the Rust TAR.GZ is similar to option 2, but if you extract rustc.exe wont
actually run because even with the TAR.GZ it has to be extracted and installed
before rustc.exe is usuable. This contrasts with other programming languages that offer both an executable installer and ZIP files that can be extracted and run. For example Go:

https://golang.org/dl

and Nim:

https://nim-lang.org/install_windows.html

Python:

https://python.org/downloads/release/python-373

and C#:

https://dotnet.microsoft.com/download/dotnet-core/2.2

PHP:

https://windows.php.net/download

Perl:

http://strawberryperl.com/releases.html

rustc internal docs

I've currently got a cron job set up to build the internal docs once or twice a day and upload them to github pages (repo/rendered). @Manishearth has a similar repository, although it looks like it was updated manually so a couple things became outdated.

Is it worth either adding a link to my docs or setting up a travis "cron" job so that we have the docs available for people hacking on the compiler internals?

Discussion: zulip stream naming convention causing 'understanding friction'

Zulip is new to me, and my first experience included having to parse the 't-' prefix in the stream names. . This is the first time coming across 't-', and it left me with a minor sense of 'I'm an outsider here', which I believe is considered an undesirable outcome by the rust community . The biggest contributor to this, in my experience was this:

using ctrl-f t- to find explanations is problematic due to 't-$name' clashing with 'rust-$foo'

thus, when searching for the answer to "what is this t- prefix?" in the rust-forge book, results were polluted, obfuscating the section that explains it.

My take on why it caused a "sense of outsider":

  • It seems to be an important part of how this zulip channel is organized
  • I have not come across it anywhere else.
  • Due to above mentioned clashing of 't-$team_name' and 'rust-$topic', a feeling that this was an 'insider-knowledge' started generating

Proposed solution: change the 't-' prefix to 'tm-', ideally such that there is little friction when reverting back to 't-' if desired.

Reasoning:

  • searching for 'tm-' will no longer clash in zulip-use documentation (at time of writing). Possibly in other important locations also.
  • 'tm' is a stronger hint than 't', giving a reduced sense of obfuscation of meaning
  • as zulip newcomers become more prominent in the user-base, not knowing 't-' becomes less exclusionary. At that point, reverting back to 't-' might be desired.

Caveats:
It might be worth considering adding a note to the zulip documentation the reasoning for 'tm-' over 't-'.

Are thumb* targets really Tier 2?

thumbv6m-none-eabi, thumbv7m-none-eabi, thumbv7em-none-eabi, and thumbv7em-none-eabihf are currently listed as Tier 3 in https://forge.rust-lang.org/platform-support.html.

Tier 3 platforms are those which the Rust codebase has support for, but which are not built or tested automatically, and may not work. Official builds are not available.

However, libcore for these targets is built on CI (see src/ci/docker/dist-various-1/Dockerfile), and are available through rustup (see rustup target list | grep thumb). This sounds like the description of Tier 2.

Should the forge be updated to match reality?

CC @alexcrichton, @japaric

"Other Installation Methods" out of date

Content Bug Report

Page(s) Affected

The links on https://forge.rust-lang.org/other-installation-methods.html#standalone only show downloads for the 1.32.0 release.

What needs to be fixed?

It should always be updated at the same time as the front page gets updated to show the latest release.

Simply fixing the page to show the latest version isn't a fix to this report. A fix to this report is that the latest version always appears when there is a new version.

Target list out of date/core-only builds

I recently found out that Rust ships core-only builds from some targets. That this is even an option is not at all clear from the platform support page. This applies to at least the following targets (which aren't even mentioned):

  • riscv32imac-unknown-none-elf
  • riscv32imc-unknown-none-elf

API Conventions

I'm consolidating the conventions RFCs into a single document, and plan to put the document onto the Forge.

Cargo (tag) 0.41.0 builds (and seems to work) fine on aarch64-pc-windows-msvc

The platform support for aarch64-pc-windows-msvc (for devices such as Microsoft Surface Pro X) seems to work with the 1.41. Cargo uses git2-rs, which uses libssh2 and that needs to be v0.2.14 or higher to build on windows (previous versions v0.2.13 had issue with the socket size).

It seems on the platform support for tier 2 only the std box is checked for this platform when the cargo box could be as well.

How to add support for a new target to Rust

As in what needs to be done to be able to compile programs for the target using rustc / Cargo and what needs to be done to have binary releases of std, rustc and Cargo for the target.

I just gave a detailed answer about that here. We should add that documentation here so I can just point people to it in the future.

cc @brson

Internationalize the front page dates somehow

Hello! This is not actually a big issue, but it's a little annoying. Since i and my friends are in a very different timezone (UTC+8), the actually release date like "September 26th 2019" always means September 27th to us in our local time zone :) So whenever there's a new release, questions like "Why is it not there yet?" is raised up again and again.

I wonder if something could be done here? Thank you!

links to stable source tar.gz broken

On https://forge.rust-lang.org/other-installation-methods.html the link to the stable source and its signature are both missing the version number and lead to a 404.

Currently the HTML contains:

<div class="source-table">
  <div>
      <span>Stable</span>
      <a href="https://static.rust-lang.org/dist/rustc--src.tar.gz">.tar.gz</a>
      <a href="https://static.rust-lang.org/dist/rustc--src.tar.gz.asc">.asc</a>
  </div>
  <div>
      <span>Beta</span>
      <a href="https://static.rust-lang.org/dist/rustc-beta-src.tar.gz">.tar.gz</a>
      <a href="https://static.rust-lang.org/dist/rustc-beta-src.gz.asc">.asc</a>
  </div>
  <div>
      <span>Nightly</span>
      <a href="https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz">.tar.gz</a>
      <a href="https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz.asc">.asc</a>
  </div>
</div>

Expected behavior is that the stable rustc source url would contain the latest stable version number eg: https://static.rust-lang.org/dist/rustc-1.34.1-src.tar.gz which does appear to be a valid url for the stable source.

Security vulnerability detected in Gemfile.lock

Warning email from GitHub:


We found a potential security vulnerability in one of your dependencies.

The nokogiri dependency defined in Gemfile.lock has a known critical severity security vulnerability in version range < 1.8.1 and should be updated.

Only users who have been granted access to vulnerability alerts for this repository can see this message.
Learn more about vulnerability alerts

HTML Redirects Missing

https://github.com/rust-lang/rust/blob/7f3df5772439eee1c512ed2eb540beef1124d236/RELEASES.md#compiler-1 links to https://forge.rust-lang.org/platform-support.html but it is now a 404.

I had to dig around to find out that it has been moved to https://forge.rust-lang.org/release/platform-support.html now. Looking through archive.org, it seems that the page was indeed moved and there used to be a redirect to the proper page. However, that redirect is missing now. It would be nice for the redirect to be restored or the dead link to be fixed.

https://static.rust-lang.org/dist/index.html no longer works

This prevents Debian infrastructure from automatically downloading old versions of the source code using our generic scraper tool uscan, used for archival and maintenance purposes.

Is there an alternative?

The github releases page of "rustc" is not suitable since it only contains stuff from the top-level git repository and e.g. not vendor crates.

Auto generate list of supported targets from rustup

Manually maintaining the list of supported targets has never really properly worked. People remember to add new targets every now and then, but nobody remembers to remove old targets.

We should "somehow" use rustup to automatically generate a list of targets, and the components they support. We can then assign them tier1-3 labels manually, but should ideally get a warning / error when a target disappear or a new target each added.

Maybe rust-lang/rust could record the tier of each build artifact, and rustup could allow querying this, so that no manual effort is necessary.

Also note that this reveals the first issue, targets are toolchain dependent, and not all toolchains support all targets. People are probably also interested in both: all targets that Rust supports, and all targets that my toolchain supports.

(Apache-2.0 OR MIT) explanation page

Document tier 3 platform support

Tier 3 platforms

This is a tracking issue for adding documentation on the level of support a tier 3 Rust toolchain has. This is mainly "Can I use std on that platform?", "Can I build and run rustc on that platform?", and "Can I can build and run Cargo on that platform?".

  • aarch64-unknown-freebsd
  • aarch64-unknown-hermit
  • aarch64-unknown-netbsd
  • aarch64-unknown-none
  • aarch64-unknown-redox
  • aarch64-uwp-windows-msvc
  • aarch64-wrs-vxworks
  • armv4t-unknown-linux-gnueabi
  • armv6-unknown-freebsd
  • armv6-unknown-netbsd-eabihf
  • armv7-unknown-freebsd
  • armv7-unknown-netbsd-eabihf
  • armv7-wrs-vxworks-eabihf
  • hexagon-unknown-linux-musl
  • i686-unknown-dragonfly
  • i686-uwp-windows-gnu
  • i686-uwp-windows-msvc
  • i686-wrs-vxworks
  • mips64-unknown-linux-muslabi64
  • mips64el-unknown-linux-muslabi64
  • mipsisa32r6-unknown-linux-gnu
  • mipsisa32r6el-unknown-linux-gnu
  • mipsisa64r6-unknown-linux-gnuabi64
  • mipsisa64r6el-unknown-linux-gnuabi64
  • powerpc-unknown-linux-musl
  • powerpc-unknown-netbsd
  • powerpc-wrs-vxworks
  • powerpc-wrs-vxworks-spe
  • powerpc64-unknown-freebsd
  • powerpc64-unknown-linux-musl
  • powerpc64-wrs-vxworks
  • powerpc64le-unknown-linux-musl
  • riscv32i-unknown-none-elf
  • sparc64-unknown-openbsd
  • thumbv7a-pc-windows-msvc
  • wasm32-experimental-emscripten
  • x86_64-pc-solaris
  • x86_64-unknown-hermit
  • x86_64-unknown-l4re-uclibc
  • x86_64-unknown-uefi
  • x86_64-wrs-vxworks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.