Gitaly 개발 가이드라인
GitLab Rails, Workhorse, GitLab Shell에서 사용하는 고수준 Git RPC 서비스인 Gitaly의 개발 방법과 기여 가이드를 설명합니다.
Gitaly 는 GitLab Rails, Workhorse, GitLab Shell에서 사용하는 고수준 Git RPC 서비스입니다. Deep Dive # 2019년 5월, Bob Van Landuyt가 Gitaly 프로젝트 에 대한 Deep Dive(GitLab 팀 구성원 전용: https://gitlab.com/gitlab-org/create-stage/-/issues/1 )를 진행했습니다. 여기에는 Ruby 개발자로서 기여하는 방법과 앞으로 이 코드베이스에서 작업하게 될 사람들을 위한 도메인별 지식이 포함되었습니다. YouTube에서 녹화본 을 확인할 수 있으며, 슬라이드는 Google Slides 와 PDF 에서도 확인할 수 있습니다. 이 Deep Dive에서 다룬 모든 내용은 GitLab 11.11 기준으로 정확했으며, 세부 사항이 변경되었을 수 있지만 여전히 좋은 입문 자료로 활용할 수 있습니다. 입문자 가이드 # 먼저 Gitaly 리포지터리의 Gitaly 기여를 위한 입문자 가이드 를 읽으세요. 이 가이드에는 Gitaly 설정 방법, Gitaly의 다양한 구성 요소와 그 역할, 테스트 스위트 실행 방법이 설명되어 있습니다. 새로운 Git 기능 개발 # Git 데이터를 읽거나 쓰려면 Gitaly에 요청을 보내야 합니다. 즉, lib/gitlab/git 에 아직 없는 데이터가 필요한 새로운 기능을 개발하는 경우 Gitaly도 수정해야 합니다. gitlab 리포지터리 어디에도 디스크 접근을 통해 Git 리포지터리에 직접 접촉하는 새 코드가 있어서는 안 됩니다. Git 리포지터리에 직접 접근이 필요한 모든 것은 Gitaly에서 구현하고 RPC를 통해 노출해야 합니다. Gitaly에서 새로운 기능을 개발하려면: Gitaly 머지 리퀘스트를 올려 필요한 변경 사항을 반영합니다. Gitaly 변경 사항을 활용하는 GitLab 머지 리퀘스트도 함께 올립니다. 두 프로젝트의 변경 사항이 병합되기 전에, 변경 사항이 포함된 로컬 버전의 Gitaly와 수정된 버전의 GitLab을 함께 실행하여 두 프로젝트의 변경 사항을 로컬에서 테스트합니다. 수정된 버전의 Gitaly로 GitLab 테스트를 실행하는 방법은 아래 를 참조하세요. GDK에서는 gdk install 을 실행하고 gdk restart 로 GDK를 재시작하면 개발용으로 로컬에서 수정한 Gitaly 버전을 사용할 수 있습니다. Gitaly 버전 호환성 요구사항 # 업그레이드 중에는 새로운 Gitaly 클라이언트 버전과 이전 Gitaly 버전 간의 호환성을 유지해야 합니다. 업그레이드 중에 Gitaly 클라이언트(예: Rails)가 Gitaly보다 먼저 새 버전으로 업그레이드될 수 있습니다. 새로운 Gitaly 클라이언트는 아직 업그레이드되지 않은 이전 Gitaly에서 사용할 수 없는 기능에 의존해서는 안 됩니다. 이 정책을 적용하기 위해, Gitaly 클라이언트 개발자는 이미 출시된 버전의 Gitaly에서 사용 가능한 기능만 사용해야 합니다. Gitaly 클라이언트 개발자는 다음에 해당하