-
Notifications
You must be signed in to change notification settings - Fork 44
Tracking issue for custom registry support #168
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
Comments
https://github.com/EmbarkStudios/tame-index it looks like this crate already addresses a bunch of my concerns, though I'd have to look further to see if it solves all of them. Any clue why there are two competing implementations of the same library, whether one is clearly better, and which one should be used in |
The one used by |
@Byron that much is clear from the readme in This behaviour comes around a lot in the crates ecosystem, and the forker tends to forget how taxing it is on the community to propose an "improved alternative" when the status-quo is also still maintained. Contributing fixes and features directly to the crate that everyone is already using naturally trickles down into consumer crates when releases happen. But instead Since you @Byron seem to be the only maintainer of crates.io indicates that both crates get almost equal downloads lately, so the community is clearly undecided: And it seems that you have been the one adding |
I have no information about that. My guess is that they had to move fast, which is easiest with a fork.
I am just an external maintainer and don't have control over the repository. If I'd quit, somebody else might take over as it's still quite a widely used crate. Unifying both across the ecosystem is probably out-of-scope for this endeavour, and independent of what
It's a great crate and there is nothing wrong using it. If it provides a better starting position to get the features needed for |
Which is a really poor excuse in my opinion, when a soft-fork would (temporarily) suffice. Especially considering what you say after:
Which means it has been a waste of time for everyone involved in the end, if it both crates end up in some stale half-(un)maintained state. But alas, I digress, that's all for expressing my general dissatisfaction in the crates ecosystem "lately". This crate is just one of many, many examples.
Not something I'd be interested in burning my hands on, though it does make it harder to pick one over the other. https://crates.io/crates/cargo-smart-release doesn't seem like it will make a dent in the downloads count for I'll queue this up on "my list" to see if |
For reference, I've started checking how much of the above points have already been addressed in |
I find myself stuck in the rabbit hole of publishing many crates to a custom registry using
cargo-smart-release
, and now being a couple crates deep to improve the tooling to make this possible, while also stumbling upon glaring issues in the codebase itself. Let me summarize them here, so that they are not forgotten about.Config support
.cargo/config.toml
files with precedence rules before parsing the final result (https://doc.rust-lang.org/cargo/reference/config.html);replace-with
registry to exist, instead of assuming it's unused if[source.your-replacement-registry]
doesn't exist;replace-with
keys in the[registries]
table as well (https://doc.rust-lang.org/cargo/reference/source-replacement.html);Wrapper around sparse or git registry
Following a user URL, user registry name, and eventually a replacement in one of the
.cargo/config.toml
files, thesparse+
prefix ultimately gets a final say which of the two backends are used. A downstream crate likecargo-smart-release
only cares about refreshing and reading information for a specific crate, regardless of which backend is used.#167 is a sort of step-up to disallow accidentally using a
sparse+
URL inGitIndex
, similar to howSparseIndex
requires the URL to start withsparse+http
.Maybe both implementations should also validate, if there already is a folder in
.cargo/registry/index/{registry}
, that it matches the sparse-ness of the URL?Constructors with registry name
Since this crate already has support for reading
.cargo/config.toml
, and downstream crates likecargo-smart-release
generally only know the registry name (from--registry <some name>
orCargo.toml
's[pacakge] publish = ["custom name"]
, or even.cargo/config.toml
'sdefault
registry), it'd be great to extend thefrom_url()
constructors with afrom_registry_name()
that looks up the URL(s) automatically.Authentication support for custom registries?
This piggy-backs the above, in my brief searching I haven't found any parsing of
token
andcredential-provider
in the[registries.custom-registry]
table.The text was updated successfully, but these errors were encountered: