Können WordPress-Plugins eigentlich mehrere Zweige unterstützen?

Im Januar habe ich mir Gedanken über Contact Form 7 und Sicherheit gemacht. Dabei ist mir vor allem aufgefallen, dass das Hochsetzen der erforderlichen WordPress-Version ein ziemliches Sicherheitsproblem darstellt. Denn die weiteren Updates des Plugins (oder Themes) werden für ältere WordPress-Versionen nun nicht mehr angezeigt. Es erscheint so, als ob das Plugin gar kein Update hat. Da nützt auch kein automatisches Update.

Die spannende Frage ist also: Was passiert eigentlich, wenn ich in meinem Plugin versuche einem älteren Zweig (mit kleinerer erforderlicher WordPress-Version) ein Update zu geben? Wird es dann an die entsprechende WordPress-Version ausgeliefert oder kann das System das nicht und liefert nur die letzte Version aus?

Wie ich das manchmal so mache, kenne ich die Antwort auf diese Frage aktuell noch gar nicht beim Schreiben. Ich befürchte dass es nicht geht. Aber starten wir unsere Reise. Wo könnte ich die Antwort dazu wohl finden? Schauen wir mal ins Plugin-Handbuch

Da gibt es eine Seite „How to use subversion“, die erklärt, wie das Plugin-Verzeichnis genutzt wird:

In Kurzform: trunk enthält die aktuellste Entwicklungsversion. Versionen werden in tags gespeichert. In assets finden sich die Screenshots, Icons und Banner. Aber es gibt noch einen weiteren Ordner:

Divergent branches of code go into branches.

Aha! Das ist doch genau das was ich suche. Doch auf die Freude folgt der Frust:

The /branches/ directory is no longer created by default, as it was largely unused. This section can be considered deprecated and is available only for informational purposes.

The /branches directory is a place that you can use to store branches of the plugin. Perhaps versions that are in development, or test code, etc.

The WordPress.org system does not use the branches directory for anything at all, it’s considered to be strictly for developers to use as they need it. As it is no longer created by default, you can ignore it as you do not need it any longer.

Es gibt ja auch nur einen Stable tag, der in der readme.txt definiert werden kann.

Stable tag should indicate the Subversion „tag“ of the latest stable version, or „trunk,“ if you use `/trunk/` for
stable.

Und dann an andere Stelle zur Erklärung des readme.txt Headers die konkrete Bestätigung:

Requires at least – Used for compatibility checking. If a plugin sets the required version to 4.4, then users on versions below 4.4 will not receive update notifications. Use this wisely.

„Use this wisely.“ ist ein Euphemismus für „!!!WARNUNG!!! DENKE SEHR GUT NACH BEVOR DU DAS ZU SCHNELL HOCHSETZT !!!WARNUNG!!!“

WordPress unterstützt im Pluginverzeichnis keine Zweige und ist nicht in der Lage ohne fremde Hilfe festzustellen, ob für eine andere WordPress-Version vielleicht ein Update vorliegen würde.

Ich empfehle daher dringend die Plugins manuell zu kontrollieren oder über ein Plugin zu testen.

Plugin Report zeigt die erforderliche Info seit Version 1.6:

Plugin Report

Kennst du noch mehr Plugins, die zeigen, ob ein Update möglich wäre, wenn die erforderliche WordPress- oder PHP-Version vorhanden wäre? Dann ab damit in die Kommentare! Gerne ergänze ich weitere Plugins. Gibt es dazu schon ein Trac-Ticket? Dann freue ich mich ebenfalls über einen Hinweis!

Update: Nach diesem Artikel habe ich weiter gefragt und es ist wohl möglich, dass das Sicherheitsteam bzw. das Plugin-Team ein „Forced Update“ machen können. Dabei werden dann auch unterschiedliche Zweige genutzt, um unterschiedliche WP-Versionen abdecken zu können. Gerade kürzlich bei Jetpack nötig geworden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.