Zamknout závislosti
Bez zamčených verzí si každá stavba stáhne to, co je zrovna nejnovější: binárka z dneška a binárka z příštího jara obsahují něco jiného a není jak zjistit co. Zároveň může vydání kterékoli knihovny rozbít build, aniž by se sáhlo na řádku kódu — a nejspíš zrovna ve chvíli, kdy se tagne release. Volné seznamy jsou nově v `.in`, zamčené v `.txt`. Rozděleno na tři: běh, testy a stavba. Pytest se tak přestane instalovat do prostředí, kde se staví binárka, a PyInstaller má konečně taky zamčenou verzi — ta na podobu výsledku sahá ze všech nejvíc. Zůstává, že se verze píšou i v hlavičce PEP 723, jinak by přestalo fungovat `uv run web.py`. Aby se ta dvě místa nerozešla, hlídá je test.
This commit is contained in:
1 parent
e0413b6adf
commit
3af8fe22ef
14 files changed
+202
-11
No files matched your search
@@ -155,10 +155,34 @@ python -m venv .venv
|
||||
Na Fedoře stačí i systémové balíčky, pak se nemusí řešit vůbec nic:
|
||||
|
||||
```bash
|
||||
sudo dnf install python3-flask python3-qrcode python3-tabulate
|
||||
sudo dnf install python3-flask python3-qrcode python3-tabulate python3-waitress
|
||||
python3 web.py
|
||||
```
|
||||
|
||||
## Závislosti
|
||||
|
||||
Verze jsou zamčené, aby binárka postavená dnes a za půl roku obsahovala
|
||||
totéž. Volné seznamy jsou v `.in`, zamčené v `.txt`:
|
||||
|
||||
| Soubor | K čemu |
|
||||
|---|---|
|
||||
| `requirements.in` → `.txt` | běh aplikace |
|
||||
| `requirements-dev.in` → `.txt` | + pytest, pro testy |
|
||||
| `requirements-build.in` → `.txt` | + PyInstaller, pro stavbu binárky |
|
||||
|
||||
Aktualizace je vědomý krok, ne vedlejší efekt toho, že něco vyšlo na PyPI:
|
||||
|
||||
```bash
|
||||
for f in requirements requirements-dev requirements-build; do
|
||||
uv pip compile "$f.in" -o "$f.txt"
|
||||
done
|
||||
```
|
||||
|
||||
Verze se píšou ještě jednou v hlavičce PEP 723 na začátku `web.py` a
|
||||
`dice.py`, aby fungovalo `uv run web.py`. Že se ty dva zápisy shodují, hlídá
|
||||
`tests/test_zavislosti.py` — po každém přegenerování je potřeba hlavičky
|
||||
srovnat.
|
||||
|
||||
## Vlastní binárka
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user