-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
splitting out cairo backend #250
Comments
I have to say i'm not fully aware of the problem described in the comment on the backports PR, to me it looks like the problem was Immerse not testable because this has Compose/Gadfly as requirements etc. The model how required packages are imported/used/run changed over time. Something, which is still unsolved (imho) is the use of optional packages or optional dependencies (recently: https://discourse.julialang.org/t/optional-dependencies-requires-jl/3294). For Compose the original author thought of Cairo/Fontconfig as optional dependencies. So Compose has a device independent part and (roughly) two backends: Cairo based and local code (for SVG). |
btw: testing of Compose in pkg fails, because the test does a binary comparison of output files and that's a major problem, i.e. #222 |
testing of Gadfly fails out of the 'required dependency' reason |
The problem is that the decision of which backends to enable gets made at precompilation time, but at use time the available options can differ.
Immerse works fine if you have Cairo installed at the time you precompile Compose. It breaks if you precompile Compose at a time when Cairo is not installed. Installing Cairo does not invalidate the previous precompile cache, so Compose is actually not precompile safe. |
am i missing any of the options we have to resolve this issue in the list below?
thanks for the link to the particularly informative discourse discussion. |
That's a pretty good list of possibilities, yes. Revisiting #226 could be one other possible option but I don't think Requires would actually fix the precompilation problem on 0.5 or 0.6 so it might not be any better than option 5. |
#139 is related |
yes, it's been a long standing mistake - if people have to manually manage their cache to fix inconsistencies, the package isn't precompile safe at all |
@tkelman has suggested that we move the cairo backend code to a separate package. could someone please walk me through the problem?
first, why is
Cairo
not inREQUIRE
? i found the commit which removed it, but no explanation.second, how does separating the backend fix anything? would we no longer have to
Pkg.add("Cairo/Fontconfig")
manually? would Gadfly and Compose go all green in the package directory?i'm willing to do some legwork here, but don't understand well enough.
The text was updated successfully, but these errors were encountered: