Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask, šablony i styly. Nic se neinstaluje.
Kam s databází
Doteď to bylo dice.db v pracovním adresáři, což se u binárky rozpadá — ta se rozbaluje do dočasného adresáře a pouští se odkudkoli, takže by se databáze rozsypala po disku podle toho, kde zrovna stojíš.
Spuštěno
Databáze
binárkou
~/.local/share/kostky/dice.db
ze zdrojáků
dice.db v pracovním adresáři, jako dosud
DICE_DB přebije obojí. Server cestu navíc vypisuje při startu, ať se na ni nemusí ptát.
Stavba
./build.sh staví v kontejneru na AlmaLinux 8, ne na hostiteli. Fedora 44 má glibc 2.43 a glibc drží zpětnou kompatibilitu, ne dopřednou — binárka postavená tady by nešla spustit nikde se starším systémem. Proti 2.28 jede na RHEL 8, Debianu 10, Ubuntu 20.04 a novějších. Výsledek má 11 MB.
Release
.gitea/workflows/binarka.yml na runneru homelab: postaví binárku, projede testy, zkusí ji nastartovat a proklikat /, /board i statiku, a na otagovaném commitu ji pověsí na release jako kostky-linux-x86_64. Nad pull requesty běží totéž bez posledního kroku, takže rozbitá stavba se pozná dřív než na tagu. Opakovaný build starou přílohu stejného jména nahradí.
Záměrně bez hotových akcí z marketplace — odpadá tím starost, jestli je v kontejneru node.
Ověřeno
84 testů prochází, z toho 4 nové na umístění databáze
odehraná hra do vítězství přímo z binárky; v databázi na správném místě sedí dohráno i winner_id
/, /board s QR kódem, /board/1/panel, /stats, /static/style.css — vše 200
CLI beze změny
Windows a macOS zatím ne — PyInstaller musí stavět na cílovém systému.
Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask, šablony i styly. Nic se neinstaluje.
## Kam s databází
Doteď to bylo `dice.db` v pracovním adresáři, což se u binárky rozpadá — ta se rozbaluje do dočasného adresáře a pouští se odkudkoli, takže by se databáze rozsypala po disku podle toho, kde zrovna stojíš.
| Spuštěno | Databáze |
|---|---|
| binárkou | `~/.local/share/kostky/dice.db` |
| ze zdrojáků | `dice.db` v pracovním adresáři, jako dosud |
`DICE_DB` přebije obojí. Server cestu navíc vypisuje při startu, ať se na ni nemusí ptát.
## Stavba
`./build.sh` staví **v kontejneru na AlmaLinux 8**, ne na hostiteli. Fedora 44 má glibc 2.43 a glibc drží zpětnou kompatibilitu, ne dopřednou — binárka postavená tady by nešla spustit nikde se starším systémem. Proti 2.28 jede na RHEL 8, Debianu 10, Ubuntu 20.04 a novějších. Výsledek má 11 MB.
## Release
`.gitea/workflows/binarka.yml` na runneru `homelab`: postaví binárku, projede testy, zkusí ji nastartovat a proklikat `/`, `/board` i statiku, a na otagovaném commitu ji pověsí na release jako `kostky-linux-x86_64`. Nad pull requesty běží totéž bez posledního kroku, takže rozbitá stavba se pozná dřív než na tagu. Opakovaný build starou přílohu stejného jména nahradí.
Záměrně bez hotových akcí z marketplace — odpadá tím starost, jestli je v kontejneru node.
## Ověřeno
- 84 testů prochází, z toho 4 nové na umístění databáze
- odehraná hra do vítězství přímo z binárky; v databázi na správném místě sedí `dohráno` i `winner_id`
- `/`, `/board` s QR kódem, `/board/1/panel`, `/stats`, `/static/style.css` — vše 200
- CLI beze změny
Windows a macOS zatím ne — PyInstaller musí stavět na cílovém systému.
Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask,
šablony i styly. Staví se ./build.sh v kontejneru na AlmaLinux 8, protože
binárka slinkovaná proti glibc z Fedory 44 by nešla spustit nikde se
starším systémem.
Databáze tím dostává dvě různá místa. Ze zdrojáků zůstává dice.db
v pracovním adresáři, ať se dá mít víc sad vedle sebe. Z binárky jde do
~/.local/share/kostky/ — binárka se rozbaluje do dočasného adresáře
a pouští se odkudkoli, takže relativní cesta by databázi rozsypala po
disku. DICE_DB přebije obojí.
Server teď cestu k databázi vypisuje při startu, ať se na ni nemusí ptát.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Otagovaný commit postaví binárku na runneru, projede testy, zkusí ji
nastartovat a pověsí ji na release. Nad pull requesty běží totéž bez
posledního kroku, ať se rozbitá stavba pozná dřív než na tagu.
Staví se v kontejneru na AlmaLinux 8 ze stejného důvodu jako build.sh —
kvůli glibc. Záměrně bez hotových akcí z marketplace: na vlastním runneru
tím odpadá starost, jestli je v kontejneru node.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Runner běží v host módu, bez dockeru, takže se v něm kontejner na AlmaLinux
spustit nedá. Ukázalo se ale, že kontejner potřeba není: stačí stavět proti
samostatnému CPythonu od uv. Ten je slinkovaný s glibc 2.17 a nic
z hostitele se do binárky nedostane — změřeno objdumpem přes všechno, co
se z ní rozbaluje. Výsledek je tedy přenositelnější než přes AlmaLinux 8
(2.28) a build.sh je o polovinu kratší.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PyInstaller hledá objdumpem, na kterých knihovnách binárka visí. Runner
v host módu ho nemá — je to jediné, co musí být na hostiteli, zbytek si
obstará uv.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Matice Python 3.11 až 3.14 — u projektu, který deklaruje >=3.11, se hodí
vědět, že to na všech čtyřech opravdu jede. Pythony obstará uv, na
hostiteli nemusí být žádný.
K pytestu ještě skriptovaná partie v terminálové verzi. Pytest sahá na
core.py, prompty v dice.py nikdo netestoval; tohle projde dvě nuly, třetí
s vynulováním a výhru tak, jak to odehraje člověk.
Runner sdílí pracovní adresář mezi variantami matice, proto max-parallel 1.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask, šablony i styly. Nic se neinstaluje.
Kam s databází
Doteď to bylo
dice.dbv pracovním adresáři, což se u binárky rozpadá — ta se rozbaluje do dočasného adresáře a pouští se odkudkoli, takže by se databáze rozsypala po disku podle toho, kde zrovna stojíš.~/.local/share/kostky/dice.dbdice.dbv pracovním adresáři, jako dosudDICE_DBpřebije obojí. Server cestu navíc vypisuje při startu, ať se na ni nemusí ptát.Stavba
./build.shstaví v kontejneru na AlmaLinux 8, ne na hostiteli. Fedora 44 má glibc 2.43 a glibc drží zpětnou kompatibilitu, ne dopřednou — binárka postavená tady by nešla spustit nikde se starším systémem. Proti 2.28 jede na RHEL 8, Debianu 10, Ubuntu 20.04 a novějších. Výsledek má 11 MB.Release
.gitea/workflows/binarka.ymlna runneruhomelab: postaví binárku, projede testy, zkusí ji nastartovat a proklikat/,/boardi statiku, a na otagovaném commitu ji pověsí na release jakokostky-linux-x86_64. Nad pull requesty běží totéž bez posledního kroku, takže rozbitá stavba se pozná dřív než na tagu. Opakovaný build starou přílohu stejného jména nahradí.Záměrně bez hotových akcí z marketplace — odpadá tím starost, jestli je v kontejneru node.
Ověřeno
dohránoiwinner_id/,/boards QR kódem,/board/1/panel,/stats,/static/style.css— vše 200Windows a macOS zatím ne — PyInstaller musí stavět na cílovém systému.