-
Notifications
You must be signed in to change notification settings - Fork 456
Packaging jj for openSUSE: gpgsm
tests failing with 0.28.x
#6241
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
Comments
0.28.0 shouldn’t be packaged, as there were a few issues with it, the first of these test problems included, and a vulnerability fix coming in just after the release. I believe 0.28.1 should be out within the next few days. I’m not sure about the |
Thanks for the quick reply.
I was checking the releases, and 0.28.0 is a) a proper release (and not a tag only) and b) not marked as pre-release. Normally (i.e. in other projects) this means it is good to go. Maybe it should be marked as a pre-release or yanked, if it has issues?
|
There’s a warning about issues with the release and a new minor version being due in the release description, but it might not be loud enough. We only found some of the issues after the release was already cut, unfortunately. I suppose we could yank the |
Makes sense. Done. |
0.28 is not dangerous in any way (well, no more than previous releases); the main problem with it is that it might be excessively difficult and a waste of time to package it. Sorry about that! To expand on the story: there was some bad luck. Our CI didn't catch the issues with tests, and there was a cargo packaging issue that the CI also didn't catch. Also, (this is perhaps good luck?) the fix to GHSA-2frx-2596-x5r6 became available right after our release. Hopefully, 0.28.1 will be released shortly, making all of this moot. |
We should consider doing dry-run installs and publishes in CI, I think. It'd be cheap. Not sure how the latter would work with multiple crates. |
This would require raising the version of |
It would be nice if we can do the test-publishing to a local crate registry that's set up just for the duration of the test. I don't know how involved that is. |
IIRC the most recent release issue could actually be caught without bumping the version number, and just checking |
Just a quick note, 0.28.1 seems to build on at least some systems. openSUSE Leap 15.x and 16.0 are building fine, while Tumbleweed builds fail for x86_64/aarch64/etc. with three gpg-related errors:
(Will read the rest of the comments later, just wanted to report back) |
Just my 2 cents as a distribution packager: Releases with issues should be yanked or at least marked as pre-release. This way they are not shown as "latest" and on the repo's overview page. I am using RSS feeds to stay up to date with releases, other packagers use Github's notification mails. Both do not send out updates for releases that get "changed" (description, etc.). So it should be as obvious as possible to find out issues with a release. Have a nice weekend, everyone! Kind Regards, |
Hi johanneskastl, are you proposing a specific action here, or just remarking for future reference?
On GitHub:
(Unfortunately, I don't have any suggestions regarding the GPG tests. I've seen packagers in certain other situations simply mark tests as "skipped" when they weren't compatible with the environment, for various reasons.) |
I can think of a couple of things to consider, though they'd require effort and experimentation. One problem with our release workflow is such that we have to create a non-draft release for the CI to start building the binaries. I'm not 100% sure, but we might be able to mark that release as pre-release, and the CI might still work. We could change it to a full release after the push to crates.io succeeds and after the binaries all build successfully. Then, if something goes wrong, it could stay a pre-release forever. I think we should experiment with this. If we changed things so that we could trigger the build in some other way, the CI could create a draft release after building the binaries. Then, we could keep it invisible to our users until we're sure everything went OK. |
I was thinking about putting some time into more fully automating the release workflow, such that cutting a release would just be merging a release PR with no command‐running, and the merge queue would ensure the release is only cut after everything succeeds properly. That would solve this, remove unnecessary manual toil from the release instructions, and also allow us to reduce the attack surface of the crates.io owners (because GitHub Actions would be the only one ever publishing the crate). Is there interest? (This would also make it easier for non‐maintainer contributors to contribute to the release process, which might have helped with the 0.28.x situation where we’re having to cut two patch releases.) |
Sounds great if we can automate more of the releases. Thanks, @emilazy! |
I had some mild worries about this part; I think there's something to be said for keeping some secrets out of CI considering the amount of trouble it takes to keep the GitHub Actions secure. But it's a tradeoff; the CI already does generate the release binary and can edit the GitHub Releases, which are also quite security-sensitive. In any case, automating more of the release workflow would be nice. |
See #2483 for details on automating the whole flow. In short, I'd like to do it, but I am ever-so-slightly apprehensive about it like Ilya (mostly because after using Zizmor, I realized how fundamentally insecure GHA really is.) But it would let us cut releases quickly and easily, which does have value. |
(Johannes' work alter-ego writing) Hi everyone, thanks for giving the release process so much thought, highly appreciated. In the meantime I would really like to get the security fix into openSUSE, so could someone point me in the right direction regarding the "skipping" of the failing tests that @arxanas mentioned?
|
I got the security fix in by completely disabling the checks, as I did not find a valid way of only disabling the gpgme checks. Any hints would be highly appreciated... |
See https://nexte.st/docs/filtersets/ for test exclusion if you’re using the But ideally we should fix the tests, if you are indeed supplying it with |
What would the exact syntax be to "name the tests"? I tried something like
That would of course be optimal. Please reach out if I can be of assistance. |
OK, this syntax works (note the extra
Should we rename this issue to make it clear that this is about the gpgme checks failing? |
gpgsm
tests failing with 0.28.x
It would be probably a good idea to add openSUSE to the list of distributions providing binaries in https://jj-vcs.github.io/jj/latest/install-and-setup/. The command is |
Dear jj maintainers,
I am packaging jj for openSUSE and using it for my daily work.
Starting with 0.28.0 the tests start failing.
Any idea how to fix these?
Kind Regards,
Johannes
2nd Error
Summary
Full build log ist here:
https://build.opensuse.org/build/home:ojkastl_buildservice:Branch_devel_tools_scm/openSUSE_Tumbleweed/x86_64/jujutsu/_log
The tests are being called like this:
(The macro is defined here: https://github.com/openSUSE-Rust/cargo-packaging/blob/main/macros.cargo#L20)
The text was updated successfully, but these errors were encountered: