Relax Dependencies + Add Dependency Groups#190
Closed
Grochocinski wants to merge 7 commits intomasterfrom
Closed
Conversation
2b4ba23 to
a14d213
Compare
Collaborator
Author
|
please |
f99c709 to
d7fe4d0
Compare
Collaborator
Author
|
needed to force-push after rebasing off of master to avoid pushing unrelated commits to master |
Collaborator
|
Will reconsider this if there are concrete user report |
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.
Linked Issue (Required)
Fixes #188
The Fix
Relaxed Core Dependency Requirements
numpycvxpynumpyv2matplotlibnumpyv2pandasnumpyv2scipynumpyv2pydanticnumpyv2 that didn't raise serialized value warningsboltonstypeutilsjoblibseaborndensity_normhas a different name in prior versionsThe process for establishing the new minimums was performed by pinning a package to a specific version and advancing/regressing the pinned version until warnings/errors were raised while running the regression test suite or until tests in the suite failed. Plotting packages were tested manually via notebooks and the GUI since the regression test suite does not utilize any plots. The pinning and version adjustment was repeated for each package with the environment being rebuilt after each adjustment to ensure any inter-dependency requirements were satisfied.
Removed Unused Core
pillowDependencyIt was not used anywhere in the current codebase.
Relaxed Optional Dependency Versions
This followed the same process as the relaxing of the core dependencies.
Added Additional Optional Dependency Groups
simoptlibpackagesetuptools>=61.0: the build-system currently used to build the package, version constraint matches existing minimum (see top ofpyproject.toml)pyyaml>=6.0: expected results are stored in.yamlfiles which cannot be opened without ayamllibrary of some sort. v6.0.3 is the newest version, so v6.0 was selected as the minimum since it works and is quite old (>4 years) so users should easily be able to resolve a compatible versionpytestandpytest-xdistwere moved from thedevgroup to thetestinggroupChanged
project.optional-dependenciestodependency-groupsproject.optional-dependenciesis meant for user-facing optional dependencies whiledependency-groupsis meant for dev-facing optional dependencies. Since none of the dependency groups are useful to end-users who are dealing solely with the published package, the dependency groups should be listed underdependency-groupsinstead.Pinned
devDependency Versionsruffandtywere both pinned to their latest versions so that they would not unexpectedly update and cause GitHub actions to error unexpectedly. Additionally,jupytextwas pinned sincejupytextwrites its version in each<notebook>.py's metadata header, so pinning it to a specific version like 1.17.3 (the version used to create the files) prevents repeated unnecessary updates to the metadata header.Additional Notes
I'm marking this as a bug fix (and thus merging to main) since the current high dependency requirements can result in unsolvable dependencies for any downstream packages.
Verification
ruff checkpasses on my codety checkpasses on my codemasterbranch.testsdirectory are passing.