diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 08dd3d2..2483ef7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -25,7 +25,7 @@ Nepotřebné body můžeš smazat. Komentáře () se v PR nezobrazuj ## Kontrolní seznam - [ ] Změny jsou v souladu se stylem projektu (viz `AGENTS.md`) -- [ ] Při změně funkcí povýšena verze v `amcr_viewer/metadata.txt` a doplněn `changelog` +- [ ] Při změně funkcí povýšena verze v `amcr_viewer/metadata.txt` (+ `changelog`) a v `CITATION.cff` (`version`, `date-released`) - [ ] Otestováno v QGIS (min. podporovaná verze 3.44) - [ ] PR míří do správné cílové větve - [ ] Větev odpovídá konvenci (`feat/ fix/ docs/ chore/`, AI `agents//`) diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml index dfd7e9a..7a668e9 100644 --- a/.github/workflows/code_quality.yml +++ b/.github/workflows/code_quality.yml @@ -147,6 +147,21 @@ jobs: - name: Zip plugin run: zip -r amcr_viewer.zip amcr_viewer -x "*.git*" + # Verze v CITATION.cff se povyšuje ručně spolu s metadata.txt a snadno + # se zapomene – tag by pak nesl v citaci jinou verzi než plugin + - name: Verify CITATION.cff version + run: | + plugin=$(sed -n 's/^version=//p' amcr_viewer/metadata.txt \ + | tr -d "\r\"' ") + citace=$(sed -n 's/^version://p' CITATION.cff \ + | tr -d "\r\"' ") + echo "metadata.txt: '$plugin', CITATION.cff: '$citace'" + if [ -z "$plugin" ] || [ "$plugin" != "$citace" ]; then + echo "::error file=CITATION.cff::verze '$citace' neodpovídá" \ + "metadata.txt ('$plugin')" + exit 1 + fi + # Kontrola obsahu ZIPu. Config soubory pro scanner musí být uvnitř # vedle metadata.txt, jinak je plugins.qgis.org nenajde – a některé # nástroje skryté soubory tiše vynechávají. diff --git a/AGENTS.md b/AGENTS.md index fa12dcd..8fb225b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -140,6 +140,9 @@ flatpak run --command=sh org.qgis.qgis -c \ - Verze pluginu žije v **`amcr_viewer/metadata.txt`** (`version=`). - **Při každé změně chování / nové funkci** povyš verzi a doplň položku do `changelog=` v `metadata.txt` (formát `vX.Y.Z (RRRR-MM-DD)` + odrážky). +- Současně povyš i **`CITATION.cff`** v kořeni repozitáře: `version:` na + stejnou verzi jako v `metadata.txt` a `date-released:` na datum releasu. + Oba soubory musí mít stejnou verzi, než se založí tag. - Datum v changelogu ber z **deterministického zdroje**, ne z paměti, např. `python -c "import datetime; print(datetime.date.today().isoformat())"`. - Release se spouští **pushnutím tagu `vX.Y.Z`**, ne publikací releasu @@ -189,7 +192,7 @@ tohle: | **Lint a bezpečnost** | `check_sources.py`, bandit, detect-secrets, flake8, ruff | | **Kompatibilita s Qt6** | `pyqgis4-checker` v dockeru | | **Smoke test** | `smoke_test.py` v `qgis/qgis:ltr` i `qgis/qgis:stable` | -| **Balíček pluginu** | sestaví ZIP, ověří obsah, přiloží jako artefakt | +| **Balíček pluginu** | ověří shodu verze v `CITATION.cff` a `metadata.txt`, sestaví ZIP, ověří obsah, přiloží jako artefakt | Smoke test běží v obou podporovaných řadách: `ltr` je QGIS 3.44 na Qt5, `stable` je QGIS 4.x na Qt6.