Skip to content

v5.0.6

Choose a tag to compare

@github-actions github-actions released this 30 Jul 14:22

MyÚčto 5.0.6

Nativní instalace se nově aktualizují z UI jedním tlačítkem — stejně jako
Docker. Dosud jim aplikace uměla jen vypsat příkazy k ručnímu spuštění.

Nativní aktualizace z UI

  • Aktualizace jedním tlačítkem i bez Dockeru. V Systém → Aktualizace
    klik na „Aktualizovat na vX.Y.Z" stáhne production bundle z release,
    ověří jeho SHA-256, nasadí ho přes instalaci a spustí migrace.
  • Composer, Node ani pnpm na hostu nejsou potřeba — bundle má
    api/vendor/, web/dist/, manual/generated/ i manual/manual.pdf
    už představěné. Stačí PHP CLI a práva na zápis.
  • Průběh krok za krokem — UI ukazuje, co se zrovna děje (stahování,
    ověření součtu, rozbalení, záloha, nasazení, migrace), takže dlouhý
    běh nevypadá jako zaseknutý.
  • Preflight předem řekne, jestli to půjde. Zkontroluje práva, volné
    místo, PHP CLI a zlib; když prostředí automatickou cestu neumožní
    (typicky sdílený hosting), vypíše konkrétní důvody a nabídne ruční
    postup s tímtéž bundlem.

Co aktualizace nikdy nepřepíše

cfg.php, cfg.local.php, cfg.docker.php, .env, storage/,
private/, log/, tmp/ a .git/. Soubory, které v novém bundlu
nejsou, se nemažou. Přepisované soubory se zálohují do
storage/updates/<verze>/backup/.

VERSION se přepisuje až jako poslední krok po migracích — přerušená
aktualizace se tak nikdy netváří jako dokončená.

Zotavení z chyby

  • Selhání při stahování, ověření součtu nebo rozbalení instalaci vůbec
    nezmění.
  • Selhání při nasazování souborů spustí automatický rollback ze
    zálohy.
  • Selhání migrace rollback záměrně nespouští (schéma už může být
    změněné) — výsledek se označí jako neúspěšný a odkáže na log
    storage/upgrade-<timestamp>.log.

Spolehlivost rozbalování

Rozbalování bundlu má nově vlastní implementaci místo PHP PharData.
Důvod je věcný: GNU tar dělí cesty delší než 100 znaků do ustar polí
prefix + name (takové cesty jsou v api/vendor/ běžné) a PharData
na nich selže tak, že nerozbalí vůbec nic. Nový extraktor tyto cesty
zvládá, odmítá traversal cesty, odkazy i speciální soubory a kontroluje
hlavičkové součty. Ověřeno proti reálnému bundlu — výsledný strom je
byte-identický s výstupem GNU tar.

Drobné opravy

  • Návod pro ruční aktualizaci v UI odkazoval na neexistující soubor
    myinvoice-X.Y.Z.tar.gz; správně je myucto-X.Y.Z.tar.gz.
  • Odkaz „Detaily v manuálu" na stránce Aktualizace mířil na špatnou
    kapitolu.

Instalace a aktualizace

docker pull ghcr.io/radekhulan/myucto:5.0.6

Nativní hosting: pokud už běžíš na 5.0.5, aktualizuj ručně podle § 75.6
manuálu — automatické tlačítko je součástí až této verze a funguje od
příštího vydání dál. Jinak stáhni myucto-5.0.6.tar.gz níže, ověř
kontrolní součet, rozbal přes stávající instalaci a spusť
php api/bin/migrate.php.

⚠️ Aktualizace přepisuje soubory běžící aplikace. Na produkci ji
spouštěj v klidném okně a měj aktuální zálohu databáze.

Full Changelog: v5.0.5...v5.0.6