Julia 코드 및 관련 종속성의 반복성을 어떻게 보장합니까?
내가 분석을 수행하는 프로젝트 (예 : 공유 가능한 패키지를 개발하지 않음)가 있지만 다른 사람들이 저장소를 복제하고 종속성을 인스턴스화하고 작성된대로 코드를 실행할 수 있는지 확인하고 싶다고 가정 해 보겠습니다.
지금까지 취한 조치 :
- 자체 폴더에 생성 된 코드
- 해당 폴더를 Julia 환경으로 만들었습니다 (
activate .
REPL의 패키지 모드에서). add
내가 사용하고있는 패키지
이것은 종속성 버전에서 잠기나요? 아니면 파일 에 [compat]
항목을 수동으로 추가해야 Project.toml
합니까? 항목 [compat]
이 필요한 add
경우 패키지를 작성할 때 해당 항목을 자동으로 포함하는 방법이 있습니까?
reporducability를 보장하기위한 전반적인 접근 방식이 있습니까?
답변
이것은 종속성 버전에서 잠기나요?
커밋 Project.toml
하고 Manifest.toml
누군가가 저장소를 복제 할 수 있다면 해당 프로젝트를 활성화 import Pkg; Pkg.instantiate()
하고 매니페스트에 기록 된 것과 똑같은 버전을 다운로드하십시오.
이것은 종속성 버전에서 잠기나요?
예, Manifest.toml
파일이 수정되지 않는 한 정확한 버전이 파일에 기록된다는 의미에서 파일이 잠겨 있습니다.
아니면 파일 에
[compat]
항목을 수동으로 추가해야Project.toml
합니까?
당신은 이것을 할 필요가 없습니다. 이는 누군가가 해결 프로그램을 호출하는 패키지 작업을 수행하는 경우에만 중요합니다 (예 : pkg> add ...
또는) pkg> up
. 코드가 패키지의 특정 버전에 의존하는 경우 언제든지 [compat]
섹션에 추가 할 수 있습니다 . 예를 들어 패키지 X
버전 1.3.0 이 필요한 기능에 의존하는 경우 다음을 추가 할 수 있습니다.
[compat]
X = "1.3"
이렇게하면 누군가 패키지 리졸버를 호출하더라도 적어도 버전 1.3의 package를 얻을 수 X
있습니다.