cubrid
cubrid copied to clipboard
[CBRD-25831] Add Nix flake for reproducible development environments
http://jira.cubrid.org/browse/CBRD-25831
Purpose
Nix flake를 통한 재현 가능한 개발 환경 지원 추가
https://www.youtube.com/watch?v=FJVFXsNzYZQ
개발자들이 서로 다른 시스템에서도 일관된, 재현 가능한 개발 환경을 사용할 수 있도록 Nix Flakes 지원을 추가합니다. 이를 통해 "내 환경에서는 잘 되는데" 문제를 해결하고 새로운 개발자들의 환경 설정 과정을 단순화합니다.
장점
- 서로 다른 환경에서도 재현 가능한 빌드
- 선언적인 개발 환경 구성
- 자동화된 의존성 관리
- 모든 개발자가 동일한 도구 버전 사용
- 격리된 빌드 환경
사용 방법
1. Nix 패키지 매니저 설치
sh <(curl -L https://nixos.org/nix/install) --no-daemon # multi-user server를 위한 daemon 방식도 있음
대략 5분 소요
2. Nix Flakes 활성화
~/.config/nix/nix.conf 또는 /etc/nix/nix.conf에 다음을 추가:
experimental-features = nix-command flakes
3. 개발 환경 진입
CUBRID 소스 디렉토리에서:
nix develop
첫 시도 시 대략 1분 소요될 수 있음. 두번째 시도부터 3초 안에 진입
4. CUBRID 빌드
./build.sh -m debug build
Implementation
- 개발 환경을 정의하는
flake.nix추가 - 필요한 모든 빌드 의존성과 도구 포함
- NixOS와 다른 Linux 배포판 모두 지원
테스트
- 깨끗한 Nix 환경에서 빌드 프로세스 검증
- 재현성 확인을 위해 여러 시스템에서 테스트
- debug와 release 구성 모두 성공적으로 빌드
Remarks
- 기존 빌드 방식도 계속 사용 가능
- 기존 빌드에 전혀 영향을 주지 않음