Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package jujutsu for openSUSE:Factory checked in at 2026-09-21 12:23:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jujutsu (Old) and /work/SRC/openSUSE:Factory/.jujutsu.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jujutsu" Mon Sep 21 12:23:20 2026 rev:39 rq:1379348 version:0.45.1 Changes: -------- --- /work/SRC/openSUSE:Factory/jujutsu/jujutsu.changes 2026-08-06 16:41:11.011950458 +0200 +++ /work/SRC/openSUSE:Factory/.jujutsu.new.383539/jujutsu.changes 2026-09-21 12:23:38.422347655 +0200 @@ -1,0 +2,36 @@ +Sun Sep 13 08:20:33 UTC 2026 - Martin Pluskal <[email protected]> + +- update to 0.45.1 (includes 0.45.0): + * Release highlights + - New jj converge command auto-resolves divergent commits, + combining them with heuristics or prompting when unclear. + - 0.45.1 fixes jj-core crate publishing and restores + building without Cargo.lock after the bisync yank. + * Breaking changes + - jj config edit/set/unset --user now targets the first + loaded user config file instead of prompting; use + --file <PATH> to target a specific file. + - jj git import in non-colocated repos no longer imports + from a detached Git HEAD. + * New features + - jj config edit/set/unset gained --file <PATH>. + - Git HEAD state is now tracked per worktree. + - jj bisect reports ambiguous first-bad revision on skips. + * Fixed bugs + - immutable_heads() now includes untracked_remote_tags(). + - jj arrange keeps the selection visible on tall stacks. + - Default pager flags gained -K, Ctrl-C exits less cleanly. + - Conflict side ending in CR no longer loses that byte. + - workspace update-stale resets Git HEAD correctly. + - jj run stops after a nonzero exit code. + - Fixed jj log crash on hidden revisions and stale + cache-tree duplicateEntries after external git add. + - SHA-256 repo signatures stored under gpgsig-sha256 header. +- add fix-converge-duplicate-snapshot.patch (upstream post-0.45.1): + allow duplicate inline snapshots so the parameterized converge + test passes under plain cargo test. +- add fix-gpgsm-unknown-key.patch (upstream post-0.45.1): accept + the serial/issuer GnuPG 2.5.22 reports for unknown X.509 keys. +- spec cleanup: drop obsolete Group tags, sort BuildRequires. + +------------------------------------------------------------------- Old: ---- jujutsu-0.44.0.obscpio New: ---- fix-converge-duplicate-snapshot.patch fix-gpgsm-unknown-key.patch jujutsu-0.45.1.obscpio ----------(New B)---------- New: - SHA-256 repo signatures stored under gpgsig-sha256 header. - add fix-converge-duplicate-snapshot.patch (upstream post-0.45.1): allow duplicate inline snapshots so the parameterized converge New: test passes under plain cargo test. - add fix-gpgsm-unknown-key.patch (upstream post-0.45.1): accept the serial/issuer GnuPG 2.5.22 reports for unknown X.509 keys. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jujutsu.spec ++++++ --- /var/tmp/diff_new_pack.hbU47X/_old 2026-09-21 12:23:40.561437057 +0200 +++ /var/tmp/diff_new_pack.hbU47X/_new 2026-09-21 12:23:40.562437099 +0200 @@ -17,26 +17,28 @@ %define binary_name jj - Name: jujutsu -Version: 0.44.0 +Version: 0.45.1 Release: 0 Summary: Git-compatible DVCS that is both simple and powerful License: MIT URL: https://github.com/jj-vcs/jj Source0: %{name}-%{version}.tar.gz Source1: vendor.tar.zst +# Upstream post-0.45.1 test fixes: allow duplicate inline snapshots +# under plain cargo test; accept GnuPG 2.5.22 NO_PUBKEY metadata. +Patch0: fix-converge-duplicate-snapshot.patch +Patch1: fix-gpgsm-unknown-key.patch +BuildRequires: bash-completion BuildRequires: cargo >= 1.89 BuildRequires: cargo-packaging +BuildRequires: fish +# git-core provides the git binary used by tests, not perl modules BuildRequires: git-core BuildRequires: gnupg BuildRequires: gpgme BuildRequires: openssh-common -# dependencies for completion subpackages -BuildRequires: bash-completion -BuildRequires: fish BuildRequires: zsh - # serde_bser fails to compile on s390x # error[E0599]: no method named `put_f64_be` found for struct `Vec<u8>` in the current scope # @@ -71,7 +73,6 @@ %package -n %{name}-bash-completion Summary: Bash Completion for %{name} -Group: System/Shells Requires: %{name} = %{version} Requires: bash-completion Supplements: (%{name} and bash-completion) @@ -82,7 +83,6 @@ %package -n %{name}-fish-completion Summary: Fish Completion for %{name} -Group: System/Shells Requires: %{name} = %{version} Supplements: (%{name} and fish) BuildArch: noarch @@ -92,7 +92,6 @@ %package -n %{name}-zsh-completion Summary: Zsh Completion for %{name} -Group: System/Shells Requires: %{name} = %{version} Supplements: (%{name} and zsh) BuildArch: noarch ++++++ _service ++++++ --- /var/tmp/diff_new_pack.hbU47X/_old 2026-09-21 12:23:40.603438812 +0200 +++ /var/tmp/diff_new_pack.hbU47X/_new 2026-09-21 12:23:40.606438937 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/jj-vcs/jj.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">refs/tags/v0.44.0</param> + <param name="revision">refs/tags/v0.45.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">disable</param> ++++++ fix-converge-duplicate-snapshot.patch ++++++ From: Martin von Zweigbergk <[email protected]> Subject: cli: allow duplicate snapshot assertions in parameterized converge test References: https://github.com/jj-vcs/jj/commit/6936a3bd6d7d56e65a500966606980335c668d55 The two `test_case` parameterizations of `test_converge_description_changed_inconsistently()` share the setup assertions, so the same inline snapshot assertion is executed twice when both tests run in the same process. cargo-nextest runs each test in its own process, so this only fails under plain `cargo test`, where insta rejects repeated inline assertions unless they are wrapped in `insta::allow_duplicates!`. diff --git a/cli/tests/test_converge_command.rs b/cli/tests/test_converge_command.rs index 3e2268fef..f413d77e5 100644 --- a/cli/tests/test_converge_command.rs +++ b/cli/tests/test_converge_command.rs @@ -890,40 +890,46 @@ fn test_converge_description_changed_inconsistently(invoke_text_editor: bool) -> create_commit_with_files(&work_dir, "d", &["b1"], &[("file3", "3")]); // Test the setup (commit B is duplicated) - insta::assert_snapshot!(get_long_log_output(&work_dir), @r" - @ d yostqsxw a906f67a - description: d - ○ b1 zsuskuln/0 0ec69b7a - description: bar - │ ○ b2 zsuskuln/1 08117b18 - description: foo - ├─╯ - ○ a rlvkpnrz e9a731d9 - description: a - ◆ zzzzzzzz 00000000 - [EOF] - "); + insta::allow_duplicates! { + insta::assert_snapshot!(get_long_log_output(&work_dir), @r" + @ d yostqsxw a906f67a - description: d + ○ b1 zsuskuln/0 0ec69b7a - description: bar + │ ○ b2 zsuskuln/1 08117b18 - description: foo + ├─╯ + ○ a rlvkpnrz e9a731d9 - description: a + ◆ zzzzzzzz 00000000 + [EOF] + "); + } - insta::assert_snapshot!(get_evolog(&work_dir, "b2"), @r" - ○ zsuskuln/1 08117b18 (divergent) foo - ○ zsuskuln/2 59a77004 (hidden) b2 - ○ zsuskuln/3 b2852eb2 (hidden) (empty) b2 - [EOF] - "); + insta::allow_duplicates! { + insta::assert_snapshot!(get_evolog(&work_dir, "b2"), @r" + ○ zsuskuln/1 08117b18 (divergent) foo + ○ zsuskuln/2 59a77004 (hidden) b2 + ○ zsuskuln/3 b2852eb2 (hidden) (empty) b2 + [EOF] + "); + } // First check behavior in non-interactive mode. let output = work_dir.run_jj_with(|cmd| force_interactive(cmd).args(["converge", "--no-interactive"])); - insta::assert_snapshot!(output, @r" - ------- stderr ------- - Found 1 divergent change(s) in the specified revset: - - Change: zsuskulnrvyr with 2 commits: - zsuskuln/0 0ec69b7a b1 | (divergent) bar - zsuskuln/1 08117b18 b2 | (divergent) foo + insta::allow_duplicates! { + insta::assert_snapshot!(output, @r" + ------- stderr ------- + Found 1 divergent change(s) in the specified revset: + - Change: zsuskulnrvyr with 2 commits: + zsuskuln/0 0ec69b7a b1 | (divergent) bar + zsuskuln/1 08117b18 b2 | (divergent) foo - Attempting to converge change zsuskulnrvyr... + Attempting to converge change zsuskulnrvyr... - Could not determine which description to use. - Error: Could not converge change - [EOF] - [exit status: 1] - "); + Could not determine which description to use. + Error: Could not converge change + [EOF] + [exit status: 1] + "); + } // Now check behavior in interactive mode. if invoke_text_editor { ++++++ fix-gpgsm-unknown-key.patch ++++++ From: pederbe <[email protected]> Subject: gpg: accept GnuPG 2.5.22 metadata in unknown-key tests References: https://github.com/jj-vcs/jj/commit/c5ba4ea0b011fbc8d532d74b6cf8493911618cf5 GnuPG 2.5.22 reports the serial number and issuer of a missing X.509 certificate in NO_PUBKEY. The parser already preserves this metadata, but gpgsm_unknown_key expects no key. Accept either the older absent key or the exact serial/issuer for the test fixture while still requiring Unknown status and no display name. diff --git a/lib/src/gpg_signing.rs b/lib/src/gpg_signing.rs index 24ecca5d7..1c2968bb8 100644 --- a/lib/src/gpg_signing.rs +++ b/lib/src/gpg_signing.rs @@ -405,6 +405,24 @@ mod tests { ); } + #[test] + fn gpgsm_verify_unknown_signature_with_issuer() { + assert_eq!( + parse_gpg_verify_output( + b"[GNUPG:] NO_PUBKEY #7C6DDB3D1978999B/CN=JJ,O=X509+Signing+Test\n\ + [GNUPG:] ERROR verify.findkey 50331657\n", + true, + ) + .unwrap() + .unwrap(), + Verification::new( + SigStatus::Unknown, + Some("#7C6DDB3D1978999B/CN=JJ,O=X509+Signing+Test".into()), + None, + ), + ); + } + #[test] fn gpgsm_verify_invalid_signature_format() { assert_matches!( diff --git a/lib/tests/test_gpg.rs b/lib/tests/test_gpg.rs index 7238a8f10..a28681567 100644 --- a/lib/tests/test_gpg.rs +++ b/lib/tests/test_gpg.rs @@ -440,20 +440,16 @@ fn gpgsm_unknown_key() -> TestResult { xiNbRmGtEonl9d8JS/IAAAAAAAA= -----END SIGNED MESSAGE----- "; - assert_debug_snapshot!(backend.verify(b"hello world", signature)?, @r#" - Verification { - status: Unknown, - key: None, - display: None, + for data in ["hello world", "so bad"] { + let check = backend.verify(data.as_bytes(), signature)?; + assert_eq!(check.status, SigStatus::Unknown); + assert_eq!(check.display, None); + // GnuPG 2.5.22 added the missing certificate's serial number and issuer. + assert_matches!( + check.key.as_deref(), + None | Some("#7C6DDB3D1978999B/CN=JJ,O=X509+Signing+Test") + ); } - "#); - assert_debug_snapshot!(backend.verify(b"so bad", signature)?, @r#" - Verification { - status: Unknown, - key: None, - display: None, - } - "#); Ok(()) } ++++++ jujutsu-0.44.0.obscpio -> jujutsu-0.45.1.obscpio ++++++ ++++ 53036 lines of diff (skipped) ++++++ jujutsu.obsinfo ++++++ --- /var/tmp/diff_new_pack.hbU47X/_old 2026-09-21 12:23:41.335469407 +0200 +++ /var/tmp/diff_new_pack.hbU47X/_new 2026-09-21 12:23:41.337469490 +0200 @@ -1,5 +1,5 @@ name: jujutsu -version: 0.44.0 -mtime: 1785975249 -commit: af45d57de7163cc5f17f3df178a31577e4951ea3 +version: 0.45.1 +mtime: 1788450349 +commit: 7c41cdeb16b6b321c64e789a966b6adf723816a5 ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/jujutsu/vendor.tar.zst /work/SRC/openSUSE:Factory/.jujutsu.new.383539/vendor.tar.zst differ: char 7, line 1
