개요
VillageSQL은 배포 및 업그레이드에 대한 정보 기반 결정을 도와주기 위해 명확한 버전 관리 및 호환성 정책을 따릅니다.VillageSQL 버전 관리
VillageSQL은 각 릴리스에서의 변경 사항의 성격과 영향을 전달하기 위해 Semantic Versioning (SemVer)을 사용합니다.버전 형식
버전은 다음 형식을 따릅니다: MAJOR.MINOR.PATCH버전 증가 규칙
- MAJOR 버전 (예: 1.0.0 → 2.0.0): 코드 수정 또는 데이터베이스 마이그레이션을 요구할 수 있는 변경 사항
- MINOR 버전 (예: 0.1.0 → 0.2.0): 호환성 유지 방식으로 추가된 새로운 기능 및 동작
- PATCH 버전 (예: 0.0.1 → 0.0.2): 하위 호환성을 유지하는 버그 수정 및 경미한 개선
VillageSQL은 현재 1.0 미만 개발 단계(버전 0.x.x)에 있습니다. 이 단계에서는 플랫폼이 안정화될 때까지 API 및 확장 인터페이스가 더 자주 변경될 수 있습니다.
개발 빌드
접미사가 프리릴리스인 버전(예:0.0.4-dev)은 개발 빌드입니다. 서버는 기본적으로 개발 빌드로 초기화된 데이터베이스에서 업그레이드를 차단합니다. 개발 빌드는 업그레이드 호환성에 대해 테스트되지 않았으며, 스키마 또는 프로토콜 변경을 포함할 수 있습니다.
이를 허용하려면 --villagesql-allow-unsafe-dev-upgrade 플래그와 함께 서버를 시작하세요:
확장 호환성
VillageSQL 확장은 특정 버전에 종속적입니다. 한 버전의 VillageSQL용으로 빌드된 확장은 다른 버전과 호환되지 않을 수 있습니다. VillageSQL을 업그레이드할 때:- 새 버전에 대한 확장 호환성 확인
- 필요한 경우 확장 업데이트 또는 재빌드
- 프로덕션 배포 전 개발 환경에서 확장 테스트
0.0.3에서의 SDK 변경 사항
프로토콜 2 확장은 재빌드가 필요합니다. VEF 프로토콜 3은 v0.0.4부터 안정적입니다. 서버는 이제 로드 시 프로토콜 2 확장을 거부합니다. 타입화된 래퍼(StringArg, IntArg, StringResult 등)를 사용하여 프로토콜 3 API에 맞춰 재빌드하세요.
vef_version_t::extra 타입이 const char*로 수정되었습니다. 0.0.3에서는 이 필드가 unsigned char*였습니다. 대부분의 확장은 직접 접근하지 않습니다. 이 필드는 SDK에서 manifest.json의 버전 필드로부터 채워집니다. 직접 접근하는 경우 0.0.4 SDK와 컴파일할 때 (unsigned char *) 캐스트를 제거하세요.
