JuliaTesting / ReferenceTests.jl

Utility package for comparing data against reference files
https://juliatesting.github.io/ReferenceTests.jl/latest/
Other
82 stars 14 forks source link

Cut down on the dependencies #5

Closed oxinabox closed 5 years ago

oxinabox commented 6 years ago

According to JuliaObsverver ReferenceTests.jl has 55 dependencies (5 direct).

For comparison: TensorFlow.jl has 30 (13 direct). DifferentialEquations has 84 (26 direct).

It would be really nice not to be haulling down the whole Images ecosystem when doing a reference test on plain text.

I'm not sure what the current state of the optional dependencies setup is. I'm not sure how happy Requires.jl is with precompilation etc, or what is going on in the Pkg3 space with regards to it.

But anyway, it is rather annoying that every time I run a test huge amounts of time is spent cloning then removing packages. Because I tend to list ReferenceTests.jl as a Test time dependency only. (On my local boxes I really need to remember to install it)

Evizero commented 6 years ago

fair enough. I think that might be Images.jl. I don't even think i need it with the current code. probably could get away with only requiring ImageTransformations without any code changes

Evizero commented 6 years ago

I tracked down the reason for the Images dependency: https://github.com/JuliaImages/Images.jl/blob/master/src/algorithms.jl#L327-L343

Not quite sure how to go about this. maybe Requires

Evizero commented 5 years ago

What if we split this package into ReferenceTests and ImageReferenceTests, where the later depends on the former?

oxinabox commented 5 years ago

Requires.jl feels better to me.

It is a choice between:

using ReferenceTests
using Images

vs

using ImageReferenceTests

For some reason my gut leans towards the former.

OTOH, while Requires.jl is now more matured and less hacky (or so I am told), it still doesn't work great with version specification AFAIK.

The split and dependency is the traditional solution to this. So it is probably right