JuliaTesting / Aqua.jl

Auto QUality Assurance for Julia packages
MIT License
333 stars 24 forks source link

Check for piracy and ambiguity in extensions #160

Open aplavin opened 1 year ago

aplavin commented 1 year ago

Currently, Aqua doesn't check package extensions for piracy and ambiguity at all. Not sure how difficult that is, but would be nice to extend these checks to extension code.

lgoettgens commented 1 year ago

Could you point me to a rather small package with package extensions for me to test my ideas with?

aplavin commented 1 year ago

Any package with extensions, not necessarily with piracy/ambiguity issues? Then take eg https://github.com/JuliaObjects/ConstructionBase.jl - small and very popular one.

lgoettgens commented 1 year ago

Thanks! Yes, any package works, as I will add my small piracies/ambiguities myself anyway in a dev'ed version anyway.

After digging into it for some time, julia Base is not providing many helper functions. In the upcoming days, I will try to use some julia internals to test package extensions as best as possible (see https://github.com/JuliaTesting/Aqua.jl/pull/162).

lgoettgens commented 1 year ago

What should I implement?

i.e. What should be tested and semantics of already defined terms.

Piracy

Ambiguities

As a default, I propose the following $n+2$ combinations:

This should cover most cases, while still only needing a linear number of testruns.

What do you think @aplavin @fingolfin? In particular about the defaults for ambiguities?