Julia Introduces Reliable Binary Artifact System for Packages
The Julia programming language team has introduced a new, reliable, and reproducible binary artifact system for Julia packages, integrated into Pkg for Julia 1.3 and later. Originally designed to enhance the installation experience for binaries built with BinaryBuilder.jl, this subsystem applies broadly to all Julia packages. The system utilizes an Artifacts.toml file to associate data containers with projects, referencing them via content hashes or human-readable names. It supports both platform-independent and platform-dependent artifacts, allowing for specific download URLs based on operating system and architecture. Key features include lazy loading, where artifacts are fetched on-demand, and strict integrity verification using SHA256 and git-tree-sha1 hashes. This approach ensures that package directories remain read-only after installation, prevents data duplication across versions, and facilitates efficient garbage collection of unused artifacts. By storing artifacts in a global repository indexed by content hash, the system improves resource management and installation reliability for developers using the Julia ecosystem.
Wire timeline
Julia Introduces Reliable Binary Artifact System for Packages
The Julia programming language team has introduced a new, reliable, and reproducible binary artifact system for Julia packages, integrated into Pkg for Julia 1.3 and later. Originally designed to enhance the installation experience for binaries built with BinaryBuilder.jl, this subsystem applies broadly to all Julia packages. The system utilizes an Artifacts.toml file to associate data containers with projects, referencing them via content hashes or human-readable names. It supports both platform-independent and platform-dependent artifacts, allowing for specific download URLs based on operating system and architecture. Key features include lazy loading, where artifacts are fetched on-demand, and strict integrity verification using SHA256 and git-tree-sha1 hashes. This approach ensures that package directories remain read-only after installation, prevents data duplication across versions, and facilitates efficient garbage collection of unused artifacts. By storing artifacts in a global repository indexed by content hash, the system improves resource management and installation reliability for developers using the Julia ecosystem.
JuliaLang - The Julia programming language