• v2.12.0 f0567ac5f7

    v2.12.0
    All checks were successful
    Auto Release on version bump / release (push) Successful in 8s
    Stable

    Ghost released this 2026-09-26 17:08:49 +02:00 | 7 commits to main since this release

    Added

    • I plugin gestiti che sono anche nella directory di WordPress.org vengono restituiti a WordPress: scheda "Visualizza dettagli" e aggiornamenti arrivano da lì. Il rilevamento legge il transient update_plugins che il core riempie con la risposta di api.wordpress.org: una voce con id = w.org/plugins/<slug> indica un plugin della directory. Nessuna chiamata in più per i plugin che non ci sono.
    • Verifica contro le omonimie: WordPress.org abbina i plugin solo per slug, quindi l'updater si fa da parte solo se i Contributors: del readme.txt installato hanno almeno un nome in comune con i contributors dell'API plugins/info/1.2. Esito in cache una settimana (eg_fu_wporg_*), 5 minuti in caso di errore.
    • Interruttore per plugin nella tabella admin, Usa Forgejo / Automatico, salvato nell'option eg_forgejo_updater_channels. Serve per provare su un sito una versione presente su Forgejo e non ancora su WordPress.org.
    • Stati nuovi in tabella: in Stato "Slug occupato su WordPress.org" (rosso) e "Verifica WordPress.org non riuscita" (giallo).

    Changed

    • La colonna Sorgente mostra il canale di aggiornamento, Forgejo o WordPress.org, invece del modo di registrazione (auto/forgejo), che passa nel tooltip e continua a decidere il pulsante "Rimuovi". Mescolare le due cose rendeva ambiguo auto accanto a wordpress.org, e dopo "Usa Forgejo" la colonna tornava a auto.
    • Per i plugin passati alla directory la colonna Repository punta a wordpress.org/plugins/<slug>; il link Forgejo nell'elenco plugin di WordPress resta, come accesso al sorgente.
    • Il pulsante del canale sta sempre su una riga propria: come form inline andava a capo accanto a wordpress.org e restava in riga accanto a auto.
    • La colonna Stato non è più vuota: ✓ Aggiornato, il pulsante Aggiorna, gli avvisi, e con il canale forzato la versione pubblicata su WordPress.org ("Su WordPress.org: 1.15.9"), per vedere se la directory è avanti o indietro rispetto a Forgejo.
    • readme.txt: la sezione External services dichiara la chiamata ad api.wordpress.org.

    Fixed

    • Con la versione Forgejo pari a quella installata, inject_updates() faceva unset() anche dell'eventuale offerta di WordPress.org per lo stesso plugin. Ora per un plugin gestito da Forgejo le offerte di WordPress.org vengono tolte sempre, anche quando Forgejo non risponde (prima un'offerta di un omonimo sarebbe passata).

    Why

    • Con eg-social-timeline pubblicato su WordPress.org, la scheda costruita dall'updater non aveva screenshot, banner, icone né last_updated/active_installs/rating, mostrava la tab "Upgrade Notice" e passava tested dal readme (7.1), da cui l'avviso "not tested with your current version" su WordPress 7.1.x. E i siti aggiornavano da Forgejo invece che dal canale con cui il plugin arriva a tutti gli altri.

    Verified

    • Simulazione in produzione con la classe nuova caricata sotto altro nome (wp eval-file): 13 plugin gestiti, solo eg-social-timeline passa a WordPress.org (1.15.9); plugin_info restituisce il risultato intatto. Su un transient costruito ad arte: offerta di WordPress.org conservata per il plugin delegato, omonimo (akismet) respinto con stato mismatch, slug inesistente → unverified e plugin rimasto su Forgejo; canale forzato → scheda Forgejo.
    • make-pot, msgfmt --check (87 tradotte, 3 non tradotte ammesse), caricamento reale del .mo.
    • Plugin Check sul pacchetto: solo l'ERROR atteso plugin_updater_detected.
    • Tabella renderizzata in produzione con le classi di prova: canale automatico → WordPress.org, link alla directory, ✓ Up to date; canale forzato → Forgejo, link al repo, "On WordPress.org: 1.15.9".
    • Provata sullo stage dall'utente.

    Downloads