Aeolitus / Sephrasto

Ein Charaktergenerator für das DSA-Hausregelsystem Ilaris. Starte einfach die Sephrasto.py und leg los!
MIT License
23 stars 13 forks source link

Add poetry file for package installation. #55

Closed dbuse closed 2 years ago

dbuse commented 2 years ago

Just run poetry install and poetry run python Sephrasto.py. Done.

Should streamline the tracking of dependencies easier. Especially with different versions of Python.

Also allows building packages to push to pypi.org and the likes. This would open up a path towards to just pip install sephrasto.

dbuse commented 2 years ago

Sieht so aus als war poetry schon einmal Teil von #49. Allerdings waren da ja noch bedeutend mehr Änderungen drin.

Hier geht es erst einmal nur darum, dependency tracking aufzubauen und einen Pfad zum Bau von Distributions für pypi.org anzulegen. Dafür muss dann zwar noch mehr passieren, aber ein PR nach dem anderen :-)

Als proof of concept aber schon mal dies hier:

--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,6 +4,12 @@ version = "1.5.2"
 description = "Ein Charaktergenerator für das DSA-Hausregelsystem Ilaris."
 authors = ["Aeolitus", "brzGatsu"]
 license = "MIT License"
+packages = [
+       { include = "*.py" }
+]
+
+[tool.poetry.scripts]
+sephrasto = 'Sephrasto:MainWindowWrapper'

 [tool.poetry.dependencies]
 python = "^3.7"

So ließe sich mit dem aktuellen Verzeichnislayout eine Distribution bauen (wheel oder sdist), die via pip install installiert und dann einfach als sephrasto ausgeführt werden kann. Allerdings landen so alle Dateien direkt im lib/python3.7/site-packages Verzeichnis und könnten da leicht kollidieren. Für die Zukunft wäre es IMHO also sinnvoll, den gesamten Code in ein sephrasto- oder src/sephrasto-Verzeichnis zu verschieben.

brzGatsu commented 2 years ago

Dank dir.

dbuse commented 2 years ago
  • Ich hab vor ein paar commits die requirements.txt angepasst, da könntest du die aktuellen Paket-Versionen übernehmen. Ich kenne mich nicht gut genug aus, löst dieses file die requirements.txt ab, kann die dann gelöscht werden?

Mache ich (morgen oder so).

Ja, die pyproject.toml und von poetry daraus generierte poetry.lock-Datei ersetzen die setup.py (in der Installations-Depencenies gelistet werden) und die requirements.txt (in der präzise auf einzelne Versionen gepinnte Development-Dependencies gelistet werden). Vermutlich wäre es auch sinnvoll die poetry.lock ebenfalls zu committen.

  • fdfgen wird nicht als Paket benötigt, das ist bei uns im src drin.

Alles klar, dann kommt das auch raus.

  • Kann man die Sephrasto-Version irgendwie aus Version.py einbinden um den Maintenance-Aufwand klein zu halten?

Ohne scripting wird das schwierig. Üblicherweise verwende ich dafür tools wie z.B. bumpversion. Dann bleibt der Aufwand gering, alle Stellen werden synchron aktualisiert, und die git tags ziehen brav mit.

brzGatsu commented 2 years ago

Hi, könntest du den Konflikt noch resolven? Nicht sicher woher der kommt, das file habe ich seit 1.6 nicht angefasst \o/ Danach merge ich deine Änderung dann :-)

dbuse commented 2 years ago

Alles aktualisiert und den mittleren commit gesquashed.