* What's cooking in git.git (Mar 2025, #04; Fri, 14)
@ 2025-03-14 17:36 Junio C Hamano
2025-03-14 18:41 ` Jeff King
2025-03-15 0:32 ` en/diff-rename-follow-fix (Was: Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)) Elijah Newren
0 siblings, 2 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-03-14 17:36 UTC (permalink / raw)
To: git
Here are the topics that have been cooking in my tree. Commits
prefixed with '+' are in 'next' (being in 'next' is a sign that a
topic is stable enough to be used and are candidate to be in a
future release). Commits prefixed with '-' are only in 'seen', and
aren't considered "accepted" at all and may be annotated with an URL
to a message that raises issues but they are no means exhaustive. A
topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests
arise).
Git 2.49 final has been tagged.
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
repositories have only a subset of branches.
With maint, master, next, seen, todo:
git://git.kernel.org/pub/scm/git/git.git/
git://repo.or.cz/alt-git.git/
https://kernel.googlesource.com/pub/scm/git/git/
https://github.com/git/git/
https://gitlab.com/git-scm/git/
With all the integration branches and topics broken out:
https://github.com/gitster/git/
Even though the preformatted documentation in HTML and man format
are not sources, they are published in these repositories for
convenience (replace "htmldocs" with "manpages" for the manual
pages):
git://git.kernel.org/pub/scm/git/git-htmldocs.git/
https://github.com/gitster/git-htmldocs.git/
Release tarballs are available at:
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
[New Topics]
* en/diff-rename-follow-fix (2025-03-13) 1 commit
- diffcore-rename: fix BUG when break detection and --follow used together
A corner-case bug in "git log --follow -B" has been fixed.
Will merge to 'next'.
source: <pull.1876.git.1741395615315.gitgitgadget@gmail.com>
--------------------------------------------------
[Cooking]
* en/merge-ort-prepare-to-remove-recursive (2025-03-13) 6 commits
- am: switch from merge_recursive_generic() to merge_ort_generic()
- merge-ort: fix merge.directoryRenames=false
- t3650: document bug when directory renames are turned off
- merge-ort: support having merge verbosity be set to 0
- merge-ort: allow rename detection to be disabled
- merge-ort: add new merge_ort_generic() function
First step of deprecating and removing merge-recursive.
Will merge to 'next'.
source: <pull.1875.v2.git.1741834001.gitgitgadget@gmail.com>
* jk/use-wunreachable-code-for-devs (2025-03-07) 1 commit
(merged to 'next' on 2025-03-07 at b5c54fea6a)
+ config.mak.dev: enable -Wunreachable-code
Enable -Wunreachable-code for developer builds.
Reverted out of 'next', as macOS CI job stops with a false positive.
cf. <20250310160440.GA26189@coredump.intra.peff.net>
source: <20250307225444.GA42758@coredump.intra.peff.net>
* ab/decorate-code-cleanup (2025-03-10) 1 commit
- decorate: fix sign comparison warnings
Code clean-up.
Will merge to 'next'.
source: <7c219279-8151-49c0-8fc0-8abe2624aca9@gmail.com>
* ds/path-walk-2 (2025-03-10) 13 commits
- pack-objects: allow --shallow and --path-walk
- path-walk: add new 'edge_aggressive' option
- pack-objects: thread the path-based compression
- pack-objects: refactor path-walk delta phase
- scalar: enable path-walk during push via config
- pack-objects: enable --path-walk via config
- repack: add --path-walk option
- t5538: add tests to confirm deltas in shallow pushes
- pack-objects: introduce GIT_TEST_PACK_PATH_WALK
- p5313: add performance tests for --path-walk
- pack-objects: update usage to match docs
- pack-objects: add --path-walk option
- pack-objects: extract should_attempt_deltas()
"git pack-objects" learns to find delta bases from blobs at the
same path, using the --path-walk API.
source: <pull.1819.git.1741571455.gitgitgadget@gmail.com>
* ja/doc-block-delimiter-markup-fix (2025-03-10) 1 commit
(merged to 'next' on 2025-03-11 at 8d6641a77e)
+ doc: add a blank line around block delimiters
Doc markup updates.
Will cook in 'next'.
source: <pull.1878.git.1741549511665.gitgitgadget@gmail.com>
* jc/name-rev-stdin (2025-03-12) 6 commits
- name-rev: remove "--stdin" support
- t6120: further modernize
- t6120: avoid hiding "git" exit status
- t: introduce WITH_BREAKING_CHANGES prerequisite
- t: extend test_lazy_prereq
- t: document test_lazy_prereq
Using "git name-rev --stdin" as an example, improve the framework to
prepare tests to pretend to be in the future where the breaking
changes have already happened.
Will merge to 'next'.
source: <20250311212505.2920181-1-gitster@pobox.com>
* jk/fetch-ref-prefix-cleanup (2025-03-10) 9 commits
- fetch: use ref prefix list to skip ls-refs
- fetch: avoid ls-refs only to ask for HEAD symref update
- fetch: stop protecting additions to ref-prefix list
- fetch: ask server to advertise HEAD for config-less fetch
- refspec_ref_prefixes(): clean up refspec_item logic
- t5516: beef up exact-oid ref prefixes test
- t5516: drop NEEDSWORK about v2 reachability behavior
- t5516: prefer "oid" to "sha1" in some test titles
- t5702: fix typo in test name
In protocol v2 where the refs advertisement is constrained, we try
to tell the server side not to limit the advertisement when there
is no specific need to, which has been the source of confusion and
recent bugs. Revamp the logic to simplify.
Will merge to 'next'.
source: <20250309030101.GA2334064@coredump.intra.peff.net>
* jt/rev-list-z (2025-03-13) 6 commits
- rev-list: support NUL-delimited --missing option
- rev-list: support NUL-delimited --boundary option
- rev-list: support delimiting objects with NUL bytes
- revision: support NUL-delimited --stdin mode
- rev-list: refactor early option parsing
- rev-list: inline `show_object_with_name()` in `show_object()`
"git rev-list" learns machine-parsable output format that delimits
each field with NUL.
Will merge to 'next'?
source: <20250313001706.3390502-1-jltobler@gmail.com>
* kn/reflog-drop (2025-03-10) 1 commit
- reflog: implement subcommand to drop reflogs
"git reflog" learns "drop" subcommand, that discards the entire
reflog data for a ref.
Will merge to 'next'?
source: <20250310-493-add-command-to-purge-reflog-entries-v2-1-05caa92e0bfa@gmail.com>
* am/dir-dedup-decl-of-repository (2025-03-11) 1 commit
- dir.h: remove duplicate forward declaration of struct repository
Code cleanup.
Will merge to 'next'.
source: <pull.1879.git.1741705175922.gitgitgadget@gmail.com>
* cc/lop-remote (2025-03-13) 1 commit
- promisor-remote: fix segfault when remote URL is missing
Bugfix in newly introduced large-object-promisor remote support.
Will merge to 'next'?
source: <20250313103859.817127-1-christian.couder@gmail.com>
* ps/ci-meson-check-build-docs (2025-03-12) 1 commit
- ci: perform build and smoke tests for Meson docs
CI update.
Will merge to 'next'.
source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
* ps/meson-with-breaking-changes (2025-03-12) 3 commits
- meson: don't install git-pack-redundant(1) docs with breaking changes
- meson: don't compile git-pack-redundant(1) with breaking changes
- meson: define WITH_BREAKING_CHANGES when enabling breaking changes
Update meson based build procedure for breaking changes support.
Will merge to 'next'.
source: <20250312-b4-pks-meson-breaking-changes-v1-0-b89e9a59d228@pks.im>
* md/t1403-path-is-file (2025-03-04) 1 commit
- t1403: verify that path exists and is a file
Test tweak.
source: <20250304112728.41228-2-danimahendra0904@gmail.com>
* sk/clar-trailer-urlmatch-norm-test (2025-03-04) 2 commits
- t/unit-tests: convert urlmatch-normalization test to clar
- t/unit-tests: convert trailer test to use clar
A few traditional unit tests have been rewritten to use the clar
framework.
Comments?
source: <20250304113323.10564-1-kuforiji98@gmail.com>
* dm/completion-remote-names-fix (2025-03-05) 2 commits
- completion: fix bugs with slashes in remote names
- completion: add helper to count path components
The bash command line completion script (in contrib/) has been
updated to cope with remote repository nicknames with slashes in
them.
Comments?
source: <d5860dbe1e6a149d72739af3271369b3@mandelberg.org>
* tb/refs-exclude-fixes (2025-03-06) 2 commits
(merged to 'next' on 2025-03-06 at 50707f29db)
+ refs.c: stop matching non-directory prefixes in exclude patterns
+ refs.c: remove empty '--exclude' patterns
The refname exclusion logic in the packed-ref backend has been
broken for some time, which confused upload-pack to advertise
different set of refs. This has been corrected.
Will cook in 'next'.
source: <cover.1741275245.git.me@ttaylorr.com>
* en/merge-process-renames-crash-fix (2025-03-06) 2 commits
(merged to 'next' on 2025-03-06 at 8f38331e32)
+ merge-ort: fix slightly overzealous assertion for rename-to-self
+ t6423: add a testcase causing a failed assertion in process_renames
The merge-recursive and merge-ort machinery crashed in corner cases
when certain renames are involved.
Will cook in 'next'.
source: <pull.1873.git.1741275027.gitgitgadget@gmail.com>
* kn/non-transactional-batch-updates (2025-03-12) 9 commits
. update-ref: add --allow-partial flag for stdin mode
. refs: support partial update rejections during F/D checks
. refs: implement partial reference transaction support
. refs: introduce enum-based transaction error types
. refs/reftable: extract code from the transaction preparation
. refs/files: remove duplicate duplicates check
. refs: move duplicate refname update check to generic layer
. refs/files: remove redundant check in split_symref_update()
. Merge branch 'ps/refname-avail-check-optim' into kn/non-transactional-batch-updates
(this branch uses ps/refname-avail-check-optim.)
Updating multiple references have only been possible in all-or-none
fashion with transactions, but it can be more efficient to batch
multiple updates even when some of them are allowed to fail in a
best-effort manner. A new "best effort batches of updates" mode
has been introduced.
Trips up -Wunreachable-code checker.
source: <20250305-245-partially-atomic-ref-updates-v3-0-0c64e3052354@gmail.com>
* ps/object-wo-the-repository (2025-03-10) 12 commits
- hash: stop depending on `the_repository` in `null_oid()`
- hash: fix "-Wsign-compare" warnings
- object-file: split out logic regarding hash algorithms
- delta-islands: stop depending on `the_repository`
- object-file-convert: stop depending on `the_repository`
- pack-bitmap-write: stop depending on `the_repository`
- pack-revindex: stop depending on `the_repository`
- pack-check: stop depending on `the_repository`
- environment: move access to "core.bigFileThreshold" into repo settings
- pack-write: stop depending on `the_repository` and `the_hash_algo`
- object: stop depending on `the_repository`
- csum-file: stop depending on `the_repository`
The object layer has been updated to take an explicit repository
instance as a parameter in more code paths.
Looking good.
source: <20250310-b4-pks-objects-without-the-repository-v4-0-f201b8ec57ba@pks.im>
* ua/some-builtins-wo-the-repository (2025-03-07) 8 commits
(merged to 'next' on 2025-03-07 at 01f2b84529)
+ builtin/checkout-index: stop using `the_repository`
+ builtin/for-each-ref: stop using `the_repository`
+ builtin/ls-files: stop using `the_repository`
+ builtin/pack-refs: stop using `the_repository`
+ builtin/send-pack: stop using `the_repository`
+ builtin/verify-commit: stop using `the_repository`
+ builtin/verify-tag: stop using `the_repository`
+ config: teach repo_config to allow `repo` to be NULL
A handful of built-in command implementations have been rewritten
to use the repository instance supplied by git.c:run_builtin(), its
caller.
Will cook in 'next'.
source: <20250307233543.1721552-1-usmanakinyemi202@gmail.com>
* ps/maintenance-reflog-expire (2025-02-26) 6 commits
- builtin/maintenance: introduce "reflog-expire" task
- builtin/gc: split out function to expire reflog entries
- builtin/reflog: make functions regarding `reflog_expire_options` public
- builtin/reflog: stop storing per-reflog expiry dates globally
- builtin/reflog: stop storing default reflog expiry dates globally
- reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options`
"git maintenance" learns a new task to expire reflog entries.
Needs (real) review.
source: <20250226-pks-maintenance-reflog-expire-v1-0-a1204a814952@pks.im>
* ps/refname-avail-check-optim (2025-03-12) 16 commits
- refs: reuse iterators when determining refname availability
- refs/iterator: implement seeking for files iterators
- refs/iterator: implement seeking for packed-ref iterators
- refs/iterator: implement seeking for ref-cache iterators
- refs/iterator: implement seeking for reftable iterators
- refs/iterator: implement seeking for merged iterators
- refs/iterator: provide infrastructure to re-seek iterators
- refs/iterator: separate lifecycle from iteration
- refs: stop re-verifying common prefixes for availability
- refs/files: batch refname availability checks for initial transactions
- refs/files: batch refname availability checks for normal transactions
- refs/reftable: batch refname availability checks
- refs: introduce function to batch refname availability checks
- builtin/update-ref: skip ambiguity checks when parsing object IDs
- object-name: allow skipping ambiguity checks in `get_oid()` family
- object-name: introduce `repo_get_oid_with_flags()`
(this branch is used by kn/non-transactional-batch-updates.)
The code paths to check whether a refname X is available (by seeing
if another ref X/Y exists, etc.) have been optimized.
Will merge to 'next'.
source: <20250312-pks-update-ref-optimization-v6-0-f778e0414f55@pks.im>
* tb/multi-cruft-pack-refresh-fix (2025-03-13) 1 commit
- builtin/pack-objects.c: freshen objects from existing cruft packs
Certain "cruft" objects would have never been refreshed when there
are multiple cruft packs in the repository, which has been
corrected.
Will merge to 'next'.
source: <1563552bbda0bc910c9f41b0fabc3225c4d778fc.1741889018.git.me@ttaylorr.com>
* jk/zlib-inflate-fixes (2025-02-25) 10 commits
- unpack_loose_rest(): rewrite return handling for clarity
- unpack_loose_rest(): simplify error handling
- unpack_loose_rest(): never clean up zstream
- unpack_loose_rest(): avoid numeric comparison of zlib status
- unpack_loose_header(): avoid numeric comparison of zlib status
- git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT
- unpack_loose_header(): fix infinite loop on broken zlib input
- unpack_loose_header(): report headers without NUL as "bad"
- unpack_loose_header(): simplify next_out assignment
- loose_object_info(): BUG() on inflating content with unknown type
Fix our use of zlib corner cases.
Still being discussed.
cf. <20250304065501.GB1283901@coredump.intra.peff.net>
source: <20250225062518.GA1293854@coredump.intra.peff.net>
* cc/signed-fast-export-import (2025-03-10) 6 commits
- fast-export, fast-import: add support for signed-commits
- fast-export: do not modify memory from get_commit_buffer
- git-fast-export.adoc: clarify why 'verbatim' may not be a good idea
- fast-export: rename --signed-tags='warn' to 'warn-verbatim'
- fast-export: fix missing whitespace after switch
- git-fast-import.adoc: add missing LF in the BNF
"git fast-export | git fast-import" learns to deal with commit and
tag objects with embedded signatures a bit better.
Will merge to 'next'.
cf. <CABPp-BGyA8iBA0BFO8FcpZAMca94aVu2vHHRi4Oz=nCWxJSDPg@mail.gmail.com>
source: <20250310155746.879481-1-christian.couder@gmail.com>
* jt/diff-pairs (2025-03-03) 4 commits
(merged to 'next' on 2025-03-03 at 32346e0c3b)
+ builtin/diff-pairs: allow explicit diff queue flush
+ builtin: introduce diff-pairs command
+ diff: add option to skip resolving diff statuses
+ diff: return diff_filepair from diff queue helpers
A post-processing filter for "diff --raw" output has been
introduced.
Will cook in 'next'.
source: <20250228213346.1335224-1-jltobler@gmail.com>
* ib/diff-S-G-with-longhand (2025-02-12) 10 commits
- diff: docs: Use --patch-{grep,modifies} over -G/-S
- diff: --pickaxe-{all,regex} help: Add --patch-{grep,modifies}
- diff: test: Use --patch-{grep,modifies} over -G/-S
- completion: Support --patch-{grep,modifies}
- diff: --patch-{grep,modifies} arg names for -G and -S
- docs: gitdiffcore: -G and -S: Use regex/string placeholders
- diff: short help: Add -G and --pickaxe-grep
- diff: short help: Correct -S description
- diff: -G description: Correct copy/paste error
- t/t4209-log-pickaxe: Naming typo: -G takes a regex
The commands in the "diff" family learned longhands for "-S" and
"-G" options.
The core part looked mostly good.
source: <20250212032657.1807939-1-illia.bobyr@gmail.com>
* ps/reftable-windows-unlink-fix (2025-02-18) 2 commits
- reftable: ignore file-in-use errors when unlink(3p) fails on Windows
- Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-windows-unlink-fix
(this branch uses ps/reftable-sans-compat-util.)
Portability fix.
Waiting for the base topic to settle.
source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@pks.im>
* ps/reftable-sans-compat-util (2025-02-18) 18 commits
- Makefile: skip reftable library for Coccinelle
- reftable: decouple from Git codebase by pulling in "compat/posix.h"
- git-compat-util.h: split out POSIX-emulating bits
- compat/mingw: split out POSIX-related bits
- reftable/basics: introduce `REFTABLE_UNUSED` annotation
- reftable/basics: stop using `SWAP()` macro
- reftable/stack: stop using `sleep_millisec()`
- reftable/system: introduce `reftable_rand()`
- reftable/reader: stop using `ARRAY_SIZE()` macro
- reftable/basics: provide wrappers for big endian conversion
- reftable/basics: stop using `st_mult()` in array allocators
- reftable: stop using `BUG()` in trivial cases
- reftable/record: don't `BUG()` in `reftable_record_cmp()`
- reftable/record: stop using `BUG()` in `reftable_record_init()`
- reftable/record: stop using `COPY_ARRAY()`
- reftable/blocksource: stop using `xmmap()`
- reftable/stack: stop using `write_in_full()`
- reftable/stack: stop using `read_in_full()`
(this branch is used by ps/reftable-windows-unlink-fix.)
Make the code in reftable library less reliant on the service
routines it used to borrow from Git proper, to make it easier to
use by external users of the library.
Waiting for Acks, especially for Windows bits?
source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@pks.im>
* sj/ref-consistency-checks-more (2025-02-27) 9 commits
(merged to 'next' on 2025-03-05 at 6bea9376c4)
+ builtin/fsck: add `git refs verify` child process
+ packed-backend: check whether the "packed-refs" is sorted
+ packed-backend: add "packed-refs" entry consistency check
+ packed-backend: check whether the refname contains NUL characters
+ packed-backend: add "packed-refs" header consistency check
+ packed-backend: check if header starts with "# pack-refs with: "
+ packed-backend: check whether the "packed-refs" is regular file
+ builtin/refs: get worktrees without reading head information
+ t0602: use subshell to ensure working directory unchanged
"git fsck" becomes more careful when checking the refs.
Will cook in 'next'.
source: <Z8CMx7O19PMs9sVY@ArchLinux>
* jc/doc-attr-tree (2024-12-14) 1 commit
- doc: give attr.tree a bit more visibility
Make sure that "git --attr-source=X", GIT_ATTR_SOURCE, and
attr.tree configuration variables appear at the same places in the
documentation.
On hold.
cf. <20241216111112.GA2201417@coredump.intra.peff.net>
source: <xmqq5xnladwi.fsf@gitster.g>
* tb/incremental-midx-part-2 (2024-11-20) 15 commits
- midx: implement writing incremental MIDX bitmaps
- pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators
- pack-bitmap.c: keep track of each layer's type bitmaps
- ewah: implement `struct ewah_or_iterator`
- pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
- pack-bitmap.c: compute disk-usage with incremental MIDXs
- pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs
- pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
- pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs
- pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs
- pack-bitmap.c: open and store incremental bitmap layers
- pack-revindex: prepare for incremental MIDX bitmaps
- Documentation: describe incremental MIDX bitmaps
- Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2
- Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2
Incrementally updating multi-pack index files.
Expecting a (hopefully minor and final) reroll.
cf. <Z8JSreTnEFlocYQ9@nand.local> <Z8JLbxBQh7XUpplz@nand.local>
source: <cover.1732054032.git.me@ttaylorr.com>
* ej/cat-file-remote-object-info (2025-02-24) 8 commits
- cat-file: add remote-object-info to batch-command
- transport: add client support for object-info
- serve: advertise object-info feature
- fetch-pack: move fetch initialization
- fetch-pack: refactor packet writing
- t1006: split test utility functions into new "lib-cat-file.sh"
- cat-file: add declaration of variable i inside its for loop
- git-compat-util: add strtoul_ul() with error handling
"git cat-file --batch" and friends can optionally ask a remote
server about objects it does not have.
source: <20250221190451.12536-1-eric.peijian@gmail.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)
2025-03-14 17:36 What's cooking in git.git (Mar 2025, #04; Fri, 14) Junio C Hamano
@ 2025-03-14 18:41 ` Jeff King
2025-03-14 18:42 ` Jeff King
2025-03-15 0:02 ` Junio C Hamano
2025-03-15 0:32 ` en/diff-rename-follow-fix (Was: Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)) Elijah Newren
1 sibling, 2 replies; 15+ messages in thread
From: Jeff King @ 2025-03-14 18:41 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Fri, Mar 14, 2025 at 10:36:39AM -0700, Junio C Hamano wrote:
> * ps/ci-meson-check-build-docs (2025-03-12) 1 commit
> - ci: perform build and smoke tests for Meson docs
>
> CI update.
>
> Will merge to 'next'.
> source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
I didn't dig into it, but I'd imagine this topic is the source of CI
failures on the "documentation" job like this:
2025-03-14T17:50:13.8749066Z + meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
2025-03-14T17:50:13.8752287Z ci/test-documentation.sh: line 50: meson: command not found
2025-03-14T17:50:13.8769502Z ##[error]Process completed with exit code 127.
that I'm seeing in jch (and looks like you have a similar one in the
latest build of 'seen')
-Peff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)
2025-03-14 18:41 ` Jeff King
@ 2025-03-14 18:42 ` Jeff King
2025-03-15 0:02 ` Junio C Hamano
1 sibling, 0 replies; 15+ messages in thread
From: Jeff King @ 2025-03-14 18:42 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Patrick Steinhardt, git
On Fri, Mar 14, 2025 at 02:41:31PM -0400, Jeff King wrote:
> On Fri, Mar 14, 2025 at 10:36:39AM -0700, Junio C Hamano wrote:
>
> > * ps/ci-meson-check-build-docs (2025-03-12) 1 commit
> > - ci: perform build and smoke tests for Meson docs
> >
> > CI update.
> >
> > Will merge to 'next'.
> > source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
>
> I didn't dig into it, but I'd imagine this topic is the source of CI
> failures on the "documentation" job like this:
>
> 2025-03-14T17:50:13.8749066Z + meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
> 2025-03-14T17:50:13.8752287Z ci/test-documentation.sh: line 50: meson: command not found
> 2025-03-14T17:50:13.8769502Z ##[error]Process completed with exit code 127.
>
> that I'm seeing in jch (and looks like you have a similar one in the
> latest build of 'seen')
Sorry, I meant to cc Patrick on this.
-Peff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)
2025-03-14 18:41 ` Jeff King
2025-03-14 18:42 ` Jeff King
@ 2025-03-15 0:02 ` Junio C Hamano
2025-03-18 15:57 ` [PATCH] install meson for Documentation job Junio C Hamano
1 sibling, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-03-15 0:02 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: git, Jeff King
Jeff King <peff@peff.net> writes:
> On Fri, Mar 14, 2025 at 10:36:39AM -0700, Junio C Hamano wrote:
>
>> * ps/ci-meson-check-build-docs (2025-03-12) 1 commit
>> - ci: perform build and smoke tests for Meson docs
>>
>> CI update.
>>
>> Will merge to 'next'.
>> source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
>
> I didn't dig into it, but I'd imagine this topic is the source of CI
> failures on the "documentation" job like this:
>
> 2025-03-14T17:50:13.8749066Z + meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
> 2025-03-14T17:50:13.8752287Z ci/test-documentation.sh: line 50: meson: command not found
> 2025-03-14T17:50:13.8769502Z ##[error]Process completed with exit code 127.
>
> that I'm seeing in jch (and looks like you have a similar one in the
> latest build of 'seen')
>
> -Peff
Somebody more clueful than me about how the CI dependency set-up is
supposed to happen should rewrite the proposed log message
altogether. The install-dependencies script pretends as if two
case..esac blocks are orthogonal (the former switches on $distro,
the latter that we see in the patch switches on $jobname), but I
somehow do not get the feeling that we can move Documentation job
from ubuntu-latest to alpine-latest for example.
In any case, the change seems to "fix" the issue for me
(bad)
https://github.com/git/git/actions/runs/13867157977/job/38808418127
(good)
https://github.com/git/git/actions/runs/13867208725/job/38808554478
Thanks.
--- >8 ---
Subject: [PATCH] install meson for Documentation job
Why should we even do this? Doesn't it run on ubuntu-latest which
has its own apt--get install for meson in the $distro specific
set-up before this part?
---
ci/install-dependencies.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 0df74610d0..fdeeaabaca 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -123,7 +123,7 @@ sparse)
;;
Documentation)
sudo apt-get -q update
- sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
+ sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make meson
test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
sudo gem install --version 1.5.8 asciidoctor
--
2.49.0-205-gbb947d5b2d
^ permalink raw reply related [flat|nested] 15+ messages in thread
* en/diff-rename-follow-fix (Was: Re: What's cooking in git.git (Mar 2025, #04; Fri, 14))
2025-03-14 17:36 What's cooking in git.git (Mar 2025, #04; Fri, 14) Junio C Hamano
2025-03-14 18:41 ` Jeff King
@ 2025-03-15 0:32 ` Elijah Newren
2025-03-15 1:22 ` en/diff-rename-follow-fix Junio C Hamano
1 sibling, 1 reply; 15+ messages in thread
From: Elijah Newren @ 2025-03-15 0:32 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Git Mailing List
On Fri, Mar 14, 2025 at 10:42 AM Junio C Hamano <gitster@pobox.com> wrote:
>
[...]
> * en/diff-rename-follow-fix (2025-03-13) 1 commit
> - diffcore-rename: fix BUG when break detection and --follow used together
>
> A corner-case bug in "git log --follow -B" has been fixed.
>
> Will merge to 'next'.
> source: <pull.1876.git.1741395615315.gitgitgadget@gmail.com>
Thanks, but due to Peff's further questioning I dug a lot harder and
found another testcase that perhaps helps explain the issue a bit
more. I added it and added a little bit more info to the commit
message to try to help answer his questions. Could you wait to merge
until I send out v2?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: en/diff-rename-follow-fix
2025-03-15 0:32 ` en/diff-rename-follow-fix (Was: Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)) Elijah Newren
@ 2025-03-15 1:22 ` Junio C Hamano
0 siblings, 0 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-03-15 1:22 UTC (permalink / raw)
To: Elijah Newren; +Cc: Git Mailing List
Elijah Newren <newren@gmail.com> writes:
> message to try to help answer his questions. Could you wait to merge
> until I send out v2?
Thanks for stopping me. No problem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] install meson for Documentation job
2025-03-15 0:02 ` Junio C Hamano
@ 2025-03-18 15:57 ` Junio C Hamano
2025-03-18 16:19 ` Karthik Nayak
0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-03-18 15:57 UTC (permalink / raw)
To: git; +Cc: Patrick Steinhardt, Jeff King
Junio C Hamano <gitster@pobox.com> writes:
> Jeff King <peff@peff.net> writes:
>
>> On Fri, Mar 14, 2025 at 10:36:39AM -0700, Junio C Hamano wrote:
>>
>>> * ps/ci-meson-check-build-docs (2025-03-12) 1 commit
>>> - ci: perform build and smoke tests for Meson docs
>>>
>>> CI update.
>>>
>>> Will merge to 'next'.
>>> source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
>>
>> I didn't dig into it, but I'd imagine this topic is the source of CI
>> failures on the "documentation" job like this:
>>
>> 2025-03-14T17:50:13.8749066Z + meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
>> 2025-03-14T17:50:13.8752287Z ci/test-documentation.sh: line 50: meson: command not found
>> 2025-03-14T17:50:13.8769502Z ##[error]Process completed with exit code 127.
>>
>> that I'm seeing in jch (and looks like you have a similar one in the
>> latest build of 'seen')
>>
>> -Peff
>
> Somebody more clueful than me about how the CI dependency set-up is
> supposed to happen should rewrite the proposed log message
> altogether. The install-dependencies script pretends as if two
> case..esac blocks are orthogonal (the former switches on $distro,
> the latter that we see in the patch switches on $jobname), but I
> somehow do not get the feeling that we can move Documentation job
> from ubuntu-latest to alpine-latest for example.
Ping? Anybody wants to help explain how this part of CI works to
the commit log message?
> In any case, the change seems to "fix" the issue for me
>
> (bad)
> https://github.com/git/git/actions/runs/13867157977/job/38808418127
>
> (good)
> https://github.com/git/git/actions/runs/13867208725/job/38808554478
>
>
> Thanks.
>
> --- >8 ---
> Subject: [PATCH] install meson for Documentation job
>
> Why should we even do this? Doesn't it run on ubuntu-latest which
> has its own apt--get install for meson in the $distro specific
> set-up before this part?
>
>
> ---
> ci/install-dependencies.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 0df74610d0..fdeeaabaca 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -123,7 +123,7 @@ sparse)
> ;;
> Documentation)
> sudo apt-get -q update
> - sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
> + sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make meson
>
> test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
> sudo gem install --version 1.5.8 asciidoctor
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] install meson for Documentation job
2025-03-18 15:57 ` [PATCH] install meson for Documentation job Junio C Hamano
@ 2025-03-18 16:19 ` Karthik Nayak
2025-03-18 20:40 ` Junio C Hamano
0 siblings, 1 reply; 15+ messages in thread
From: Karthik Nayak @ 2025-03-18 16:19 UTC (permalink / raw)
To: Junio C Hamano, git; +Cc: Patrick Steinhardt, Jeff King
[-- Attachment #1: Type: text/plain, Size: 4236 bytes --]
Junio C Hamano <gitster@pobox.com> writes:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Jeff King <peff@peff.net> writes:
>>
>>> On Fri, Mar 14, 2025 at 10:36:39AM -0700, Junio C Hamano wrote:
>>>
>>>> * ps/ci-meson-check-build-docs (2025-03-12) 1 commit
>>>> - ci: perform build and smoke tests for Meson docs
>>>>
>>>> CI update.
>>>>
>>>> Will merge to 'next'.
>>>> source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@pks.im>
>>>
>>> I didn't dig into it, but I'd imagine this topic is the source of CI
>>> failures on the "documentation" job like this:
>>>
>>> 2025-03-14T17:50:13.8749066Z + meson setup build-asciidoc -Ddocs=html,man -Ddocs_backend=asciidoc
>>> 2025-03-14T17:50:13.8752287Z ci/test-documentation.sh: line 50: meson: command not found
>>> 2025-03-14T17:50:13.8769502Z ##[error]Process completed with exit code 127.
>>>
>>> that I'm seeing in jch (and looks like you have a similar one in the
>>> latest build of 'seen')
>>>
>>> -Peff
>>
>> Somebody more clueful than me about how the CI dependency set-up is
>> supposed to happen should rewrite the proposed log message
>> altogether. The install-dependencies script pretends as if two
>> case..esac blocks are orthogonal (the former switches on $distro,
>> the latter that we see in the patch switches on $jobname), but I
>> somehow do not get the feeling that we can move Documentation job
>> from ubuntu-latest to alpine-latest for example.
>
> Ping? Anybody wants to help explain how this part of CI works to
> the commit log message?
>
Weird. From the looks of
https://github.com/git/git/actions/runs/13867157977/job/38808418127, it
seems like the '$distro' variable in 'ci/install-dependencies.sh' is not
being correctly initialized. We can see this in the logs of the CI:
CI setup via install-dependencies.sh
+ set -e
+ export TERM=dumb
+ export MAKEFLAGS=
+ test true = true
+ CI_TYPE=github-actions
+ CI_BRANCH=refs/heads/seen
+ CI_COMMIT=d5389e37e21d864f40f4167280db799ffe8983c2
+ echo Linux
+ tr A-Z a-z
+ CI_OS_NAME=linux
+ test macos != linux
+ CI_REPO_SLUG=git/git
+ CI_JOB_ID=13867157977
+ CC=gcc
+ DONT_SKIP_TAGS=t
+ cache_dir=/home/runner/none
+ GIT_TEST_OPTS=--github-workflow-markup
+ JOBS=10
+ echo
+ tr : -
+ distro=
...
So in 'ci/lib.sh' we set `distro=$(echo "$CI_JOB_IMAGE" | tr : -)`. So
this means the distro is based on '$CI_JOB_IMAGE' env variable.
From '.github/workflows/main.yml' we can see that this is not set for
the 'Documentation' job. I'm not sure why this the way it is though. I
didn't look into the history.
An untested fix, which should fix (is it a bug?) the root cause:
-- 8< --
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9959b61ece..2679a32508 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -473,6 +473,7 @@ jobs:
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent
== 'yes' }}
env:
jobname: Documentation
+ CI_JOB_IMAGE: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
>> In any case, the change seems to "fix" the issue for me
>>
>> (bad)
>> https://github.com/git/git/actions/runs/13867157977/job/38808418127
>>
>> (good)
>> https://github.com/git/git/actions/runs/13867208725/job/38808554478
>>
>>
>> Thanks.
>>
>> --- >8 ---
>> Subject: [PATCH] install meson for Documentation job
>>
>> Why should we even do this? Doesn't it run on ubuntu-latest which
>> has its own apt--get install for meson in the $distro specific
>> set-up before this part?
>>
>>
>> ---
>> ci/install-dependencies.sh | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
>> index 0df74610d0..fdeeaabaca 100755
>> --- a/ci/install-dependencies.sh
>> +++ b/ci/install-dependencies.sh
>> @@ -123,7 +123,7 @@ sparse)
>> ;;
>> Documentation)
>> sudo apt-get -q update
>> - sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
>> + sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make meson
>>
>> test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
>> sudo gem install --version 1.5.8 asciidoctor
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] install meson for Documentation job
2025-03-18 16:19 ` Karthik Nayak
@ 2025-03-18 20:40 ` Junio C Hamano
2025-03-19 9:24 ` Patrick Steinhardt
0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-03-18 20:40 UTC (permalink / raw)
To: Karthik Nayak; +Cc: git, Patrick Steinhardt, Jeff King
Karthik Nayak <karthik.188@gmail.com> writes:
> Weird. From the looks of
> https://github.com/git/git/actions/runs/13867157977/job/38808418127, it
> seems like the '$distro' variable in 'ci/install-dependencies.sh' is not
> being correctly initialized. We can see this in the logs of the CI:
>
> CI setup via install-dependencies.sh
> + set -e
> + export TERM=dumb
> + export MAKEFLAGS=
> + test true = true
> + CI_TYPE=github-actions
> + CI_BRANCH=refs/heads/seen
> + CI_COMMIT=d5389e37e21d864f40f4167280db799ffe8983c2
> + echo Linux
> + tr A-Z a-z
> + CI_OS_NAME=linux
> + test macos != linux
> + CI_REPO_SLUG=git/git
> + CI_JOB_ID=13867157977
> + CC=gcc
> + DONT_SKIP_TAGS=t
> + cache_dir=/home/runner/none
> + GIT_TEST_OPTS=--github-workflow-markup
> + JOBS=10
> + echo
> + tr : -
> + distro=
> ...
Nice digging.
> So in 'ci/lib.sh' we set `distro=$(echo "$CI_JOB_IMAGE" | tr : -)`. So
> this means the distro is based on '$CI_JOB_IMAGE' env variable.
>
> From '.github/workflows/main.yml' we can see that this is not set for
> the 'Documentation' job. I'm not sure why this the way it is though. I
> didn't look into the history.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] install meson for Documentation job
2025-03-18 20:40 ` Junio C Hamano
@ 2025-03-19 9:24 ` Patrick Steinhardt
2025-03-19 16:22 ` Karthik Nayak
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Patrick Steinhardt @ 2025-03-19 9:24 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Karthik Nayak, git, Jeff King
On Tue, Mar 18, 2025 at 01:40:07PM -0700, Junio C Hamano wrote:
> Karthik Nayak <karthik.188@gmail.com> writes:
>
> > Weird. From the looks of
> > https://github.com/git/git/actions/runs/13867157977/job/38808418127, it
> > seems like the '$distro' variable in 'ci/install-dependencies.sh' is not
> > being correctly initialized. We can see this in the logs of the CI:
> >
> > CI setup via install-dependencies.sh
> > + set -e
> > + export TERM=dumb
> > + export MAKEFLAGS=
> > + test true = true
> > + CI_TYPE=github-actions
> > + CI_BRANCH=refs/heads/seen
> > + CI_COMMIT=d5389e37e21d864f40f4167280db799ffe8983c2
> > + echo Linux
> > + tr A-Z a-z
> > + CI_OS_NAME=linux
> > + test macos != linux
> > + CI_REPO_SLUG=git/git
> > + CI_JOB_ID=13867157977
> > + CC=gcc
> > + DONT_SKIP_TAGS=t
> > + cache_dir=/home/runner/none
> > + GIT_TEST_OPTS=--github-workflow-markup
> > + JOBS=10
> > + echo
> > + tr : -
> > + distro=
> > ...
>
> Nice digging.
Thanks all for discovering and debugging this, I somehow missed this
thread and haven't been able to keep up with the mailing list for the
last couple days.
I see 4451a164e5a (install meson for Documentation job, 2025-03-14) has
been merged, but as far as I understand we also have to take Karthik's
patch to fix installing dependencies? In case I'm correct, do you plan
to send this as a proper patch, Karthik?
Patrick
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] install meson for Documentation job
2025-03-19 9:24 ` Patrick Steinhardt
@ 2025-03-19 16:22 ` Karthik Nayak
2025-03-19 16:33 ` [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable Karthik Nayak
2025-03-20 20:27 ` [PATCH] install meson for Documentation job Junio C Hamano
2 siblings, 0 replies; 15+ messages in thread
From: Karthik Nayak @ 2025-03-19 16:22 UTC (permalink / raw)
To: Patrick Steinhardt, Junio C Hamano; +Cc: git, Jeff King
[-- Attachment #1: Type: text/plain, Size: 1781 bytes --]
Patrick Steinhardt <ps@pks.im> writes:
> On Tue, Mar 18, 2025 at 01:40:07PM -0700, Junio C Hamano wrote:
>> Karthik Nayak <karthik.188@gmail.com> writes:
>>
>> > Weird. From the looks of
>> > https://github.com/git/git/actions/runs/13867157977/job/38808418127, it
>> > seems like the '$distro' variable in 'ci/install-dependencies.sh' is not
>> > being correctly initialized. We can see this in the logs of the CI:
>> >
>> > CI setup via install-dependencies.sh
>> > + set -e
>> > + export TERM=dumb
>> > + export MAKEFLAGS=
>> > + test true = true
>> > + CI_TYPE=github-actions
>> > + CI_BRANCH=refs/heads/seen
>> > + CI_COMMIT=d5389e37e21d864f40f4167280db799ffe8983c2
>> > + echo Linux
>> > + tr A-Z a-z
>> > + CI_OS_NAME=linux
>> > + test macos != linux
>> > + CI_REPO_SLUG=git/git
>> > + CI_JOB_ID=13867157977
>> > + CC=gcc
>> > + DONT_SKIP_TAGS=t
>> > + cache_dir=/home/runner/none
>> > + GIT_TEST_OPTS=--github-workflow-markup
>> > + JOBS=10
>> > + echo
>> > + tr : -
>> > + distro=
>> > ...
>>
>> Nice digging.
>
> Thanks all for discovering and debugging this, I somehow missed this
> thread and haven't been able to keep up with the mailing list for the
> last couple days.
>
> I see 4451a164e5a (install meson for Documentation job, 2025-03-14) has
> been merged, but as far as I understand we also have to take Karthik's
> patch to fix installing dependencies? In case I'm correct, do you plan
> to send this as a proper patch, Karthik?
>
I had a patch locally and after your mail, I did test it out on GitHub
[1]. Will send it here, this should fix the issue and replace
4451a164e5a.
[1]: https://github.com/git/git/actions/runs/13944424140/job/39028258830?pr=1927
> Patrick
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable
2025-03-19 9:24 ` Patrick Steinhardt
2025-03-19 16:22 ` Karthik Nayak
@ 2025-03-19 16:33 ` Karthik Nayak
2025-03-20 7:10 ` Patrick Steinhardt
2025-03-21 7:51 ` Junio C Hamano
2025-03-20 20:27 ` [PATCH] install meson for Documentation job Junio C Hamano
2 siblings, 2 replies; 15+ messages in thread
From: Karthik Nayak @ 2025-03-19 16:33 UTC (permalink / raw)
To: ps; +Cc: git, gitster, karthik.188, peff
The CI setups of GitLab and GitHub use a common dependency management
script 'ci/install-dependencies.sh'. The script install the necessary
packages based on a combination of the "$distro" and "$jobname" env
variables.
The "$distro" variable is derived from the "CI_JOB_IMAGE" env variable
set by the CI configs. In the GitHub CI config, some of the jobs are
missing this variable. For the 'Documentation' job which depends on
'meson' being installed, this raises an error since the 'meson'
dependency is never installed.
Fix this by adding the 'CI_JOB_IMAGE' variable to all missing jobs. We
don't add it the windows jobs, since they manager their dependency as
part of the CI config and no further dependency management is needed.
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
Junio, not sure if you wanted a patch here, since you already had a fix
yourself. But I'm providing one nonetheless, feel free to drop it.
.github/workflows/main.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9959b61ece..37541f3d10 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -349,6 +349,7 @@ jobs:
if: needs.ci-config.outputs.enabled == 'yes'
env:
CC: clang
+ CI_JOB_IMAGE: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -432,6 +433,7 @@ jobs:
if: needs.ci-config.outputs.enabled == 'yes'
env:
jobname: StaticAnalysis
+ CI_JOB_IMAGE: ubuntu-22.04
runs-on: ubuntu-22.04
concurrency:
group: static-analysis-${{ github.ref }}
@@ -446,6 +448,7 @@ jobs:
if: needs.ci-config.outputs.enabled == 'yes'
env:
jobname: sparse
+ CI_JOB_IMAGE: ubuntu-20.04
runs-on: ubuntu-20.04
concurrency:
group: sparse-${{ github.ref }}
@@ -473,6 +476,7 @@ jobs:
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
env:
jobname: Documentation
+ CI_JOB_IMAGE: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable
2025-03-19 16:33 ` [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable Karthik Nayak
@ 2025-03-20 7:10 ` Patrick Steinhardt
2025-03-21 7:51 ` Junio C Hamano
1 sibling, 0 replies; 15+ messages in thread
From: Patrick Steinhardt @ 2025-03-20 7:10 UTC (permalink / raw)
To: Karthik Nayak; +Cc: git, gitster, peff
On Wed, Mar 19, 2025 at 05:33:28PM +0100, Karthik Nayak wrote:
> The CI setups of GitLab and GitHub use a common dependency management
> script 'ci/install-dependencies.sh'. The script install the necessary
> packages based on a combination of the "$distro" and "$jobname" env
> variables.
>
> The "$distro" variable is derived from the "CI_JOB_IMAGE" env variable
> set by the CI configs. In the GitHub CI config, some of the jobs are
> missing this variable. For the 'Documentation' job which depends on
> 'meson' being installed, this raises an error since the 'meson'
> dependency is never installed.
>
> Fix this by adding the 'CI_JOB_IMAGE' variable to all missing jobs. We
> don't add it the windows jobs, since they manager their dependency as
> part of the CI config and no further dependency management is needed.
Makes sense. We didn't install Meson beforehand because we accidentally
didn't install any of the base dependencies. This is fixed by setting
the expected environment variable, and that already pulls in Meson for
us.
I think this fix is preferable over Junio's fix that manually installs
Meson as it fixes the root cause and because it's more robust going
forward in case we ever happen to pull in any additional dependencies.
Thanks!
Patrick
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] install meson for Documentation job
2025-03-19 9:24 ` Patrick Steinhardt
2025-03-19 16:22 ` Karthik Nayak
2025-03-19 16:33 ` [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable Karthik Nayak
@ 2025-03-20 20:27 ` Junio C Hamano
2 siblings, 0 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-03-20 20:27 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: Karthik Nayak, git, Jeff King
Patrick Steinhardt <ps@pks.im> writes:
> I see 4451a164e5a (install meson for Documentation job, 2025-03-14) has
> been merged, but as far as I understand we also have to take Karthik's
> patch to fix installing dependencies? In case I'm correct, do you plan
> to send this as a proper patch, Karthik?
Yes, once the Karthik's discovery is properly fixed, 4451a164
(install meson for Documentation job, 2025-03-14), which is a
misguided attempt to work around the symptom, should be discarded.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable
2025-03-19 16:33 ` [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable Karthik Nayak
2025-03-20 7:10 ` Patrick Steinhardt
@ 2025-03-21 7:51 ` Junio C Hamano
1 sibling, 0 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-03-21 7:51 UTC (permalink / raw)
To: Karthik Nayak; +Cc: ps, git, peff
Karthik Nayak <karthik.188@gmail.com> writes:
> The CI setups of GitLab and GitHub use a common dependency management
> script 'ci/install-dependencies.sh'. The script install the necessary
> packages based on a combination of the "$distro" and "$jobname" env
> variables.
It seems that CI_JOB_IMAGE is a GitLab invention that is defined
automatically for all CI/CD jobs?
The range of values for the variable seems to be names of Docker
images, so presumably they mean the same thing when used in GitHub
Actions environment? I am just idly wondering if ci/*.sh scripts
running in GitLab CI/CD says "Ah, we are using ubuntu-latest image"
and does one thing, if it is always safe and sensible to do the same
thing in GitHub Actions environment when CI_JOB_IMAGE is set to the
same 'ubuntu-latest' value in this workflows/main.yml file for the
job (otherwise our desire to share as much as possible becomes
harder to achieve).
> The "$distro" variable is derived from the "CI_JOB_IMAGE" env variable
> set by the CI configs. In the GitHub CI config, some of the jobs are
> missing this variable. For the 'Documentation' job which depends on
> 'meson' being installed, this raises an error since the 'meson'
> dependency is never installed.
>
> Fix this by adding the 'CI_JOB_IMAGE' variable to all missing jobs. We
> don't add it the windows jobs, since they manager their dependency as
> part of the CI config and no further dependency management is needed.
>
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
> ---
>
> Junio, not sure if you wanted a patch here, since you already had a fix
> yourself. But I'm providing one nonetheless, feel free to drop it.
Good. The one I did was an attempt to blindly sweep the issue under
the rug by patching merely one thing, and I consider that this patch
is the true fix for the root issue, so the other one can be reverted
out of 'next' (or removed from 'next' when it is rebuilt).
Thanks, will queue.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-03-21 7:51 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-14 17:36 What's cooking in git.git (Mar 2025, #04; Fri, 14) Junio C Hamano
2025-03-14 18:41 ` Jeff King
2025-03-14 18:42 ` Jeff King
2025-03-15 0:02 ` Junio C Hamano
2025-03-18 15:57 ` [PATCH] install meson for Documentation job Junio C Hamano
2025-03-18 16:19 ` Karthik Nayak
2025-03-18 20:40 ` Junio C Hamano
2025-03-19 9:24 ` Patrick Steinhardt
2025-03-19 16:22 ` Karthik Nayak
2025-03-19 16:33 ` [PATCH] ci/github: add missing 'CI_JOB_IMAGE' env variable Karthik Nayak
2025-03-20 7:10 ` Patrick Steinhardt
2025-03-21 7:51 ` Junio C Hamano
2025-03-20 20:27 ` [PATCH] install meson for Documentation job Junio C Hamano
2025-03-15 0:32 ` en/diff-rename-follow-fix (Was: Re: What's cooking in git.git (Mar 2025, #04; Fri, 14)) Elijah Newren
2025-03-15 1:22 ` en/diff-rename-follow-fix Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).