Konsistenz mit Software und Flow: CHANGELOG.md ist einziger Pflege-Ort für den Changelog über alle IDF-Projekte hinweg. readme.txt bleibt als WP-Standard-Datei erhalten (Plugin-Metadaten, Stable tag), der Abschnitt == Changelog == wird beim ZIP-Bau aus CHANGELOG.md generiert und im ZIP mitgeliefert. Pre-Flight prüft weiter 4 Sync-Stellen inkl. Stable tag. CHANGELOG.md und readme.txt sind beide Pflichtdateien im Repo.
idf-ci
Zentrale CI-Bausteine für IDF-Repos.
Zweck
Dieses Repo ist die Heimat für geteilte CI-Bausteine, die von anderen IDF-Repos per uses: eingebunden werden. Vorteil: Eine Änderung an einer Stelle wirkt in allen nutzenden Repos — kein 26-facher Copy-Paste-Pflegeaufwand.
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 ausreadme.txt, baut das ZIP und legt einen Gitea-Release mit ZIP-Asset an.
Geplant:
lint-php.yml— PHPCS / PHPStan für Plugin-Repos.composer/— geteiltecomposer.json-Snippets.scripts/— Shell-Helfer für lokales Build und Release.
Nutzung im Plugin-Repo
In jedem Plugin-Repo (ideenfabrik/idf-<slug>) liegt ein schlanker Caller-Workflow, der den Reusable aufruft:
# .gitea/workflows/release.yml
name: Release
on:
push:
tags: ['v*.*.*']
jobs:
release:
uses: ideenfabrik/idf-ci/.gitea/workflows/release-plugin.yml@v1
with:
slug: idf-<plugin-slug>
secrets: inherit
Für die Anwendung reicht git tag v1.2.3 && git push --tags. Alles andere macht der Reusable Workflow. Details und Fehlerdiagnose im Caller-Template.
Pflichtdateien im Plugin-Repo
Damit der Reusable Workflow durchläuft, müssen im Plugin-Repo vorhanden sein:
<slug>.php— Plugin-Haupt-PHP mit WordPress-Plugin-Header inklusive ZeileVersion: X.Y.Z.- Versions-Konstante in einer beliebigen PHP-Datei:
define('IDF_<UPPER_SLUG_OHNE_IDF_>_VERSION', 'X.Y.Z');Beispiel:idf-login-branding→IDF_LOGIN_BRANDING_VERSION. readme.txtim Repo-Root im WordPress-Plugin-Format mit mindestens:=== Plugin Name === Requires at least: 6.0 Tested up to: 6.4 Requires PHP: 7.4 Stable tag: 1.2.3 == Description == … == Changelog == = 1.2.3 = * Neu: Feature xyz * Fix: Bug abc
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.
Versionierung dieses Repos
Die Reusable Workflows selbst sind per SemVer-Tag versioniert (v1, v1.2, v1.2.3). Plugin-Repos referenzieren einen dieser Tags. Empfehlung:
- Major-Tag (
@v1) — rolling, nimmt automatisch Patches und Minors mit. - Minor-Tag (
@v1.2) — nimmt nur Patches mit. - Exakt (
@v1.2.3) — einfriert auf genau diese Version.
Breaking Changes am Workflow → neuer Major-Tag, nutzende Repos müssen manuell nachziehen.
Dokumentation
Konzeptionelle Grundlagen und der Plugin-Release-Workflow liegen in Notion: