Skip to content

Conversation

ericphanson
Copy link
Member

It commonly happens that someone wants to register 2 or more related packages that depend on each other. Because Registrator.jl enforces all dependencies are registered at registration time, this means one needs to serially wait out the dependency tree (or do tricks like rm the dep, register, start the 3 day wait, then add the dep and re-trigger registration). Community review can proceed in parallel so I think it's totally fine to register with unregisterd deps; they will fail the "package can load check" in RegistryCI which is the ultimate check, but you can at least start the waiting period.

The mechanism I propose to do that is to remove the check from registrator_errors which are meant to be the ones enforced by Registrator, then update Registrator to use this new version. Registrator does not pass any kwargs to register so it uses the defaults: https://github.com/JuliaRegistries/Registrator.jl/blob/b468d1955fe239d6229f1e4f4fd1a4a1ec2a4339/src/RegService.jl#L36.

An alternate path would be to update Registrator.jl itself to own the kwargs it uses and stop passing this one. That seems reasonable to me but as they are currently owned by RegistryTools the simplest (and lowest effort for me) fix is to update them here.

This is probably breaking though as it changes the defaults. Not sure that matters, RegistryTools surely does not have many dependent packages.

It commonly happens that someone wants to register 2 or more related packages that depend on each other. Because Registrator.jl enforces all dependencies are registered at registration time, this means one needs to serially wait out the dependency tree (or do tricks like rm the dep, register, start the 3 day wait, then add the dep and re-trigger registration). Community review can proceed in parallel so I think it's totally fine to register with unregisterd deps; they will fail the "package can load check" in RegistryCI which is the ultimate check, but you can at least start the waiting period.

The mechanism I propose to do that is to remove the check from `registrator_errors` which are meant to be the ones enforced by Registrator, then update Registrator to use this new version. Registrator does not pass any kwargs to `register` so it uses the defaults: https://github.com/JuliaRegistries/Registrator.jl/blob/b468d1955fe239d6229f1e4f4fd1a4a1ec2a4339/src/RegService.jl#L36.

An alternate path would be to update Registrator.jl itself to own the kwargs it uses and stop passing this one. That seems reasonable to me but as they are currently owned by RegistryTools the simplest (and lowest effort for me) fix is to update them here.

This is probably breaking though as it changes the defaults. Not sure that matters, RegistryTools surely does not have many dependent packages.
@ericphanson ericphanson changed the title Allow registring packages with missing dependencies [breaking] Allow registering packages with missing dependencies Aug 6, 2025
@ericphanson ericphanson marked this pull request as draft August 6, 2025 15:40
@ericphanson
Copy link
Member Author

ericphanson commented Aug 6, 2025

@GunnarFarneback pointed on Slack that the sources feature could allow loading with unregistered deps, so the current RegistryCI checks are insufficient and this check is load bearing. This would need to be paired with a new RegistryCI check that all deps are registered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant