feat: package config/ and defaults.yaml correctly for Nix & setuptools

This commit fixes the missing `config/defaults.yaml` issue that caused
`pkgmgr --help` to fail with exit code 5 inside Nix builds and during
integration tests.

Changes:
- Added `config/__init__.py` to make the directory a proper Python package.
- Updated `pyproject.toml` to rely on setuptools package discovery.
- Extended `tool.setuptools.packages.find.include` to include both `pkgmgr*` and `config*`.
- Added `tool.setuptools.package-data` so `defaults.yaml` is included
  in wheels, Nix builds, and PKGBUILD-derived installations.
- Removed the conflicting `tool.setuptools.packages` declaration.

This ensures that Nix's pypaBuildPhase can build the wheel successfully
and that `pkgmgr --help` no longer crashes due to missing default config.

Reference:
https://chatgpt.com/share/6935f05f-03d8-800f-a126-b3114cc116ec
This commit is contained in:
Kevin Veen-Birkenbach
2025-12-07 22:29:58 +01:00
parent 7760c77952
commit 87b806d1b9
2 changed files with 11 additions and 2 deletions

0
config/__init__.py Normal file
View File

View File

@@ -36,7 +36,16 @@ dev = [
[project.scripts] [project.scripts]
pkgmgr = "pkgmgr.cli:main" pkgmgr = "pkgmgr.cli:main"
# Tell setuptools to find the pkgmgr package # -----------------------------
# setuptools configuration
# -----------------------------
# We use find_packages(), not a fixed list,
# and explicitly include pkgmgr* and config*
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
where = ["."] where = ["."]
include = ["pkgmgr*"] include = ["pkgmgr*", "config*"]
# Ensure defaults.yaml is shipped inside wheels & nix builds
[tool.setuptools.package-data]
"config" = ["defaults.yaml"]