Ho completamente perso l’annuncio di questo cambiamento perché si è mescolato con le vacanze invernali, e come hobbista non leggo questo forum molto regolarmente. L’ho notato solo quando l’aggiornamento di oggi ha interrotto il sito. Ora non ho modo di tornare indietro perché EMBER_VERSION è già disabilitato, e non ho modo di andare avanti per correggere qualunque cosa debba essere corretta perché non riesco a vedere gli avvisi di deprecazione (che non sono apparsi l’ultima volta che ho dovuto fare manutenzione attiva, prima delle vacanze), anche se non so molto di Ember.
Questo mi sta seriamente facendo considerare di estrarre il database e passare a una soluzione di forum diversa, una in cui la versione predefinita sia effettivamente sicura da usare per gli hobbisti che non possono tenere d’occhio i forum di sviluppo come un falco.
Qualcuno può pensare a un’altra soluzione, dato che non ho idea di cosa stia rompendo Ember 5 o perché? La console Javascript non è d’aiuto.
In realtà la console JavaScript è solitamente molto utile.
Forse avresti preferito stable, ma ormai è un po’ tardi, lo apprezzo.
Suggerisco di rimuovere tutte le tue personalizzazioni, e magari usare un’istanza di staging, reinserendole una per una e scoprendo quali causano i problemi e o eliminarle, o lavorarci sopra.
Molti plugin popolari e componenti del tema sono già conformi.
Dice solo “Ember non trovato”, lo schermo è un’icona di caricamento infinita.
Ho installato la versione predefinita e standard di Discourse di Digital Ocean. In nessun momento mi è stato chiesto quale branch volessi, e ho presunto che mi avrebbe inserito in una versione LTS. Avere una funzionalità che rompe il sistema, rilasciata e poi resa obbligatoria in soli 2 mesi NON è ciò che considero LTS; né in Wordpress né in Linux faresti nemmeno questo per le versioni non LTS. Si prega di cambiare questo per tutte le nuove droplet di DigitalOcean e di mettere un avviso che gli hobbisti dovrebbero stare alla larga.
Dall’errore nella console, di solito si può capire da quale componente del tema è stato emesso l’errore. Puoi incollare qui l’intero errore (espandendo l’errore), o se possibile, ti dispiacerebbe condividere qui l’URL del tuo forum (o tramite PM se preferisci)?
Detto questo, nell’installazione standard (non la versione di DO) tests-passed (il predefinito) non è LTS, stable lo è. Credo che CDCK cerchi di incoraggiare questo predefinito perché sfrutta la community per testare l’ultima versione. Penso che sia un giusto compenso per ottenere software gratuito? Ma hai la scelta.
Ho identificato i plugin non funzionanti come quelli responsabili dell’invio delle notifiche push di Discourse agli iPhone (dove il metodo standard di Discourse non funziona), ovvero GitHub - featheredtoast/discourse-pushover-notifications: Pushover notifications for Discourse di @featheredtoast e GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app di mia creazione. Il codice Ember è identico in entrambi e molto semplice, solo un paio di campi aggiuntivi nell’amministratore e un campo aggiuntivo nel profilo utente, con controlli sull’eventuale attivazione delle notifiche push. Dato che il ritiro dello switch EMBER_VERSION significa che non posso vedere avvisi di deprecazione o messaggi di errore che potrebbero aiutarmi a restringere quale di quelle poche righe sia un problema, ho chiesto a Github Copilot consigli su cosa potrebbe essere cambiato tra Ember 3 ed Ember 5 e sto provando quei suggerimenti. Se avete idee, sono tutt’orecchi.
Voglio solo ribadire che questo non è il modo in cui un breaking change dovrebbe essere introdotto e sono profondamente deluso da Discourse. Diverse politiche che vanno contro ogni saggezza:
mettere persone non tecniche sulla versione tests-passed piuttosto che LTS per impostazione predefinita
aggravare ciò non menzionando nemmeno la possibilità di passare a una versione più stabile nella guida ufficiale all’installazione; è noto solo agli addetti ai lavori del forum che presumibilmente ne hanno meno bisogno
rendere impossibile il ripristino a una versione precedente e funzionante
aggravare ciò garantendo anche che la compatibilità retroattiva del progetto sia inferiore a due mesi, attraverso la rimozione deliberata del flag EMBER_VERSION. Altri progetti hanno una compatibilità retroattiva di un anno, e si tratta di progetti in cui è anche possibile tornare a versioni precedenti.
Per il tuo plugin, penso che l’(unico?) problema sia che stai usando un globale Ember export default Ember.Component.extend({
che dovrebbe essere rifattorizzato in
import Component from "@ember/component";
export default Component.extend({
(Sarebbe ancora meglio rifattorizzarlo in sintassi di classe, ma non è necessario per rimettere in funzione il tuo sito)
ChatGPT è in grado di individuare cose del genere, tra l’altro.
Sì, sono d’accordo con @RGJ. Basandosi sull’errore ‘Ember not found’ menzionato sopra, il problema più probabile è la deprecazione di ‘ember-global’. Maggiori dettagli qui (collegato dall’annuncio originale). In questi plugin, sembra che venga utilizzato per Ember.Component, e anche per alcune chiamate Ember.computed.*.
Ecco un paio di PR veloci. È possibile che ci siano altri problemi che si riveleranno dopo che questa correzione sarà stata apportata, ma non vedo nulla di ovvio scorrendo il codice JS.
Grazie per il feedback sul processo di rilascio! Lavoriamo costantemente per trovare il giusto equilibrio tra progresso e stabilità. Sicuramente terremo conto di ciò che abbiamo imparato da questo rilascio e lo applicheremo a futuri progetti di aggiornamento/refactoring.
Grazie @david! Ho disattivato le notifiche Pushover per ora per ridurre lo spazio di errore e ho scaricato l’ultima versione del plugin Discourse FCM Notifications, ma una nuova build mi dà ancora l’errore “Ember not defined”.
La parte su set / setProperties sembra essere sbagliata - ho verificato che queste funzioni esistono ancora in Ember 5. Anche cambiare this._super in super non ha funzionato, ha dato un messaggio di errore durante la compilazione. Anche la sintassi computed è cambiata ora, attualmente non è né l’originale né quella raccomandata da Copilot. Quindi sono a corto di idee su cos’altro possa essere cambiato in Ember 5. Non uso Ember in nessuno dei miei altri progetti.
Sì, penso che l’IA possa avere difficoltà a distinguere tra nuovi pattern non essenziali (cose come la sintassi delle classi native, this.set/get, ecc.) e correzioni di deprecazione essenziali. I suggerimenti dell’IA possono ancora essere utili, ma solo se hai abbastanza contesto per sapere cosa fidarti/ignorare.
Personalmente, andrei sempre a una fonte autorevole come \u003chttps://deprecations.emberjs.com/v3.x\u003e prima.