◐ Shell
clean mode source ↗

Have init script clone submodules unconditionally by EliahKagan · Pull Request #1715 · gitpython-developers/GitPython

added 2 commits

October 18, 2023 07:44
This has actions/checkout no longer automatically clone submodules
in the CI test workflows. This change is for the purpose of
reproducing gitpython-developers#1713, to allow the forthcoming fix for it to be
tested.

However, continuing to rely on init-tests-after-clone.sh to get the
submodules would serve as a kind of regression testing for gitpython-developers#1713.
So it is unclear at this time if and when this change should be
undone.
Since 7110bf8 (in gitpython-developers#1693), "git submodule update --init --recursive"
was not run on CI, on the mistaken grounds that the CI test
workflows would already have taken care of cloning all submodules
(ever since 4eef3ec when the "submodules: recursive" option was
added to the actions/checkout step).

This changes the init-tests-after-clone.sh script to again run that
command unconditionally, including on CI. The assumption that it
wasn't needed on CI was based on the specific content of
GitPython's own GitHub Actions workflows. But this disregarded that
the test suite is run on CI for *other* projects: specifically, for
downstream projects that package GitPython (gitpython-developers#1713).

This also brings back the comment from fc96980 that says more about
how the tests rely on submodules being present (specifically, that
they need a submodule with a submodule). However, that is not
specifically related to the bug being fixed.

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 10, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it
as the sole submodule source on upstream CI catches gitpython-developers#1713-class
regressions before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as
  the previous commits. The bug is independent of which process
  clones the submodules; the gitdb worktree directory itself is
  created Admin-owned by the outer `git clone`'s checkout phase
  before any submodule init runs, regardless of which mechanism
  populates the submodule contents afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at
PR gitpython-developers#1715 so the temporary nature of the change is legible at a
glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 10, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is
now established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the
standing arrangement: `init-tests-after-clone.sh` as the sole
submodule source on upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it
as the sole submodule source on upstream CI catches gitpython-developers#1713-class
regressions before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as
  the previous commits. The bug is independent of which process
  clones the submodules; the gitdb worktree directory itself is
  created Admin-owned by the outer `git clone`'s checkout phase
  before any submodule init runs, regardless of which mechanism
  populates the submodule contents afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at
PR gitpython-developers#1715 so the temporary nature of the change is legible at a
glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is
now established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the
standing arrangement: `init-tests-after-clone.sh` as the sole
submodule source on upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it
as the sole submodule source on upstream CI catches gitpython-developers#1713-class
regressions before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as
  the previous commits. The bug is independent of which process
  clones the submodules; the gitdb worktree directory itself is
  created Admin-owned by the outer `git clone`'s checkout phase
  before any submodule init runs, regardless of which mechanism
  populates the submodule contents afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at
PR gitpython-developers#1715 so the temporary nature of the change is legible at a
glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is
now established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the
standing arrangement: `init-tests-after-clone.sh` as the sole
submodule source on upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for
the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 11, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 12, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 14, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is **temporary** and is
reverted after the next commit's bugfix, with the explicit intent of
demonstrating that the bugfix works regardless of which mechanism
populates the submodules.

The standing decision is to NOT use `submodules: recursive` in CI:
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI catches gitpython-developers#1713-class regressions
before they reach distros. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the safe.directory bug still triggers, with
  the same `ValueError` / `IndexError` / `AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Native Linux/macOS/Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are not
  affected by the bug.

Each workflow's checkout step carries an inline comment pointing at PR
gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 14, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The bugfix in the immediately preceding commit is now
established to work regardless of which mechanism populates the
submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See PR gitpython-developers#1715
(gitpython-developers#1715) for the
rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 16, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Add `submodules: recursive` to the `actions/checkout` step in every
workflow that runs the test suite (`cygwin-test.yml`,
`pythonpackage.yml`, `alpine-test.yml`). This is *temporary* and will be
reverted after the bugfix, with the explicit intent of demonstrating
that the bugfix works regardless of which mechanism populates the
submodules.

The standing decision is to NOT use `submodules: recursive` in CI.
`init-tests-after-clone.sh` is the documented setup mechanism that
downstream packagers (Arch Linux and others) rely on, and keeping it as
the sole submodule source on upstream CI is meant to catch regressions
like gitpython-developers#1713 before they reach distros. See gitpython-developers#1715 for the full rationale.

The CI run on this commit is expected to show:

- Cygwin (`test-cygwin`): the `safe.directory` bug still triggers, with
  the same `ValueError`/`IndexError`/`AssertionError` pattern as the
  previous commits. The bug is independent of which process clones the
  submodules; the gitdb worktree directory itself is created Admin-owned
  by the outer `git clone`'s checkout phase before any submodule init
  runs, regardless of which mechanism populates the submodule contents
  afterward.

- Linux / macOS / native Windows (`Python package`) and Alpine Linux
  (`test-alpine`): tests pass as before. These platforms are unaffected
  by the bug.

Each workflow's checkout step carries an inline comment pointing
at gitpython-developers#1715 so the temporary nature of the change is legible at a glance.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

May 18, 2026
Revert the temporary addition of `submodules: recursive` to
`actions/checkout` in `cygwin-test.yml`, `pythonpackage.yml`, and
`alpine-test.yml`. The `safe.directory` fix has been verified to work
regardless of which mechanism populates the submodules.

Returning the workflows to their pre-test posture restores the standing
arrangement: `init-tests-after-clone.sh` as the sole submodule source on
upstream CI. See gitpython-developers#1715 for the rationale.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>