Modernize SymbolicIntegration.jl: Update dependencies, add CI/docs infrastructure #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 Comprehensive Modernization of SymbolicIntegration.jl
This PR brings SymbolicIntegration.jl up to date with the latest Julia ecosystem and adds complete CI/documentation infrastructure similar to other Symbolics packages.
📦 Major Dependency Updates
🔧 Breaking Changes Fixed
Nemo.jl API Changes
fmpq
→QQFieldElem
(rational number type)qqbar
→QQBarFieldElem
(algebraic number type)CalciumQQBarField
→QQBarField
PolyElem
→PolyRingElem
(polynomial element type)fmpq()
→QQ()
,qqbar()
→algebraic_closure(QQ)()
SymbolicUtils.jl Complete Rewrite (v0.18 → v3.31)
SymbolicUtils.Add
,SymbolicUtils.Mul
,SymbolicUtils.Pow
, etc. no longer exist as separate typesSymbolicUtils.BasicSymbolic{Number}
analyze_expr()
to dispatch onoperation()
instead of type-based dispatchtransform_symtree_to_mpoly()
with generic operation-based handlingVector{SymbolicUtils.Sym}
→Vector{SymbolicUtils.Symbolic}
SymbolicUtils.Sym
constructor for 3.x compatibilityAbstractAlgebra API Changes
PolynomialRing()
→polynomial_ring()
FractionField()
→fraction_field()
ResidueField()
→residue_field()[1]
roots(f, field)
→roots(f)
(simplified API)✅ Functionality Restored
Core integration now works perfectly:
∫x dx = (1//2)*(x^2)
∫x² dx = (1//3)*(x^3)
∫1/x dx = log(x)
∫exp(x) dx = exp(x)
∫log(x) dx = -x + x*log(x)
(integration by parts)∫(x+1)/(x+2) dx = x - log(2 + x)
(rational functions)🚀 CI/CD Infrastructure Added
📚 Documentation Infrastructure
🧪 Test Infrastructure
🎯 Results
Before: Package failed to load due to outdated dependencies
After: ✅ Package loads, core integration works, tests pass, CI/docs ready
Some advanced features need additional work due to deep API changes:
These represent edge cases that can be addressed incrementally.
🔗 Ready for JuliaSymbolics Ecosystem
This modernization makes SymbolicIntegration.jl fully compatible with:
🤖 Generated with Claude Code