Skip to content
This repository was archived by the owner on Nov 5, 2022. It is now read-only.
This repository was archived by the owner on Nov 5, 2022. It is now read-only.

dev-dependencies are annoying and almost useless in publish #46

Closed
@Eh2406

Description

@Eh2406

The inspiring case is that Cargo itself just added custom proc-macro ( rust-lang/cargo#6900 ) to remove testing boilerplate. Now we can't publish to Crates.io, as path dependencies are not allowed, without publishing the small testing library. But noone using Cargo as a library needs to know that we use this dep for testing. We have checked carefully and Cargo only looks at dev-dependencies for the main project and completely ignores them for all dependencies. @alexcrichton, suggested that we comment that part of our Cargo.toml out before we publish, it works for his other projects. We are discussing ways to generalize that workflow.

Possible next steps:

  • leave things as they are. Each project finds its own workaround as needed. Or.
  • Cargo just removes dev-dependencies part of the Cargo.toml before giving it to Crates.io as part of publish for everyone. (This is not great as Crater uses that Cargo.toml, so it would be nice if testing worked from that file.) Or.
  • Cargo adds a flag to strip dev-dependencies part of the Cargo.toml as part of publish only when asked to. (not great as it is an additional CLI flag to doc and maintain) Or.
  • Crates.io and Cargo decide that you can publish with arbitrarily bad data in the dev-dependencies part of the Cargo.toml. Or.
  • Some compromise between them.

We wanted to get the Crates.io Teams thoughts about Cargo not telling you things that we historically did or about changing your policy.
Specifically, do you use dev-dependencies for anything? If so would you mind not using them?
Are you open to allowing path and git dependencies in the dev-dependencies for crates on the site?

This was brought up at #43
Then followed up Cargo team meeting notes:

2019-06-26

  • follow up from crates.io team on not checking dev deps

Both teams want to make this easier but want to think carefully about how to proceed. Let's have a discussion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions