How can you know a package works in Julia 1.0 (or 0.6); e.g Sodium.jl. What's a good heuristic to know old Julia code is up-to-date?


#1

[I’ve yet to make a package, I believe the procedure autogenerates a REQUIRE file, anyone remembers for what version of Julia that got added?]

I mean code without a REQUIRE file (I know how to read those). [To answer my question, either you you would have it and/or newer .toml. but in theory at least you could have a Julia 1.0 package/code with neither?]

It either can mean the code is new (with a .toml file; while it’s not required for 1.0, I believe only either or both those or a REQUIRE file is needed) that should work in Julia 1.0+ or really old as in:

I know I could just test it, but it’s not fool-prove (reads: the halting problem).

In this case:

julia> using Sodium
ERROR: LoadError: UndefVarError: Uint32 not defined
 in include_from_node1(::String) at ./loading.jl:488
 in eval(::Module, ::Any) at ./boot.jl:234
 in require(::Symbol) at ./loading.jl:415
while loading /home/qwerty/.julia/v0.5/Sodium/src/Sodium.jl, in expression starting on line 4

Would femtocleaner handle such old? I’ve yet to look into using it.

It’s rare to find such old code such as at:

https://download.libsodium.org/doc/bindings_for_other_languages


#2

One good heuristics is to look at when the package was last modified. In the case of Sodium.jl this was 4 years ago, so it’s (almost) certain that it won’t work in 1.0.