สร้างสถานะ:
พื้นที่เก็บข้อมูลนี้มีสูตรสำหรับการสร้างไบนารีสำหรับแพ็คเกจ Julia โดยใช้ binarybuilder.jl
เพื่อมีส่วนร่วมสูตรใหม่คุณสามารถทำได้เช่นกัน
BinaryBuilder.run_wizard()
ซึ่งจะเปิดคำขอดึงไปยังที่เก็บนี้โดยอัตโนมัติหลังจากการสร้างที่ประสบความสำเร็จสำหรับแพลตฟอร์มที่ร้องขอทั้งหมด Yggdrasil สร้าง tarballs โดยใช้รุ่น master
ของ binarybuilder.jl ซึ่งต้องใช้ Julia 1.3.0 หรือใหม่กว่า โปรดทราบว่ารุ่น binarybuilder.jl นี้มีความแตกต่างบางอย่างเมื่อเทียบกับ v0.1.4 และผู้สร้างที่สร้างขึ้นนั้นแตกต่างกันเล็กน้อย คุณยินดีที่จะสนับสนุนผู้สร้างที่เขียนขึ้นสำหรับ binarybuilder.jl v0.1.4 แต่พวกเขาอาจต้องการการปรับเปลี่ยนเล็กน้อย
Buildkite CI ใช้เพื่อทดสอบว่าผู้สร้างสามารถผลิต tarballs ได้สำเร็จ
หากคุณต้องการทดสอบ buildscript แบบแมนนวลของคุณก่อนที่จะเปิดคำขอดึงเราขอแนะนำให้ติดตั้ง BinaryBuilder.jl
บน Julia 1.3 หรือการเปิดตัวต่อไปนี้และเรียกใช้ julia --color=yes build_tarballs.jl --verbose --debug
ในท้องถิ่น บน MacOS คุณจะต้องติดตั้ง docker
เพื่อให้ทำงานได้
ในการเรียกสร้างแพ็คเกจต้นน้ำเวอร์ชันใหม่เพียงเปิดคำขอดึงเพื่ออัปเดตตัวสร้างตามความจำเป็น สิ่งนี้มักจะเดือดลงไปที่การอัปเดตหมายเลขเวอร์ชันและแหล่งที่มาเท่านั้น (เช่น URL และแฮชสำหรับการเก็บถาวรหรือการแก้ไขสำหรับที่เก็บ GIT) แต่ในบางกรณีอาจจำเป็นต้องมีการเปลี่ยนแปลงมากขึ้น
BinaryBuilder รุ่นสุดท้ายใช้ประโยชน์จากการจัดส่งระบบ Artifacts
ใน Julia 1.3 ซึ่งหมายความว่า BinaryBuilder จะไม่สร้างไฟล์ build.jl
ที่วางไว้ใน deps/
โฟลเดอร์ของแพ็คเกจ Julia ของคุณอีกต่อไป แต่แทนที่จะสร้างแพ็คเกจ Julia ทั้งหมด (รู้จักกันในชื่อ "JLL" แพคเกจ) ที่วางไว้ในองค์กร JuliabinaryWrappers การร้องขอการดึงแบบรวมไปยัง Yggdrasil ส่งผลให้แพคเกจห่อหุ้มรุ่นใหม่เหล่านี้ถูกสร้างอัปโหลดและลงทะเบียนทำให้รหัส Julia ลูกค้าของคุณเรียกใช้ using LibFoo_jll
เพื่อรับตำแหน่งไบนารีของคุณโดยไม่จำเป็นต้องใช้ Pkg.build()
(แน่นอนว่านี่จะเป็นกรณีของ Julia 1.3+ เท่านั้น)
เราสนับสนุนให้นักพัฒนา Julia ใช้แพ็คเกจ JLL สำหรับห้องสมุดของพวกเขา อ่านเอกสารของ BinaryBuilder เพื่อเรียนรู้วิธีการใช้งาน
นี่คือตัวอย่างบางส่วนของคำขอดึงของแพ็คเกจ Julia ที่เปลี่ยนไปใช้แพ็คเกจ JLL เพื่อจัดทำไบนารีที่สร้างไว้ล่วงหน้าให้กับผู้ใช้:
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับระบบ Artifacts
และวิธีการทำซ้ำในโพสต์นี้ในบล็อกของ Julia "PKG + BinaryBuilder - The Next Generation"
เราหวังว่าเราจะโน้มน้าวใจคุณว่าทำไมการเปลี่ยนมาใช้แพ็คเกจ JLL เป็นสิ่งสำคัญ อย่างไรก็ตามหากคุณต้องการสนับสนุน Julia v1.2 หรือเวอร์ชันก่อนหน้าคุณควรใช้ binaryprovider.jl ต่อไป ตามที่อธิบายไว้ในส่วนก่อนหน้าไฟล์ build.jl
จะไม่ถูกสร้างขึ้นหลังจากการสร้างอีกต่อไปเนื่องจากไม่ได้ใช้สำหรับแพ็คเกจ JLL แต่คุณจะต้องสร้างมันเอง: ในไดเรกทอรีชั้นนำของ Yggdrasil นี่: generate_buildjl.jl
ต้องใช้ข้อโต้แย้งสามตำแหน่ง:
build_tarballs.jl
owner/name
ของที่เก็บที่อัพโหลด tarballs หากละเว้นค่าเริ่มต้นนี้เป็น JuliaBinaryWrappers/BuilderName_jll.jl
ตัวอย่างเช่นในการรับไฟล์ build.jl
สำหรับ zlib เวอร์ชันล่าสุดคุณสามารถเรียกใช้คำสั่งต่อไปนี้:
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl
หากคุณต้องการรับไฟล์ build_tarballs.jl
สำหรับแท็กชื่อ zlib-v1.2.11+6 คุณต้องเรียกใช้คำสั่ง
julia --color=yes generate_buildjl.jl Z/Zlib/build_tarballs.jl JuliaBinaryWrappers/Zlib_jll.jl Zlib-v1.2.11+6
หมายเหตุ : คุณต้องเพิ่ม prefix
ด้วยตนเองเป็นอาร์กิวเมนต์แรกของตัวสร้าง Product
ทั้งหมดในไฟล์ build.jl
ที่สร้างขึ้น สิ่งนี้จำเป็นเนื่องจากไวยากรณ์ระหว่าง BinaryBuilder v0.2+
และ BinaryProvider
ได้แยกออก
โปรดจำไว้ว่าคุณจะต้องใช้ไฟล์ build.jl
สำหรับการพึ่งพาทั้งทางตรงและทางอ้อมทั้งหมด
นี่คือตัวอย่างบางส่วนของแพ็คเกจที่ใช้ระบบนี้เพื่อติดตั้งไลบรารี:
build.jl
สคริปต์กับ BinaryProvider.jl
สำหรับรุ่นก่อนหน้า