cargo-dist icon indicating copy to clipboard operation
cargo-dist copied to clipboard

rename cargo-dist

Open Gankra opened this issue 1 year ago • 4 comments

cargo-dist has aspirations to be not-just-cargo, so it should... not be called cargo-dist. probably for rust users it will continue to be available as "cargo dist", but i don't want to tell anyone to use cargo-dist dist init when using it with not-cargo.

An Eternal Question / Meme here at axodotdev is: surely we should have a tool called "axo" that does all the things. As cargo-dist has increasingly become a bigger tent (especially if we do #842), it's increasingly looking like the fabled "axo". Or maybe it's "axo dist" (axo-dist).

The cargo subcommand trick is cute, but also a bit of a logistical nightmare for not-cargo to do, so if we do want to be invoked as "axo dist", that realistically means an axo monorepo with cargo-dist just being part of the workspace. If we do "axo dist" then maybe #842 is "axo release", instead of what may have presumably become "axo dist release"?

Gankra avatar Mar 08 '24 21:03 Gankra

  • [ ] email https://www.npmjs.com/package/dist
  • [ ] email https://crates.io/crates/dist

ashleygwilliams avatar Jun 20 '24 18:06 ashleygwilliams

Let's assume we're renaming to "dist":

  • add a bin-alias so that cargo-dist.exe and dist.exe both exist
  • teach the clap CLI to not require the "dist" dummy arg that cargo likes to pass
  • do we rename the actual package from "cargo-dist" to "dist"
    • if we do how hard do we try to enforce an alias in infra
    • oranda getting full history
    • axo releases reporting full history
    • axo updater handling full history
      • old updater doesn't know about new name
      • install receipt migration?

Gankra avatar Jun 20 '24 18:06 Gankra

potential approach (performed in precise sequence):

  1. release "dist" 1.0.0 (it can be a version less than that but let's call it that for now)
  2. release "cargo-dist" 0.X.0
    • this release tells axoupdater that the name of the app is now "dist"
    • and potentially has some axoupdater receipt migration logic

The idea here is that a user who tries to update "cargo-dist 0.14.0" or whatever old release that doesn't know about the rename will end up on "cargo-dist 0.X.0" because it knows how to do that. Then when they try to update "cargo-dist 0.X.0" they will get "dist 1.0.0" (or any version after that).

Gankra avatar Jun 20 '24 19:06 Gankra

The bulk of this work is in #1267

Gankra avatar Sep 30 '24 16:09 Gankra