ci: add workflow_dispatch and remove broken re-install step#93
Merged
Conversation
Copilot
AI
changed the title
[WIP] Remove pyproject.toml to revert to requirements files
chore: Replace pyproject.toml with requirements.txt for proper Docker layer caching
Mar 21, 2026
jancwe
approved these changes
Mar 21, 2026
fd3bf93 to
aaed58b
Compare
jancwe
approved these changes
Mar 22, 2026
jancwe
approved these changes
Mar 22, 2026
Copilot
AI
changed the title
chore: Replace pyproject.toml with requirements.txt for proper Docker layer caching
ci: add workflow_dispatch and remove broken re-install step
Mar 22, 2026
because tomls are for libraries and have downsides for applications, a for example but not only because of proper Docker layer caching Co-authored-by: jancwe <83763512+jancwe@users.noreply.github.com> Agent-Logs-Url: https://github.com/jancwe/formflow/sessions/26c5eb2f-39d8-4579-8725-c1e649cbe845 ci: add workflow_dispatch trigger and remove leftover re-install step Co-authored-by: jancwe <83763512+jancwe@users.noreply.github.com> Agent-Logs-Url: https://github.com/jancwe/formflow/sessions/774e8b60-6ab0-42f9-8f69-8e185f7fd66f
a01c19a to
71f7846
Compare
jancwe
approved these changes
Mar 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
After retargeting the PR from the orphaned
developbranch tomain, the CI was stuck in "expected" state with no way to manually re-trigger it.Changes
workflow_dispatchtrigger added — CI can now be triggered manually from the Actions UI, independent of branch eventspip install --force-reinstall --no-deps ".[dev]"on cache hits, which would fail on every cached run now thatpyproject.tomlis goneOriginal prompt
Hintergrund
Das Projekt wurde irgendwann von
requirements.txtaufpyproject.tomlmit setuptools umgestellt, um dev- und production-Dependencies zusammenzuführen. Das hat das Projekt de facto von einer Python-Anwendung zu einer Python-Bibliothek gemacht. Die Konsequenz: Im Dockerfile musspip install .verwendet werden, was ein Wheel baut und den gesamten Quellcode insite-packagesinstalliert. Das macht Docker-Layer-Caching unmöglich, weil jede Code-Änderung denpip install-Layer invalidiert und alle Dependencies neu installiert werden.Ziel
Die
pyproject.tomlvollständig durchrequirements.txt(Produktion) undrequirements-dev.txt(Entwicklung/Tests) ersetzen. Das Projekt soll als Python-Anwendung behandelt werden, nicht als Bibliothek.Konkrete Änderungen
1.
pyproject.toml→ LÖSCHENDie Datei komplett entfernen. Aktueller Inhalt zur Referenz:
2.
requirements.txt→ NEU ERSTELLENProduktions-Dependencies (exakt die gleichen Versionen wie bisher in pyproject.toml):
3.
requirements-dev.txt→ NEU ERSTELLENDev-Dependencies, die die Produktions-Dependencies einschließen:
4.
Dockerfile→ ÜBERARBEITENAktuelles Dockerfile:
Neues Dockerfile soll folgende Struktur haben:
COPY requirements.txt .+RUN pip install --no-cache-dir -r requirements.txt– ändert sich nur bei Dependency-UpdatesCOPY src/ src/+COPY app.py .– Anwendungscode, ändert sich häufig aber nur dieser Layer wird invalidiertENV PYTHONPATH=/app/srcstattpip install .– Python findet dasformflow-Paket über PYTHONPATHRUN mkdir -p /app/static && cp -r src/formflow/static/. /app/static//data-Verzeichnisse:RUN mkdir -p /data/forms /data/pdf_templatesCOPY . .mehr – nur gezielt kopieren was gebraucht wird (requirements.txt,src/,app.py,forms/)5.
.github/workflows/ci.yml→ ÜBERARBEITENAktueller CI-Workflow: