Open
Description
Summary
RFC: #3243
Documentation: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#open-namespaces
rustc tracking issue: rust-lang/rust#122349
crates.io tracking issue: rust-lang/crates.io#8292
Allow a parent package to open its API namespace for other packages to participate
Implementation
- Unstable flag (feat: Add 'open-namespaces' feature #13591)
- Allow one
::
in the middle of package names, prevent publish (feat: Add 'open-namespaces' feature #13591) - fix(pkgid): Allow open namespaces in PackageIdSpec's #14467
- Test cases
- Depending on a package whose
lib.name
puts it in a namespace - Path or git dependency under a registry package namespace
- Build scripts, see caeg-industries@f4305ca
- Depending on a package whose
- Publish support including index file system layout
Unresolved Issues
- For an implicit bin in a namespaced package, should do something (e.g. warn, error) about cross-platform hazard of
::
being in the name? - Should we allow renames like
"foo::bar" = { package = "foo_bar", version = "1.0" }
in Cargo.toml? - How precisely should this be represented in the index trie?
- How we should name the
.crate
file / download URL
Future Extensions
No response
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Metadata
Metadata
Assignees
Type
Projects
Status
Big Projects, no backers