Skip to content
Snippets Groups Projects
  • Oliver Tale-Yazdi's avatar
    Unify dependency aliases (#4633) · d2fd5364
    Oliver Tale-Yazdi authored
    
    Inherited workspace dependencies cannot be renamed by the crate using
    them (see [1](https://github.com/rust-lang/cargo/issues/12546),
    [2](https://stackoverflow.com/questions/76792343/can-inherited-dependencies-in-rust-be-aliased-in-the-cargo-toml-file)).
    Since we want to use inherited workspace dependencies everywhere, we
    first need to unify all aliases that we use for a dependency throughout
    the workspace.
    The umbrella crate is currently excluded from this procedure, since it
    should be able to export the crates by their original name without much
    hassle.
    
    For example: one crate may alias `parity-scale-codec` to `codec`, while
    another crate does not alias it at all. After this change, all crates
    have to use `codec` as name. The problematic combinations were:
    - conflicting aliases: most crates aliases as `A` but some use `B`.
    - missing alias: most of the crates alias a dep but some dont.
    - superfluous alias: most crates dont alias a dep but some do.
    
    The script that i used first determines whether most crates opted to
    alias a dependency or not. From that info it decides whether to use an
    alias or not. If it decided to use an alias, the most common one is used
    everywhere.
    
    To reproduce, i used
    [this](https://github.com/ggwpez/substrate-scripts/blob/master/uniform-crate-alias.py)
    python script in combination with
    [this](https://github.com/ggwpez/zepter/blob/38ad10585fe98a5a86c1d2369738bc763a77057b/renames.json)
    error output from Zepter.
    
    ---------
    
    Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
    Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    Unverified
    d2fd5364
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
mod.rs 86.76 KiB