From a4c86b37283eac1108b9a6551af0b2187028bb3a Mon Sep 17 00:00:00 2001 From: Anton Starikov Date: Mon, 22 Jun 2026 17:31:53 +0200 Subject: [PATCH] fix(build): include specify_cli.bundler.lib in built distribution (#3085) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(build): include specify_cli.bundler.lib in built distribution The root .gitignore carried unanchored `lib/` and `lib64/` patterns from the standard GitHub Python template (intended to ignore a top-level build/venv `lib` directory). Being unanchored, they also match the source package `src/specify_cli/bundler/lib/`. Hatchling applies .gitignore patterns as build-exclusion rules, so the `bundler/lib` package (project.py, versioning.py, yamlio.py) was silently dropped from the built wheel even though it is tracked in git. Since commands/bundle/__init__.py imports `specify_cli.bundler.lib.project` at module load, any install built from source (e.g. `uv tool install --from git+...`) crashed on startup with: ModuleNotFoundError: No module named 'specify_cli.bundler.lib' which broke the entire CLI — every command, including `specify init`. Anchor the patterns to the repo root (`/lib/`, `/lib64/`) so they only match the intended top-level build artifacts and no longer exclude the source package. * ci: retrigger checks Empty commit to re-dispatch a wedged CodeQL run that never started, unblocking code scanning merge protection. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c3a3ab525..21e211c7e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,8 @@ dist/ downloads/ eggs/ .eggs/ -lib/ -lib64/ +/lib/ +/lib64/ parts/ sdist/ var/