Flatten to a single package directory
The checkout is now astrape/astrape-dashboard, not astrape/astrape-dashboard/<package>. The package contents move to the repository root and pyproject maps the package name to '.' via package-dir, with the subpackages listed explicitly. The systemd units move out to /srv/astrape/deploy/systemd, outside every repository, because they describe this deployment rather than any one component. Verified both install modes: editable, which is how the deployment runs, and a plain wheel install, which is what the container build does. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
[Unit]
|
||||
Description=Astrape Web UI
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=gibil
|
||||
Group=gibil
|
||||
WorkingDirectory=/srv/astrape
|
||||
Environment=PYTHONUNBUFFERED=1
|
||||
Environment=PYTHONDONTWRITEBYTECODE=1
|
||||
# WorkingDirectory is /srv/astrape, which also holds the gibil checkout. Without
|
||||
# this, Python prepends the working directory to sys.path and the repo root
|
||||
# /srv/astrape/gibil shadows the installed package as a namespace portion --
|
||||
# gibil.__file__ becomes None and imports work only by accident. All code is
|
||||
# installed into the venv, so nothing needs the working directory on sys.path.
|
||||
Environment=PYTHONSAFEPATH=1
|
||||
|
||||
ExecStart=/srv/astrape/.venv/bin/python -m astrape_dashboard.scripts.daemons.web_daemon
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
+6
-2
@@ -9,5 +9,9 @@ description = "Astrape web frontend"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = ["gibil", "astrape-ems", "astrape-oracle"]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["astrape_dashboard*"]
|
||||
# Flat layout: this repository *is* the package. package-dir maps astrape_dashboard to the
|
||||
# repository root rather than to a nested astrape_dashboard/ directory, so the checkout is
|
||||
# astrape/astrape-dashboard and not astrape/astrape-dashboard/astrape_dashboard.
|
||||
[tool.setuptools]
|
||||
packages = ["astrape_dashboard", "astrape_dashboard.classes", "astrape_dashboard.classes.displays", "astrape_dashboard.scripts", "astrape_dashboard.scripts.daemons", "astrape_dashboard.scripts.debug"]
|
||||
package-dir = {"astrape_dashboard" = "."}
|
||||
|
||||
Reference in New Issue
Block a user