vergen 라이브러리 소개

Park Juhyung
코드체인
Published in
2 min readAug 21, 2018

유저가 실행중인 프로그램에 문제가 생겼을 때, 실행파일이 언제 빌드되었는지, 어떤 커밋 해시에서 빌드되었는지 정보를 알면 디버깅하기가 훨씬 쉬워지므로, 많은 프로젝트가 빌드된 시점의 정보를 실행파일에 추가합니다.

Photo by Matthias Kinsella on Unsplash

하지만 빌드 시점의 정보를 실행파일에 넣는 작업은 간단하지 않습니다. 대부분의 언어들이 컴파일 시간에 일어나는 일에 대해 지원을 해주지 않기에, 빌드 시점에 알 수 있는 정보를 실행파일에 넣기가 어렵기 때문입니다. 커밋 해시를 추가하거나 빌드 시점의 정보를 추가하려면, 빌드 전 코드 생성이나 빌드 전 바이너리에 포함될 리소스 파일 생성과 같은 복잡한 빌드작업을 추가해야 합니다.

러스트는 다행히 빌드 전에 해야 하는 일을 build.rs 에서 러스트 코드로 처리할 수 있으며, 빌드 전 알게 된 정보를 실행파일에 전달하는 표준적인 방법이 존재합니다.

그래도 build.rs 로 git을 실행시키는 것도 귀찮은 분들을 위해서 git hash나 빌드 시점의 시간을 쉽게 실행파일에 넣어주는 vergen 이라는 라이브러리가 있습니다. 문서화가 잘 되어있는 라이브러리는 아니지만, 하는 일이 단순하므로 예제 코드를 보고 쉽게 사용할 수 있습니다.

아래는 코드체인에서 커밋 해시를 확인하는 RPC를 만들기 위해 `env!(“VERSION_SHA”)` 를 사용하는 예시입니다.

`env!(“VERSION_SHA”)`를 사용하기 위해서는 build.rs를 추가해야 합니다.

라이브러리의 문서는 아래 링크에서 확인할 수 있습니다.

https://github.com/rustyhorde/vergen

--

--