Scripting per la riorganizzazione del sito: qual è la sede migliore?

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.

3 Mi Piace

Non ho idea di cosa significhi “riorganizzazione del sito”. Forse pubblicare parti in Operazioni di massa amministrative?

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.

Ops. era “maybe” non “MSN”. :person_shrugging:

Penso che dovresti pubblicarlo su github e metterci un link - o creare un argomento per esso o aggiungerlo alle operazioni di massa dell’amministratore.

2 Mi Piace

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.

4 Mi Piace

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.

Abbiamo un progetto che utilizza una configurazione simile a questa:

cd /var/www/discourse/script
git clone https://github.com/user/discourse-config-tool.git
cd ..
bundle exec ruby script/discourse-config-tool/app.rb

Qualcosa di simile si adatterebbe alle istruzioni di installazione per il tuo strumento.

3 Mi Piace

Grazie! Rende sempre più facile per gli altri adattarsi a uno schema esistente!

Lo impacchetterò e pubblicherò in #documentation:sysadmin con informazioni più concrete una volta che sarà in atto.

2 Mi Piace

Forse era la categoria sbagliata; è andata in moderazione.

Dovevo inviarla qui in Dev?

L’ho approvato per te.

3 Mi Piace

Molte grazie @Stephen!

Per chiunque la cui ricerca porti qui invece che lì in futuro:

2 Mi Piace