Skip to content

Commit

Permalink
feat: add announcement of new output registration process
Browse files Browse the repository at this point in the history
  • Loading branch information
beckermr committed Sep 8, 2024
1 parent cdaee68 commit 73b1f50
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 13 deletions.
32 changes: 19 additions & 13 deletions docs/maintainer/infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -635,19 +635,25 @@ works as follows.
channel.

We attempt to report errors in this process to users via comments on commits/issues in the feedstocks.
Note however that sometimes these fail. If you think you are having trouble with uploads, make
sure `conda_forge_output_validation: true` is set in your `conda-forge.yml` and rerender
your feedstock with the latest version of `conda-smithy`. Finally, new packages that are added to
feedstocks are registered automatically and once uploaded successfully, no other feedstock
will be able to upload packages with the same name.

Sometimes, however, it might make better sense to generate a package from a different
feedstock, say, due to package renaming or re-structuring. In this case, you may need
to add the new feedstock to the [feedstock-outputs](https://github.com/conda-forge/feedstock-outputs) map.
If this is not done, then the output validation process will block the package from being
uploaded from the new feedstock, by design.
Once this is done correctly and the package is uploaded,
you can then request the conda-forge core devs to archive the old feedstock.
Sometimes these reports fail. If you think you are having trouble with uploads, make sure to check/try
the following things:

- Ensure that `conda_forge_output_validation: true` is set in your `conda-forge.yml`.
- Retry the package build and upload by pushing an empty commit to the feedstock.
- Rerender the feedstock in a PR from a fork of the feedstock and merge.
- Request a feedstock token reset via our [admin-requests repo](https://github.com/conda-forge/admin-requests?tab=readme-ov-file#reset-your-feedstock-token).
- Request that any new packages be added to the allowed outputs for the feedstock
via our [admin-requests-repo](https://github.com/conda-forge/admin-requests?tab=readme-ov-file#add-a-package-output-to-a-feedstock).

New packages that are added to existing feedstocks are not registered automatically in order to prevent
typo squatting and other malicious activities. Package outputs are added during feedstock creation.
If you move a package from one feedstock to another, add an output, or change the name of package name,
you will need to request that the new package name be added to your feedstock via the
[admin-requests repo](https://github.com/conda-forge/admin-requests?tab=readme-ov-file#add-a-package-output-to-a-feedstock).

In rare cases, the package name may change regularly in a well-defined way (e.g., `libllvm18`, `libllvm19`, etc.).
In this case, please submit a PR updating our [list of feedstocks with allowed glob patterns](https://github.com/conda-forge/admin-requests/blob/main/.feedstock_outputs_autoreg_allowlist.yml). Output packages that match
these patterns will be automatically registered for your feedstock.

## Stages of package building and involved infrastructure

Expand Down
11 changes: 11 additions & 0 deletions news/2024-09-08-output-validation-changes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changes Feedstock Output Validation Procedure

We have changed our feedstock output validation procedure. Instead of automatically
adding new packages to existing feedstocks (e.g., when a new output is added), we will now
require that maintainers submit a PR to add the new output via our
[admin-requests repository](https://github.com/conda-forge/admin-requests?tab=readme-ov-file#add-a-package-output-to-a-feedstock).
New feedstocks created via `staged-recipes` will have their outputs added automatically. If you maintain a feedstock
that regularly adds new outputs (e.g., `llvmdev` has `libllvm18`, `libllvm19`, etc.), we have created a
[list of feedstocks with allowed glob patterns](https://github.com/conda-forge/admin-requests/blob/main/.feedstock_outputs_autoreg_allowlist.yml). These feedstocks will have any outputs matching their glob patterns
added automatically. If you would like to add your feedstock to this list, please submit a PR. Further
details on package output validation cna be found in our [documentation](https://conda-forge.org/docs/maintainer/infrastructure/#output-validation-and-feedstock-tokens).

0 comments on commit 73b1f50

Please sign in to comment.