December 08, 2021
본 글은 Contributing to Chromium과 Commit Checklist의 일부를 번역하여 작성되었습니다.
Chromium 빌드 환경을 구축한 뒤에는 해결하고자하는 Issue를 찾고, 수정해서 코드리뷰를 받는 본격적인 기여 작업을 시작하면 된다.
Chromium 관련 Issue는 아래 링크로 접속해 확인할 수 있다.
Monorail - chromium - An open-source project to help move the web forward. - Monorail
라벨이나 필터 기능을 이용해 골라서 검색할 수 있으며, GoodFirstBug 라벨은 입문자에게 추천하는 이슈들이라고 한다.
진행하고자 하는 Issue를 찾았다면, comment를 달아 다른 사람이 동시에 진행하는 일이 생기지 않도록 하자.
Chromium에 기여하는게 완전 처음이라면?
Contributing to Chromium에는 처음 기여할 때 거쳐야하는 절차가 안내되어있다.
알파벳순으로 정렬된 파일을 쭉 따라서 내 이름이 들어갈 위치에 추가로 작성하고 저장한다.
알파벳순으로 정렬된 파일을 쭉 따라서 내 이름이 들어갈 위치에 추가로 작성하고 저장한다.
복사를 위해 파란색 상자를 한 번 클릭하면 한 번에 선택되므로 바로 ctrl+C, ctrl+V 진행하면 된다.
복사를 위해 파란색 상자를 한 번 클릭하면 한 번에 선택되므로 바로 ctrl+C, ctrl+V 진행하면 된다.
위에서 추천한대로 Git CMD를 이용해서 진행했다.
기본 세팅까지도 완료되었으면 아래의 체크리스트를 따라가면서 이슈를 해결해보자.
Create a new branch or witch to the correct branch
git checkout -b <branch_name> -t origin/main
upstream에 변경된 사항을 그와 연결된 downstream에 적용하려면 git rebase -i
명령어를 이용해 rebase 작업을 진행한다.
사실 이 부분이 어떤 경우를 뜻하는지 잘 모르겠다;
If there’s a local upstream branch, rebase the upstream changes
git rebase --continue
를 실행한다.Make sure the code builds correctly
마음껏 수정한 뒤, 최소한의 공통 대상들에 대해 빌드가 정상적으로 이루어지는지 확인한다.
Ensure the code is formatted nicely
git cl format --js
을 실행해 기본적인 코딩 가이드를 맞춰준다.
--js
옵션은 JavaScript도 기본 format에 맞게 수정해준다.Review your changes
git diff
나 git upstream-diff
를 이용해 이전 커밋들과의 변경사항을 다시 확인한다.git upstream-diff
의 결과가 cl upload 했을 때 Gerrit에 업로드 되는 내용이다.Stage relevant files for commit
git add
로 수정한 모든 파일들을 등록한다.Commit your changes
Squash your commits
git commit --amend
명령어는 가장 최신 커밋에 현재 수정내역을 합치는 방식이다.git rebase -i
명령어를 이용해 편집기 화면이 뜨면 pick 대신 squash를 작성해 하나의 커밋에 squash라고 쓰인 커밋들이 합쳐진다.Rebase your local repository
git rebase-update
를 실행해 Chromium 소스파일들(origin/main)을 업데이트하고 rebase한다.
rebase 이후 빌드가 깨질 수도 있으므로 gclient sync -D
를 통해 종속성을 업데이트시켜준다
Upload the CL to Gerrit
git cl upload
를 실행시킨다.
-b <bug_number>
를 이용하면 자동적으로 커밋메세지에 bug 참조가 생긴다. -b None
도 사용할 수 있다.—edit-description
을 이용하면 커밋 메세지를 업데이트 할 수 있다.
-r
옵션을 사용하면 리뷰어를 추가할 수 있다.git cl issue
를 통해 올바른 Gerrit의 change list에 업로드되는지 확인한다.
git cl issue <issue_number>
를 이용하면 새 패치를 업로드하기 위해 기존 change list를 지정할 수 있다.Check the CL again in Gerrit
git cl web
을 통해 연결된 Gerrit URL로 접속하고 업로드된 파일들이 올바른지 확인하자.Make sure all auto-regression tests pass
Land your CL
Cleanup