Files
pkgmgr/pyproject.toml

53 lines
1.1 KiB
TOML
Raw Normal View History

Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
[build-system]
requires = [
"setuptools>=68",
"wheel"
]
build-backend = "setuptools.build_meta"
[project]
2025-12-14 21:19:11 +01:00
name = "kpmx"
version = "1.7.1"
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
description = "Kevin's package-manager tool (pkgmgr)"
readme = "README.md"
2025-12-12 18:38:37 +01:00
requires-python = ">=3.9"
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
license = { text = "MIT" }
authors = [
{ name = "Kevin Veen-Birkenbach", email = "info@veen.world" }
]
# Base runtime dependencies
dependencies = [
"PyYAML>=6.0",
"tomli; python_version < \"3.11\"",
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
]
[project.urls]
2025-12-13 20:41:06 +01:00
Homepage = "https://s.veen.world/pkgmgr"
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
Source = "https://github.com/kevinveenbirkenbach/package-manager"
[project.optional-dependencies]
* **Split mirror responsibilities into clear subcommands** Setup configures local Git state, check validates remote reachability in a read-only way, and provision explicitly creates missing remote repositories. Destructive behavior is never implicit. * **Introduce a remote provisioning layer** pkgmgr can now ensure that repositories exist on remote providers. If a repository is missing, it can be created automatically on supported platforms when explicitly requested. * **Add a provider registry for extensibility** Providers are resolved based on the remote host, with optional hints to force a specific backend. This makes it straightforward to add further providers later without changing the core logic. * **Use a lightweight, dependency-free HTTP client** All API communication is handled via a small stdlib-based client. HTTP errors are mapped to meaningful domain errors, improving diagnostics and error handling consistency. * **Centralize credential resolution** API tokens are resolved in a strict order: environment variables first, then the system keyring, and finally an interactive prompt if allowed. This works well for both CI and interactive use. * **Keep keyring integration optional** Secure token storage via the OS keyring is provided as an optional dependency. If unavailable, pkgmgr still works using environment variables or one-off interactive tokens. * **Improve CLI parser safety and clarity** Shared argument helpers now guard against duplicate definitions, making composed subcommands more robust and easier to maintain. * **Expand end-to-end test coverage** All mirror-related workflows are exercised through real CLI invocations in preview mode, ensuring full wiring correctness while remaining safe for automated test environments. https://chatgpt.com/share/693df441-a780-800f-bcf7-96e06cc9e421
2025-12-14 00:16:54 +01:00
keyring = ["keyring>=24.0.0"]
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
dev = [
"mypy"
]
# CLI entrypoint: this is the "pkgmgr" command
[project.scripts]
pkgmgr = "pkgmgr.cli:main"
# -----------------------------
# setuptools configuration
# -----------------------------
# Source layout: all packages live under "src/"
[tool.setuptools]
package-dir = { "" = "src", "config" = "config" }
Use pyproject-based Nix flake build and fix install logic for pkgmgr - Add pyproject.toml to define package-manager as a Python application - Declare setuptools build backend (setuptools.build_meta) and wheel - Expose CLI entrypoint via [project.scripts] as `pkgmgr = pkgmgr.cli:main` - Define PyYAML as a base runtime dependency - Update flake.nix to build pkgmgr via python311Packages.buildPythonApplication - Use format = "pyproject" and src = ./. (current git checkout) - Add setuptools and wheel to nativeBuildInputs for the backend - Add pyyaml to propagatedBuildInputs to match pyproject dependencies - Provide a devShell that includes the built pkgmgr, git, and Ansible - Expose `nix run .#pkgmgr` and `nix run .#default` as flake apps - Fix Makefile install target for Nix shells - Treat install as a no-op when IN_NIX_SHELL is set (skip venv / pip) - In non-Nix environments, create ~/.venvs/pkgmgr, install deps, and wire automatic activation into shell rc files - Keep Arch/Manjaro-specific aur_builder/yay setup behind pacman check - Adjust PKGBUILD prepare() to correctly copy the full project tree - Stop excluding the top-level src directory from rsync - Still exclude .git, .github, pkg, and srcpkg This unifies the installation workflow across Arch, Nix, and local venvs, and ensures pkgmgr builds cleanly inside the Docker-based Nix devShell tests. Reference: ChatGPT-assisted refactor & debugging session on 2025-12-07. https://chatgpt.com/share/6935ee1f-6c0c-800f-bb32-434c4051bd1e
2025-12-07 22:14:29 +01:00
[tool.setuptools.packages.find]
where = ["src", "."]
include = ["pkgmgr*", "config*"]
[tool.setuptools.package-data]
"config" = ["defaults.yaml"]