Skip to content

Conversation

@epage
Copy link
Contributor

@epage epage commented Oct 23, 2025

Stabilization report

FCP

Summary

This report proposes the stabilization of #[feature(frontmatter)] in preparation for Cargo Script to be stabilized.

A frontmatter is a special kind of attribute intended to be read and modified by external tools, like Cargo. This puts a particular constraint on this attribute in that full awareness of the Rust grammar would be prohibitive.

For example:

#!/usr/bin/env cargo
---
[dependencies]
clap = "4"
---

fn main() {
}

The goal of Cargo script is to improve:

  • Learning by reducing the bar for experimenting and prototyping
  • Collaboration, including bug reports, chats, blogs, and books
  • Interoperability between tools that need similar solutions (playgrounds,
  • One off utilities where it makes sense (e.g. integrating with Rust-specific libraries)

Closes #136889

Tracking:

Reference PRs:

cc @rust-lang/lang @rust-lang/lang-advisors, @rust-lang/compiler

What is stabilized

This is stabilizing frontmatter, an optional section in a source file that can only exist before any Rust code or comments, for use by external tools.

#!/usr/bin/env cargo

---
[dependencies]
clap = "4"
---

fn main() {
}

After the opening frontmatter fence, an infostring is allowed that can identify the contents.
Calling tools are responsible for interpreting the infostring.

What isn't stabilized

Only a subset of the allowed infostring syntax is being stabilized.

  • RFC: "an optional term (one or more characters excluding whitespace and commas)"
  • rustc: (XID_Start | _) ( XID_Continue | -|. )*
  • The RFC allowed - in the start of an infostring which is ambiguous with frontmatter open which accepts 3 or more -
  • We simplified to a minimal, closed set as a precaution with a focus on what would make most file names work
  • See Implement RFC 3503: frontmatters #140035

Future possibilities include:

  • Infostring attributes: the supported syntax for infostrings was restricted to leave the door open
  • Tracking this as an attribute in the AST
  • Multiple frontmatters

Design

Reference

RFC history

  • RFC 3503 adds a new lexical section to the Reference to describe the frontmatter, including the grammar.

Answers to unresolved questions

What questions were left unresolved by the RFC? How have they been answered? Link to any relevant lang decisions.

The RFC has no unresolved questions

Post-RFC changes

What other user-visible changes have occurred since the RFC was accepted? Describe both changes that the lang team accepted (and link to those decisions) as well as changes that are being presented to the team for the first time in this stabilization report.

Key points

What decisions have been most difficult and what behaviors to be stabilized have proved most contentious? Summarize the major arguments on all sides and link to earlier documents and discussions.

  • whitespace between opening and infostring
  • rust-analyzer wanting an external indicator for cargo-scripts
    • This would allow them to differentiate between unlinked files and cargo scripts without ambiguity and without having to read the content. The latter means they either pre-load and take a performance hit or load on-demand
    • Resolving this runs counter to some of the design goals within the RFC
    • From the outside, it is not clear why this is as big of a problem as they feel it is
    • As this is re-litigating an RFC decision, the responsibility for making the case for why this is important was put on them and there has been no progress on this in the last 2 months
    • See also #t-compiler/rust-analyzer > Frontmatter vs `import_rules!` for scripts @ 💬
  • whether indented --- needs to be escaped
    • The RFC only said that --- at the start of a line needs escaping
    • #140035 also had indented --- needing escaping
    • #145754 switched the implementation to match the RFC
  • interactions with -Zunpretty
  • whether external tools should silently fail, delegating error reporting to rustc
    • Cargo has gone with high quality error reporting to report problems quickly, including non-compiling commands, rather than deferring errors to compilation. In particular, the contents of the frontmatter can make a big difference in how compilation happens.

Nightly extensions

Are there extensions to this feature that remain unstable? How do we know that we are not accidentally committing to those?

No nightly extensions exist

Doors closed

What doors does this stabilization close for later changes to the language? E.g., does this stabilization make any other RFCs, lang experiments, or known in-flight proposals more difficult or impossible to do later?

There are no known efforts that this affects.

Feedback

Call for testing

Has a "call for testing" been done? If so, what feedback was received?

Call for testing with feedback at:

Previous call for testing: rust-lang/rfcs#3424 (comment) with some feedback at rust-lang/cargo#12207 (comment)

Overall, feedback is enthusiastic. Any quibbles are with the Cargo side.

Nightly use

Do any known nightly users use this feature? Counting instances of #![feature(FEATURE_NAME)] on GitHub with grep might be informative.

Samples from grepping for -Zscript

Implementation

Major parts

Summarize the major parts of the implementation and provide links into the code and to relevant PRs.

See, e.g., this breakdown of the major parts of async closures:

Parts:

PRs:

Coverage

Summarize the test coverage of this feature.

Consider what the "edges" of this feature are. We're particularly interested in seeing tests that assure us about exactly what nearby things we're not stabilizing. Tests should of course comprehensively demonstrate that the feature works. Think too about demonstrating the diagnostics seen when common mistakes are made and the feature is used incorrectly.

Within each test, include a comment at the top describing the purpose of the test and what set of invariants it intends to demonstrate. This is a great help to our review.

Describe any known or intentional gaps in test coverage.

Contextualize and link to test folders and individual tests.

Tests (directory):

  • Location
    • May or may not be preceded by a shebang
    • Can't have comments (or other non-whitespace content) before opening
    • Whitespace is allowed before frontmatter
  • General
    • CR/LR is supported
    • Invalid to have multiple frontmatters
  • Infostring
    • Can't have a , in the infostring
    • Can't have a leading . or -
    • Can have a . or - elsewhere
    • Can be preceded by horizontal whitespace
  • Fences
    • Invalid to have non-whitespace content after close
    • Invalid to have whitespace between newline and fence
    • Horizontal whitespace is allowed after fences
    • Fence must be closed
      • On missing close, recover after use
    • Open close lengths must match
  • Content
    • Cover whitespace corner cases in content
    • Multi-byte characters don't cause crashes
    • Allow characters not accepted by the lexer
  • Escaping
    • Non-leading --- doesn't need escaping
    • More - escape lines starting with fewer -
  • Other uses
    • include! doesn't treat --- as frontmatter
    • proc-macro doesn't treat --- as frontmatter

Outstanding bugs

What outstanding bugs involve this feature? List them. Should any block the stabilization? Discuss why or why not.

No known bugs

Outstanding FIXMEs

What FIXMEs are still in the code for that feature and why is it OK to leave them there?

An idea for future editions

// FIXME(frontmatter): Consider stripping frontmatter in a future edition. We can't strip them
// in the current edition since that would be breaking.
// See also <https://github.com/rust-lang/rust/issues/145520>.
// Alternatively, stop stripping shebangs here, too, if T-lang and crater approve.
source_file_to_stream(psess, source_file, override_span, StripTokens::Shebang)

Diagnostic improvements can be iterated on over time, particularly with use feedback

---
//~^ ERROR: expected item, found `-`
// FIXME(frontmatter): make this diagnostic better
---

---
---
---
//~^ ERROR: expected item, found `-`
// FIXME(frontmatter): make this diagnostic better
---

Both can be handled as need is shown.

Tool changes

What changes must be made to our other tools to support this feature. Has this work been done? Link to any relevant PRs and issues.

Breaking changes

If this stabilization represents a known breaking change, link to the crater report, the analysis of the crater report, and to all PRs we've made to ecosystem projects affected by this breakage. Discuss any limitations of what we're able to know about or to fix.

No known breaking change

Type system, opsem

Compile-time checks

What compilation-time checks are done that are needed to prevent undefined behavior?

Link to tests demonstrating that these checks are being done.

N/A, this is only relevant to tools inspecting the source

Type system rules

What type system rules are enforced for this feature and what is the purpose of each?

N/A, this is only relevant to tools inspecting the source

Sound by default?

Does the feature's implementation need specific checks to prevent UB, or is it sound by default and need specific opt-in to perform the dangerous/unsafe operations? If it is not sound by default, what is the rationale?

No, this is only relevant to tools inspecting the source

Breaks the AM?

Can users use this feature to introduce undefined behavior, or use this feature to break the abstraction of Rust and expose the underlying assembly-level implementation? Describe this if so.

No, this is only relevant to tools inspecting the source

Common interactions

Temporaries

Does this feature introduce new expressions that can produce temporaries? What are the scopes of those temporaries?

No, this is only relevant to tools inspecting the source

Drop order

Does this feature raise questions about the order in which we should drop values? Talk about the decisions made here and how they're consistent with our earlier decisions.

No, this is only relevant to tools inspecting the source

Pre-expansion / post-expansion

Does this feature raise questions about what should be accepted pre-expansion (e.g. in code covered by #[cfg(false)]) versus what should be accepted post-expansion? What decisions were made about this?

No, this is only relevant to tools inspecting the source

Edition hygiene

If this feature is gated on an edition, how do we decide, in the context of the edition hygiene of tokens, whether to accept or reject code. E.g., what token do we use to decide?

N/A, this is independent of editions

SemVer implications

Does this feature create any new ways in which library authors must take care to prevent breaking downstreams when making minor-version releases? Describe these. Are these new hazards "major" or "minor" according to RFC 1105?

N/A, downstream users cannot access this feature

Exposing other features

Are there any other unstable features whose behavior may be exposed by this feature in any way? What features present the highest risk of that?

Not aware of any

History

List issues and PRs that are important for understanding how we got here.

PRs

Acknowledgments

Open items

List any known items that have not yet been completed and that should be before this is stabilized.

@epage epage added T-lang Relevant to the language team F-frontmatter `#![feature(frontmatter)]` labels Oct 23, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 23, 2025

Some changes occurred in src/doc/style-guide

cc @rust-lang/style

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-style Relevant to the style team, which will review and decide on the PR/issue. labels Oct 23, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 23, 2025

r? @davidtwco

rustbot has assigned @davidtwco.
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

gate_all!(unsafe_fields, "`unsafe` fields are experimental");
gate_all!(unsafe_binders, "unsafe binder types are experimental");
gate_all!(contracts, "contracts are incomplete");
gate_all!(contracts_internals, "contract internal machinery is for internal use only");
Copy link
Member

@fmease fmease Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Commenting on an arbitrary line to make this discussion threaded)

From the PR description (emphasis and ellipses mine):

Post-RFC changes

[…]

  • acceptable places for frontmatter
    • […]
    • rustc: support removed from […] include! […]
    • […]
    • include! can be used to inject code into the middle of a file which becomes ambiguous between a frontmatter start and a very negated number (----x)

In #146340 I actually struck a (temporary) compromise: We do still strip/lex/recognize frontmatter (and shebang) in item-context include!s. However, we no longer strip frontmatter in expression/statement-context include!s like in let _ = include!(…); (to prevent the manifold negation backcompat issue you've rightly mentioned).

Now, I don't know what's best here. I'm eager to know your and T-lang's stance on the matter. Note that we do strip shebang in expression/statement-context include!s which I consider to be quite odd (but still understandable on a lexical level). I have an open PR #146377 which would stop stripping shebang in that position, too. I still need to rebase+polish, lang-nominate and possibly crater it. The outcome of that T-lang discussion likely affects the decision mentioned in the first paragraph (†).

(†): If that PR was accepted it would mean that we would strip shebang+frontmatter in item-ctxt includes and wouldn't strip either(!) shebang or frontmatter in expr/stmt-ctxt includes which would make the behavior of shebang+frontmatter consistent thereby fulfilling the original goal of "This applies anywhere shebang stripping is performed." in this specific case (obviously the goal wasn't achieved in other cases, like in the proc_macro API case).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I've updated the stabilization report as well as linked to your comment as a place for discussing it.

Copy link
Member

@fmease fmease Nov 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've now made that PR ready & lang-nominated it, sorry for the delay. See the nomination text here: #146377 (comment) (it's maybe a bit rambly since I threw it together rather quickly, I hope it's comprehensible enough).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@traviscross traviscross added the I-lang-radar Items that are on lang's radar and will need eventual work or consideration. label Oct 23, 2025
epage added a commit to epage/rust that referenced this pull request Oct 24, 2025
When working on the stabilization report (rust-lang#148051),
I found it annoying to determine what cases were covered because areas
of the frontmatter feature were either not in the file name or in
inconsistent locations.

This moves the area of frontmatter to the start of the file name and the
moves to more specific the later in the file name so coverage is easier
to see.
bors added a commit that referenced this pull request Oct 24, 2025
test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: #136889
jhpratt added a commit to jhpratt/rust that referenced this pull request Oct 25, 2025
test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (rust-lang#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: rust-lang#136889
jhpratt added a commit to jhpratt/rust that referenced this pull request Oct 25, 2025
test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (rust-lang#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: rust-lang#136889
rust-timer added a commit that referenced this pull request Oct 25, 2025
Rollup merge of #148073 - epage:org-frontmatter, r=jieyouxu

test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: #136889
Copy link
Member

@davidtwco davidtwco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation of this LGTM, r=me once t-lang has approved stabilisation

View changes since this review

@bors
Copy link
Collaborator

bors commented Oct 25, 2025

☔ The latest upstream changes (presumably #148090) made this pull request unmergeable. Please resolve the merge conflicts.

github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Oct 27, 2025
test(frontmatter): Rename tests to make coverage more obvious

When working on the stabilization report (rust-lang/rust#148051), I found it annoying to determine what cases were covered because areas of the frontmatter feature were either not in the file name or in inconsistent locations.

This moves the area of frontmatter to the start of the file name and the moves to more specific the later in the file name so coverage is easier to see.

Tracking issue: rust-lang/rust#136889
@rustbot
Copy link
Collaborator

rustbot commented Oct 30, 2025

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@epage
Copy link
Contributor Author

epage commented Nov 21, 2025

@rustbot label +I-lang-nominated

This has been quiet for a while. There is an open issue on the rustdoc side but I figure that can be worked out in parallel to T-lang discussions in case T-lang uncovers anything. Even if this goes straight to FCP, someone can raise a blocking concern on behalf of rustdoc.

@rustbot rustbot added the I-lang-nominated Nominated for discussion during a lang team meeting. label Nov 21, 2025
@traviscross traviscross added the P-lang-drag-1 Lang team prioritization drag level 1. https://rust-lang.zulipchat.com/#narrow/channel/410516-t-lang label Nov 22, 2025
@traviscross
Copy link
Contributor

Having now read through the stabilization report and the linked PRs, issues, and threads, this seems to me to be ready for stabilization modulo the open rustdoc item mentioned by @epage, getting the Reference PR into a final state, and documenting the behavior of include! with respect to frontmatter (for which I'll file a concern). Consequently, I propose...

@rfcbot fcp merge lang

Thanks to @epage for the thorough stabilization report and for his many efforts in pushing along this feature.

@rust-rfcbot
Copy link
Collaborator

rust-rfcbot commented Nov 23, 2025

Team member @traviscross has proposed to merge this. The next step is review by the rest of the tagged team members:

Concerns:

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

cc @rust-lang/lang-advisors: FCP proposed for lang, please feel free to register concerns.
See this document for info about what commands tagged team members can give me.

@rust-rfcbot rust-rfcbot added the proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. label Nov 23, 2025
@rust-rfcbot rust-rfcbot added the disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. label Nov 23, 2025
@traviscross
Copy link
Contributor

@rfcbot concern document-frontmatter-removal

In the Reference, we document shebang removal, including the exception for when #! is followed (even after intervening comments and/or whitespace) by [, and we document (in an admonition) the behavior of include! with respect to this shebang removal.

Let's please document the behavior of frontmatter removal, including how it interacts with the documented shebang removal exception and how this removal is applied by include! (i.e., including with respect to how this differs between item and expression contexts).

It may also be worth including this in the core library documentation, but I'd at least like to see this in the Reference. In particular, I want to see this detail documented to confirm my understanding is correct on exactly what we're accepting as part of this stabilization.

@traviscross traviscross added the S-waiting-on-documentation Status: Waiting on approved PRs to documentation before merging label Nov 23, 2025
@traviscross
Copy link
Contributor

traviscross commented Nov 24, 2025

@rfcbot concern do-we-care-about-context-free-grammar

As far as I'm aware, 1) Rust currently has a context-free grammar, and 2) without a finite upper bound on the number of dashes used for a fence (as we do with raw string literals), the grammar for frontmatter would not be context-free and would make Rust a context-sensitive language.

(In testing, I notice that the compiler ICEs with greater than 65535 fencing dashes with "Formatting argument out of range" (presumably due to #136932), but this limit isn't documented, doesn't seem intentional, and would be much higher than the limit of 255 #s for a raw string literal.)

Do we care about preserving Rust's context-free grammar? Might we want to set the same upper limit here that we do for raw string literals? I'm filing this concern to hold space for that discussion.

@traviscross
Copy link
Contributor

@rfcbot concern do-we-want-to-allow-carriage-returns

For raw string literals, I notice that we don't allow any carriage returns that have survived CRLF normalization. I can think of a number of good reasons for this.

Do any of those reasons apply to frontmatter (which currently allows them)? I'm thinking, e.g., about the possibility of a line such as lol\r--- that might be rendered rather differently than how it would be parsed. More generally, given how frontmatter is defined in a line-oriented way, I wonder whether there are any contexts in which these CRs might confuse the user or other tools about what is meant by a line in this context.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rfcbot concern do-we-care-about-context-free-grammar

As far as I'm aware, 1) Rust currently has a context-free grammar, and 2) without a finite upper bound on the number of dashes used for a fence (as we do with raw string literals), the grammar for frontmatter would not be context-free and would make Rust a context-sensitive language.

(In testing, I notice that the compiler ICEs with greater than 65535 fencing dashes with "Formatting argument out of range" (presumably due to #136932), but this limit isn't documented, doesn't seem intentional, and would be much higher than the limit of 255 #s for a raw string literal.)

Do we care about preserving Rust's context-free grammar? Might we want to set the same upper limit here that we do for raw string literals? I'm filing this concern to hold space for that discussion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we care about preserving Rust's context-free grammar?

Are we in a similar situation with shebangs?

The RFC originally framed frontmatters as being stripped like shebangs. I'm assuming that it is an implementation detail that this is currently being handled inside the lexer rather than as a strip before hand.

Might we want to set the same upper limit here that we do for raw string literals?

Is there a reason you put this under the same concern as being CFG? On the surface, they seem independent which could make talking about them harder and risks losing track of one

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry if I'm making a mistake here, but the shebang has a natural and deterministic delimiter, doesn't it? '\n'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it isn't the ambiguity that is a concern for context free but the capping on the delimiters.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, exactly, that's why we have the limit of u8::MAX on the effective delimitation for raw strings. The same rule could be applied here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rfcbot concern document-frontmatter-removal

In the Reference, we document shebang removal, including the exception for when #! is followed (even after intervening comments and/or whitespace) by [, and we document (in an admonition) the behavior of include! with respect to this shebang removal.

Let's please document the behavior of frontmatter removal, including how it interacts with the documented shebang removal exception and how this removal is applied by include! (i.e., including with respect to how this differs between item and expression contexts).

It may also be worth including this in the core library documentation, but I'd at least like to see this in the Reference. In particular, I want to see this detail documented to confirm my understanding is correct on exactly what we're accepting as part of this stabilization.

@joshtriplett
Copy link
Member

joshtriplett commented Nov 26, 2025

@rfcbot concern do-we-care-about-context-free-grammar

As far as I'm aware, 1) Rust currently has a context-free grammar, and 2) without a finite upper bound on the number of dashes used for a fence (as we do with raw string literals), the grammar for frontmatter would not be context-free and would make Rust a context-sensitive language.

(In testing, I notice that the compiler ICEs with greater than 65535 fencing dashes with "Formatting argument out of range" (presumably due to #136932), but this limit isn't documented, doesn't seem intentional, and would be much higher than the limit of 255 #s for a raw string literal.)

Do we care about preserving Rust's context-free grammar? Might we want to set the same upper limit here that we do for raw string literals? I'm filing this concern to hold space for that discussion.

I don't think we particularly need to preserve CFG as a property here for its own sake, and don't think we should do it for that reason, but for purely practical reasons I think it'd be reasonable to say "at most 255 dashes".

@scottmcm
Copy link
Member

I would also like the 255 limit. It was useful in strings to have a smaller count to keep the in-memory sizes small anyway.

And really, if 255 isn't enough to fix whatever you're trying to fix, I don't think more will fix it either, which to me is the biggest reason to do this.

(Like Josh, I think this is a solid change regardless of CFG-ness, and while maintaining context-free is nice when it's otherwise reasonable, it's not the biggest reason to do this.)

@epage
Copy link
Contributor Author

epage commented Nov 26, 2025

Since there seems general interest around this, I'll prepare a PR for capping the fence length

@jackh726
Copy link
Member

/concern frontmatter-stripping

This came up in today's lang meeting when discussing #146377, and shared by Josh here:

Essentially, the discussion was whether we can or want to not strip both frontmatter and shebang in item-ctxt include. Unfortunately, with that in mind, that leaves this PR as a reasonable place to block answering that question (since it adds another case that makes the decision even bigger later).

To best answer the question of "should we remove stripping of shebang in item-ctxt include" (and consequently not stabilize frontmatter-stripping), we should do a crater run (as Josh proposed in #146377). I'm hoping that someone can pick this up and do this concurrently with the crater run for #146377 so it doesn't delay this PR.

I also don't want to hard block this stabilization on the above question, in the spirit of "don't let perfect be the enemy of great". I'm filing a concern, but I expect that I'll withdraw it once #146377 lands and other concerns are withdrawn.

@traviscross
Copy link
Contributor

Proxying that lang-advisor concern:

@rfcbot concern jack-should-we-strip-frontmatter-in-item-context

@epage
Copy link
Contributor Author

epage commented Nov 26, 2025

#149358 limits frontmatte fence length

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

Labels

disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. F-frontmatter `#![feature(frontmatter)]` I-lang-nominated Nominated for discussion during a lang team meeting. I-lang-radar Items that are on lang's radar and will need eventual work or consideration. P-lang-drag-1 Lang team prioritization drag level 1. https://rust-lang.zulipchat.com/#narrow/channel/410516-t-lang proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. S-waiting-on-documentation Status: Waiting on approved PRs to documentation before merging S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-lang Relevant to the language team T-style Relevant to the style team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracking Issue for frontmatter