← 블로그 목록

[공지] ThorVG 컨트리뷰션 가이드 v1.1.0

@Nor-s
  • #Notice
목차

1. 기여할 포인트 찾기

1.1 깃허브 이슈채널에서 이슈 탐색

IssuesSecurity and quality
imageimage

NOTE

core 의 경우 AI 리뷰를 보고 이슈 탐색 가능

IMPORTANT

question or suggestion 라벨이 붙은 이슈는 기본적으로 할당되지 않습니다. 실제 이 이슈를 진행해야할 필요성이 충분히 검증이 되어져야하는 이슈들입니다. image Trade Off 가 명확해서 이슈를 처리하지 않고 있는 경우가 존재합니다. (ex. 특수한 케이스에서의 렌더 품질, 성능과 바이너리 사이즈 등 (보통 Compliance 라벨)

1.2 개발 중 발생한 이슈

image

사소한 기여도 OK :

NOTE

ThorVG 에는 프로젝트 맞춤으로 작성된 몇몇 fine-tune 코드들이나 중요하지 않기 때문에 단순한 알고리즘을 택한 경우가 존재합니다. 바이너리 사이즈 절감, 성능 최적화를 위한 코드들에 유의하고, 관련 채널(디스코드 등)에 문의해보세요. ex) 전체 기여도가 적은 코드에서 선형탐색

IMPORTANT

이슈 생성시 주의 사항

  • 재현 가능한 테스트 코드 (thorvg.example 에 복붙하면 바로 실행 가능한 코드, Webcanvas 에서 바로 재현 가능한 코드)
  • 오류, 경고 등이 발생하는 경우 테스트 원본 메시지를 같이 첨부
  • false alarm 인 경우일 가능성이 존재하므로, 불확실한 경우 멘티, 멘토들에게 이슈 공유하여 확인하고 이슈화

1.3 ThorVG 로드맵

image
  • https://github.com/thorvg/thorvg/wiki/26’-Development-Roadmap
  • 현재 ThorVG 팀이 집중하고 있는 작업 확인 가능
  • Loader, Renderering, RenderBackend, Web 등 어떤 작업들이 진행되고 있는지 확인 가능
  • 1.1 에서 찾은 이슈가 로드맵에 있을경우 작업자 충돌 가능하므로 주의

1.4 PR 또는 멘토에게 문의 후 이슈 할당 받기

  • 바로 해결할 수 있는 문제면 PR을 작성합니다.
    • ex) Crash, 기능상 명확한 동작 오류
    • ex) 스펙 호환 관련 문제는 의도적으로 지원하지 않을 가능성이 높습니다. - 사용자가 사용하지 않는 기능, SVG 최신 스펙 등
  • 그 외 이슈는 멘토에게 문의 후 할당 받습니다.

2. 이슈 작업

2.1 컨벤션

image image

2.2 커밋 메시지

image image
  • 일관성 준수

    커밋 타이틀

    • 커밋대상 : 수정에 대한 서술

    커밋 디스크립션

    • 필요시 수정 내용에 대한 상세한 내용
    • 필요시 꼬리말(footer)에 이슈 번호 등 추가
      • ex) 관련된 이슈가 있다면 issue: 링크 형식으로 이슈를 링크
  • 제목과 본문은 한 줄 띄워 구분

  • 무엇을, 왜 바꿨는지 설명

2.3 로컬 검증1: 유닛 테스트

image image

IMPORTANT

ThorVG 프로젝트에서는 일반적인 이슈 수정에 유닛테스트를 추가하고 있지 않습니다. 유의 부탁드립니다.

2.4 로컬 검증2: thorvg.example

  • 수정한 내용을 검증할 수 있는 Example을 구동하여 전후 동작 확인
    • ex) 로티 또는 애니메이션 관련 수정의 경우 Animation.cpp 예제 확인
image

IMPORTANT

Loader 지원 포맷 확장 등 기능 고도화 부분은 thorvg.example 에 추가적인 pr 을 올리는 것을 권장드립니다.

3. PR 과 Github Action

3.1 PR 작성 방법

image
  • PR 히스토리를 통해 메인테이너/기여자들이 올리는 방식 확인
    • 문제 & 수정 사항 & 검증 내용
  • PR 본문은 이슈 재현이나 스크린샷 등 커밋에 포함시킬 수 없는 시각적 자료 첨부
  • 최대한 완성된 PR 만 올릴것, 코드 리뷰를 받고 Draft 로 변경 -> 작업 완료 후 Ready 상태로 변경 후 @ 멘션 호출로 코드 리뷰 요청
    • 진행사항 확인/ 논의 내용 -> 해당 이슈에 코멘트

IMPORTANT

일반적인 PR 은 본문에 힘을 주기 보다는 커밋 메시지가 더 중요

image
  • 리뷰 중 PR은 가급적 Main 브랜치와 Align되도록, outdated 된 커밋없이 검증되도록 Rebase 필수

3.2 Github Action 상태 체크

image
  • PR 요청후 테스트 승인시 깃허브 액션에 의한 자동화된 검증 프로세스가 수행됨
  • 이는 안정성을 위한 최소한의 울타리 역할을 하며, 모든 프로세스가 pass 되는지 필수 체크

IMPORTANT

image Pixel Inspector 의 결과 -> 최근 머지된 PR 과 대조 및 사이드 이펙트 확인후 수정 image

4. 기타 (AI 툴 활용)

댓글

Discussion 원문