I’ve encountered a strange situation while setting up CI for one of my projects. I have a package LogProof that uses another package, DarkIntegers. DarkIntegers is in the Julia registry, LogProof isn’t.
LogProof tests fail for julia-1.0 in CI, while the same tests for 1.2 and 1.3 pass. The reason, essentially, is the following:
- a
DarkIntegers.Polynomialobject is created by a function inLogProof - a function from
DarkIntegersis called with this object in the test script - despite the function having a method specialized on the type
Polynomial, the call fails
The fail is buried in the broadcasting machinery, but if one just calls some straightforward function from DarkIntegers acting on Polynomial objects, the result is the same - a method fails to be resolved.
This only happens if one uses a Polynomial object created by a function in LogProof; an object created in the test itself works fine. This only happens in Julia 1.0 (both in CI and on my local machine), not in 1.2 or 1.3. It doesn’t seem to happen in my other analogous projects which also use DarkIntegers. I thought that maybe I specified dependencies incorrectly, so LogProof uses a different copy of DarkIntegers as compared to the test script, but then it wouldn’t happen in CI, would it?
So, does anyone have any ideas about how to diagnose this?