Help getting Requires.jl to work on julia 0.6


#1

Hi all,

I’m eager to start the compat work on my various packages for julia 0.6, but right now I’m stuck because Requires.jl doesn’t work on julia 0.6. I reached out to @MikeInnes but haven’t gotten a reply, so I assume he is busy with other things.

Is there anyone else who might be able and willing to help with that? By my last count there are about 50 packages that directly or indirectly depend on Requires, and I assume that any effort to make those packages work on julia 0.6 is blocked until we have sorted this out, so you would certainly help a lot of packages :slight_smile: I tried to tackle this myself, but I don’t understand enough about the julia package loading mechanisms to fix these problems.

Thanks,
David


#3

I think that the best course of action is
Not to use Requires.jl .

It is a package to load other modules lazyly or to enable certain features (for example plotting) if a module is present in the system.

try to remove the dependency on Requires.jl , it was problematic even in 0.5


#4

It seemed to work perfectly well on julia 0.5 and solves a real need for Query (and I guess the other 50 packages as well). So unless someone who understand the package states authoritatively that it can’t be made to work on julia 0.6, I’d much prefer to just keep using it.


#5

Ok, I pushed a quick fix.


#6

Fantastic, much appreciated!


#7

Can you elaborate in a few words how you use it? I would like to learn something new


#8

Query.jl integrates with lots of different data sources and sinks and has lots of code that integrates with those packages (e.g. DataFrames, DataTables, TypedTables, IndexedTables, DataStream etc.). I don’t want to take a hard dependency in these packages by listing them in the REQUIRE file because there are probably lots of users that want to use Query with one of these, but not all of them. Also, some of them are actually not registered in METADATA, so those I can’t even list in REQUIRE. By using Requires I can have all the integration code with these packages load only when a user is using a specific data source or sink.