Sto scrivendo uno script, guidato da un file YAML, per riorganizzare un sito Discourse. Questo perché sto pianificando una riorganizzazione piuttosto massiccia del mio sito più grande per renderlo più facile da navigare, e non ci riuscirò mai se provo a farlo tramite l’interfaccia utente.
Il mio script non ha test unitari e, sebbene sia un sostenitore generale dei test unitari da molto tempo, non sono motivato a scriverne per questo script.
Lo script è in realtà un framework su cui costruire — non tutti vorranno la stessa semantica che voglio io. In questo senso, è un po’ come alcuni degli script di migrazione in cui ci si aspetta che le persone li modifichino per adattarli.
Con questi vincoli, vale la pena inviare una PR? O la gente preferirebbe che lo pubblicassi come blocco di codice, magari in #documentation:sysadmin?
Voglio principalmente aiutare chiunque altro stia cercando di fare qualcosa di simile. Inoltre, le funzioni effettive potrebbero aiutare le persone a sapere cosa fare nella console di Rails.
Non capisco “MSN”, ma nel mio caso quello che sto facendo include spostare post tra categorie, aggiungere tag, cambiare il genitore dei post, nascondere categorie, aggiungere reindirizzamenti… Alcuni dei compiti sono coperti da “Administrative Bulk Actions” e altri no, ma in ogni caso tutto da un singolo script.
Attualmente, nel mio caso, si tratta di 112 azioni. Non sto digitando quello in una combinazione di rails c e rake avanti e indietro, potenzialmente più volte all’ora mentre esploro diverse riorganizzazioni del mio sito con la mia leadership.
La domanda non è “come posso realizzare questo?” — l’ho già scritto, anche se intendo continuare a migliorarlo (ad esempio, probabilmente farò anche in modo che scriva un registro di audit completo e dettagliato, cosa che non fa ancora ma che potrei voler avere prima di eseguirlo effettivamente per il sito live).
La domanda è: come condividerlo al meglio? Non vedo nulla di simile nella directory scripts/ (anche se potrei essermi perso qualcosa) e apprezzo che i PR debbano normalmente essere accompagnati da test automatici (anche se non so quanto questo si applichi alla directory scripts/). Allo stesso tempo, è già più di 150 righe e in crescita, il che sembra molto per la condivisione pubblicandola qui, dove sarebbe molto più grande di una casella di codice.
Penso che dovresti pubblicarlo su github e metterci un link - o creare un argomento per esso o aggiungerlo alle operazioni di massa dell’amministratore.
Crearlo come progetto GitHub autonomo è la strada migliore. Assicurati anche di creare un argomento su questo strumento qui su Meta in modo che le persone possano scoprirlo.
Sì, voglio assolutamente che le persone possano trovarlo!
Ho iniziato con:
require_relative "../config/environment"
affinché funzioni quando viene posizionato nella directory degli script. Esiste uno schema comune per averlo al di fuori della directory di discourse? (Non vedo nulla in .gitignore come il pattern dei plugin per il checkout di elementi diversi dai plugin all’interno di un checkout.)
Se non c’è, posso semplicemente dire “copialo in scripts/” come istruzioni di installazione, ma vorrei solo sapere se c’è qualcosa che posso fare per integrarmi meglio.