The QA group now runs ExplicitImports.jl's six checks via SciMLTesting.run_qa(...; explicit_imports = true) (see #PR). Five of the six pass (after fixing stale explicit imports and owner-qualifying FieldElem/RingElem, plus per-check public-name ignore lists for non-public names from Base/AbstractAlgebra/Nemo/RationalFunctionFields/ParamPunPam/MacroTools/Random).
The remaining check, check_no_implicit_imports, currently fails: the module relies on ~71 implicit imports brought in by the broad using AbstractAlgebra / using Nemo / using DataStructures / using Groebner / using IterTools / etc. To keep the QA lane green without doing a large, risky one-shot refactor of a computer-algebra package, this check is marked ei_broken = (:no_implicit_imports,) in test/qa/qa.jl (records Broken, not Fail; auto-flags an Unexpected Pass once it is resolved).
This issue tracks making those names explicit (using AbstractAlgebra: coeff, degree, evaluate, ...) so the check can be moved out of ei_broken. The full current list (name → exporting module):
* `AbstractAlgebra` which is exported by `AbstractAlgebra`
* `Combinatorics` which is exported by `Combinatorics`
* `DataStructures` which is exported by `DataStructures`
* `OrderedDict` which is exported by `OrderedCollections`
* `Groebner` which is exported by `Groebner`
* `IterTools` which is exported by `IterTools`
* `cache` which is exported by `IterTools`
* `LinearAlgebra` which is exported by `LinearAlgebra`
* `Logging` which is exported by `Logging`
* `with_logger` which is exported by `Logging`
* `MacroTools` which is exported by `MacroTools`
* `@capture` which is exported by `MacroTools`
* `Nemo` which is exported by `Nemo`
* `AbsPowerSeriesRingElem` which is exported by `AbstractAlgebra`
* `FieldElem` which is exported by `AbstractAlgebra`
* `Generic` which is exported by `AbstractAlgebra`
* `MPolyBuildCtx` which is exported by `AbstractAlgebra.Generic`
* `MPolyRing` which is exported by `AbstractAlgebra`
* `MPolyRingElem` which is exported by `AbstractAlgebra`
* `MatElem` which is exported by `AbstractAlgebra`
* `QQFieldElem` which is exported by `Nemo`
* `QQMPolyRingElem` which is exported by `Nemo`
* `RingElem` which is exported by `AbstractAlgebra`
* `base_ring` which is exported by `AbstractAlgebra`
* `coeff` which is exported by `AbstractAlgebra`
* `coefficients` which is exported by `AbstractAlgebra`
* `degree` which is exported by `AbstractAlgebra`
* `derivative` which is exported by `AbstractAlgebra`
* `dim` which is exported by `AbstractAlgebra.Generic`
* `divexact` which is exported by `AbstractAlgebra`
* `divides` which is exported by `AbstractAlgebra`
* `elem_type` which is exported by `AbstractAlgebra`
* `evaluate` which is exported by `AbstractAlgebra`
* `exponent_vector` which is exported by `AbstractAlgebra`
* `exponent_vectors` which is exported by `AbstractAlgebra`
* `finish` which is exported by `AbstractAlgebra.Generic`
* `gen` which is exported by `AbstractAlgebra`
* `gens` which is exported by `AbstractAlgebra`
* `height_bits` which is exported by `Nemo`
* `leading_coefficient` which is exported by `AbstractAlgebra`
* `leading_monomial` which is exported by `AbstractAlgebra`
* `monomial` which is exported by `AbstractAlgebra.Generic`
* `ncols` which is exported by `AbstractAlgebra`
* `nrows` which is exported by `AbstractAlgebra`
* `poly` which is exported by `AbstractAlgebra.Generic`
* `polynomial_ring` which is exported by `AbstractAlgebra`
* `power_series_ring` which is exported by `AbstractAlgebra`
* `push_term!` which is exported by `AbstractAlgebra.Generic`
* `rank` which is exported by `LinearAlgebra`
* `set_precision!` which is exported by `AbstractAlgebra`
* `setcoeff!` which is exported by `AbstractAlgebra.Generic`
* `symbols` which is exported by `AbstractAlgebra`
* `terms` which is exported by `AbstractAlgebra`
* `total_degree` which is exported by `AbstractAlgebra.Generic`
* `var` which is exported by `AbstractAlgebra`
* `vars` which is exported by `AbstractAlgebra`
* `ParamPunPam` which is exported by `ParamPunPam`
* `PrecompileTools` which is exported by `PrecompileTools`
* `@setup_workload` which is exported by `PrecompileTools`
* `Primes` which is exported by `Primes`
* `Random` which is exported by `Random`
* `RationalFunctionFields` which is exported by `RationalFunctionFields`
* `RationalFunctionField` which is exported by `RationalFunctionFields`
* `check_algebraicity` which is exported by `RationalFunctionFields`
* `field_contains` which is exported by `RationalFunctionFields`
* `generators` which is exported by `RationalFunctionFields`
* `simplified_generating_set` which is exported by `RationalFunctionFields`
* `TimerOutputs` which is exported by `TimerOutputs`
* `@timeit` which is exported by `TimerOutputs`
* `disable_timer!` which is exported by `TimerOutputs`
* `enable_timer!` which is exported by `TimerOutputs`
Tracking issue opened as part of the SciML run_qa v1.6 ExplicitImports rollout.
The QA group now runs ExplicitImports.jl's six checks via
SciMLTesting.run_qa(...; explicit_imports = true)(see #PR). Five of the six pass (after fixing stale explicit imports and owner-qualifyingFieldElem/RingElem, plus per-check public-name ignore lists for non-public names fromBase/AbstractAlgebra/Nemo/RationalFunctionFields/ParamPunPam/MacroTools/Random).The remaining check,
check_no_implicit_imports, currently fails: the module relies on ~71 implicit imports brought in by the broadusing AbstractAlgebra/using Nemo/using DataStructures/using Groebner/using IterTools/ etc. To keep the QA lane green without doing a large, risky one-shot refactor of a computer-algebra package, this check is markedei_broken = (:no_implicit_imports,)intest/qa/qa.jl(recordsBroken, notFail; auto-flags an Unexpected Pass once it is resolved).This issue tracks making those names explicit (
using AbstractAlgebra: coeff, degree, evaluate, ...) so the check can be moved out ofei_broken. The full current list (name → exporting module):Tracking issue opened as part of the SciML run_qa v1.6 ExplicitImports rollout.