Add conservative dependency upper bounds while preserving Python 3.13 compatibility#614
Draft
Add conservative dependency upper bounds while preserving Python 3.13 compatibility#614
Conversation
- Create automated weekly lock file update workflow - Add scripts for manual lock file generation - Document automated dependency management approach - Update source files with conservative upper bounds - Combine automated lock files with upper bounds for robust dependency management Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
- Document weekly workflow with clear timeline - Show how automated system prevents CI failures - Illustrate different update scenarios - Explain two-layer protection system Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
- Create quick reference guide for common dependency tasks - Add dependency management section to main README - Link to all dependency documentation - Complete documentation suite for automated dependency management Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
Member
|
@brownbaerchen Not sure this is what you saw with heat? |
Copilot
AI
changed the title
[WIP] Update dependency constraints in pyproject.toml and environment.yml
Automated dependency management with lock files and upper bounds
Feb 8, 2026
The DAE project tests require scipy<1.15 due to numerical precision requirements in the fully implicit index-2 DAE solver tests. Restoring the original constraint that was inadvertently loosened during the dependency update. Fixes: - test_RungeKuttaDAE.py::testOrderAccuracyFullyImplicitIndexTwo[TrapezoidalRuleDAE] - test_problems.py::test_DiscontinuousTestDAE_SDC_detection[4] Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
…ement - Add documentation on when and why to use tighter constraints - Document DAE project's scipy<1.15 requirement - Add explanatory comment in DAE environment.yml - Provide best practices for handling project-specific needs Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
Copilot
AI
changed the title
Automated dependency management with lock files and upper bounds
Fix DAE test failures by restoring scipy<1.15 constraint
Feb 8, 2026
…unds Remove upper bounds from mpi4py and mpi4py-fft that were blocking Python 3.13 compatibility. Upper bounds on these packages prevent them from updating to versions needed for new Python support. Changes: - Remove mpi4py<4.0 constraint (use mpi4py>=3.0.0 only) - Remove mpi4py-fft<3.0 constraint (use mpi4py-fft>=2.0.2 only) - Remove fenics<2020 constraint - Update documentation on when NOT to add upper bounds This restores Python 3.13 test compatibility that was broken when upper bounds were added to these packages. Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
Copilot
AI
changed the title
Fix DAE test failures by restoring scipy<1.15 constraint
Remove upper bounds from Python-version-dependent packages
Feb 8, 2026
Remove mpi4py<4.0 upper bound from etc/environment-pytorch.yml that was missed in the previous fix. This file was preventing Python 3.13 tests from passing for the pytorch environment. All environment files now match master's pattern: no upper bounds on mpi4py or mpi4py-fft to allow compatibility with new Python versions. Co-authored-by: pancetta <7158893+pancetta@users.noreply.github.com>
Copilot
AI
changed the title
Remove upper bounds from Python-version-dependent packages
Add conservative dependency upper bounds while preserving Python 3.13 compatibility
Feb 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
pySDC had loose dependency constraints (
numpy>=1.15.4) that could break weekly CI runs when upstream packages release breaking changes. Added conservative upper bounds to prevent unexpected failures, but only where they don't block Python version compatibility.Changes
Added upper bounds to core scientific libraries:
numpy>=1.15.4,<3.0,scipy>=0.17.1,<2.0,matplotlib>=3.0,<4.0Removed upper bounds from Python-version-dependent packages:
mpi4py>=3.0.0(not<4.0),mpi4py-fft>=2.0.2(not<3.0),fenics>=2019.1.0(not<2020)Preserved project-specific constraints:
scipy>=0.17.1,<1.15(numerical precision requirement for index-2 DAE solvers)Files updated:
etc/environment-*.yml)Automated dependency lock file workflow
Added
.github/workflows/update_lockfiles.ymlthat runs weekly (Sundays 2 AM UTC, before Monday CI):Lock files are optional - developers can use flexible source files or reproducible lock files as needed.
Example
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.