기사의/품질 관리을/자주 묻는 질문/책을 많이 읽은 후 나는 스키마 버전 관리 프로젝트 버전 (간의 호환성을 설명 에 가 [전공]. [MINOR가]. [REV]를 가장 유용한 버전 스키마가 생각하는가 개발자, 마케팅을위한 것이 아닙니다).버전에서 버전/빌드 구성 요소를 어떻게 유지합니까?
주요 변경 사항은 호환되지 않는 뒤로하고
사소한 변경은 역 호환 등 파일의 GUID에 프로젝트 이름, 경로를 변경이 필요합니다. 새로운 기능 소개를 표시하십시오.
보안/버그 수정을 위해 REV. 역방향 및 순방향 호환.
많은 프로젝트가 릴리스 서버 (FTP)에 을 저장 한 내부 라이브러리에 의존합니다. 종속 라이브러리에
1.0.0 1.1.0 1.1.1
경로 LIB 디렉토리에 자동 다운로드에 대한 빌드 스크립트로 코딩 버전의 구성 요소 및 하드 을 포함한다 : 그들은처럼, 서로 다른 버전이있다.
질문 : 집 개발을위한 빌드 스크립트 에 라이브러리 경로를 포함시키는 것이 일반적인 관행입니까?
질문 : 라이브러리 이름에 버전 번호를 포함 시키거나 을 포함하지 않는 것이 가장 좋습니다. 포함 할 구성 요소는 무엇입니까? 예를 들어 당신이 포함 된 경우
libfoo-1.so libfoo-1.2.jar libfoo-2.3.14.dll
만 [MAJOR] 당신이 소스 에 libary 이름을 인라인 수 있으며, 버전 변경으로 당신이 어떤 코드를 수정할 필요가 없습니다. 라이브러리의 이름은 고정되어 있으므로 런타임에 라이브러리 버전을 요청할 수 있습니다 (적절한 함수 호출).
당신이 포함 된 경우 [MAJOR]. [MINOR] 구성 요소에 영향을받는 모든 프로젝트를 업데이트 할 필요 모든 사소한 변화 (을 LoadLibrary에 대한 호출을 CLASSPATH의 ENV var에). 그리고 런타임에 라이브러리를 검색하기위한 표준 메커니즘은 보통 과 같이 와일드 카드 (예 : "libbar-2. *")로로드 할 수 없으므로 런타임에 버전을 확인할 수 없습니다.
[REV]을 포함한다고 생각합니다. 이 구성 요소를 어떻게 든 버그 보고서로 제공하기 만하면 이 필요합니다.
질문 : 같은 경로에 패키지 출시 : 나는 그런 스키마를 실현하기 위해 계획
/srv/projs/foo/1.2.2
이전 경로에서
/srv/projs/foo/1.2
에 심볼릭 링크를 만들었습니다. 따라서 모든 종속 프로젝트에서는 최신 라이브러리를 얻으려면 어떤 단계를 거치지 않아도됩니다. 어느 누구도 그러한 스키마를 사용합니까?
http://groups.google.com/group/comp.software.config-mgmt/browse_thread/thread/3c80ada4047720f0# – gavenkoa