Skripting für die Neuanordnung von Websites: Was ist der beste Ort?

Ich habe ein Skript geschrieben, das von einer YAML-Datei gesteuert wird, um eine Discourse-Site neu anzuordnen. Dies liegt daran, dass ich eine ziemlich massive Neuanordnung meiner größten Website plane, um die Navigation zu erleichtern, und ich werde es niemals durchziehen, wenn ich versuche, es über die Benutzeroberfläche zu steuern.

Mein Skript hat null Unit-Tests, und obwohl ich ein allgemeiner Befürworter von Unit-Tests bin und das schon seit langem bin, bin ich nicht motiviert, welche für dieses Skript zu schreiben.

Das Skript ist eigentlich ein Framework, auf dem man aufbauen kann – nicht jeder wird die gleichen Semantiken wollen, die ich will. In diesem Sinne ist es eher wie einige der Migrationsskripte, bei denen man erwartet, dass die Leute sie wahrscheinlich modifizieren, um sie anzupassen.

Sind diese Einschränkungen etwas, das eine PR wert ist? Oder würden die Leute es vorziehen, wenn ich es als Codeblock poste, vielleicht in #documentation:sysadmin?

Ich möchte vor allem anderen helfen, die etwas Ähnliches versuchen. Außerdem könnten die tatsächlichen Funktionen den Leuten helfen zu wissen, was sie in der Rails-Konsole tun sollen.

3 „Gefällt mir“

Ich habe keine Ahnung, was „Seitenumbau“ bedeutet. Vielleicht Beiträge in Administrative Bulk Operations?

Ich verstehe „MSN“ nicht, aber in meinem Fall beinhaltet das, was ich tue, das Verschieben von Beiträgen zwischen Kategorien, das Hinzufügen von Tags, das Ändern der Eltern von Beiträgen, das Ausblenden von Kategorien, das Hinzufügen von Weiterleitungen … Einige der Aufgaben sind in „Administrative Bulk Actions“ abgedeckt und einige nicht, aber in jedem Fall alle von einem einzigen Skript aus.

Derzeit sind das in meinem Fall 112 Aktionen. Ich tippe das nicht in einer Kombination aus rails c und rake hin und her, möglicherweise mehrmals pro Stunde, während ich verschiedene Neuorganisationen meiner Website mit meiner Website-Leitung erkunde.

Die Frage ist nicht: „Wie kann ich das erreichen?“ – Ich habe es bereits geschrieben, obwohl ich beabsichtige, es weiter zu verbessern (z. B. werde ich es wahrscheinlich auch ein vollständiges, detailliertes Audit-Protokoll schreiben lassen, etwas, das es noch nicht tut, aber ich möchte es vielleicht haben, bevor ich es tatsächlich für die Live-Website ausführe).

Die Frage ist: Wie teile ich es am besten? Ich sehe nichts Vergleichbares im Verzeichnis scripts/ (obwohl ich vielleicht etwas übersehen habe) und ich schätze, dass PRs normalerweise mit automatisierten Tests geliefert werden sollten (obwohl ich nicht weiß, wie stark dies für das Verzeichnis scripts/ gilt). Gleichzeitig ist es bereits über 150 Zeilen lang und wächst, was für die Weitergabe durch Posten hier zu groß erscheint, wo es erheblich größer wäre als eine Codebox.

Ups. Das war „vielleicht“ und nicht „MSN“. :person_shrugging:

Ich denke, du postest es auf GitHub und verlinkst es – entweder erstellst du ein Thema dafür oder fügst es den Admin-Massenoperationen hinzu.

2 „Gefällt mir“

Die Erstellung als eigenständiges GitHub-Projekt ist der beste Weg. Stellen Sie außerdem sicher, dass Sie hier auf Meta ein Thema über das Tool erstellen, damit die Leute davon erfahren.

4 „Gefällt mir“

Ja, ich möchte auf jeden Fall, dass die Leute es finden können!

Ich habe es mit:

require_relative "../config/environment"

begonnen, damit es funktioniert, wenn es im Skriptverzeichnis platziert wird. Gibt es ein gängiges Muster, um es außerhalb des Discourse-Verzeichnisses zu belassen? (Ich sehe nichts in .gitignore, das dem Muster für Plugins ähnelt, um Dinge außerhalb von Plugins auszuchecken.)

Wenn nicht, kann ich einfach „in Skripte kopieren“ als Installationsanleitung angeben, aber ich möchte nur wissen, ob es etwas gibt, das ich tun kann, um besser hineinzupassen.

Wir haben ein Projekt, das ein Setup wie dieses verwendet:

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

Etwas wie dieses würde in die Installationsanweisungen für Ihr Tool passen.

3 „Gefällt mir“

Danke! Das macht es anderen immer leichter, ein bestehendes Muster zu übernehmen!

Ich werde es bündeln und mit konkreteren Informationen in #documentation:sysadmin posten, sobald es eingerichtet ist.

2 „Gefällt mir“

Vielleicht war das die falsche Kategorie; sie wurde zur Moderation hochgeladen.

Hätte ich sie stattdessen hier unter Dev einreichen sollen?

Ich habe es für Sie genehmigt.

3 „Gefällt mir“

Vielen Dank, @Stephen!

Für alle, die in Zukunft hierher statt dorthin gelangen:

2 „Gefällt mir“