InfoGrab DocsInfoGrab Docs

Rails 업그레이드 가이드라인

GitLab에서 최신 Rails 릴리스를 사용하기 위한 업그레이드 절차와 디버깅 방법을 설명합니다.

성능, 보안 업데이트, 새 기능의 혜택을 받기 위해 최신 Rails 릴리스로 GitLab을 운영하는 것을 목표로 합니다. Rails 업그레이드 접근 방식 # GitLab용 MR 준비 . 보안 패치를 위한 패치 릴리스 및 백포트 생성 . GitLab용 MR 준비 # Ruby on Rails 업그레이드 가이드를 확인하고, 향후 변경 사항에 맞게 애플리케이션을 준비하세요. Gemfile 에서 rails gem 버전을 업데이트하세요. bundle update --conservative rails 를 실행하세요. 메이저 및 마이너 버전 업데이트의 경우, bin/rails app:update 를 실행하고 제안된 변경 사항 중 적용해야 할 것이 있는지 확인하세요. qa/Gemfile 에서 activesupport 버전을 업데이트하세요. qa 폴더에서 bundle update --conservative activesupport 를 실행하세요. find gems -name Gemfile -exec bundle update --gemfile {} activesupport --patch --conservative \; 를 실행하고, 필요에 따라 명령어의 --patch 를 --minor 또는 --major 로 교체하세요. Bundler 충돌을 해결하세요. package.json 에서 @rails/ujs 및 @rails/actioncable npm 패키지가 새 Rails 버전과 일치하는지 확인하세요. 업데이트 후 yarn patch-package @rails/ujs 를 실행하여 로컬 패치 파일 버전이 일치하는지 확인하세요. pipeline:run-all-rspec 라벨을 붙여 MR을 생성하고 파이프라인이 깨지는지 확인하세요. spec 실패를 해결하고 디버깅하려면 rails 리포지터리에 대해 git bisect 를 사용하세요. 아래의 디버깅 섹션 을 참조하세요. 머지 리퀘스트 설명에 두 버전 간의 Gem 차이 링크를 포함하세요. 예를 들어, 이것은 activesupport 6.1.3.2에서 6.1.4.1로의 gem 차이 입니다. Gitaly용 MR 준비 # Gitaly에 더 이상 Ruby 코드가 없으므로 더 이상 필요하지 않습니다. 보안 패치를 위한 패치 릴리스 및 백포트 생성 # Rails 업그레이드가 패치 릴리스를 통해 이루어졌고 중요한 보안 수정이 포함된 경우, GitLab 패치 릴리스를 통해 Self-managed 고객에게 릴리스되었는지 확인하세요. 진행 방법에 대해서는 릴리스 매니저 에게 문의하세요. Deprecation Logger # Ruby 및 Rails 지원 중단 경고를 전용 로그 파일인 log/deprecation_json.log 에 기록합니다. 이는 테스트로 충분히 커버되지 않아 DeprecationToolkitEnv 를 통과할 수 있는 코드가 있을 때 단서를 제공합니다. GitLab.com의 경우, GitLab 팀원은 Kibana( https://log.gprd.gitlab.net/goto/f7cebf1ff05038d901ba2c45925c