docs(readme): CHANGELOG.md als SSOT, readme.txt wird auto-gefüllt

This commit is contained in:
2026-04-24 12:18:05 +00:00
parent 54effe0fbe
commit 862612fb37
+29 -6
View File
@@ -8,7 +8,7 @@ Dieses Repo ist die Heimat für **geteilte CI-Bausteine**, die von anderen IDF-R
Aktuell enthalten: Aktuell enthalten:
- `.gitea/workflows/release-plugin.yml` — Reusable Workflow für WordPress-Plugin-Releases. Bei Tag-Push (`v*.*.*`) prüft er Versions-Konsistenz über alle vier Sync-Stellen, extrahiert den Changelog-Block aus `readme.txt`, baut das ZIP und legt einen Gitea-Release mit ZIP-Asset an. - `.gitea/workflows/release-plugin.yml` — Reusable Workflow für WordPress-Plugin-Releases. Bei Tag-Push (`v*.*.*`) prüft er Versions-Konsistenz über vier Sync-Stellen, extrahiert den Changelog-Block aus `CHANGELOG.md`, generiert daraus die `== Changelog ==`-Section in `readme.txt`, baut das ZIP und legt einen Gitea-Release mit ZIP-Asset an.
Geplant: Geplant:
@@ -45,27 +45,50 @@ Damit der Reusable Workflow durchläuft, müssen im Plugin-Repo vorhanden sein:
2. **Versions-Konstante** in einer beliebigen PHP-Datei: 2. **Versions-Konstante** in einer beliebigen PHP-Datei:
`define('IDF_<UPPER_SLUG_OHNE_IDF_>_VERSION', 'X.Y.Z');` `define('IDF_<UPPER_SLUG_OHNE_IDF_>_VERSION', 'X.Y.Z');`
Beispiel: `idf-login-branding``IDF_LOGIN_BRANDING_VERSION`. Beispiel: `idf-login-branding``IDF_LOGIN_BRANDING_VERSION`.
3. **`readme.txt`** im Repo-Root im WordPress-Plugin-Format mit mindestens: 3. **`readme.txt`** im Repo-Root im WordPress-Plugin-Format mit mindestens den Metadaten:
``` ```
=== Plugin Name === === Plugin Name ===
Contributors: ideenfabrik
Tags: …
Requires at least: 6.0 Requires at least: 6.0
Tested up to: 6.4 Tested up to: 6.4
Requires PHP: 7.4 Requires PHP: 7.4
Stable tag: 1.2.3 Stable tag: 1.2.3
License: GPLv2 or later
== Description == == Description ==
== Changelog == == Changelog ==
(wird beim Release automatisch aus CHANGELOG.md gefüllt)
```
4. **`CHANGELOG.md`** im Repo-Root mit einem Block für jede Version:
```markdown
# Changelog
= 1.2.3 = ## v1.2.3 — 2026-04-23
* Neu: Feature xyz
* Fix: Bug abc ### Neu
- …
### Gefixt
- …
---
## v1.2.2 — 2026-04-10
``` ```
Alle vier Versionen (Tag, Plugin-Header, PHP-Konstante, `Stable tag:`) müssen identisch sein. Der Pre-Flight-Check im Reusable bricht sonst ab. Alle vier Versionen (Tag, Plugin-Header, PHP-Konstante, `Stable tag:`) müssen identisch sein. Der Pre-Flight-Check im Reusable bricht sonst ab.
`readme.txt` ist die **einzige Pflege-Stelle für den Changelog**. Master-Key parst sie später auch für den automatischen Sync der öffentlichen Plugin-CPT-Seite auf `ihre-ideenfabrik.de`. `CHANGELOG.md` wird nicht mehr gepflegt und fliegt im ZIP-Bau raus. ## Aufteilung Changelog-Pflege
- **`CHANGELOG.md`** ist die **einzige Pflege-Stelle für den Changelog** — einheitlich über alle IDF-Projekte (Software, Flow, Plugins). Du schreibst den neuen Block hier, fertig.
- **`readme.txt`** ist WP-Standard-Metadaten: Plugin-Name, Description, `Requires PHP`, `Tested up to`, `Stable tag` usw. Pflegst du manuell, aber nur diese Felder.
- Der Abschnitt `== Changelog ==` in `readme.txt` wird beim Release **von Actions automatisch generiert** — aus `CHANGELOG.md`. Manuelle Einträge in `readme.txt` unter `== Changelog ==` werden beim nächsten Release überschrieben.
So hat jedes Projekt im IDF genau einen Ort, an dem der Changelog lebt: `CHANGELOG.md`. WordPress-Plugins bekommen zusätzlich eine WP-native `readme.txt`, deren Changelog-Teil aber auto-befüllt wird.
## Versionierung dieses Repos ## Versionierung dieses Repos