Skip to content

package.authors is deprecated without explanation #16458

Open

Description

@GideonBear

Ref #15068, ping @epage

https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field

The authors field
Warning: This field is deprecated
The optional authors field lists in an array the people or organizations that are considered the “authors” of the package. An optional email address may be included within angled brackets at the end of each author entry.
[...]
This field is surfaced in package metadata and in the CARGO_PKG_AUTHORS environment variable within build.rs for backwards compatibility.

I found this in the docs, and had no clue what to do. A warning just saying "This field is deprecated" is not very useful, in my opinion. I was very confused. After a bit of research, I now know why it was deprecated. I propose adding a (short) explanation as to why it was deprecated, possibly a link to the RFC making it optional (which AFAICT contains most of the rationale for deprecating it), and note that you do not need anything to replace it.

Secondly, I think "(deprecated)" should be added in the table of contents:

authors — The authors of the package.

Just like was done with [replace]:

[replace] — Override dependencies (deprecated).

Activity

  1. added
    S-acceptedStatus: Issue or feature is accepted, and has a team member available to help mentor or review
    S-needs-mentorStatus: Issue or feature is accepted, but needs a team member to commit to helping and reviewing.
    and removed
    S-acceptedStatus: Issue or feature is accepted, and has a team member available to help mentor or review
    on Jan 2, 2026
  2. epage commented on Jan 2, 2026

    @epage
    Contributor

    For some reason, making too much ado about deprecated functionality in the documentation, like providing treatises explaining why, doesn't sit right with me but unsure if any biases are playing a part in this so I might need to sit on this for a bit.

    Specifying what to use instead does make sense but authors was not superseded.

    We probably should not link to RFCs. Too many people confuse these as living pieces of documentation, rather than historical documentation. It might work for a deprecation to say "here is the decision" but that is all we can say. Motivations can evolve over time. Even then, the subtlety of where RFCs are relevant can easily be lost.

  3. added
    S-needs-designStatus: Needs someone to work further on the design for the feature or fix. NOT YET accepted.
    and removed
    S-needs-mentorStatus: Issue or feature is accepted, but needs a team member to commit to helping and reviewing.
    on Jan 2, 2026
  4. GideonBear commented on Jan 2, 2026

    @GideonBear
    Author

    Specifying what to use instead does make sense but authors was not superseded.

    With "and note that you do not need anything to replace it", I mean to add a note explicitly saying that it wasn't superseded, and that it's safe to remove it without adding anything else. I expect a deprecation notice to contain something actionable.

    The need for an explanation also decreases slightly with that; it's mostly that "this is deprecated" without anything else was very confusing for me.

  5. epage commented on Jan 2, 2026

    @epage
    Contributor

    and that it's safe to remove it without adding anything else. I expect a deprecation notice to contain something actionable.

    Is it safe to remove? I assume third-party tools, like packagers, are using it and removing it in those contexts is not safe without other steps.

    The most we can probably say is that it is ignored by cargo and crates.io

  6. GideonBear commented on Jan 3, 2026

    @GideonBear
    Author

    Fair point! Lmk what you want to do with it, I can PR.

  7. georglauterbach commented on Jan 22, 2026

    @georglauterbach

    What's the status here?

  8. blinry commented on Apr 10, 2026

    @blinry

    I found this issue after seeing in the Cargo documentation that the field is deprecated, and being a bit confused as to why.

    I'd also recommend a short note in that section explaining that the field was never used by any of the cargo tooling, so it's safe to remove (if that's true?).

  9. JosiahParry commented on Apr 10, 2026

    @JosiahParry

    This deprecation is quite intriguing to me. Does this mean that cargo doesn't want to provide a mechanism for crate attribution and authorship?

    Depending on the license of a crate, downstream users are required to preserve copyright and attribution information. This info may exist in a NOTICE or LICENSE file in the crate source but authors has been a nice programmatic way to extract attribution info.

    I guesss I would frame this as a question as:

    Will cargo / crates.io provide an alternative structured method to provide crate attribution?

    Context: Using Rust in the R language:

    For further context, I'm one of the maintainers of the extendr project (think PyO3 but for R).

    The R package repository's policy on using Rust is

    "...the authorship and copyright information for the Rust code must be included in the DESCRIPTION file."

    We use the authors field to generate a LICENSE.note file for appropriate attribution when submitting rust-powered R packages to the package repository via the R function write_license_note() ensuring that we have appropriate attribution during the submission process.

  10. epage commented on Apr 10, 2026

    @epage
    Contributor

    For people looking for more context on the deprecation, see https://rust-lang.github.io/rfcs/3052-optional-authors-field.html

  11. shian15810 commented on Apr 28, 2026

    @shian15810

    I think people are confused as to why making authors field optional has anything to do with making authors field deprecated.

  12. johnnyasantoss commented on Jun 4, 2026

    @johnnyasantoss

    I think people are confused as to why making authors field optional has anything to do with making authors field deprecated.

    Yes! Really confused even after reading the RFC. You won't be able to update authors after publishin, but what if that's okay?

  13. KiChjang commented on Jul 7, 2026

    @KiChjang

    To be honest, a short note that says something like "use AUTHORS.md for authorship" is good enough. As it stands, this note is not up to the diagnostic standards set by the Rust compiler.

  14. added a commit that references this issue on Jul 30, 2026
  15. dead-claudia commented on Aug 13, 2026

    @dead-claudia

    Quick question: what's the status of this? I see a "needs design" label, but it's unclear what would need "designed". If anything, #17332 looks like a proposed design of sorts, so I'm kinda confused.

  16. epage commented on Aug 13, 2026

    @epage
    Contributor

    A PR is an implementation. The tag is for design. The line is a bit more vague with documentation but there is discussion on what is worth covering for this.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-documenting-cargo-itselfArea: Cargo's documentationS-needs-designStatus: Needs someone to work further on the design for the feature or fix. NOT YET accepted.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions