I’ve encountered a package which depends on another package which contains deps/build.jl
. However, the parent package repo doesn’t have build.jl
. When I use Pkg to add
the parent package repo, the build step for the dependent package is not triggered automatically, and attempting to import the parent package results in an error about missing artifacts. So I have to manually run ]build ParentPackage
, which trigger build steps for all dependent packages which require build steps. Is this expected behavior?
I found out why. The dependent packages were built previously but the artifacts got deleted manually. Removing and re-installing the parent package doesn’t trigger re-building of dependent packages because Julia “remembers” that the dependent packages have been built, so I have to force a rerun of Pkg.build
.
Best to open issues encouraging the package maintainers to use scratch spaces instead of build scripts. We still support build scripts for legacy reasons, but they’re fundamentally flawed in this and other ways. We really prefer to install packages and never modify them, which build scripts violate. Scratch spaces also will be regenerated automatically if they are cleaned up for whatever reason, so you wouldn’t hit this problem. They’re quite simple to use, so switching shouldn’t be hard.