사이트 재배치 스크립팅: 최적의 장소는 어디인가요?

YAML 파일로 구동되는 스크립트를 작성하여 Discourse 사이트를 재구성하는 작업을 하고 있습니다. 이는 가장 큰 사이트의 구조를 대폭 재편성하여 탐색을 용이하게 하려는 계획 때문인데, UI를 통해 이 작업을 수행하려 한다면 실제로 진행할 수 없을 것 같기 때문입니다.

이 스크립트는 단위 테스트가 전혀 없습니다. 저는 평소 단위 테스트를 강하게 지지해 왔지만, 이 특정 스크립트에 대해서는 테스트를 작성할 동기가 부족합니다.

이 스크립트는 사실 프레임워크의 성격이 강합니다. 모든 사용자가 저와 동일한 의미를 원하지는 않을 것이기 때문입니다. 그런 의미에서, 사용자가 자신의 필요에 맞게 수정할 것으로 예상되는 마이그레이션 스크립트와 유사합니다.

이러한 제약 조건을 고려할 때, 이 작업을 PR로 제출하는 것이 가치가 있을까요? 아니면 코드 블록 형태로 게시하는 것이 더 나을까요? 예를 들어 #documentation:sysadmin 채널에 올리는 식으로요.

주된 목적은 비슷한 작업을 시도하는 다른 사용자에게 도움을 주는 것입니다. 또한 실제 함수들이 다른 사용자들이 rails 콘솔에서 무엇을 해야 하는지 이해하는 데 도움이 될 수 있을 것입니다.

"사이트 재배치"가 무슨 뜻인지 전혀 모르겠어요. 관리자 일괄 작업 게시판에 질문을 올려보는 건 어떨까요?

"MSN"이라는 용어가 정확히 무엇을 의미하는지 잘 모르겠습니다. 제 경우, 제가 수행하는 작업에는 포스트를 카테고리 간 이동, 태그 추가, 포스트의 상위 항목 변경, 카테고리 숨기기, 리다이렉트 추가 등이 포함됩니다. 이 중 일부 작업은 Administrative Bulk Actions에서 다루지만, 일부는 그렇지 않습니다. 하지만 어떤 경우든 모두 하나의 스크립트에서 처리됩니다.

현재 제 경우, 이 작업은 112개에 달합니다. rails c와 rake를 오가며 그 모든 것을 타이핑하는 일은 하지 않을 것입니다. 특히 사이트 리더십과 함께 사이트 구조를 재구성하는 다양한 시도를 하면서 시간당 여러 번 반복해야 할 수 있기 때문입니다.

질문은 "이것을 어떻게 달성할 수 있는가?"가 아닙니다. 저는 이미 코드를 작성했으며, 계속 개선할 의향이 있습니다(예: 실제로 라이브 사이트에서 이 스크립트를 실행하기 전에, 아직 하지 않지만 원할 수 있는 완전하고 상세한 감사 로그를 기록하는 기능 등을 추가할 예정입니다).

질문은 이렇습니다: 이를 어떻게 가장 잘 공유할 수 있을까요? scripts/ 디렉토리에 이와 유사한 것을 찾지 못했습니다(아마 제가 놓친 것이 있을 수도 있지만요). 또한 PR에는 일반적으로 자동화된 테스트가 함께 제공되어야 한다는 점에는 공감합니다(다만 scripts/ 디렉토리에 이 규칙이 얼마나 강하게 적용되는지는 잘 모르겠습니다). 동시에, 이 코드는 이미 150줄을 넘어서고 있으며 계속 늘어나고 있는데, 이는 여기서 코드 박스로 공유하기에 너무 큰 크기입니다. 코드 박스보다 훨씬 더 커질 테니까요.

아, 실수였습니다. "MSN"이 아니라 "maybe"였어요. :person_shrugging:

github에 게시하고 링크를 걸어야 한다고 생각합니다. 별도 주제를 만들거나 관리자 일괄 작업(admin bulk operations)에 추가하는 방식으로요.

독립적인 GitHub 프로젝트로 만드는 것이 최선의 방법입니다. 또한 사람들이 이 도구에 대해 쉽게 찾을 수 있도록 여기 Meta에 해당 도구에 대한 주제(topic)를 꼭 만들어 주세요.

네, 사람들이 쉽게 찾을 수 있도록 하는 게 확실히 중요하죠!

다음과 같이 시작했습니다:

require_relative "../config/environment"

이렇게 하면 scripts 디렉토리에 배치했을 때 정상적으로 작동합니다. Discourse 디렉토리 밖에 파일을 두는 데 일반적인 패턴이 있을까요? (플러그인 체크아웃과 달리, 플러그인 이외의 항목을 체크아웃하는 .gitignore 패턴은 보이지 않네요.)

그렇지 않다면 설치 지침에 "scripts/ 디렉토리에 복사하세요"라고만 적으면 되겠지만, 더 자연스럽게 통합할 수 있는 방법이 있는지 궁금해서 여쭤봅니다.

다음과 같은 설정을 사용하는 프로젝트가 있습니다:

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

이런 형식이 여러분의 도구 설치 지침에 적합할 것입니다.

감사합니다! 기존 패턴에 맞게 적용하는 것이 다른 사람들에게 항상 더 쉬워지니까요!

준비가 완료되면 #documentation:sysadmin 채널에 더 구체적인 정보를 담아 정리해서 공유하겠습니다.

아마도 잘못된 카테고리를 선택한 것 같습니다. 현재 검토(moderation) 대기 중입니다.

Development 채널에 게시해야 했나요?

승인해 두었습니다.

@Stephen님, 정말 감사합니다!

앞으로 검색을 통해 여기로 오게 되는 분들을 위해: