Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency management & tooling #123

Closed
tumidi opened this issue Sep 26, 2024 · 1 comment
Closed

Dependency management & tooling #123

tumidi opened this issue Sep 26, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@tumidi
Copy link
Contributor

tumidi commented Sep 26, 2024

Aktuell gibt es Dependency-Probleme nach questionpy-org/questionpy-server@6cbed31, die dazu führen dass nichts mehr funktioniert.

Außerdem unabhängige Updates der ruff_defaults.conf hier, sowie da und dort.


Wir sollten bei der Entwicklung darauf achten, dass nach einem Push oder PR merge immer alle Dependencies & Tooling config synchron sind zwischen SDK und Server.

Dependencies

Dafür gibt es den Befehl poe venv:install in qpy-dev. Der Befehl installiert ein einzelnes Virtual Env aus der Summe aller Abhängigkeiten aller relevanten Projekte und erspart es einem Dependencies manuell vergleichen zu müssen.

Insbesondere failt dieser Befehl, wenn es keinen gültigen Abhängigkeitsbaum für alle Projekte gibt.

Tooling

Das hört leider bei den Dependencies nicht auf, sondern auch die Konfiguration vom Tooling sollte synchronisiert werden. Um das zu erleichtern gibt es für Ruff eine ruff_defaults.toml, die in qpy-dev lebt. Wer möchte kann diese auch per poe config:ruff automatisch synchronisieren.

Diese Datei ist quasi eine Poor-man's-Lösung für das nicht-existierende Feature "Config-Presets" in Ruff, so wie man es von anderen Lintern wie z.B. ESLint kennt.

ruff_defaults.toml enthält die gemeinsame Basiskonfiguration aller Projekte, so dass diese nicht händisch repliziert werden muss. Projektspezifische Konfiguration kann und muss weiterhin in der pyproject.toml des jeweiligen Projekts gepflegt werden (bspw. overrides für spezifische Dateien).

Updates

Wenn Packages, insb. Tooling geupgraded werden, sollte darauf geachtet werden, dass alle Projekte zeitnah und in der richtigen Reihenfolge geupgraded werden, um Beeinträchtigungen für andere Devs zu minimieren.

ruff_defaults.toml sollte in qpy-dev gepusht werden, danach im Server, dann im SDK. poe venv:install und poe check helfen im Zweifel dabei sicherzustellen, dass alles noch läuft.

@tumidi tumidi added the bug Something isn't working label Sep 26, 2024
@tumidi
Copy link
Contributor Author

tumidi commented Oct 22, 2024

Fixed in 5ecd38a

@tumidi tumidi closed this as completed Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant