Files
shopPRO/docs/UPDATE_INSTRUCTIONS.md
Jacek Pyziak db7c881d36 ver. 0.303: Fix attribute display collision + product preview button
Fix: product attributes with the same sort order value were overwriting
each other in getProductAttributes(), causing only one attribute to
display on the frontend. Now uses usort() with sequential keys.

New: Preview button in product edit form opens product page in new tab.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 15:04:51 +01:00

2.3 KiB

Instrukcja tworzenia aktualizacji shopPRO

Nowy sposób (od v0.301) — automatyczny build script

Wymagania

  • Git z tagami wersji (np. v0.299, v0.300)
  • PowerShell

Workflow

1. Pracuj normalnie: commit, push, commit, push...
2. Gdy wersja gotowa:
   → git tag v0.XXX
   → ./build-update.ps1 -ToTag v0.XXX -ChangelogEntry "NEW - opis"
3. Upload plików z updates/0.XX/ na serwer aktualizacji

Użycie build-update.ps1

# Podgląd zmian (bez tworzenia plików)
./build-update.ps1 -ToTag v0.301 -DryRun

# Budowanie paczki (auto-detect poprzedniego tagu)
./build-update.ps1 -ToTag v0.301 -ChangelogEntry "NEW - opis zmiany"

# Z jawnym tagiem źródłowym
./build-update.ps1 -FromTag v0.300 -ToTag v0.301 -ChangelogEntry "NEW - opis"

Co robi skrypt automatycznie

  1. git diff --name-status między tagami → listy dodanych/zmodyfikowanych/usuniętych plików
  2. Filtrowanie przez .updateignore (pliki deweloperskie, konfiguracyjne itp.)
  3. Kopiowanie plików do temp, tworzenie ZIP
  4. SHA256 checksum ZIP-a
  5. Generowanie ver_X.XXX_manifest.json
  6. Generowanie legacy _sql.txt i _files.txt (okres przejściowy)
  7. Aktualizacja versions.php i changelog.php
  8. Cleanup

Pliki wynikowe

  • updates/0.XX/ver_X.XXX.zip — paczka z plikami
  • updates/0.XX/ver_X.XXX_manifest.json — manifest z checksumem, listą zmian, SQL
  • updates/0.XX/ver_X.XXX_sql.txt — legacy SQL (okres przejściowy)
  • updates/0.XX/ver_X.XXX_files.txt — legacy lista plików do usunięcia (okres przejściowy)

Migracje SQL

Pliki SQL umieszczaj w migrations/{version}.sql (np. migrations/0.301.sql). Build script automatycznie je wczyta i umieści w manifeście + legacy _sql.txt.

Format manifestu

{
    "version": "0.301",
    "date": "2026-02-22",
    "checksum_zip": "sha256:abc123...",
    "files": {
        "modified": ["autoload/Domain/Order/OrderRepository.php"],
        "added": ["autoload/Domain/Order/NewHelper.php"],
        "deleted": ["autoload/shop/OldClass.php"]
    },
    "directories_deleted": [],
    "sql": ["ALTER TABLE pp_x ADD COLUMN y INT DEFAULT 0"],
    "changelog": "NEW - opis zmiany"
}

.updateignore

Plik w katalogu głównym projektu, wzorce plików wykluczonych z paczek (jak .gitignore).

INFO

pamiętaj że push czasem zwraca błąd autoryzacji, wtedy spróbuj ponownie