beacon-biosignals / julia_pod

k8s native julia development
MIT License
10 stars 3 forks source link

better way to decide what deps go in the sysimage #39

Closed kolia closed 2 years ago

kolia commented 2 years ago

This should result in fewer sysimage builds during docker builds, which is by far the longest build step generally.

Instead of basing the subset of deps included in the sysimage off of pinned packages, this:

The rationale for this change is that:

Edit: This also defines and makes use of a startup.jl file, which gets copied to .julia/config/startup.jl in the pod, and saves the sysimage.jl and startup.jl files to a new local julia_pod/ folder alongside julia_pod/sysimage.packages, for hygene.

closes #37

kolia commented 2 years ago

what happens if Manifest.toml.julia_pod contains a different version of a dep than Manifest.toml?

A dep that is in both but with different versions would keep the version in Manifest.toml, invalidate the docker cache and trigger a sysimage re-build.

Edited: ~Hmm, in that case, the Manifest.toml.julia_pod should be overwritten with the new Manifest.toml to reflect the new deps in the sysimage, let me fix that.~ This is no longer an issue, since I am now only listing sysimage package names, instead of saving the full Manifest.toml that contains version info.

kolia commented 2 years ago

Ready for re-review.