Cargo pub/priv dependencies
Lead: withoutboats
Chat: WG-cargo-pub-deps

Getting started

The best way to start is to read this document, then join the chat and say hello! We’ll help you from there.

Background

One of Cargo’s goals is to make transitive dependencies essentially invisible; you shouldn’t have to worry about what your dependencies depend on. While that’s true in general, there are certain cases where you have to care: when those transitive dependencies are public, in the sense that they form a part of the API of the crate you care about. In that case, whether you can use that API together with other crates relies on them all agreeing on a common version.

RFC 1977 proposed to make public dependencies a first-class notion in Cargo, and to modify several aspects of dependency resolution to provide a better treatment for public dependencies.

Goals

By the end of the impl period, we should:
  • Have an implementation of the Cargo changes needed (dependency resolution)
  • Have an implementation of the rustc changes needed (privacy checking)
  • Have worked out a smooth migration story

Open work items

This project is still in the very early stages, so if you want to get involved, come chat in the Gitter channel!

Completed work items