오픈소스 프로젝트

오픈소스에 커스텀 코드가 들어갈 때 어떻게 관리해야할까?

HOONY_612 2024. 1. 18. 20:04
반응형

 

소개

 

업무 중 오픈 소스를 사용 중인데 회사 제품에 맞게 커스텀 구현한 코드들이 들어가있다.

이번 버전 출시가 오래 걸려서 오픈 소스 버전을 업데이트 하지 못해 1년 정도 지났다.

그러다보니 Upstream Repo(Conductor OSS Repository)의 많은 변경이 일어났다.

변경을 반영하려다 보니 Merge Confilct 및 파일이 1200개 가량 변경되는 일이 발생했다.

그래서 기존 OSS Repository main branch와 우리가 사용하는 커스텀 코드가 포함되어져있는 Repo의 동기화는 어떻게 하면 좋을지 고민했다.

그러던 와중 시니어 한 분이 OSS 관리하는 방법을 제안해주셔서 방법을 정리 및 공유해보려한다.

 

 

과정

아래의 그림은 전체적인 과정이다.

 

 

1. 3.13.3 버전의 OSS Repo를 받아온다.

2. conductor-ndap_3.13.3_7.1.0 브랜치를 생성하여 7.1.0 개발을 시작한다.

3. 다음 버전을 위해 컨덕터의 수정사항들을 불러온다.

4. 7.2.0 버전 개발을 위해서 conductor-ndap_3.16.0_7.2.0 브랜치를 생성한다.

5. Cherry Pick 기능을 이용해 7.1.0 개발 내용들을 가져온다.

6. 7.2.0 개발을 시작한다.

7. 다음 버전을 위해 컨덕터의 수정사항들을 불러온다.

8. 7.3.0 버전 개발을 위해서 conductor-ndap_4.0.0_7.3.0 브랜치를 생성한다.

9. Cherry Pick 기능을 이용해 7.1.0 ~ 7.2.0 개발 내용들을 가져온다.

10. 7.3.0 개발을 시작한다.

 

반복과정...

 

위 과정들을 반복하면 기존 main 브랜치로만 작업할 때 보다 diff 파일이 많이 줄어든다.

결과적으로 코드 리뷰 용이 및 conflict 위험을 최소한으로 할 수 있다.

반응형