-
Notifications
You must be signed in to change notification settings - Fork 11
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
Release post-mortem #274
Comments
I forgot to add the
I tried several configurations, but it seems like the "Require pull request", "Require status check" and "Require merge queues" block pushes completely, even force pushes. One reason could be, that Anyways, my non-elegant solution was to just remove those branch protection options completely, run the action and then add them back. Not sure how to solve this properly. Maybe we have to go through PRs and wait for them to be manually merged as well? 🤔 There are two more things I've noticed:
I still think this process went pretty well. It was cool to see how everything worked, once the tags were pushed. I've already updated the template repo, to use the new CI as well: rust-marker/lint-crate-template#5 This has been a fantastic release, in big part due to your help. ❤️ On a related note, would you like to join the rust-marker organization? This would come with no additional responsibilities, it might just make cooperation a bit easier. I've emailed you on your commit email, a couple of days ago. This is not meant to put any pressure on you, just thought I'd mention it here, in case you don't check that email anymore :) |
This problem is easily solvable with making 404 errors retriable. We could have an optional env variable for the installation script that configures the duration of retries. We'll set that to a much higher value on our CI that would give the CI job say 30 minutes of retries before it gives up and fails the CI.
That may be too complex to implement for little benefit. Why complex? Because this extends the path that the release needs to go through. We can't push the commits and tag them in the same CI job, and it would also increase the risk of release process failing in the middle and leaving the repo in a half-consistent state (actually, I would, for example, like to return a single I suggest disabling the merge queue requirement. If there is a way to disable it only for
I'd start with adding the smoke tests you mentioned into the PR CI. I believe they should be cheap enough for this. Remember that GitHub gives us loads of compute time for free, we may want to squeeze all of that unless such smoke tests would run on the critical path of merging the PR (i.e. be the longest job on CI). If the CI time becomes unacceptable the heavy jobs should be moved to a later stage, but I don't think we are close to any of multi-hour tests at this point yet, so let's enjoy this while we can.
You're right, I don't check that email usually. Thanks for the invite I don't see where to accept it. I'll try to dedicate some time to marker, but won't promise anything. I'm currently quite busy on work trying to deliver some features as an AWS partner for AWS re:Invent scheduled for the end of November, but hopefully not 24/7, so will see. |
That might be a good and simple solution :)
Yeah, I agree with that reasoning. There should be a setting to allow force pushes, my guess is, that I just didn't configure it correctly 🤔
Sure, we can test that 👍
Happy to hear that! It was just a message asking if you want to join, now I sent you the official invite. If you have some time for Marker, it would be highly appreciated, but no pressure. You already invested a lot! And that sounds like a significant project, congratulations :D |
It's sad that the PR description is lost. Especially in Clippy's changelog PRs, I always have a lot of fun with that :D. Regardless, I agree that it looks nice 👍 |
It looks like the https://github.com/rust-marker/marker/actions/runs/6888949297/job/18738942106 Oh well, I'll temporary disable the rules for the release again |
Just replace |
The crates.io push failed again, apparently I forgot to add our CI to One more error came up, regarding the retry count: https://github.com/rust-marker/marker/actions/runs/6889225423/job/18739805576 Would you mind taking a look at that? |
Yes, here is a quick fix #313 |
Ahh, it probably changed, when I unprotected the branch for the release, I'll fix it 👍 |
(Didn't mean to close it, wrong button) ... and the merges are fixed again |
This fixed the problem, driver build on ARM succeeded. Also, cargo-release failed to publish because all crates are already published. I suppose you published them manually, but if you fixed the crates.io permissions then that workflow would've published the missing crates during a retry. |
Thank you for the quick fix! :D I saw that it skipped the released crated, that's good to know for the next time. Though, the permissions should be right for the next time. |
Btw. I've noticed that the install scripts CI on master is failing after a release: https://github.com/rust-marker/marker/actions/runs/6984551418/job/19007538285 A simple rerun after the binaries are available fixes it. I guess we can also set the environment value here, that we use to make the action script retry multiple times 🤔 |
Oh and the crates.io step failed again. This time with a login error 🤔
https://github.com/rust-marker/marker/actions/runs/6984551469/job/19007537021 It's kind of weird, since the CI looks the same, for this and the previous command: marker/.github/workflows/release-on-tag.yml Lines 186 to 191 in 05727a8
I've now manually published |
Just running the release CI without any changes to the branch protection still fails: https://github.com/rust-marker/marker/actions/runs/6989462105/job/19018026259 Even after disabling the merge queue it still fails: https://github.com/rust-marker/marker/actions/runs/6989472085/job/19018045540 I've now changed the branch pattern, with the disabled merge queue, to basically disable all branch protection. That works and saves me from re-enabling all requirements. https://github.com/rust-marker/marker/actions/runs/6989476868 Just an idea, if we can't figure out, why pushing to master fails, we could maybe have the CI create a new branch, like |
Grrr, I messed up with the v0.5.0 release by setting the changelog headline to I'll repush the tags for the proper v0.4.3 release. That's not nice, but I think it's better than leaving it this broken. (I'm still a bit mad at myself) |
Yeah, there can be a check in the release scripts that inspects the version tag the "release" workflow was run with. It should fail if the version tag already exists and uses a different commit sha. It's not a big of a deal, for now you can just re-run the 0.4.3 release from its hotfix branch and it will re-build the binaries and update the tags. The release flow just needs some hardening for such mistakes |
Everything should be back in order now |
0.3.0 release was done, but there were a number of problems with it.
crates-io
publishing job failed. I wonder why is that. It managed to publish part of the crates, but choked onmarker_utils
complaining that the publishing identity doesn't have rights to publish that package. @xFrednet could you elaborate how that could happen and what measures were taken to remediate this?release
CI job couldn't push commits tomaster
due to the merge queue enabled on the repo. I didn't test this process with a merge queue enabled in the repo, and I see that it was fixed.git push --force-with-lease
didn't resolve the issue and should be removed from the CI template. I suppose you tweaked the repo settings somehow to unblock this?The text was updated successfully, but these errors were encountered: