Flarum 1.8.15 rilasciato 🎉
Un piccolo ma mirato aggiornamento di manutenzione per la serie Flarum 1.x: una nuova funzionalità, alcune correzioni di bug e un significativo miglioramento delle prestazioni.
🚀 Flarum 2.0 RC 1 arriverà questo mese
Se non avete ancora iniziato a valutare Flarum 2.0, ora è davvero il momento giusto.
Flarum 2.0 RC 1 verrà rilasciato il 20 aprile e siamo ora nella fase RC. L'API 2.0 è congelata: vengono accettate solo correzioni di bug critici prima del rilascio della versione stabile. L'ecosistema sta crescendo rapidamente: sempre più estensioni di terze parti supportano la versione 2.0 e tutte le estensioni incluse sono state aggiornate.
Ricordiamo che lo sviluppo attivo della serie 1.x è stato interrotto. Questa release rappresenta una leggera eccezione: include il backport di correzioni già implementate per la versione 2.x. Prossimi sviluppi:
❌ Nessuna nuova funzionalità o miglioramento non relativo alla sicurezza verrà retroportato alla versione 1.x
⚠️ Le vulnerabilità di sicurezza verranno risolte ove possibile, ma l'obsoleto stack di dipendenze (Laravel 8, ormai in fase di fine supporto) limita le possibilità di correzione
✅ Tutti gli investimenti a lungo termine sono rivolti a Flarum 2.0
La data ufficiale di fine supporto della versione 1.x verrà confermata a breve: consigliamo vivamente a tutti gli amministratori del forum della versione 1.x di iniziare a pianificare l'aggiornamento fin da ora.
✨ Novità: Widget degli annunci nella dashboard di amministrazione
La dashboard di amministrazione ora mostra un feed in tempo reale degli annunci provenienti da discuss.flarum.org, recuperati e memorizzati nella cache lato server. È un modo pratico per rimanere aggiornati sulle novità di Flarum senza uscire dal pannello di amministrazione.
I risultati vengono memorizzati nella cache lato server per 14 giorni e possono essere aggiornati manualmente tramite un pulsante.
Il widget può essere nascosto (i dati vengono memorizzati in localStorage) o disabilitato completamente aggiungendo 'flarum_announcements.disabled' => true al file config.php.
Un'attività pianificata settimanale mantiene automaticamente la cache attiva.
⚡Prestazioni: conteggio delle notifiche più veloce sui forum di grandi dimensioni
Sui forum con tabelle di notifiche di grandi dimensioni, le query per il conteggio delle notifiche non lette/nuove erano estremamente lente. MySQL abbandonava l'indice user_id a colonna singola quando un utente possedeva una quota significativa della tabella e ripiegava su una scansione completa della tabella, arrivando a scansionare quasi 1 milione di righe a ogni caricamento della pagina.
Un nuovo indice composito su (user_id, is_deleted, read_at, type) consente a MySQL di soddisfare l'intera query di conteggio utilizzando solo l'indice, senza leggere alcuna riga della tabella.
Prima vs. dopo (tabella da 1 milione di righe, utente con 200.000 notifiche, 500 non lette):
Prima Dopo
Tempo di query 86 ms 3 ms
Miglioramento: 96% più veloce
⚠️ Attenzione: questa correzione è pienamente efficace solo su MySQL 8.0 e versioni successive e sulle versioni recenti di MariaDB. Su MySQL 5.6/5.7 o versioni precedenti di MariaDB, il pianificatore di query non materializza le subquery di visibilità, quindi il collo di bottiglia si trova altrove e l'indice non è d'aiuto. La correzione viene comunque applicata (ed è innocua), ma se si utilizza una versione precedente del database e si riscontra questo problema, l'aggiornamento del database è la vera soluzione.
🐛 Correzioni di bug
[Tag] bypassTagCounts negato erroneamente per gli utenti non amministratori — Il meccanismo di controllo DiscussionPolicy intercettava ogni funzionalità di discussione e cercava varianti per tag (ad esempio tag6.discussion.bypassTagCounts) che non esistevano. Questo causava il rifiuto automatico di bypassTagCounts per gli utenti non amministratori quando la discussione si trovava all'interno di un tag con restrizioni. La correzione bypassa il meccanismo di controllo per questa funzionalità e lascia che il normale controllo delle autorizzazioni globali la gestisca.
Ordine di avvio delle estensioni non aggiornato dopo l'aggiornamento di Composer — Quando un aggiornamento di un'estensione aggiungeva o modificava le dipendenze opzionali, l'ordine di avvio memorizzato non veniva ricalcolato finché non si disabilitava e riabilitava manualmente un'estensione. Il comando migrate ora riordina l'ordine di avvio all'inizio di ogni esecuzione.
Tipo di attributo di contenuto mancante nel componente Alert — una lacuna di tipizzazione TypeScript che poteva interessare le estensioni che utilizzano il componente Alert. (#4496)
📦 Versioni rilasciate
flarum/core — 1.8.15
flarum/tags — 1.8.7
🚀 Come aggiornare
composer update
php flarum migrate
php flarum cache:clear
php flarum assets:publish
Esegui un backup del database prima di procedere con l'aggiornamento e, se possibile, effettua prima un test nell'ambiente di staging.
Questo contenuto è tradotto in Italiano dal post originale