Typst, 1.0 버전 출시를 위한 호환성 확보 전략 공개

by DD
3개월 전
조회수 10

Typst는 1.0 버전 출시를 앞두고 SemVer(Semantic Versioning) 준수의 어려움을 인지하고, 호환성 유지를 위한 전략을 모색함.

타겟 버전(Target Version) 개념을 도입하여, 패키지별 호환성을 관리하고, 생태계에 미치는 영향을 최소화하려 함.

자동 마이그레이션 도구(Automated Migration Tooling) 개발을 통해, 향후 발생할 수 있는 호환성 문제(Compatibility Issues)를 해결하고, 사용자 편의성을 높일 계획임.

커뮤니티에서는 1.0 버전 출시 지연에 대한 다양한 의견이 제시되었으며, SemVer의 유연한 적용에 대한 논의가 이루어짐.

SemVer(Semantic Versioning)의 현실적 어려움

Typst 개발팀은 SemVer의 원칙을 따르면서도, 실제 변경 사항이 호환성(Compatibility)에 미치는 영향을 정확히 정의하는 데 어려움을 겪고 있다고 밝혔다. 특히, 레이아웃 변경, 스타일 속성 기본값 변경, 내부 정렬 동작 변경 등과 같이, 미묘한 변경(Subtle Changes)이 생태계에 미치는 영향을 예측하기 어렵다는 점을 지적했다. 이러한 불확실성 때문에 1.0 버전 출시를 망설이고 있으며, SemVer의 엄격한 적용(Strict Application)이 오히려 프로젝트 발전을 저해할 수 있다는 점을 강조했다.

타겟 버전(Target Version) 개념 도입

Typst는 패키지별로 호환성(Compatibility)을 관리하기 위해, 타겟 버전(Target Version) 개념을 도입할 예정이다. 이는 패키지가 특정 Typst 버전을 대상으로 개발되었음을 명시하고, 해당 버전 이후의 변경 사항에 대해 호환성 유지(Compatibility Maintenance)를 보장하는 방식이다. 구체적으로, `compiler = { min = "0.15", target = "0.17" }`와 같은 설정을 통해, 패키지 개발자는 특정 버전 범위를 지정하고, Typst는 해당 범위 내에서 호환성(Compatibility)을 유지하도록 동작한다. 이는 Rust의 Edition 메커니즘과 유사하며, 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 생태계의 안정성을 확보하는 데 기여할 것으로 예상된다.

자동 마이그레이션 도구(Automated Migration Tooling) 개발

Typst 개발팀은 향후 발생할 수 있는 호환성 문제(Compatibility Issues)를 해결하기 위해, 자동 마이그레이션 도구 개발을 고려하고 있다. 특히, 수학 수식 우선순위 변경, 함수 매개변수 구문 변경 등과 같이, 광범위한 코드 변경(Extensive Code Changes)을 유발할 수 있는 변경 사항에 대한 자동 마이그레이션 도구 개발을 우선적으로 추진할 계획이다. 이 도구는 사용자 편의성(User Convenience)을 높이고, 개발자들이 새로운 버전으로 쉽게 마이그레이션할 수 있도록 지원할 것이다. 또한, CLI 및 웹 앱과의 통합을 통해 접근성(Accessibility)을 향상시킬 예정이다.

커뮤니티의 다양한 의견

커뮤니티에서는 1.0 버전 출시 지연에 대한 다양한 의견이 제시되었다. 일부 개발자는 SemVer의 엄격한 준수보다는, 유연한 버전 관리(Flexible Versioning)를 통해 더 빠르게 릴리스하는 것을 선호했다. 또한, Rust의 `rand` crate와 같이, 0.x 버전을 장기간 유지하는 것에 대한 비판적인 시각도 존재했다. 반면, SemVer의 중요성을 강조하며, 안정적인 API(Stable API) 제공의 필요성을 역설하는 의견도 있었다. 이러한 다양한 의견을 수렴하여, Typst 개발팀은 최적의 버전 관리 전략(Optimal Versioning Strategy)을 수립할 것으로 예상된다.

Evolving Typst