반응형

안녕하세요

Henry's Algorithm 블로그를 운영하는 개발자 Henry입니다.

 

https://datacodingschool.tistory.com/259

 

Apache Zeppelin 오픈소스 컨트리뷰션 - 1. CLI 빌드

안녕하세요 Henry's Algorithm을 운영하는 개발자 헨리입니다. 이번에 과학기술정통부에서 주최하는 2022 오픈소스 컨트리뷰션 아카데미의 대한 기록들을 남겨보려고 합니다. 오픈소스 컨트리뷰션

datacodingschool.tistory.com

 

오늘은 앞서 오픈소스 컨트리뷰톤을 진행하면서, 계속해서 글을 적어보겠습니다.

지난 시간에는 오픈소스 컨트리뷰톤에 대해서 간략히 말씀드렸고, Mac에서 소스를 빌드하는 것을 디버깅해보며, 

해결하였습니다.

 

오늘은 이제 오픈소스 컨트리뷰터가 되기 위해 이슈를 정하고 Jira에 등록한 뒤, 

등록된 이슈를 해결해보도록 하겠습니다.

 

먼저 이슈를 정해야 합니다.

저는 윈도우에서 순수 Zeppelin 소스가 빌드가 안된다는 것을 들어서,

그것을 해결해보겠습니다.

 

1. 일단 윈도우에서 소스 빌드가 안되는 상황이 있다는 것을 알리겠습니다.

 

2. Zeppelin GitHub 사이트에 들어갑니다.

 

 

3. Pull Request 로 들어갑니다.

 

 

4. 아무거나 PR을 하나 선택하여 들어갑니다.

 

 

 

5. 스크롤을 쭉 내려보면 아래와 같은 PR 소스를 빌드해보는 CI 단계가 명시되어 있습니다.

Some checks were not successful 이라고 뜬 것을 보면, PR 소스에 대해서 빌드 과정 중 몇가지가 해결되지 못했다는 것을 볼 수 있습니다.

 

여기서 스크롤를 맨 밑으로 내려줍니다.

 

 

6. 아래와 같은 CI 설정이 보이시는데, appveyor는 Window 머신을 지원합니다.

현재 성공인 것을 볼 수 있습니다.

 

 

7. 그러면 appveyor 파일을 살펴보겠습니다.

다시 코드로 돌아와 appveyor 파일을 눌러줍니다.

 

 

 

8. 현재 이 부분이 비워져 있는 것을 볼 수 있습니다.

그냥 echo "install" / "build" 만 들어가 있고, 무조건 성공을 하게 됩니다.

빌드 부분을 ./mvnw clean package -DskipTests 로 넣어준다면 에러가 발생할 것입니다.

 

 

 

9. 일단 고쳐야 할 필요가 있다는 것을 알리기 위해 먼저 에러를 발생시켜보겠습니다.

intellij에서 zeppelin 프로젝트를 열어보겠습니다.

 

 

 

10. appveyor 파일을 열고 스크립트를 편집합니다.

 

 

 

11. build-script 부분을 바꿔줍니다.

 

appveyor.yml 를 편집하는 규칙은 아래 appveyor 공식 홈페이지에서 참고하였습니다.

https://www.appveyor.com/docs/appveyor-yml/

 

appveyor.yml Reference

#1 Continuous Delivery service for Windows

www.appveyor.com

 

install 설정은 repository를 clone하고 난 뒤의 필요한 설정들을 넣어주는 옵션입니다.

 

build-script 설정은 Window 자동 설정 대신에 개별적인 빌드 스크립트를 넣는 설정입니다.

 

 

이렇게 수정해주었습니다.

 

 

 

그리고 실제로 해당 빌드 스크립트를 윈도우의 PowerShell을 이용해 실행해보면

아래와 같은 부분에서 에러가 발생합니다.

그러나 아래의 에러는 그냥 넘어가게 되어 있었습니다. 이것도 원인을 찾아보아서 다시 수정해야 되겠습니다.

 

 

그러나 위의 ERROR가 찍혀도 이후 정상적으로 실행되어, 빌드가 완료되었습니다.

해당 내용을 git에 add, commit, push 한 뒤 PR을 날려보겠습니다.

 

 

push 하였기 때문에 변경된 코드의 수정 내역을 나의 Repository에서 볼 수 있습니다.

https://github.com/apache/zeppelin/compare/master...jooyounghun:zeppelin:master

 

GitHub - apache/zeppelin: Web-based notebook that enables data-driven, interactive data analytics and collaborative documents wi

Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. - GitHub - apache/zeppelin: Web-based notebook that enables data-driven...

github.com

 

그리고 해당 commit에 대해서 create new pull request를 실행하면 오픈소스의 origin repository에 날라가게 됩니다.

그리고 오픈소스의 commiter들이 해당 내용을 리뷰하고 머지해주게 되는 구조입니다.

 

저는 아래와 같이 PR을 날렸습니다.

해당 내용에 대해서 어떻게 review가 올지 모르겠지만,

Zeppelin의 contributor가 되어 오픈소스 분산 시스템에 기여하는 것이 목표입니다.

https://github.com/apache/zeppelin/pull/4426

 

[ZEPPELIN-5766] Window compilation (.appveyor.yml) by jooyounghun · Pull Request #4426 · apache/zeppelin

What is this PR for? Add build script to appveyor.yml for build test What type of PR is it? Improvement Todos Nothing What is the Jira issue? https://issues.apache.org/jira/browse/ZEPPELIN-5766 How...

github.com

 

 

이상 긴 글 읽어주셔서 감사합니다.

반응형

+ Recent posts