- Dodano PSR-4 autoloader do wszystkich 6 punktów wejścia - Shared\: CacheHandler, Helpers, Html, ImageManipulator, Tpl - Domain\: LanguagesRepository, SettingsRepository, UserRepository - Stare class.*.php → cienkie wrappery (kompatybilność wsteczna) - Dodano dokumentację: docs/PROJECT_STRUCTURE.md + pozostałe docs/ - Dodano CLAUDE.md z workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
73 lines
2.3 KiB
Markdown
73 lines
2.3 KiB
Markdown
# 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
|
|
|
|
```powershell
|
|
# 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
|
|
```json
|
|
{
|
|
"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 |