Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure compatibility with updates of dependencies #42

Closed
timvink opened this issue Nov 27, 2020 · 2 comments
Closed

Ensure compatibility with updates of dependencies #42

timvink opened this issue Nov 27, 2020 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@timvink
Copy link
Collaborator

timvink commented Nov 27, 2020

Problem Description

probatus has dependencies that are not pinned:

probatus/setup.py

Lines 25 to 34 in 2723c88

install_requires=[
"scikit-learn>=0.22.2",
"pandas>=1.0.0",
"matplotlib>=3.1.1",
"scipy>=1.4.0",
"joblib>=0.13.2",
"tqdm>=4.41.0",
"shap>=0.36.0",
"numpy>=1.19.0"
],

That is user-friendly, but introduces the risk that updates to downstream dependencies break probatus without us knowning.

Desired Outcome

Notification of breaking updates.

Solution Outline

There are two main methods to deal with this:

  1. Run unit tests on a schedule (f.e every couple of days), so you get a broken build you can fix. As an example, see this PR from scikit-lego Schedule dependencies workflow file added koaning/scikit-lego#378
  2. Fix dependencies to the latest version, and use dependabot to automatically open an PR (and thus trigger unit tests) when a dependency is updated.

Both options have upsides and downsides. I'm inclined to 'force' users to use the latest versions (option 2), creating a new release for updated dependencies as soon as they pass unit tests.

@timvink timvink added enhancement New feature or request good first issue Good for newcomers labels Nov 27, 2020
@Matgrb
Copy link
Collaborator

Matgrb commented Mar 26, 2021

#97 covers the discussion around this topic.

We have decided to not use dependabot, in order to not force the users to use the newest version of all packages.

@timvink
Copy link
Collaborator Author

timvink commented Mar 26, 2021

There is another way however. If we run the unit tests everyday, we will know pretty soon if probatus is breaking when any of the dependencies have updated (because we use >= in dependencies).

Opened #113 to address this.

Matgrb pushed a commit that referenced this issue Mar 26, 2021
Add github action that will run unit tests everyday, closes #42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants