Abbiamo un componente tema che installiamo tramite il comando rake. Il plugin e la sua installazione tramite il comando rake funzionano perfettamente. Anche l’aggiornamento funziona correttamente quando lo eseguiamo dall’interfaccia di amministrazione, ad esempio /admin/customize/themes/40. Il problema si presenta quando proviamo ad aggiornarlo da riga di comando con quel comando rake. L’output è esattamente come mi aspetterei. Tuttavia, le modifiche non vengono riflesse. Sembra questo un bug?
$ rake themes:install -- '--{"discourse-login-modal": {"url": "https://github.com/example/discourse-login-modal.git", "add_to_all_themes": true}}'
discourse-login-modal: è già installato. Aggiornamento da remoto.
Risultati:
Installati: 0
Aggiornati: 1
Errori: 0
Fornisco maggiori dettagli sul problema. L’esecuzione del comando rake per l’aggiornamento non ha apportato alcuna modifica visibile al mio componente del tema, ma dopo di ciò l’interfaccia di amministrazione ritiene che l’aggiornamento sia stato applicato (ho perso lo screenshot).
Dopo una modifica successiva al mio componente del tema, l’interfaccia di amministrazione ora indica che è disponibile un aggiornamento, ma quando provo ad applicarlo ricevo questo avviso che le mie modifiche locali verranno sovrascritte. Queste modifiche sono esattamente quelle che volevo applicare tramite il comando rake install, che in realtà non ha funzionato.
Non sono riuscito a capire perché l’aggiornamento non funzioni, ma ho pensato a una soluzione alternativa: aggiungere un comando di disinstallazione. Disinstallare il tema prima di eseguire il comando rake install sembra funzionare.
C’è qualcosa di molto strano qui. Quando ThemesInstallTask aggiorna un tema remoto, le informazioni remote vengono aggiornate correttamente (viene mostrata l’ultima SHA e commits_behind è 0, come hai notato)
Ma lo scss non viene aggiornato nel database. Pensavo fosse un problema di cache non invalidata, ma non è così! Lo scss nel database non viene aggiornato.
Il valore dovrebbe essere diverso in questo screenshot
Analizzando come il controller dei temi amministrativi gestisce gli aggiornamenti rispetto a come l’attività aggiorna i temi remoti, non vedo alcuna differenza.