How does one remove a package from the general registry? As in, un-register it so that it can no longer be added with using Pkg: Pkg.add(PackageName)
.
You can’t do that, in general, since it will break other people’s code (see e.g. the leftpad incident).
What is the situation where you want to? Maybe there’s another workaround.
I basicly went a little over the top, making 3 packages (CircuitComponentRounding, ESeriesRounding and AbstractCircuitComponentRounding), with an idea of a tiny ecosystem. But based on the complete lack of interest, this is WAAAY overkill, and I have consolidated the functionality to ESeriesRounding v0.1.2. The other packages are therefore currently simply mess in the general registry.
I don’t think that’s a problem necessarily - there are loads of abandoned packages in the general registry, and I don’t think a name like CircuitComponentRounding would want to be used by someone else. Just make clear that the packages are abandoned in their README on GitHub, and continue developing and advertising ESeriesRounding.
I landed here because my issue could be resolved by deregister my package and registering it back again. But I would like to know what you all recommend.
I recently added a new package to Julia General Registry called FortranNamelistParser.jl .This package during development phase was called Fortran90Namelists.jl and is registered in a public registry called FuseRegistry where all ~25 other packages use it as dependency. We are in process of registering many of these packages with General Registry. For that, I tried Fortran90Namelists.jl to register but it had a name conflict (being too close to another package), so I changed the name to FortranNamelistParser.jl.
However, this has broken the environment for all 25 packages I mentioned above because I didn’t change the UUID when I changed the name of the package. In these environments where both General Registry and FuseRegistry is loaded, Pkg manager sees a conflict between two packages with different names but same UUID. I understand it is my mistake and I would like to fix it the best way possible.
Option 1) We change remove Fortran90Namelists.jl from FuseRegistry and all 25 packages that have it as dependency. They can shift to using FortranNamelistParser.jl then. But this will require a large coordinated effort and all packages might not be ready in their development stage to add a commit that changes Project.toml, so we want to avoid this option if possible.
Option 2) We know that nobody else is using FortranNamelistParser.jl right now. It’s a very new and esoteric package. Maybe no harm will be done if we can either change the UUID in General Registry or deregister the package and we’ll request adding it back again with new UUID. On General Registry’s end, it is just reverting one commit, so hopefully it won’t be too bad.
I would like your thoughts and suggestions on this issue.
Thanks
See How do I rename an existing registered package?.
TLDR: you don’t.
Just register it under the original name? The name similarity check is mostly a defense against typosquatting and can easily be overridden.
Wouldn’t that imply having two different names with the same UUID in the registry? I don’t think that’s possible.