Skip to content

Commit 6792a77

Browse files
eholknikomatsakislqd
authored
Carry forward Open Namespaces goal to 2025H2 (#322)
* Copy open namespaces goal from 2025h1 * Small updates for open namespaces for 2025h2 * Apply suggestions from code review Co-authored-by: Rémy Rakic <[email protected]> --------- Co-authored-by: Niko Matsakis <[email protected]> Co-authored-by: Rémy Rakic <[email protected]>
1 parent 01d2ab2 commit 6792a77

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

src/2025h2/open-namespaces.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Implement Open API Namespace Support
2+
3+
| Metadata | |
4+
| :-- | :-- |
5+
| Point of contact | @epage |
6+
| Teams | <!-- TEAMS WITH ASKS --> |
7+
| Task owners | <!-- TASK OWNERS --> |
8+
| Status | Proposed for mentorship |
9+
| Zulip channel | N/A |
10+
| Tracking issue | [rust-lang/rust-project-goals#256] |
11+
12+
## Summary
13+
14+
Navigate the cross-team design work to get [RFC 3243](https://github.com/rust-lang/rfcs/pull/3243) implemented.
15+
16+
## Motivation
17+
18+
[RFC 3243](https://github.com/rust-lang/rfcs/pull/3243) proposed opening up namespaces in Rust to extension,
19+
managed by the package name with crates-io putting access control on who can publish to a crate's API namespace.
20+
This covers multiple teams and needs a lot of coordination to balance the needs of each team as shown on the [rustc tracking issue](https://github.com/rust-lang/rust/issues/122349).
21+
22+
### The status quo
23+
24+
- Cargo support is partially implemented.
25+
- Compiler design is agreed on and partially implemented.
26+
- There is a crates-io prototype for a previous iteration of RFC 3243 but that code base has likely diverged a lot since then.
27+
28+
### The next 6 months
29+
30+
- Implement Cargo and compiler support for this to be experimented with and allow crates-io work.
31+
- Understand what changes are needed for crates.io support, and what it will take to implement these.
32+
33+
### The "shiny future" we are working towards
34+
35+
## Design axioms
36+
37+
## Ownership and team asks
38+
39+
| Task | Owner(s) or team(s) | Notes |
40+
|-------------------------------------|-------------------------------|-------|
41+
| Discussion and moral support | ![Team][] [cargo], [compiler], [crates-io] | |
42+
| Compiler implementation | @b-naber | |
43+
| Work through lingering cargo issues | @epage, @b-naber | |
44+
45+
### Definitions
46+
47+
Definitions for terms used above:
48+
49+
* *Discussion and moral support* is the lowest level offering, basically committing the team to nothing but good vibes and general support for this endeavor.
50+
* *Author RFC* and *Implementation* means actually writing the code, document, whatever.
51+
* *Design meeting* means holding a synchronous meeting to review a proposal and provide feedback (no decision expected).
52+
* *RFC decisions* means reviewing an RFC and deciding whether to accept.
53+
* *Org decisions* means reaching a decision on an organizational or policy matter.
54+
* *Secondary review* of an RFC means that the team is "tangentially" involved in the RFC and should be expected to briefly review.
55+
* *Stabilizations* means reviewing a stabilization and report and deciding whether to stabilize.
56+
* *Standard reviews* refers to reviews for PRs against the repository; these PRs are not expected to be unduly large or complicated.
57+
* *Prioritized nominations* refers to prioritized lang-team response to nominated issues, with the expectation that there will be *some* response from the next weekly triage meeting.
58+
* *Dedicated review* means identifying an individual (or group of individuals) who will review the changes, as they're expected to require significant context.
59+
* Other kinds of decisions:
60+
* [Lang team experiments](https://lang-team.rust-lang.org/how_to/experiment.html) are used to add nightly features that do not yet have an RFC. They are limited to trusted contributors and are used to resolve design details such that an RFC can be written.
61+
* Compiler [Major Change Proposal (MCP)](https://forge.rust-lang.org/compiler/mcp.html) is used to propose a 'larger than average' change and get feedback from the compiler team.
62+
* Library [API Change Proposal (ACP)](https://std-dev-guide.rust-lang.org/development/feature-lifecycle.html) describes a change to the standard library.
63+
64+
## Frequently asked questions

0 commit comments

Comments
 (0)