Aggiornamento componente tema tramite rake non funzionante

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.


.

Ciao @markvanlan, grazie per il tuo lavoro sul comando rake per installare un tema! Sai perché l’aggiornamento tramite rake install non funziona?

Ne darò un’occhiata più avanti questa settimana. Non sapevo che il comando rake non funzionasse.

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.

Ho aperto una breve PR per verificare se questo approccio sia accettabile: [WIP] FEATURE: Rake task to uninstall theme by chandandi · Pull Request #10138 · discourse/discourse · GitHub

Mi scuso per non essere tornato sull’argomento!

Ho un’idea del motivo per cui potrebbe non aggiornarsi. Se ho ragione, la soluzione dovrebbe essere molto rapida.

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.

:male_detective: :mag:

Scoprirò la soluzione di questo mistero.

Ho individuato la causa del problema e ho creato una PR. Spiego il problema nella descrizione.

Fusione completata! L’aggiornamento è stato risolto.