High-priority list:
-
Teach universes to pull down General registry from fork, scan registered JLLs and build map of buildcache hashes to JLL versions.
- JLLGenerator needs to encode build hashes.
- Top-level BB hash, for quick-reject
- Top-level package hash (all extract hashes combined)
- at top of build_tarballs() calculate package hash, check with buildcache for matching JLL version.
- JLLGenerator needs to encode build hashes.
-
Add ability to specify an
on_load_callback
definition, then link to it from theLibraryProduct
. -
Build GCCBootstrap for all linuces
- Already have
x86_64-linux-gnu
andaarch64-linux-gnu
, need to do the rest and publish from BinaryBuilder2.
- Already have
-
Build GCC, Binutils, Glibc, etc.. via GCCBootstrap
- Build Clang via GCCBootstrap
- Look into this: JuliaLang/julia#45631 (comment)
-
Expand GCCBootstrap for Windows
- Ensure that we have the patches for long file support (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107974)
-
Build GCC <-> Glibc baked header diff tarballs
- Build easy "diff/core" packaging utility to analyze a set of outputs for
shared content and create a
FooCore_jll
andFooXYZ_jll
set of artifacts
- Build easy "diff/core" packaging utility to analyze a set of outputs for
shared content and create a
-
Make universes more resilient to interruption, e.g.
- expected package
Zlib_jll [83775a58]
to exist at path/home/sabae/.julia/scratchspaces/12aac903-9f7c-5d81-afc2-d9565ea332af/universes/GCCBoostrap/dev/Zlib_jll
- expected package
-
Integrate
Ccache_jll
-
Fill out more JLL output metadata
- Discussion here: JuliaPackaging/BinaryBuilder.jl#639
- Break version number equivalency
- Build BinaryBuilderVersionTool.jl?
-
Build BinaryBuilderAuditor.jl
- Use parallel workqueue
- Output results in TOML or JSON or something machine-readable
- Auto-install license as an audit pass, not as a bash
trap
statement
-
Finish implementation of
DepotCompactor.jl
to save disk space on Yggdrasil- Create torture-test-suite to run a bunch of builds in parallel on a new depot, to make sure that we can share resources properly
-
Create mappings from all old style syntax to new style
build_tarballs()
->BuildMeta()
,BuildConfig()
,build()
,extract()
,package()
, etc...compilers = [:c]
=>toolchains = [CToolchain()]
.HostBuildDependency()
=>JLLDependency
with appropriate platforms
-
Copy over as many tests as possible from BB.jl and BBB.jl
-
Build
-debug
variants, deploy them in a JLL, show how to override preferences to switch to them.- This should be doable with separate
extract!()
steps, perhaps? - Integrate with
.pkg
hooks forselect_artifacts.jl
to get them atPkg.add()
time?
- This should be doable with separate
-
Do
strace
example, where we have statically-linked binaries so we don't need thelibc
tag. -
Remove
src_version
from BuildConfig and JLLs?
Features I'd like but I'm not prioritizing:
- Create testing github org and deploy to it during CI tests.
- LRU cache of specific size for
downloads
folder - Progress bars for everything
- JLL downloads
- Source tarball unpacking
- Auditing
- Automatic apk/apt caching server for Yggdrasil
- Perhaps it'd be better to just have a transparent SQUID proxy to cache every large HTTP request?
- Could be another good buildkite plugin