Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CBRD-25831] Add Nix flake for reproducible development environments #5811

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

vimkim
Copy link
Contributor

@vimkim vimkim commented Jan 15, 2025

http://jira.cubrid.org/browse/CBRD-25831

Purpose

Nix flake를 통한 재현 가능한 개발 환경 지원 추가

image

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

  • 기존 빌드 방식도 계속 사용 가능
  • 기존 빌드에 전혀 영향을 주지 않음

@vimkim vimkim self-assigned this Jan 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant