rust-lang / rust-lang/cargo

Explicit standard library dependencies

Open
#5,002 8 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

S-needs-rfc Z-build-std
Dominant language
Rust
Stars
15.5k
Forks
3k
Avg merge
23h 30m
Merged PRs (30d)
51

Description

(Split from of https://github.com/rust-lang/rfcs/pull/1133)

The first task is to agree on a syntax for explicit stdlib deps. That RFC proposed

[depedencies]
std = { version = "*", stdlib = true }

But, if we are confident we can reserve the name on crates.io of everything that's part of the standard library (or isn't part of the standard library but exists in the sysroot), we don't even need a new syntax!

[depedencies]
std = "*" # work's just fine!

The second task is to decide whether version bounds are permitted in full generality, or restricted. Plausible restrictions would be:

  • Exactly match the overall crate language version restrictions (however that pans out)
  • Must be unrestricted (*), with the intent that the language version restriction will effectively restrict it anyways.

CC @japaric @nrc

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked RFC 1133 and the discussion in this issue about explicit standard-library dependencies. Determine the desired manifest syntax and whether dependency version bounds should be unrestricted or constrained; the work is done when those design questions have an agreed resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.