Presentazione di Upcoming Changes, un sistema per gestire nuove funzionalità e modifiche alle funzionalità esistenti nella tua community

Mentre continuiamo a migliorare Discourse, abbiamo creato una nuova pagina di configurazione “Cambiamenti futuri” (Upcoming Changes) per aiutare gli amministratori a comprendere quali modifiche sono in arrivo per Discourse e a gestire il modo in cui queste vengono implementate nella loro community. Crediamo che questo sistema ci aiuterà a continuare a migliorare Discourse in modo sicuro e trasparente.

In questo argomento, spiegheremo come funziona questo nuovo sistema e come utilizzarlo per introdurre in sicurezza nuove funzionalità e altre modifiche nella tua community.

Panoramica del funzionamento dei Cambiamenti futuri

Mentre lavoriamo a nuove funzionalità o altre modifiche, le aggiungeremo alla pagina di configurazione “Cambiamenti futuri” in /admin/config/upcoming-changes. Ogni modifica includerà una descrizione, lo stato, un indicatore di quali utenti ne sono interessati e quali utenti (se presenti) hanno la modifica abilitata nella tua community.

A seconda dello stato della modifica, puoi decidere se attivarla o disattivarla per la tua community — almeno temporaneamente, poiché alcune modifiche verranno infine attivate in modo permanente.

Disabilitare temporaneamente una modifica ti dà il tempo necessario per gestire eventuali personalizzazioni del sito, processi e così via, informare la tua base di utenti sulla modifica o delegare a determinati gruppi di utenti i test.

Analisi di un Cambiamento futuro

Analizziamo un “Cambiamento futuro” e definiamo le informazioni che vedrai in ogni sezione.

1 - Nome e descrizione

Il nome e la descrizione ti forniscono una breve spiegazione della modifica e collegano all’argomento Meta relativo per ulteriori informazioni e un luogo dove raccogliere feedback.

2 - Stato

Lo stato comunica la posizione della modifica nel ciclo di sviluppo. Lo stato influisce direttamente sul fatto che la modifica sia opzionale (cioè disattivata di default, ma puoi attivarla), opzionale con attivazione predefinita (cioè attivata di default, ma puoi disattivarla) o obbligatoria (cioè attivata e non puoi disattivarla).

Utilizziamo i seguenti stati nei Cambiamenti futuri:

  • Experimental (Sperimentale): Una potenziale modifica in fase di sviluppo/test iniziale che si prevede evolverà rapidamente, o potrebbe essere rimossa del tutto se decidiamo di terminare l’esperimento (a quel punto passerà allo stato Inactive; vedi sotto). Puoi opt-in (attivare volontariamente) le modifiche Experimental per testarle.
  • Alpha: Una modifica testata e sicura da usare, anche se potrebbero esserci alcuni aggiornamenti minori al suo design o alla sua funzionalità. Puoi opt-in alle modifiche Alpha per usarle in anticipo.
  • Beta: Una modifica testata e sicura da usare, e è improbabile che cambi molto prima di passare allo stato Stable o eventualmente Permanent.
    • :information_source: Per la maggior parte dei siti sul nostro hosting e per i siti self-hosted, le modifiche Beta sono automaticamente attivate per tutti (se non l’hai abilitata in precedenza), ma puoi comunque opt-out (disattivare volontariamente).
  • Stable: Una modifica completata[1], ma è ancora opzionale con attivazione predefinita (cioè gli amministratori possono disattivarla). Gli amministratori riceveranno un avviso sulla loro dashboard quando hanno disattivato una modifica Stable.
  • Permanent: Una modifica che ha completato i test ed è obbligatoria (cioè gli amministratori non possono disattivarla). Le modifiche permanenti non appariranno più nell’elenco dei cambiamenti futuri, ma verranno mostrate nella pagina /admin/whats-new.
  • Inactive: Un esperimento abbandonato. Non puoi opt-in.

A volte, le modifiche passeranno linearmente attraverso questi stati (cioè inizieranno in Experimental e finiranno in Permanent), ma non sempre. Alcune modifiche potrebbero essere introdotte con stato Alpha o Beta, e altre finiranno con stato Stable. Le modifiche di tipo “valore predefinito dell’impostazione del sito” non passeranno a Permanente, poiché modificano solo il valore predefinito di un’impostazione esistente.

Non c’è un tempo prestabilito per quanto tempo ci vorrà a una modifica particolare per passare da uno stato all’altro, ma gli amministratori riceveranno una notifica quando:

  • È disponibile una nuova modifica da provare
    • Queste vengono inviate al massimo una volta alla settimana per evitare affaticamento da notifiche. Se preferisci non ricevere queste notifiche, puoi disattivarle in /my/preferences/notifications
  • Una modifica è stata attivata automaticamente
  • Quando hai disattivato una modifica che presto sarà obbligatoria
    • Questo verrà mostrato come un avviso sulla dashboard dell’amministratore

3 - Utenti interessati

Il tag “Utenti interessati” descrive quali utenti nella tua community possono vedere o interagire in qualche modo con la modifica. Per semplificare — chi potrebbe notare questa modifica? Ci sono diversi tipi di utenti interessati:

  • Admins: La modifica è visibile solo agli amministratori.
  • Staff: La modifica è visibile solo agli amministratori e ai moderatori.
  • All members: La modifica è visibile a tutti i membri del tuo sito.
  • Developers: In rari casi, una modifica sarà visibile solo a coloro che interagiscono con il codice nel core, nei temi o nei plugin.

Tipo di impatto

Un sottoinsieme degli utenti interessati, e non mostrato nell’elenco, è il tipo di impatto. Il tipo di impatto descrive come la modifica influenzerà la tua community in senso ampio:

  • Feature: La modifica introduce una nuova funzionalità o funzione alla tua community, o modifica una funzionalità esistente.
  • Site setting default: La modifica modifica il valore predefinito di un’impostazione del sito esistente. Gli amministratori che hanno già modificato l’impostazione dal suo vecchio valore predefinito non saranno interessati. Non verrà mostrato alcun avviso sulla dashboard dell’amministratore per questa modifica una volta che raggiungerà lo stato Stable.
  • Other: Qualsiasi altra modifica che non rientra nelle categorie sopra.

4 - Abilitato per…

Questo menu a tendina è dove tu, come amministratore del sito, puoi controllare se e come introdurre questa modifica alla tua community abilitandola per:

  • No one: Disabilita la modifica per tutti gli utenti del sito.
  • Everyone: Abilita la modifica per tutti gli utenti del sito, inclusi gli utenti anonimi. Quando la modifica è attivata automaticamente (tipicamente allo stato Beta), sarà per Everyone.
  • Staff only: Abilita la modifica per il personale del sito (cioè amministratori e moderatori).
  • Specific groups: Abilita la modifica per il/i gruppo/i selezionato/i.

:information_source: Alcuni cambiamenti futuri potrebbero avere opzioni “Abilita per” limitate. Le opzioni disponibili nel menu a tendina “Abilitato per” sono determinate dalla configurazione della modifica. Ad esempio, alcune modifiche potrebbero consentire solo le opzioni Everyone e No one, poiché un test limitato a gruppi sarebbe fattibile per la modifica.


Per ora, abbiamo spostato la maggior parte delle modifiche Experimental da /admin/config/experimental nei Cambiamenti futuri, e inizierai a vedere nuovi aggiornamenti qui presto. Non vediamo l’ora di sentire l’impatto che questo avrà nella tua community, e accogliamo con piacere qualsiasi domanda o feedback!


  1. Per quanto qualsiasi software possa essere considerato completo! ↩︎

43 Mi Piace

Sono curioso: come controlla la distribuzione della modifica? Può essere modificata dopo l’introduzione della funzionalità? Grazie.

2 Mi Piace

Native Feature Flags! Molto bene :clap:

Sarebbe fantastico avere un’API per i plugin.

5 Mi Piace

È una funzionalità a lungo attesa! Grazie!

3 Mi Piace

Questo è fantastico, avere la possibilità di cambiare le bandiere in questo modo è incredibile per le persone all’avanguardia come me, specialmente quando si sviluppa un tema

Tuttavia, “modifiche imminenti” è davvero il nome migliore per questo? Ad esempio, HomeAssistant usa “labs” e molte altre persone usano cose come “esperimenti” che sembrano migliori di modifiche imminenti.

4 Mi Piace

Riceverai una notifica delle nuove funzionalità mentre sono ancora in uno stato in cui puoi provarle in anticipo (opt-in) e disattivarle temporaneamente per risolvere eventuali problemi causati dalla modifica (opt-out). Se una modifica diventerà permanente (il che significa che non puoi disattivare l’opzione) e l’hai attualmente disattivata, te lo faremo sapere.

Questa sezione lo descrive con qualche dettaglio in più:

Al momento, stai vedendo solo modifiche sperimentali perché le abbiamo migrate dall’area impostazioni a Modifiche imminenti, ma in futuro ci saranno anche aggiornamenti non sperimentali qui. Quindi “laboratori” non sembra accurato per come stiamo utilizzando questo sistema.

3 Mi Piace

I plugin possono già utilizzare questo sistema. L’OP non entra nei dettagli tecnici, ma non è necessario molto per aggiungere una modifica imminente.

Il breve riassunto è:

  • Aggiungere un’impostazione del sito con hidden: true e client: true

  • Aggiungere una descrizione per l’impostazione in server.en.yml

  • Facoltativamente, aggiungere uno screenshot a public/images/upcoming_changes/SETTING_NAME.png

  • Aggiungere metadati upcoming_change all’impostazione, che appare così:

# upcoming_change       - Metadati aggiuntivi con le seguenti opzioni da mostrare nella pagina /admin/config/upcoming-changes:
#                          - status: experimental | alpha | beta | stable
#                          - impact: due parti separate da virgola - feature|other , staff|admins|moderators|all_members|developers
#                          - learn_more_url: un url per maggiori informazioni

Tuttavia, l’avvertenza è che non abbiamo realmente inteso che gli sviluppatori di plugin di terze parti utilizzassero questo sistema, era principalmente per i nostri scopi. Forse nel tempo potremo riflettere di più su questo caso d’uso.

7 Mi Piace

Adoro questo! Grazie :raising_hands:

Sarebbe possibile avere un link/scorciatoia all’impostazione applicabile, se pertinente? Ad esempio, la schermata iniziale personalizzata ha impostazioni aggiuntive che devono essere configurate affinché funzioni (caricamento dell’SVG), ma devi cercarle attivamente. Sarebbe utile averle accanto al punto in cui viene abilitata.

8 Mi Piace

Sì, certo! Ci sto lavorando ora, dovrebbe essere disponibile tra un giorno o due. Prenderò nota di distribuire il tuo sito ospitato in modo che tu riceva l’aggiornamento :slight_smile:

Modifica: Fatto! :rocket:

6 Mi Piace

Vorrei chiedere, come posso visualizzare le “Modifiche in arrivo” nel pannello di amministrazione di un’installazione Discourse auto-ospitata?

@lindsey

Abbiamo ancora questo nascosto dietro un’impostazione del sito globale enable_upcoming_changes che è nascosta, quindi puoi abilitarla nella console rails del tuo sito con rails c. Alla fine rimuoveremo questo e non dovrai più farlo.

Va bene, grazie, allora aspetterò ancora~~~~~~~~~~

Non sono sicuro che questo fosse chiaro: la voce di menu per le Modifiche Imminenti non è ancora attiva, ma

riformulazione:
Se non hai ancora la voce di menu, puoi comunque visualizzare la sezione Modifiche Imminenti andando su [il_tuo_forum]/admin/config/upcoming-changes

1 Mi Piace

Dovrebbe esserci, non la vedi qui?

Stai utilizzando l’hosting autonomo? In tal caso, dovrai anche impostare enable_upcoming_changes (che è un’impostazione nascosta) su true. Abbiamo intenzione di rimuoverla nel futuro non troppo lontano una volta che saremo completamente sicuri che il sistema sia stabile.

3 Mi Piace

C’è un motivo per cui la maggior parte delle impostazioni del sito per le modifiche imminenti è nascosta, ma enable_auto_grid_images non lo è?

2 Mi Piace

No, solo una svista, risolto qui:

1 Mi Piace

Sì, sono in self-hosting, come sniper756.
“non è ancora attivo” forse non era la formulazione migliore; modificherò.

2 Mi Piace

Oggi stavo pensando che sarebbe stato utile poter ordinare le modifiche in base allo stato: prima le beta, poi le alpha e infine quelle sperimentali. So che posso filtrarle in base a questo, ma mi piace vedere l’intera lista; trovo semplicemente le modifiche più o meno interessanti a seconda del loro stato.

4 Mi Piace

Sì, ha senso. Ho pensato anch’io di aggiungere un’opzione di ordinamento basata su quando la modifica è apparsa sul tuo sito… ne aggiungerò entrambe :smiley:

2 Mi Piace

Fantastico contributo!

Grazie per questo.

1 Mi Piace