-
-
Notifications
You must be signed in to change notification settings - Fork 27
Add CFEP for package renames #64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jaimergp
wants to merge
11
commits into
main
Choose a base branch
from
renames
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
baa7687
Add CFEP for package renames
jaimergp 1fcdaed
feat: add feedstock epoch labels
beckermr 940455d
Update cfep-XX.md
beckermr b4c76f1
Update guidelines for renaming packages
beckermr a47396e
Update cfep-XX.md
beckermr 2aaae47
Apply suggestions from code review
beckermr 3b72c42
Update cfep-XX.md
beckermr fafe245
Update cfep-XX.md
beckermr 705ba84
Update cfep-XX.md
beckermr de127f9
Update cfep-XX.md
beckermr f229a2b
Apply suggestion from @beckermr
beckermr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
|
|
||
| <table> | ||
| <tr><td> Title </td><td> Guidelines for (Re)Naming Packages </td> | ||
| <tr><td> Status </td><td> Draft </td></tr> | ||
| <tr><td> Author(s) </td><td> | ||
| Jaime Rodríguez-Guerra <[email protected]>, Matthew R. Becker <[email protected]> | ||
| </td></tr> | ||
| <tr><td> Created </td><td> Oct 26, 2025 </td></tr> | ||
| <tr><td> Updated </td><td> Oct 26, 2025 </td></tr> | ||
| <tr><td> Discussion </td><td> https://github.com/conda-forge/admin-requests/pull/1711 </td></tr> | ||
| <tr><td> Implementation </td><td> NA </td></tr> | ||
| </table> | ||
|
|
||
| ## Abstract | ||
|
|
||
| This CFEP describes the principles informing how and when to (re)name a package in conda-forge. | ||
| Two cases are described depending on the status of the target name: | ||
|
|
||
| - Unclaimed names: A new package or a package already present in conda-forge wants to use a new name currently unclaimed. | ||
| - Names in use: A package, already present or about to be submitted, wishes to use a name already in use. | ||
|
|
||
| ## Specification | ||
|
|
||
beckermr marked this conversation as resolved.
Show resolved
Hide resolved
beckermr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| This CFEP follows [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) in its use of certain keywords (e.g., MUST). | ||
|
|
||
| ### Unclaimed Names | ||
|
|
||
| #### New Feedstocks & Name Squatting | ||
beckermr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| - Unclaimed package names are typically available on a first-come-first-served basis and can be claimed by submitting a recipe for a package via `staged-recipes` (or equivalent). | ||
| - The core team reserves the right to prevent the use of certain names for any reason. Typical reasons the core team may prevent the use of a certain name include, but are not limited to, typo squating, ambiguity, violations of the code of conduct, conflicts with important infrastructure, etc. | ||
beckermr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - Pre-registering or squatting on a namespace in anticipation of future use is not allowed unless expressly approved by the core team via the consent of at least three core members. The core team MUST be `@`-mentioned on the relevant PR/issue and this PR/issue MUST stay open for at least one week. | ||
beckermr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| #### Renaming an Existing Package | ||
|
|
||
| When an existing package wants to be renamed to a currently unclaimed name, the following steps apply: | ||
|
|
||
| - The new name MUST be registered to the originating feedstock in `feedstock-outputs` (or equivalent). | ||
| - Once the new name is approved, a PR in the feedstock adding the new output may proceed normally. | ||
| - One of the following two options to ease the transition to the new name from the old name MUST be used. | ||
| 1. The old name is kept as an alias output on the feedstock for backwards compatibility indefinitely. | ||
| 2. The old name is kept as an alias output on the feedstock for backwards compatibility for a limited period of time. In this case, the old name MUST be marked as deprecated through the addition of a linter rule and existing feedstocks using the old name MUST be actively migrated to the new name, either by hand or through an automated service (e.g., the autotick bot). After a suitable period of time, the old name may be dropped. Packages used by many other packages SHOULD be transitioned more slowly than packages which are not used by many other packages. | ||
beckermr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| The core team reserves the right to prevent packages from being renamed for any reason at their sole discretion. | ||
|
|
||
| ### Names in Use | ||
|
|
||
| The blanket policy in this case is that an existing package name may not be used by a different project. In exceptional cases, the old name may be reallocated provided that: | ||
|
|
||
| - The old project is abandoned. Factors that can help to indicate if a project is abandoned include, but are not limited to, the project's git repo being archived, the project's distributions no longer being available (e.g., yanked artifacts on PyPI), etc. For packages shipped on both conda-forge and PyPI, the package name on PyPI MUST have been inheritied by the new project from the old project. | ||
| - The two different projects can be unambiguously distinguished in the conda-forge repodata, in the sense of incompatible constraints for the package metadata (e.g., the old `foo` might only have builds that require `python <=2.7`, whereas the new `foo` would only have builds for `python >=3.10`, the version ranges do not intersect, etc.). | ||
| - The version ranges of the projects do not intersect. | ||
beckermr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - The repodata patches for the old project (if any) do not change the repodata of the new project. Adjustments to the patches for the old project can be made, but they MUST produce the same modifications to the old artifacts. | ||
| - The old project's artifacts are all marked with the `broken` label. | ||
| - The original feedstock for the old project is not reused, and instead MUST be archived. | ||
|
|
||
| The core team may resolve any ambiguities or disagreements on feedstock reuse at their sole discretion. Further, the core team reserves the right to refuse to allow a feedstock to be reused at their sole discretion. | ||
|
|
||
| ## Copyright | ||
|
|
||
| All CFEPs are explicitly [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/). | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.