ステータスの構築:
このリポジトリには、binarybuilder.jlを使用して、ジュリアパッケージ用のバイナリを構築するためのレシピが含まれています。
新しいレシピを提供するために、どちらもできます
BinaryBuilder.run_wizard()
を使用します。これは、要求されたすべてのプラットフォームの成功したビルドの後にこのリポジトリにプル要求を自動的に開きますYggdrasilは、Julia 1.3.0以降のバージョンを必要とするBinaryBuilder.jlのmaster
バージョンを使用してTarballsを構築します。このbinarybuilder.jlバージョンにはv0.1.4と比較していくつかの違いがあり、生成されたビルダーはわずかに異なることに注意してください。 binarybuilder.jl v0.1.4用に書かれたビルダーを寄付することを歓迎しますが、マイナーな調整が必要になる可能性があります。
BuildKite CIは、ビルダーがターボールを正常に生産できることをテストするために使用されます。
プルリクエストを開く前に手動BuildScriptをテストする場合は、Julia 1.3にBinaryBuilder.jl
インストールするか、次のリリースと実行中のjulia --color=yes build_tarballs.jl --verbose --debug
ローカルにインストールすることをお勧めします。 MacOSでは、これを機能させるためにdocker
インストールする必要があります。
上流パッケージの新しいバージョンのビルドをトリガーするには、必要に応じてビルダーを更新するためのプル要求を開くだけです。これは通常、バージョン番号とソースのみを更新することになります(たとえば、アーカイブのURLとハッシュ、またはGITリポジトリの改訂版)が、場合によってはさらに変更が必要になる場合があります。
BinaryBuilderの最後のバージョンでは、Julia 1.3のArtifacts
Systemの配送を利用しています。これは、BinaryBuilderがJulia Packageのdeps/
Folderに配置されたbuild.jl
ファイルを生成するのではなく、代わりにJuliabinaryWrappers組織内に配置されたJuliaパッケージ全体(口語的には「JLL」パッケージとして知られている)を生成することを意味します。 Yggdrasilへのマージされたプルリクエストにより、これらのラッパーパッケージの新しいバージョンが生成、アップロード、登録され、クライアントのJuliaコードがusing LibFoo_jll
単純に呼び出して、 Pkg.build()
ステップを必要とせずにバイナリを取得できます。 (もちろん、これはジュリア1.3+の場合にのみ当てはまります)。
ジュリアの開発者は、ライブラリにJLLパッケージを使用することをお勧めします。 BinaryBuilderの文書化を読んで、それらの使用方法を学びます。
Julia Packagesのプル要求の例をいくつか紹介します。JLLパッケージを使用して、事前に構築されたバイナリをユーザーに提供します。
Artifacts
システムの詳細と、Juliaのブログ「PKG + BinaryBuilder -The Next Generation」のこの投稿で再現性がどのように重要であるかをお読みください。
JLLパッケージに切り替えることが重要な理由について確信してくれることを願っています。ただし、Julia V1.2または以前のバージョンを本当にサポートする必要がある場合は、BinaryProvider.jlを使用し続ける必要があります。前のセクションで説明したように、 build.jl
ファイルはビルド後に生成されなくなりました。それはjllパッケージには使用されていないため、自分で生成する必要があります。これ: generate_buildjl.jl
。 3つの位置的議論が必要です。
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
で使用して、以前のリリースに使用します。