Iāve had to step away from Rust things (actually almost all things) lately, and I canāt finish up the RFC. @lfairy, as you already asked about this, I would appreciate it if youād see it to the end.
My advice, given the rapidly approaching beta release is to go with this:
-
Immediately deprecate hyphens if feasible, given where the check is in the compiler. If not, forbid. This should preferably only apply to extern crates, but this can be changed backward-compatibly later for binaries.
-
Add renaming support to Cargo. Full dependencies can use a link-as setting. Short dependencies could be extended to use something like: rustc_serialize = "rustc-serialize @ ^0.1"; a word followed by @ is the renaming part.
-
Adjust crates.io to show this pre-renamed syntax for existing crates with hyphens.
The above should be done preferably before beta, definitely before 1.0. Other issues, like whether or not to block new hyphenated crates, etc. can be dealt with later in a backward-compatible fashion.
This also will hopefully cause a minimum of disruption: it requires only a minor front-end change to crates.io and no changes to the backend (hopefully).
Again, apologies for dropping the ball on this.