A template repository that comes up with a pre-defined tox setup and CI actions.
7
stars
0
forks
source link
Switch from `dev_requirements.txt` to `[project.optional-dependencies]` in `pyproject.toml` causes package itself to be installed into site-packages #237
von (ALT) einzelnen requiements.txt mit einzeln gepinnten dependencies für jede linting/test/coverage usw. umgebung
auf (NEU) eine verbliebene requirements.txt mit pinning der echten package-dependencies und vielen optional-dependencies in der pyproject.toml, die auch direkt dort gepinnt werden (und indirekte dependencies pinnen wir in den optional dependencies gar nicht mehr)
An sich ist das gut und richtig und @FreddyFox892 hat das dankenswerterweise schon auf fast alle Repos ausgerollt #228.
Jetzt hab ich leider ein Problem gefunden: Wenn ich in einem der umgestellten repos, z.b.
tox -re dev
ausführe, dann wird das paket aus dem repo selbst in die site-packages der umgebung installiert.
Hier im template-repo kann man z.b. sehen, dass <reporoot>/.tox/dev/lib/site-packages anschließend eine datei wie z.b. your_favourite_package_name-0.1.dev209+g30fc950.dist-info enthält und (z.b. bei efoli leicht testbar) teilweise auch nur your_favourite_package_name ohne das dev-suffix (hängt glaube ich daran, dass der build des dann in den site-packages installierten pakets auf die git/cvs-daten zugreift).
Dieses Verhalten ist etwas ungünstig, weil dann der pyhton-interpreter wenn man tests debuggt zumindest bei mir auf die Idee kommt, nicht den Code in src zu debuggen, sondern stattdessen die beim erstellen der tox-venv installierte version des packets in den site-packages, die ja auch noch gleich heißt wie das paket, das in src liegt. Man kann das mit pip uninstall you_favourite_package_name zurückdrehen aber schön ist das ja auch nicht.
Angeblich lässt sich das vermeiden, wenn man use_develop=true oder extras=... verwendet: https://stackoverflow.com/a/61885242/10009545 aber ich kriege es gerade nicht hin (siehe versuche in #235 )
Idee von Leon: vllt ist das gar nicht schlimm weil die ide das Paket aus den Site packages mit dem Paket im src überschreibt. Sonst mal sys path append anschauen
Wir haben in #231 umgestellt
An sich ist das gut und richtig und @FreddyFox892 hat das dankenswerterweise schon auf fast alle Repos ausgerollt #228.
Jetzt hab ich leider ein Problem gefunden: Wenn ich in einem der umgestellten repos, z.b.
ausführe, dann wird das paket aus dem repo selbst in die site-packages der umgebung installiert.
Hier im template-repo kann man z.b. sehen, dass
<reporoot>/.tox/dev/lib/site-packages
anschließend eine datei wie z.b.your_favourite_package_name-0.1.dev209+g30fc950.dist-info
enthält und (z.b. bei efoli leicht testbar) teilweise auch nuryour_favourite_package_name
ohne das dev-suffix (hängt glaube ich daran, dass der build des dann in den site-packages installierten pakets auf die git/cvs-daten zugreift).Dieses Verhalten ist etwas ungünstig, weil dann der pyhton-interpreter wenn man tests debuggt zumindest bei mir auf die Idee kommt, nicht den Code in src zu debuggen, sondern stattdessen die beim erstellen der tox-venv installierte version des packets in den site-packages, die ja auch noch gleich heißt wie das paket, das in src liegt. Man kann das mit
pip uninstall you_favourite_package_name
zurückdrehen aber schön ist das ja auch nicht.Angeblich lässt sich das vermeiden, wenn man
use_develop=true
oderextras=...
verwendet: https://stackoverflow.com/a/61885242/10009545 aber ich kriege es gerade nicht hin (siehe versuche in #235 )