-
Notifications
You must be signed in to change notification settings - Fork 36
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
[long-running] Changing the storage contract requires 2x publishes to crates.io #116
Comments
Some ideas to investigate
|
An example of the publish CI pipeline failing for this reason |
Does the PR close the issue? |
Unfortunately not, that PR is an example of the problem. |
OK so a little debugging, it works for
but the url you put still has the |
Ah found it searching the
yields a pointer to
|
@eozturk1 good catch on finding the related issue! It indeed is the same problem referenced there. |
@slawlor, great find! Since we have |
@eozturk1 Awesome! It'll need to be in the publish workflow: |
No issues in the latest publish operation. Closing! :) |
The problem
Due to the change in the storage contract, there are delays in the time between publishing
akd
to crates.io and the new version being available to cargo to buildakd_mysql
.This happens because when breaking the contract between
akd
andakd_mysql
,akd_mysql
will rely on the latest version ofakd
which doesn't exist in crates.io until it's published. For example, if both crates are at v1.0.0, and we change the contract, and publish v2.0.0,akd_mysql
depends onakd
v2.0.0 which was _just_published. There appears to be a race in crates.io that the package isn't instantly available after publish, so thecargo publish --dry-run
balks sayingakd
v2.0.0 can't be found but since we don't have a multi-publish,akd
v2.0.0 is published and cannot be reverted. Therefore we're in a "broken" state where half of the crates are published.Current workaround
The current workaround is we need to publish
akd
with the update,akd_mysql
will fail, and we version bump both and publish again. The 2nd time crates.io has updated and the index is updated,akd_mysql
can build and publish.See PRs tagged with
publish_race
to identify instances where this is needed.Reason to fix
This is ugly and just clutters crates.io with partial versions of
akd
with sometimes matchingakd_mysql
crates.The text was updated successfully, but these errors were encountered: