docs(readme): CHANGELOG.md als SSOT, readme.txt wird auto-gefüllt
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user