-
Notifications
You must be signed in to change notification settings - Fork 47
don't install into package directory #129
Comments
I think that the idea is that each builder will be a separate tiny package, that installs the binary dependency in its directory. Those small packages should have much fewer releases than the actual packages that uses them, so I think that will help, if not completely fix, this issue. |
I thought "builder" referred to the repo using BinaryBuilder, which is usually not a Julia package at all? But I get your point — one way to resolve this is to split every package using BinaryProvider into two packages, one that provides the binary and one that uses it. (Note that this doesn't seem to be documented as a best practice.) This is likely to be a slow process since there are ~50 packages that use BinaryProvider at the moment, and hardly any of them seem to split their dependencies off like this. Is there a way to automate it? |
@staticfloat is working on this new infrastructure, see e.g. https://github.com/JuliaPackaging/Yggdrasil |
@fredrikekre, that seems totally unrelated — those are the builder repos, i.e. the repos used for BinaryBuilder. They are not Julia packages that use BinaryProvider. Am I missing something? |
@fredrikekre is correct, but his link doesn't show it. :) What he's referring to is the |
Where are we with this? is there a project for this? It seems like there are lots of small work items anyone could work on to make this happen! So maybe we could create a github project and make a few seizable issues to make it easier for outsiders to work on this! |
at least we could start with something like making |
Elliot has been thinking about this recently, and we discussed it on the Pkg triage call the other week, see JuliaLang/Pkg.jl#841. |
Now that the sandbox is part of the rootfs, our CI currently does not test changes to the sandbox anymore. Add a build step that uses the sandbox from this repo.
Currently, BinaryProvider downloads into
MyPackage/deps/downloads
and installs intoMyPackage/deps/usr
. With Julia 1.0, every version of MyPackage installs into its own directory, which means that every update installs a new copy of the binary dependencies even if they didn't change.I don't think this is acceptable in the long run. Proposal:
BinaryProvider should install binary dependencies into a global SHA-addressed directory, e.g.
~/.julia/BinaryProvider/{MyPackage-UUID}/sha
, so that they are shared between versions.Some kind of hook should be added to
Pkg.gc()
to allow binary dependencies that are no longer needed to be deleted.The text was updated successfully, but these errors were encountered: