Perché usare Plugin Check prima dell’invio alla directory
Plugin Check è uno strumento pensato per intercettare problemi comuni di codice, readme, sicurezza, internazionalizzazione, accessibilità e compatibilità prima dell’invio alla directory dei plugin di WordPress.org. Usarlo in fase pre-release aiuta a ridurre i rifiuti e i ritardi nella pubblicazione perché identifica violazioni o aree di attenzione prima che i revisori effettuino la verifica manuale. Tuttavia, superare i controlli automatici non garantisce l’approvazione: la Plugins Team esegue comunque una revisione manuale su tutti i plugin inviati.
Esempio sintetico di output (illustrativo): Plugin Check può segnalare l’assenza di prefissi corretti, l’uso di funzioni incompatibili con la versione minima dichiarata o pratiche di scrittura file nella cartella del plugin. Queste segnalazioni aiutano a indirizzare rapidamente le correzioni prima del rilascio.
Come eseguire Plugin Check: WP Admin e WP-CLI
Hai due modalità principali per eseguire i controlli:
- Interfaccia WP Admin: Strumenti > Plugin Check.
- WP-CLI: il comando
wp plugin check.
Plugin Check raggruppa i controlli in categorie e permette di selezionare quali gruppi eseguire, così da adattare l’analisi al tuo flusso.
Nota importante: via WP-CLI, per impostazione predefinita vengono eseguiti solo i controlli statici; i controlli che richiedono l’esecuzione del plugin (runtime checks) non sono attivi a meno che non venga caricato esplicitamente il codice runtime — ad esempio usando l’argomento --require per includere il file cli.php del plugin. Eseguire soltanto i controlli statici può far passare sotto silenzio problemi che emergono solo a runtime.
Esecuzioni via WP-CLI: statici vs runtime
Cosa cambia praticamente:
- Controlli statici: analizzano codice e file senza caricare WordPress o il plugin in esecuzione; sono sicuri da eseguire in CI e veloci.
- Controlli runtime: richiedono il caricamento del codice del plugin e un ambiente WordPress funzionante; individuano comportamenti che si manifestano soltanto a plugin attivo.
Esempio operativo: per avviare una sessione con runtime checks via WP-CLI, puoi usare il comando base wp plugin check e aggiungere --require=path/to/cli.php per includere il caricamento runtime del plugin. Esegui i runtime checks in un ambiente controllato per evitare effetti collaterali indesiderati.
Export dei risultati e integrazione CI/CD
Plugin Check supporta l’esportazione dei risultati in CSV, JSON e Markdown e offre output CLI adatti all’integrazione automatizzata (es. modalità strict / export), permettendo di includere i risultati nei workflow CI/CD basati su WP-CLI.
Pratica consigliata: esegui i controlli statici via WP-CLI in una job CI e salva l’export in JSON/CSV per reportistica e gating. Per i runtime checks, la limitazione è che richiedono il caricamento del codice e quindi configurazioni speciali in CI (container con WordPress, dataset di test, ecc.); nelle fonti non è disponibile una guida CI ufficiale completa per automatizzare totalmente i runtime checks, pertanto pianifica job dedicati e isolati per questi test.
Quali controlli sono obbligatori per l’approvazione nella directory
Per essere approvato nella directory dei plugin di WordPress.org è necessario superare tutti i controlli nella categoria “Plugin repo” di Plugin Check; altri controlli nello strumento possono essere opzionali. Non esiste però nella documentazione ufficiale una lista pubblica completa e dettagliata con la severità di ciascun controllo all’interno di quella categoria.
Alcuni requisiti di policy che la Review Checklist richiede e che è opportuno verificare manualmente o tramite controlli automatici includono: compatibilità con GPLv2+ (100% GPLv2+), readme valido quando richiesto, convalida/sanificazione/escape dei dati, prefissi unici per nomi globali e divieto di comportamenti “phone home” senza consenso esplicito.
Plugin Check offre controlli mirati anche alla compatibilità: ad esempio verifica l’uso di funzioni rispetto alla versione minima dichiarata del plugin e può segnalare funzioni non disponibili nella versione target. Include inoltre controlli come il “Write File” che segnala quando il plugin salva dati nella propria cartella invece che nella directory degli upload.
Procedura di rilascio consigliata (passaggi pratici prima del push su SVN)
- Preparazione locale
– Aggiorna versioni, changelog e readme secondo la policy e verifica la licenza. - Esegui Plugin Check (statico)
–wp plugin checkvia WP-CLI; salva l’export JSON/CSV per il record CI. - Esegui runtime checks (se possibile)
– Avvia job isolati con WordPress + plugin attivato e invocawp plugin check --require=path/to/cli.phpper includere i runtime checks. - Correggi errori e warning segnalati
– Prioritizza le correzioni che impattano policy critiche (licenza, sanitizzazione, prefissi). - Test funzionali e sicurezza in ambiente isolato
– Esegui test per percorsi di scrittura file, escalation di privilegi e validazione degli input. - Verifica repository SVN con SVN Checker
– Scansiona trunk, tags e assets per file inattesi prima del push. - Pacchetto finale e push
– Conferma che trunk/tags contengano solo i file previsti e che readme/licenza siano corretti; quindi procedi con il push su SVN.
Checklist pre-release: passaggi operativi e ruoli di revisione
Checklist operativa (copy & paste):
- Eseguire
wp plugin check(statico) e salvare export JSON/CSV. - Se possibile, eseguire runtime checks con
--requirein ambiente isolato. - Correggere errori bloccanti di sicurezza e policy (sanitizzazione/escape, GPLv2+ compatibilità, prefissi).
- Testare in ambiente isolato le funzionalità critiche e i percorsi di scrittura file.
- Usare SVN Checker per esaminare trunk/tags/assets prima di committare.
- Revisionare nomi/slug e conflitti di marchio; considerare Plugin Namer per una valutazione iniziale.
Ruoli suggeriti:
- Developer/maintainer: esecuzione automatica e correzione delle issue.
- Security reviewer: test runtime e analisi delle pratiche di scrittura/permessi.
- Reviewer per naming/IP: controllo conflitti di marchio e slug prima della richiesta di approvazione.
- Plugins Team: revisione finale manuale obbligatoria.
Limiti dello strumento: falsi positivi e cosa non rileva
Plugin Check può generare falsi positivi; lo strumento include funzionalità AI per raggruppare o analizzare possibili falsi positivi ma non rimuove i risultati originali: gli autori dovrebbero verificare manualmente le segnalazioni e, se confermato un falso positivo, segnalarlo al repository GitHub del progetto.
Inoltre, eseguire esclusivamente controlli statici può non mettere in luce problemi runtime critici; i runtime checks richiedono il caricamento esplicito del codice e ambienti di test isolati. Infine, superare i controlli automatici non sostituisce la revisione manuale dei reviewer della Plugins Team.
Protocollo suggerito per gestire un sospetto falso positivo: conservare l’output originale (export), verificare manualmente il codice e, se si conferma che è un falso positivo, aprire una issue o una PR nel repository del progetto Plugin Check indicando il contesto e allegando l’export.
Integrare Plugin Check in CI: cosa è fattibile oggi
È pratico integrare i controlli statici di Plugin Check in CI usando WP-CLI e salvando l’export (CSV/JSON/Markdown) per report e gating. Per i runtime checks, la limitazione è tecnica: è necessario predisporre job isolati con un ambiente WordPress funzionante e caricare il codice runtime (es. --require); le fonti non forniscono una guida CI ufficiale esaustiva per questa parte. Pianifica job separati e risorse containerizzate quando vuoi automatizzare i runtime checks.
Cosa resta soggetto a revisione manuale da parte della Plugins Team
Anche dopo esiti positivi automatici, la Plugins Team eseguirà controlli manuali su licenza, readme, attributi dell’autore, conflitti di marchio/slug e test runtime in ambiente sicuro; questi controlli possono ancora portare al rifiuto del plugin per motivi di policy o comportamenti runtime non previsti.
Risorse rapide e prossimi passi
Risorse ufficiali di riferimento per approfondire e per collegare la checklist al processo di review: la pagina ufficiale di Plugin Check (per uso e export) e la Review Checklist / Review Walkthrough della Plugins Team. Pianifica di integrare i controlli statici nel CI, predisporre job isolati per runtime checks e documentare gli export in ogni release per facilitare la revisione manuale.

