상태 빌드 :
이 저장소에는 binarybuilder.jl을 사용하여 Julia 패키지 용 바이너리 구축 레시피가 포함되어 있습니다.
새로운 레시피를 제공하기 위해서도 마찬가지입니다
BinaryBuilder.run_wizard()
사용하면 요청 된 모든 플랫폼에 대한 성공적인 빌드 후이 저장소에 대한 풀 요청을 자동으로 열립니다. Yggdrasil은 Julia 1.3.0 이상 버전이 필요한 BarinaryBuilder.jl의 master
버전을 사용하여 Tarball을 구축합니다. 이 BinaryBuilder.jl 버전은 V0.1.4와 비교하여 약간의 차이가 있으며 생성 된 빌더는 약간 다릅니다. BinaryBuilder.jl V0.1.4를 위해 작성된 건축업자를 기여할 수는 있지만 약간의 조정이 필요할 것입니다.
BuildKite CI는 Builders가 Tarballs를 성공적으로 생산할 수 있음을 테스트하는 데 사용됩니다.
풀 요청을 열기 전에 매뉴얼 빌드 스크립트를 테스트하려면 Julia 1.3에 BinaryBuilder.jl
설치하거나 다음 julia --color=yes build_tarballs.jl --verbose --debug
릴리스하고 실행하는 것이 좋습니다. MACOS에서는 docker
설치하려면 Docker를 설치해야합니다.
새 버전의 업스트림 패키지의 빌드를 트리거하려면 PULL 요청을 열어 필요에 따라 빌더를 업데이트하십시오. 이는 일반적으로 버전 번호와 소스 (예 : 아카이브의 경우, URL 및 해시 또는 git 저장소의 개정) 만 업데이트하는 것으로 보이지만 경우에 따라 더 많은 변경이 필요할 수 있습니다.
BinaryBuilder의 마지막 버전은 Julia 1.3의 Artifacts
시스템 배송을 사용합니다. 이는 BinaryBuilder가 더 이상 Julia 패키지의 deps/
폴더에 배치 된 build.jl
파일을 생성하지 않고 대신 JuliabinaryWrappers 조직 내에 배치 된 전체 Julia 패키지 (구어체로 알려진 "JLL"패키지라고 함)를 생성 함을 의미합니다. Yggdrasil에 병합 된 풀 요청은 이러한 래퍼 패키지의 새로운 버전을 생성, 업로드 및 등록하여 클라이언트 Julia 코드가 using LibFoo_jll
간단히 호출하여 Pkg.build()
단계가 필요하지 않은 바이너리를 보유 할 수 있습니다. (물론 이것은 Julia 1.3+의 경우에만 해당 될 것입니다).
Julia 개발자는 라이브러리에 JLL 패키지를 사용하도록 권장합니다. BinaryBuilder의 documention을 읽고 사용하는 방법을 배우십시오.
다음은 JLL 패키지를 사용하여 JLL 패키지를 사용하여 미리 빌드 바이너리를 사용자에게 제공하는 풀 요청의 몇 가지 예입니다.
Julia의 블로그 "PKG + BinaryBuilder -The Next Generation"의이 게시물에서 Artifacts
시스템과 재현성에 중요한 방법에 대한 자세한 내용을 읽을 수 있습니다.
JLL 패키지로 전환하는 것이 왜 중요한지에 대해 확신하기를 바랍니다. 그러나 Julia v1.2 또는 이전 버전을 실제로 지원 해야하는 경우 BinaryProvider.jl을 계속 사용해야합니다. 이전 섹션에서 설명했듯이 build.jl
파일은 더 이상 빌드 후에 JLL 패키지에 사용되지 않기 때문에 더 이상 빌드 후에 생성되지 않으며 대신 직접 생성해야합니다. YGGDRASIL의 최상위 디렉토리에는해야 할 스크립트가 있습니다. 이것 : generate_buildjl.jl
. 세 가지 위치 주장이 필요합니다.
build_tarballs.jl
스크립트의 경로owner/name
. 생략되면이 기본값은 JuliaBinaryWrappers/BuilderName_jll.jl
로 나타납니다 예를 들어, 최신 버전의 Zlib에 대한 build.jl
파일을 얻으려면 다음 명령을 실행할 수 있습니다.
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl
대신 Zlib-v1.2.11+6이라는 태그에 대한 build_tarballs.jl
파일을 받으려면 명령을 실행해야합니다.
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl JuliaBinaryWrappers/Zlib_jll.jl Zlib-v1.2.11+6
참고 : 생성 된 build.jl
파일의 모든 Product
생성기에 첫 번째 인수로 prefix
수동으로 추가해야합니다. BinaryBuilder v0.2+
와 BinaryProvider
사이의 구문이 분기 되었기 때문에 이것은 필요합니다.
모든 직접 및 간접 종속성에 대한 build.jl
파일도 필요합니다.
다음은 라이브러리를 설치하기 위해이 시스템을 사용하는 패키지의 몇 가지 예입니다.
build.jl
스크립트를 위해 JLL 패키지를 사용하여 이전 릴리스를 위해 BinaryProvider.jl
사용합니다.