Gemfile 개발 가이드라인
GitLab의 Gemfile에 gem을 추가하거나 업그레이드할 때 따라야 하는 규칙과 가이드라인을 설명합니다.
Gemfile 에 새 항목을 추가하거나 기존 의존성을 업그레이드할 때 다음 규칙에 주의하세요. Bundler 체크섬 검증 # GitLab 19.0 에서 이제 네이티브 Bundler 체크섬 검증으로 전환되었습니다. 기존 bundler-checksum gem은 이제 더 이상 사용되지 않습니다. 다음 항목의 사용을 모두 제거해 주세요: BUNDLER_CHECKSUM_VERIFICATION_OPT_IN bundle exec bundler-checksum init bundle exec bundler-checksum lint 체크섬 파일 업데이트 # bundle install 이 이제 자동으로 Gemfile.lock 의 CHECKSUMS 섹션을 업데이트합니다. Gemfile.next.lock 파일 업데이트 # gem이 업데이트될 때마다 Gemfile.next.lock 파일이 일관성을 유지하도록 확인하세요. gem 파일 동기화 Gemfile.checksum 을 업데이트한 경우, 다음 명령을 실행하여 gem 파일을 동기화해야 합니다: bundle exec rake bundler:gemfile:sync 변경 사항 검토 및 커밋 동기화 후 업데이트 내용을 확인하고 Gemfile.next.checksum 과 Gemfile.next.lock 의 변경 사항을 커밋합니다. Git 리포지터리에서 gem 가져오기 금지 # Git 리포지터리에서 가져오는 gem은 허용하지 않습니다. 모든 gem은 RubyGems 인덱스에서 사용 가능해야 합니다. 외부 빌드 의존성과 빌드 시간을 최소화하려고 합니다. 이 규칙은 RuboCop 규칙 Cop/GemFetcher 로 강제됩니다. 임포터나 통합에서 HTTP 호출을 하는 gem 금지 # 임포터나 통합에서 HTTP 호출을 하는 gem을 추가하지 마세요. 일반적으로 이러한 도메인에서는 다른 gem도 강력히 권장하지 않습니다. 자세한 내용은 다음을 참조하세요: 통합 개발 가이드라인 임포터 설계 원칙 새 의존성의 품질 검토 # 당사의 품질 기준을 충족하지 못하는 3rd-party 의존성을 GitLab에 추가해서는 안 됩니다. 즉, 새로운 의존성은 최소한 다음 기준을 충족해야 합니다: 활발한 개발자 커뮤니티가 있어야 합니다. 최소한 유지 관리자가 여전히 활동 중이어서 긴급 상황 시 변경 요청을 머지할 수 있어야 합니다. GitLab의 가용성이나 성능에 영향을 미칠 수 있는 알려진 이슈가 없어야 합니다. 어떤 형태의 테스트 자동화를 사용하여 프로젝트를 테스트해야 합니다. GitLab이 현재 사용하는 Ruby 버전으로 테스트 스위트가 통과해야 합니다. 지원되는 모든 플랫폼의 CI 빌드가 새 의존성을 사용하여 성공해야 합니다. 자세한 내용은 테스트용 패키지 빌드 방법을 참조하세요. 프로젝트가 C 확장을 사용하는 경우, C 또는 MRI 도메인 전문가에게 추가 리뷰를 요청하는 것을 고려하세요. C 확장은 GitLab의 안정성과 성능에 큰 영향을 미칠 수 있습니다. 도메인 전문가 승인이 필요한 gem # 다음 gem에 대한 변경은 해당 그룹의 백엔드