What's cooking (2024/05 #01)
diff --git a/whats-cooking.txt b/whats-cooking.txt
index 1b9ad86..f1ccdff 100644
--- a/whats-cooking.txt
+++ b/whats-cooking.txt
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
-Subject: What's cooking in git.git (Apr 2024, #10; Mon, 29)
-X-master-at: 786a3e4b8d754d2b14b1208b98eeb0a554ef19a8
-X-next-at: b9fe23f5ca751025eab840f4e693bd4f1ac413cb
+Subject: What's cooking in git.git (May 2024, #01; Wed, 1)
+X-master-at: d4cc1ec35f3bcce816b69986ca41943f6ce21377
+X-next-at: 0667e3c05b4d9d32988313da24324a4cf9ecb0bf
 Bcc: lwn@lwn.net, gitster@pobox.com
 
-What's cooking in git.git (Apr 2024, #10; Mon, 29)
+What's cooking in git.git (May 2024, #01; Wed, 1)
 --------------------------------------------------
 
 Here are the topics that have been cooking in my tree.  Commits
@@ -17,7 +17,8 @@
 no activity (of course they can be resubmit when new interests
 arise).
 
-Git 2.45 has been tagged.
+The first batch of topics for the new cycle have graduated to the
+'master' branch, and the tip of 'next' has been rewound.
 
 Copies of the source code to Git live in many repositories, and the
 following is a list of the ones I push into or their mirrors.  Some
@@ -50,28 +51,165 @@
 --------------------------------------------------
 [Graduated to 'master']
 
-* rj/add-i-leak-fix (2024-04-22) 4 commits
-  (merged to 'next' on 2024-04-23 at b10e350a54)
- + add: plug a leak on interactive_add
- + add-patch: plug a leak handling the '/' command
- + add-interactive: plug a leak in get_untracked_files
- + apply: plug a leak in apply_data
+* aj/stash-staged-fix (2024-04-22) 1 commit
+  (merged to 'next' on 2024-04-23 at d49e9dade0)
+ + stash: fix "--staged" with binary files
 
- Leakfix.
- source: <69f86760-96ff-4c62-9649-4627652b7c19@gmail.com>
+ "git stash -S" did not handle binary files correctly, which has
+ been corrected.
+ source: <pull.1722.git.1713781694490.gitgitgadget@gmail.com>
 
 
-* rs/vsnprintf-failure-is-not-a-bug (2024-04-21) 1 commit
-  (merged to 'next' on 2024-04-23 at bf66ab6ea7)
- + don't report vsnprintf(3) error as bug
+* ds/format-patch-rfc-and-k (2024-04-19) 1 commit
+  (merged to 'next' on 2024-04-23 at b3b0c5507a)
+ + format-patch: ensure that --rfc and -k are mutually exclusive
 
- Demote a BUG() to an die() when the failure from vsnprintf() may
- not be due to a programmer error.
- source: <ea752a2b-9b74-4a59-a037-4782abf7161e@web.de>
+ The "-k" and "--rfc" options of "format-patch" will now error out
+ when used together, as one tells us not to add anything to the
+ title of the commit, and the other one tells us to add "RFC" in
+ addition to "PATCH".
+ source: <71d195c248879e7c46fac0e84c6b0a8aa90bd2c2.1713488563.git.dsimic@manjaro.org>
+
+
+* jc/format-patch-rfc-more (2024-04-23) 2 commits
+  (merged to 'next' on 2024-04-23 at 9f51487974)
+ + format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)]
+ + format-patch: allow --rfc to optionally take a value, like --rfc=WIP
+
+ The "--rfc" option of "git format-patch" learned to take an
+ optional string value to be used in place of "RFC" to tweak the
+ "[PATCH]" on the subject header.
+ source: <20240423175234.170434-1-gitster@pobox.com>
+
+
+* js/build-fuzz-more-often (2024-04-24) 1 commit
+  (merged to 'next' on 2024-04-25 at 28f65d1be2)
+ + fuzz: link fuzz programs with `make all` on Linux
+
+ In addition to building the objects needed, try to link the objects
+ that are used in fuzzer tests, to make sure at least they build
+ without bitrot, in Linux CI runs.
+ source: <ba9d24c6445de309226bf7c165499f1969807fef.1713982389.git.steadmon@google.com>
+
+
+* js/for-each-repo-keep-going (2024-04-24) 2 commits
+  (merged to 'next' on 2024-04-25 at d33253d919)
+ + maintenance: running maintenance should not stop on errors
+ + for-each-repo: optionally keep going on an error
+
+ A scheduled "git maintenance" job is expected to work on all
+ repositories it knows about, but it stopped at the first one that
+ errored out.  Now it keeps going.
+ source: <pull.1719.v3.git.1713975299.gitgitgadget@gmail.com>
+
+
+* la/doc-use-of-contacts-when-contributing (2024-04-18) 8 commits
+  (merged to 'next' on 2024-04-25 at 5102a45f63)
+ + SubmittingPatches: demonstrate using git-contacts with git-send-email
+ + SubmittingPatches: add heading for format-patch and send-email
+ + SubmittingPatches: dedupe discussion of security patches
+ + SubmittingPatches: discuss reviewers first
+ + SubmittingPatches: quote commands
+ + SubmittingPatches: mention GitGitGadget
+ + SubmittingPatches: clarify 'git-contacts' location
+ + MyFirstContribution: mention contrib/contacts/git-contacts
+
+ Advertise "git contacts", a tool for newcomers to find people to
+ ask review for their patches, a bit more in our developer
+ documentation.
+ source: <pull.1704.v6.git.1713477125.gitgitgadget@gmail.com>
+
+
+* pw/rebase-m-signoff-fix (2024-04-18) 6 commits
+  (merged to 'next' on 2024-04-23 at 66374c00e2)
+ + rebase -m: fix --signoff with conflicts
+ + sequencer: store commit message in private context
+ + sequencer: move current fixups to private context
+ + sequencer: start removing private fields from public API
+ + sequencer: always free "struct replay_opts"
+ + Merge branch 'pw/t3428-cleanup' into pw/rebase-m-signoff-fix
+
+ "git rebase --signoff" used to forget that it needs to add a
+ sign-off to the resulting commit when told to continue after a
+ conflict stops its operation.
+ source: <cover.1713445918.git.phillip.wood@dunelm.org.uk>
+
+
+* xx/disable-replace-when-building-midx (2024-04-17) 1 commit
+  (merged to 'next' on 2024-04-23 at 6c8f41740e)
+ + midx: disable replace objects
+
+ The procedure to build multi-pack-index got confused by the
+ replace-refs mechanism, which has been corrected by disabling the
+ latter.
+ source: <pull.1711.v2.git.1712554017808.gitgitgadget@gmail.com>
 
 --------------------------------------------------
 [New Topics]
 
+* bb/rgb-12-bit-colors (2024-04-30) 4 commits
+ - fixup! t/t4026-color: add test coverage for invalid RGB colors
+ - color: add support for 12-bit RGB colors
+ - t/t4026-color: add test coverage for invalid RGB colors
+ - t/t4026-color: remove an extra double quote character
+
+ Colors can now be specified with 12-bit format "#RGB" (in addition
+ to "#RRGGBB" that is already supported).
+
+ Will merge to 'next' after squashing the fix-up in???
+ source: <20240429164849.78509-1-dev+git@drbeat.li>
+
+
+* ds/scalar-reconfigure-all-fix (2024-04-30) 1 commit
+ - scalar: avoid segfault in reconfigure --all
+
+ Scalar fix.
+
+ Comments?
+ source: <pull.1724.git.1714496333004.gitgitgadget@gmail.com>
+
+
+* ps/pseudo-ref-terminology (2024-04-30) 10 commits
+ - refs: refuse to write pseudorefs
+ - ref-filter: properly distinuish pseudo and root refs
+ - refs: pseudorefs are no refs
+ - refs: root refs can be symbolic refs
+ - refs: classify HEAD as a root ref
+ - refs: refname `is_special_ref()` to `is_pseudo_ref()`
+ - refs: rename `is_pseudoref()` to `is_root_ref()`
+ - Documentation/glossary: define root refs as refs
+ - Documentation/glossary: clarify limitations of pseudorefs
+ - Documentation/glossary: redefine pseudorefs as special refs
+
+ Terminology to call various ref-like things are getting
+ straightened out.
+
+ Under discussion.
+ source: <cover.1714479928.git.ps@pks.im>
+
+
+* dk/zsh-git-repo-path-fix (2024-04-30) 1 commit
+ - completion: zsh: stop leaking local cache variable
+
+ Command line completion support for zsh (in contrib/) has been
+ updated to stop exposing internal state to end-user shell
+ interaction.
+
+ Will merge to 'next'.
+ source: <pull.1725.git.1714513995564.gitgitgadget@gmail.com>
+
+
+* rs/diff-parseopts-cleanup (2024-05-01) 1 commit
+ - diff-lib: stop calling diff_setup_done() in do_diff_cache()
+
+ Code clean-up to remove code that is now a noop.
+
+ Will merge to 'next'.
+ source: <0e96c5a3-7b4d-4c6b-875e-d80e3eb07a00@web.de>
+
+--------------------------------------------------
+[Cooking]
+
 * rh/complete-symbolic-ref (2024-04-25) 3 commits
  - completion: add docs on how to add subcommand completions
  - completion: improve docs for using __git_complete
@@ -98,18 +236,26 @@
  - vimdiff: make script and tests work with zsh
  - t4046: avoid continue in &&-chain for zsh
 
+ zsh can pretend to be a normal shell pretty well except for some
+ glitches that we tickle in some of our scripts. Work them around
+ so that "vimdiff" and our test suite works well enough with it.
+
+ Will merge to 'next'.
  source: <20240426221154.2194139-1-sandals@crustytoothpaste.net>
 
 
-* jc/rev-parse-fatal-doc (2024-04-28) 1 commit
- - rev-parse: document that most of the time you need to be in a repository
+* jc/rev-parse-fatal-doc (2024-05-01) 1 commit
+ - rev-parse: document how --is-* options work outside a repository
 
---------------------------------------------------
-[Cooking]
+ Doc update.
 
-* ps/undecided-is-not-necessarily-sha1 (2024-04-29) 13 commits
- - SQUASH???
+ Comments?
+ source: <xmqqplu54fbg.fsf@gitster.g>
+
+
+* ps/undecided-is-not-necessarily-sha1 (2024-04-30) 13 commits
  - repository: stop setting SHA1 as the default object hash
+ - oss-fuzz/commit-graph: set up hash algorithm
  - builtin/shortlog: don't set up revisions without repo
  - builtin/diff: explicitly set hash algo when there is no repo
  - builtin/bundle: abort "verify" early when there is no repository
@@ -127,59 +273,21 @@
  this will smoke out codepaths that rely on such an unwarranted
  assumptions.
 
- fuzz-smoke-test job at GitHub Actions CI breaks with this in 'seen'
- cf. <xmqqwmoi31aw.fsf@gitster.g>
- source: <cover.1713848619.git.ps@pks.im>
+ Comments?
+ source: <cover.1714371422.git.ps@pks.im>
 
 
-* aj/stash-staged-fix (2024-04-22) 1 commit
-  (merged to 'next' on 2024-04-23 at d49e9dade0)
- + stash: fix "--staged" with binary files
-
- "git stash -S" did not handle binary files correctly, which has
- been corrected.
-
- Will cook in 'next'.
- source: <pull.1722.git.1713781694490.gitgitgadget@gmail.com>
-
-
-* rj/add-p-typo-reaction (2024-04-26) 1 commit
+* rj/add-p-typo-reaction (2024-04-30) 2 commits
  - add-patch: response to unknown command
+ - add-patch: do not show UI messages on stderr
 
  When the user responds to a prompt given by "git add -p" with an
  unsupported command, list of available commands were given, which
  was too much if the user knew what they wanted to type but merely
  made a typo.  Now the user gets a much shorter error message.
 
- Expecting a reroll.
- cf. <305296f1-975b-41b9-968c-3984d8056196@gmail.com>
- source: <b209a2b8-f98f-4f14-a687-9022d30968dd@gmail.com>
-
-
-* ds/format-patch-rfc-and-k (2024-04-19) 1 commit
-  (merged to 'next' on 2024-04-23 at b3b0c5507a)
- + format-patch: ensure that --rfc and -k are mutually exclusive
-
- The "-k" and "--rfc" options of "format-patch" will now error out
- when used together, as one tells us not to add anything to the
- title of the commit, and the other one tells us to add "RFC" in
- addition to "PATCH".
-
- Will cook in 'next'.
- source: <71d195c248879e7c46fac0e84c6b0a8aa90bd2c2.1713488563.git.dsimic@manjaro.org>
-
-
-* jc/format-patch-rfc-more (2024-04-23) 2 commits
-  (merged to 'next' on 2024-04-23 at 9f51487974)
- + format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)]
- + format-patch: allow --rfc to optionally take a value, like --rfc=WIP
-
- The "--rfc" option of "git format-patch" learned to take an
- optional string value to be used in place of "RFC" to tweak the
- "[PATCH]" on the subject header.
-
- Will cook in 'next'.
- source: <20240423175234.170434-1-gitster@pobox.com>
+ Will merge to 'next'.
+ source: <952a9514-3cf1-4601-8f0d-db57adc750c3@gmail.com>
 
 
 * ps/the-index-is-no-more (2024-04-18) 6 commits
@@ -194,52 +302,10 @@
  by always instantiating "the_repository" and replacing references
  to "the_index"  with references to its .index member.
 
- Will merge to 'next'?
+ Will merge to 'next'.
  source: <cover.1713442061.git.ps@pks.im>
 
 
-* pw/rebase-m-signoff-fix (2024-04-18) 6 commits
-  (merged to 'next' on 2024-04-23 at 66374c00e2)
- + rebase -m: fix --signoff with conflicts
- + sequencer: store commit message in private context
- + sequencer: move current fixups to private context
- + sequencer: start removing private fields from public API
- + sequencer: always free "struct replay_opts"
- + Merge branch 'pw/t3428-cleanup' into pw/rebase-m-signoff-fix
-
- "git rebase --signoff" used to forget that it needs to add a
- sign-off to the resulting commit when told to continue after a
- conflict stops its operation.
-
- Will cook in 'next'.
- source: <cover.1713445918.git.phillip.wood@dunelm.org.uk>
-
-
-* js/for-each-repo-keep-going (2024-04-24) 2 commits
-  (merged to 'next' on 2024-04-25 at d33253d919)
- + maintenance: running maintenance should not stop on errors
- + for-each-repo: optionally keep going on an error
-
- A scheduled "git maintenance" job is expected to work on all
- repositories it knows about, but it stopped at the first one that
- errored out.  Now it keeps going.
-
- Will cook in 'next'.
- source: <pull.1719.v3.git.1713975299.gitgitgadget@gmail.com>
-
-
-* xx/disable-replace-when-building-midx (2024-04-17) 1 commit
-  (merged to 'next' on 2024-04-23 at 6c8f41740e)
- + midx: disable replace objects
-
- The procedure to build multi-pack-index got confused by the
- replace-refs mechanism, which has been corrected by disabling the
- latter.
-
- Will cook in 'next'.
- source: <pull.1711.v2.git.1712554017808.gitgitgadget@gmail.com>
-
-
 * kn/update-ref-symrefs (2024-04-26) 7 commits
  - ref: support symrefs in 'reference-transaction' hook
  - update-ref: add support for 'symref-update' command
@@ -256,25 +322,6 @@
  source: <20240426152449.228860-1-knayak@gitlab.com>
 
 
-* la/doc-use-of-contacts-when-contributing (2024-04-18) 8 commits
-  (merged to 'next' on 2024-04-25 at 5102a45f63)
- + SubmittingPatches: demonstrate using git-contacts with git-send-email
- + SubmittingPatches: add heading for format-patch and send-email
- + SubmittingPatches: dedupe discussion of security patches
- + SubmittingPatches: discuss reviewers first
- + SubmittingPatches: quote commands
- + SubmittingPatches: mention GitGitGadget
- + SubmittingPatches: clarify 'git-contacts' location
- + MyFirstContribution: mention contrib/contacts/git-contacts
-
- Advertise "git contacts", a tool for newcomers to find people to
- ask review for their patches, a bit more in our developer
- documentation.
-
- Will cook in 'next'.
- source: <pull.1704.v6.git.1713477125.gitgitgadget@gmail.com>
-
-
 * ps/ci-test-with-jgit (2024-04-12) 13 commits
  - t0612: add tests to exercise Git/JGit reftable compatibility
  - t0610: fix non-portable variable assignment
@@ -311,22 +358,23 @@
 
 
 * ps/reftable-write-optim (2024-04-08) 11 commits
- - reftable/block: reuse compressed array
- - reftable/block: reuse zstream when writing log blocks
- - reftable/writer: reset `last_key` instead of releasing it
- - reftable/writer: unify releasing memory
- - reftable/writer: refactorings for `writer_flush_nonempty_block()`
- - reftable/writer: refactorings for `writer_add_record()`
- - refs/reftable: don't recompute committer ident
- - reftable: remove name checks
- - refs/reftable: skip duplicate name checks
- - refs/reftable: perform explicit D/F check when writing symrefs
- - refs/reftable: fix D/F conflict error message on ref copy
+  (merged to 'next' on 2024-04-30 at 0667e3c05b)
+ + reftable/block: reuse compressed array
+ + reftable/block: reuse zstream when writing log blocks
+ + reftable/writer: reset `last_key` instead of releasing it
+ + reftable/writer: unify releasing memory
+ + reftable/writer: refactorings for `writer_flush_nonempty_block()`
+ + reftable/writer: refactorings for `writer_add_record()`
+ + refs/reftable: don't recompute committer ident
+ + reftable: remove name checks
+ + refs/reftable: skip duplicate name checks
+ + refs/reftable: perform explicit D/F check when writing symrefs
+ + refs/reftable: fix D/F conflict error message on ref copy
 
  Code to write out reftable has seen some optimization and
  simplification.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  source: <cover.1712578837.git.ps@pks.im>
 
 
@@ -337,7 +385,7 @@
  "git send-email" learned to separate its reports on each message it
  sends out with an extra blank line in between.
 
- Will merge to 'next'?
+ Comments?
  source: <cover.1712732383.git.dsimic@manjaro.org>
 
 
@@ -376,11 +424,11 @@
  been enhanced to support authentication schemes different from
  username & password pair, like Bearer and NTLM.
 
- Comments?
+ Will merge to 'next'.
  source: <20240417000240.3611948-1-sandals@crustytoothpaste.net>
 
 
-* tb/pseudo-merge-reachability-bitmap (2024-03-20) 24 commits
+* tb/pseudo-merge-reachability-bitmap (2024-04-30) 23 commits
  - t/perf: implement performace tests for pseudo-merge bitmaps
  - pseudo-merge: implement support for finding existing merges
  - ewah: `bitmap_equals_ewah()`
@@ -403,7 +451,6 @@
  - pack-bitmap: move some initialization to `bitmap_writer_init()`
  - pack-bitmap: drop unused `max_bitmaps` parameter
  - ewah: implement `ewah_bitmap_is_subset()`
- - config: repo_config_get_expiry()
  - Documentation/technical: describe pseudo-merge bitmaps format
 
  The pack-bitmap machinery learned to write pseudo-merge bitmaps,
@@ -411,9 +458,8 @@
  reference tips. This enhances bitmap coverage, and thus,
  performance, for repositories with many references using bitmaps.
 
- Expecting a reroll.
- cf. <ZfyxCLpjbaScIdWA@nand.local>
- source: <cover.1710972293.git.me@ttaylorr.com>
+ Needs review.
+ source: <cover.1714422410.git.me@ttaylorr.com>
 
 
 * la/hide-trailer-info (2024-04-26) 11 commits
@@ -427,12 +473,12 @@
  - trailer: teach iterator about non-trailer lines
  - trailer: add unit tests for trailer iterator
  - Makefile: sort UNIT_TEST_PROGRAMS
- + Merge branch 'la/format-trailer-info' into la/hide-trailer-info
+ - Merge branch 'la/format-trailer-info' into la/hide-trailer-info
 
  The trailer API has been reshuffled a bit.
 
- Will merge to 'next'?
- cf. <CAP8UFD0ZHpo7US6dx_WK6F_1JYsBdHunBaW86qM1CzOKaPC-aA@mail.gmail.com>
+ Expecting a hopefully final reroll.
+ cf. <CAMo6p=GRcmy6NDGRskuNrauMYTkAgk_p_0TJJTPC2=axVrWuvQ@mail.gmail.com>
  source: <pull.1696.v3.git.1714091170.gitgitgadget@gmail.com>
 
 
@@ -459,18 +505,6 @@
  source: <20240319183722.211300-1-ignacio@iencinas.com>
 
 
-* js/build-fuzz-more-often (2024-04-24) 1 commit
-  (merged to 'next' on 2024-04-25 at 28f65d1be2)
- + fuzz: link fuzz programs with `make all` on Linux
-
- In addition to building the objects needed, try to link the objects
- that are used in fuzzer tests, to make sure at least they build
- without bitrot, in Linux CI runs.
-
- Will cook in 'next'.
- source: <ba9d24c6445de309226bf7c165499f1969807fef.1713982389.git.steadmon@google.com>
-
-
 * cw/git-std-lib (2024-02-28) 4 commits
  - SQUASH??? get rid of apparent debugging crufts
  - test-stdlib: show that git-std-lib is independent
@@ -483,7 +517,7 @@
  source: <cover.1696021277.git.jonathantanmy@google.com>
 
 
-* js/cmake-with-test-tool (2024-04-24) 2 commits
+* js/cmake-with-test-tool (2024-04-30) 2 commits
  - cmake: let `test-tool` run the unit tests, too
  - Merge branch 'js/unit-test-suite-runner' into js/cmake-with-test-tool
  (this branch uses js/unit-test-suite-runner.)
@@ -491,11 +525,12 @@
  "test-tool" is now built in CMake build to also run the unit tests.
 
  May want to roll it into the base topic.
+
  Will merge to 'next' together with the base topic.
  source: <pull.1666.git.1708038924522.gitgitgadget@gmail.com>
 
 
-* js/unit-test-suite-runner (2024-04-24) 8 commits
+* js/unit-test-suite-runner (2024-04-30) 8 commits
  - ci: use test-tool as unit test runner on Windows
  - t/Makefile: run unit tests alongside shell tests
  - unit tests: add rule for running with test-tool
@@ -509,8 +544,8 @@
  The "test-tool" has been taught to run testsuite tests in parallel,
  bypassing the need to use the "prove" tool.
 
- Needs review.
- source: <cover.1713985716.git.steadmon@google.com>
+ Will merge to 'next'?
+ source: <cover.1714506612.git.steadmon@google.com>
 
 
 * bk/complete-dirname-for-am-and-format-patch (2024-01-12) 1 commit