Sjednotit pojmenování: kostky → dice-counter #16

Closed
opened 2026-08-23 20:10:30 +02:00 by david-spacil · 3 comments
Owner

Projekt se jmenuje dice-counter, ale na většině míst vystupuje jako kostky. Vzniklo to postupně a je načase to srovnat.

Kde všude to je

Kde Dnes
binárky na releasu kostky-linux-x86_64, kostky-windows-x86_64.exe, …
PyInstaller kostky.spec, výsledek dist/kostky
systemd služba v LXC kostky.service
cesty v kontejneru /opt/kostky, /var/lib/kostky
uživatel v LXC i v Dockeru kostky
svazek a jméno kontejneru kostky-data, container_name: kostky
výchozí hostname LXC kostky
instalační skript deploy/pve-kostky.sh

Nově zavedený image gitea.spacilovi.eu/david-spacil/dice-counter už je pojmenovaný správně — proto to teď bije do očí.

Proč to není triviální

  • Jména binárek jsou součástí už vydaných releasů. Přejmenování rozbije odkazy, které někdo může mít uložené, a hlavně rozbije LXC instalátor běžícím instalacím — ten stahuje přílohu podle jména. Instalátor musí umět obojí, aspoň po dobu jednoho vydání.
  • Přejmenování systemd služby a cest znamená migraci u existujících kontejnerů, včetně přesunu databáze z /var/lib/kostky. Bez toho by lidem po update zmizela historie her.
  • V Dockeru přejmenovaný svazek znamená prázdnou databázi, pokud se data nepřenesou.

Návrh postupu

Ve dvou krocích, ne najednou:

  1. Přidat nová jména vedle starých — instalátor umí stáhnout obojí, služba se přejmenuje s migrací dat, binárky se na release pověsí pod oběma jmény.
  2. Stará jména odstranit až o vydání později, až budou instalace přemigrované.

Co do toho nepatří

Jméno image dice-counter je už zavedené správně, na to se sahat nemusí.

Projekt se jmenuje `dice-counter`, ale na většině míst vystupuje jako `kostky`. Vzniklo to postupně a je načase to srovnat. ## Kde všude to je | Kde | Dnes | |---|---| | binárky na releasu | `kostky-linux-x86_64`, `kostky-windows-x86_64.exe`, … | | PyInstaller | `kostky.spec`, výsledek `dist/kostky` | | systemd služba v LXC | `kostky.service` | | cesty v kontejneru | `/opt/kostky`, `/var/lib/kostky` | | uživatel v LXC i v Dockeru | `kostky` | | svazek a jméno kontejneru | `kostky-data`, `container_name: kostky` | | výchozí hostname LXC | `kostky` | | instalační skript | `deploy/pve-kostky.sh` | Nově zavedený image `gitea.spacilovi.eu/david-spacil/dice-counter` už je pojmenovaný správně — proto to teď bije do očí. ## Proč to není triviální - **Jména binárek jsou součástí už vydaných releasů.** Přejmenování rozbije odkazy, které někdo může mít uložené, a hlavně **rozbije LXC instalátor běžícím instalacím** — ten stahuje přílohu podle jména. Instalátor musí umět obojí, aspoň po dobu jednoho vydání. - **Přejmenování systemd služby a cest znamená migraci** u existujících kontejnerů, včetně přesunu databáze z `/var/lib/kostky`. Bez toho by lidem po `update` zmizela historie her. - **V Dockeru přejmenovaný svazek znamená prázdnou databázi**, pokud se data nepřenesou. ## Návrh postupu Ve dvou krocích, ne najednou: 1. Přidat nová jména **vedle** starých — instalátor umí stáhnout obojí, služba se přejmenuje s migrací dat, binárky se na release pověsí pod oběma jmény. 2. Stará jména odstranit až o vydání později, až budou instalace přemigrované. ## Co do toho nepatří Jméno image `dice-counter` je už zavedené správně, na to se sahat nemusí.
Author
Owner

Dockerová část je hotová v #15 — vyřešilo se to tam, protože compose se dal použít teprve od toho PR, takže svazek kostky-data zatím nikde neexistoval a nebylo co migrovat.

Hotovo:

Kde Nově
image gitea.spacilovi.eu/david-spacil/dice-counter
služba a container_name v compose dice-counter
svazek dice-counter-data
uživatel uvnitř image dice-counter (uid zůstal 1000)
pomocná jména v CI dice-counter

Zbývá LXC strana, kde přejmenování znamená migraci běžícím instalacím:

Kde Dnes
binárky na releasu kostky-linux-x86_64, kostky-windows-x86_64.exe, …
PyInstaller kostky.spec, výsledek dist/kostky
systemd služba kostky.service
cesty /opt/kostky, /var/lib/kostky
uživatel v kontejneru kostky
výchozí hostname LXC kostky
instalační skript deploy/pve-kostky.sh

Návrh postupu z původního zadání platí dál: nejdřív nová jména vedle starých, vydat, a stará odstranit až o vydání později.

Dockerová část je hotová v #15 — vyřešilo se to tam, protože compose se dal použít teprve od toho PR, takže svazek `kostky-data` zatím nikde neexistoval a nebylo co migrovat. Hotovo: | Kde | Nově | |---|---| | image | `gitea.spacilovi.eu/david-spacil/dice-counter` | | služba a `container_name` v compose | `dice-counter` | | svazek | `dice-counter-data` | | uživatel uvnitř image | `dice-counter` (uid zůstal 1000) | | pomocná jména v CI | `dice-counter` | **Zbývá LXC strana**, kde přejmenování znamená migraci běžícím instalacím: | Kde | Dnes | |---|---| | binárky na releasu | `kostky-linux-x86_64`, `kostky-windows-x86_64.exe`, … | | PyInstaller | `kostky.spec`, výsledek `dist/kostky` | | systemd služba | `kostky.service` | | cesty | `/opt/kostky`, `/var/lib/kostky` | | uživatel v kontejneru | `kostky` | | výchozí hostname LXC | `kostky` | | instalační skript | `deploy/pve-kostky.sh` | Návrh postupu z původního zadání platí dál: nejdřív nová jména vedle starých, vydat, a stará odstranit až o vydání později.
Author
Owner

LXC strana je hotová v #18 — první krok podle návrhu výše, tedy nová jména vedle starých.

Hotovo:

Kde Nově
PyInstaller dice-counter.spec, dist/dice-counter
přílohy releasu dice-counter-linux-x86_64 a spol.
služba dice-counter.service
cesty /opt/dice-counter, /var/lib/dice-counter
uživatel dice-counter
hostname LXC dice-counter
instalační skript deploy/pve-dice-counter.sh
datový adresář binárky ~/.local/share/dice-counter/ a obdoby

Co zatím drží staré instalace při životě:

  • přílohy se na release věší pod oběma jmény,
  • instalátor umí stáhnout i kostky-*, takže už vydaná vydání jdou instalovat dál,
  • deploy/pve-kostky.sh zůstává jako přesměrování — příkaz update v už založených kontejnerech chodí pro instalátor právě tam,
  • kontejnery z dřívějška se při aktualizaci přestěhují samy, včetně databáze,
  • binárka sáhne po ~/.local/share/kostky/dice.db, dokud nová databáze neexistuje.

Zbývá druhý krok: až budou instalace přemigrované, odstranit stará jména. Konkrétně jde o STARY_ASSET v obou workflow s binárkami, STARY_* a záložní jméno přílohy v deploy/pve-dice-counter.sh, celý soubor deploy/pve-kostky.sh, STARY_APP_DIR v storage.py a odpovídající odstavce v README. Všechna ta místa jsou v kódu označená komentářem „do vydání 1.2.x".

Mimochodem se přitom našla chyba, která tu byla už předtím: příkaz update uvnitř kontejneru spadl na install: are the same file, protože instalátor kopíroval sám sebe na místo, odkud byl spuštěný. Podrobnosti v #18.

LXC strana je hotová v #18 — první krok podle návrhu výše, tedy nová jména vedle starých. Hotovo: | Kde | Nově | |---|---| | PyInstaller | `dice-counter.spec`, `dist/dice-counter` | | přílohy releasu | `dice-counter-linux-x86_64` a spol. | | služba | `dice-counter.service` | | cesty | `/opt/dice-counter`, `/var/lib/dice-counter` | | uživatel | `dice-counter` | | hostname LXC | `dice-counter` | | instalační skript | `deploy/pve-dice-counter.sh` | | datový adresář binárky | `~/.local/share/dice-counter/` a obdoby | Co zatím drží staré instalace při životě: - přílohy se na release věší pod oběma jmény, - instalátor umí stáhnout i `kostky-*`, takže už vydaná vydání jdou instalovat dál, - `deploy/pve-kostky.sh` zůstává jako přesměrování — příkaz `update` v už založených kontejnerech chodí pro instalátor právě tam, - kontejnery z dřívějška se při aktualizaci přestěhují samy, včetně databáze, - binárka sáhne po `~/.local/share/kostky/dice.db`, dokud nová databáze neexistuje. **Zbývá druhý krok:** až budou instalace přemigrované, odstranit stará jména. Konkrétně jde o `STARY_ASSET` v obou workflow s binárkami, `STARY_*` a záložní jméno přílohy v `deploy/pve-dice-counter.sh`, celý soubor `deploy/pve-kostky.sh`, `STARY_APP_DIR` v `storage.py` a odpovídající odstavce v README. Všechna ta místa jsou v kódu označená komentářem „do vydání 1.2.x". Mimochodem se přitom našla chyba, která tu byla už předtím: příkaz `update` uvnitř kontejneru spadl na `install: are the same file`, protože instalátor kopíroval sám sebe na místo, odkud byl spuštěný. Podrobnosti v #18.
Author
Owner

Hotovo. #18 je smergované a kontejner doma je přemigrovaný — update proběhl ostře, včetně přesunu databáze.

Přejmenované je všechno z tabulky v zadání: dice-counter.spec a dist/dice-counter, přílohy releasu, dice-counter.service, /opt/dice-counter a /var/lib/dice-counter, uživatel, hostname LXC, deploy/pve-dice-counter.sh, datový adresář binárky, a appka se hlásí dice-counter <verze> v banneru i v patičce.

Schválně zůstalo <title>Kostky</title> — je to titulek stránky v české aplikaci, ne identifikátor.

Návrh postupu se dodržel: nová jména se zavedla vedle starých, ne místo nich. Odstranění těch starých je druhý krok a má vlastní issue #19, včetně seznamu míst a podmínky, kdy každé z nich smí padnout. Nejcitlivější je deploy/pve-kostky.sh — kontejnery z doby před přejmenováním si přes něj chodí pro instalátor.

Mimochodem se přitom našla a opravila chyba, která tu byla už od #14: příkaz update uvnitř kontejneru padal na install: are the same file, protože instalátor kopíroval sám sebe na místo, odkud byl spuštěný. Nevšimli jsme si toho, protože aktualizace se do teď pouštěla jen z uzlu Proxmoxu.

Zavírám.

Hotovo. #18 je smergované a kontejner doma je přemigrovaný — `update` proběhl ostře, včetně přesunu databáze. Přejmenované je všechno z tabulky v zadání: `dice-counter.spec` a `dist/dice-counter`, přílohy releasu, `dice-counter.service`, `/opt/dice-counter` a `/var/lib/dice-counter`, uživatel, hostname LXC, `deploy/pve-dice-counter.sh`, datový adresář binárky, a appka se hlásí `dice-counter <verze>` v banneru i v patičce. Schválně zůstalo `<title>Kostky</title>` — je to titulek stránky v české aplikaci, ne identifikátor. Návrh postupu se dodržel: nová jména se zavedla vedle starých, ne místo nich. Odstranění těch starých je druhý krok a má vlastní issue **#19**, včetně seznamu míst a podmínky, kdy každé z nich smí padnout. Nejcitlivější je `deploy/pve-kostky.sh` — kontejnery z doby před přejmenováním si přes něj chodí pro instalátor. Mimochodem se přitom našla a opravila chyba, která tu byla už od #14: příkaz `update` uvnitř kontejneru padal na `install: are the same file`, protože instalátor kopíroval sám sebe na místo, odkud byl spuštěný. Nevšimli jsme si toho, protože aktualizace se do teď pouštěla jen z uzlu Proxmoxu. Zavírám.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: david-spacil/dice-counter#16