cargo-bins / cargo-quickinstall

pre-compiled binary packages for `cargo install`
Apache License 2.0
213 stars 9 forks source link

Remove support for old release schema #208

Closed NobodyXu closed 1 year ago

NobodyXu commented 1 year ago

It has been quite a long time since we roll out the new release schema.

I think we should now: - [ ] stop uploading in old release schema

@alsuren What's your thought on this? BTW, what is the command for retrieving the user agent hitting the stats API?

alsuren commented 1 year ago

On Fri, 7 Apr 2023, 04:06 Jiahao XU, @.***> wrote:

It has been quite a long time since we roll out the new release schema.

I think we should now:

  • stop uploading in old release schema
  • remove all releases using old schema to free up spaces

@alsuren https://github.com/alsuren What's your thought on this?

I don't think we need to worry about the space taken up by the duplicate releases. All of our releases put together are still probably smaller than a single release of a modern computer game. The --dry-run flag was put in so that you can copy-paste the curl | tar command into your ci pipeline if you want. We don't have any stats about that, but it's existence suggests that we should never delete released assets.

It might be time to stop the duplicate uploading though. Let's look at the stats and make a decision.

BTW, what is the command for retrieving the user agent hitting the stats

API?

The endpoint is /api/agents I think, and you can add day month and year parameters to the query (need to make queries day by day back in time and then sum them up yourself). I don't think I ever added a command in the quickinstall repo for this.

You might be better off adding a panel to this notebook with the appropriate group by and time window https://eu-central-1-1.aws.cloud2.influxdata.com/orgs/69235d4f38c3e042/notebooks/61ac6f8ba31b7000

I'm heading up to my parents for 4 days without a laptop (no access to bash and influx cloud UI sucks on mobile), so I'm only going to be useful for vague guidance.

When determining what proportion of people are using old be new clients, you will notice that there are a few insanely popular crates in the list. I think that these are from someone's ci pipeline. Probably best to exclude these from the numbers if you can. (Influxdb can probably do this, but the stats server endpoint definitely can't)

NobodyXu commented 1 year ago

I don't think we need to worry about the space taken up by the duplicate releases. All of our releases put together are still probably smaller than a single release of a modern computer game. The --dry-run flag was put in so that you can copy-paste the curl | tar command into your ci pipeline if you want. We don't have any stats about that, but it's existence suggests that we should never delete released assets.

Yeah, I might be overthinking the impact of these releases and it's better to keep backwards compatibility.

It might be time to stop the duplicate uploading though. Let's look at the stats and make a decision.

$ curl \
    --user-agent "cargo-quickinstall build pipeline (alsuren@gmail.com)" \
    --silent \
    --show-error \
    -XGET \
    "https://warehouse-clerk-tmp.vercel.app/api/agents" | jq
{
  "cargo-binstall/0.20.1": 64,
  "cargo-binstall/0.21.2": 4,
  "cargo-binstall/0.21.3": 2,
  "cargo-binstall/0.22.0": 279,
  "binstalk/0.4.1": 177,
  "cargo-binstall/0.17.0": 4,
  "cargo-binstall/0.18.1": 376,
  "cargo-binstall/0.19.3": 23,
  "cargo-quickinstall/0.2.9 client (alsuren@gmail.com)": 8
}

It seems that people already switches to latest cargo-quickinstall.

Though for cargo-binstall, many are still using old versions. It was not until v0.21.0 (which is yanked) that binstall support the new release schema.

binstalk/0.4.1 probably refers to an even older release where we have just split out binstalk_downloader as a separate workspace and hasn't even fixed the user agent.

But since binstall only does a best effort, perhaps we can go ahead and remove the duplicate uploading. Let's wait for a few days and remove that part.

NobodyXu commented 1 year ago

Update in 19 Apr 2023:

❯ curl \
    --user-agent "cargo-quickinstall build pipeline (alsuren@gmail.com)" \
    --silent \
    --show-error \
    -XGET \
    "https://warehouse-clerk-tmp.vercel.app/api/agents" | jq

{
  "cargo-quickinstall/0.2.9 client (alsuren@gmail.com)": 59,
  "binstalk/0.2.0": 2,
  "cargo-binstall/0.18.1": 66,
  "cargo-binstall/0.19.3": 12,
  "cargo-binstall/0.20.1": 20,
  "cargo-binstall/0.21.3": 2,
  "cargo-binstall/0.22.0": 876
}

Now I can see a trend that people is moving towards latest cargo-binstall and it seems that all quickinstall users are using the latest release, so I think it's time to stop uploading in old release schema.