피드로 돌아가기
Dev.toDevOps
원문 읽기
Git 기반 의존성 관리 및 표준 빌드 워크플로우를 도입한 Forth 패키지 매니저 FMix
FMix: a package manager for Forth
AI 요약
Context
Forth 언어의 미니멀한 특성으로 인한 프로젝트 구조 표준 부재와 수동 의존성 관리의 비효율성 발생. 기존 f.4th 라이브러리가 전용 서버 기반의 중앙 집중형 배포 방식만을 제공하여 Git 기반의 유연한 버전 제어 및 분산 관리가 불가능한 한계 존재.
Technical Solution
- Elixir Mix의 설계 철학을 차용하여 프로젝트 생성, 의존성 획득, 테스트 실행을 단일 인터페이스로 통합한 Tooling 설계
- Git URL, Branch, Tag 기반의 직접 참조 방식을 도입하여 중앙 서버 의존성을 제거한 분산 패키지 관리 아키텍처 구현
./forth-packages/경로 내 라이브러리별 버전별 디렉토리를 격리하여 동일 라이브러리의 다중 버전 공존이 가능한 Side-by-Side 구조 설계- JSON/YAML 대신 Forth 언어의 특성을 반영한 Tiny Declarative Forth 포맷의
package.4th설정 파일 정의 ttester프레임워크를 연동하여 로컬 프로젝트 의존성 및FMIX_HOME전역 경로를 순차적으로 탐색하는 테스트 런너 로직 구축theforth.net기존 생태계와의 하이브리드 호환성을 확보하여 Git과 전용 서버 패키지를 동시에 참조하는 유연한 의존성 전략 채택
실천 포인트
- 레거시 언어 도입 시 현대적인 DX(Developer Experience) 확보를 위한 최소 기능 빌드 툴(New, Get, Test) 정의 - 의존성 충돌 방지를 위해 패키지 저장소 내 버전별 물리적 경로 격리 전략 검토 - 특정 환경(예: Snap)의 Sandbox 제약이 파일 시스템 접근 및 도구 실행에 미치는 영향 분석