Skip to content

Overhaul features-status-dump - #161078

Open
Kat-zorn wants to merge 4 commits into
rust-lang:mainfrom
Kat-zorn:main
Open

Overhaul features-status-dump#161078
Kat-zorn wants to merge 4 commits into
rust-lang:mainfrom
Kat-zorn:main

Conversation

@Kat-zorn

@Kat-zorn Kat-zorn commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

features-status-dump was made to dump the state of all features in the compiler and standard library to a JSON file. This allows out-of-tree programs to inspect the data, without needing to have access to the in-tree crates used to obtain the data.

After a certain RustNL talk inspired me to look through the list of features in search of interesting ones to work on, I decided to make a tool to make looking through them easier. Since this tool requires access to the Rust source to work, and will likely only be used by rust-lang devs, I decided to develop it in-tree. This crate seems to be the perfect basis to turn into this tool, as the following changes to it allow it to work for feature-finding, while retaining exact backwards compatibility (if I did it right):

  • Only force at least one of --library-path and --compiler-path to be specified, so users can look through just the project they're interested in. Notably library lookup is much slower than listing language features. Being able to only look at language features is a massive performance advantage to users who only need to know those.
  • Make --output-path optional and default to stdout, so users can get quick feedback.
  • Add --first_version and --last_version flags for specifying a version range for the feature's since attribute.
  • Add --unstable, --accepted, and --rejected flags for filtering by feature level.
  • Add --tracking-issue and --since flag for filtering on presence of this metadata. (A version range implies --since=required).
  • Add a --format flag to choose whether to print human-readable plaintext or the standard JSON.
  • Add a --sort-by flag to see relevant features first. (Sorts by newest/oldest version, with issue number as tie breaker.)

I hope that the tool is welcome in this project, and will turn out to be useful. If there's any feedback, I'd be happy to hear it, as I'm quite new here.

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 13, 2026
@rustbot

rustbot commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Fallback group: @Mark-Simulacrum, @jieyouxu
  • @Mark-Simulacrum, @jieyouxu expanded to Mark-Simulacrum, jieyouxu

@rustbot rustbot added A-tidy Area: The tidy tool T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Aug 15, 2026
@Kat-zorn

Copy link
Copy Markdown
Contributor Author

If desired I can extract tidy::features::version out to build_helpers, rather than hijacking the module for my own uses. I am unsure which would be preferred.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants