Skip to content

fix: Break cycle between skore and skore-cli - #3308

Merged
thomass-dev merged 5 commits into
mainfrom
upgrade-skore-cli
Oct 12, 2026
Merged

thomass-dev merged 5 commits into
mainfrom
upgrade-skore-cli

Conversation

@thomass-dev

@thomass-dev thomass-dev commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Fix after #3255 that introduce a bug when installing skore from source:

error: No solution found when resolving dependencies
cause: Because skore-cli>=0.5.0 depends on skore[hub]>=0.27 and skore[hub]==0.0.0+unknown depends on skore-cli==0.5, we can conclude that skore[hub]==0.0.0+unknown depends on skore[hub]>=0.27.
       And because only skore[hub]==0.0.0+unknown is available and you require skore[hub], we can conclude that your requirements are unsatisfiable.

skore-cli being not directly used, remove it from the direct dependencies.


Fix compatibility with mlflow>3 and python<3.15.

@thomass-dev thomass-dev self-assigned this Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Documentation preview @ 697aa45

@thomass-dev
thomass-dev marked this pull request as draft October 9, 2026 15:32
Comment thread ci/requirements/skore/python-3.11/scikit-learn-1.6/test-requirements.txt Outdated
@thomass-dev
thomass-dev force-pushed the upgrade-skore-cli branch 2 times, most recently from 789e06f to 539b374 Compare October 12, 2026 07:46
@thomass-dev thomass-dev changed the title ci: Upgrade lockfiles with skore-cli==0.5.0 fix: Break cycle between skore and skore-cli Oct 12, 2026
@thomass-dev
thomass-dev requested a review from glemaitre October 12, 2026 08:02
@thomass-dev
thomass-dev marked this pull request as ready for review October 12, 2026 08:02
glemaitre
glemaitre previously approved these changes Oct 12, 2026

@glemaitre glemaitre left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We consider this a temporary fix and we are just migrating the CLI into skore :)

@thomass-dev

Copy link
Copy Markdown
Collaborator Author

We consider this a temporary fix and we are just migrating the CLI into skore :)

Exactly!

@thomass-dev
thomass-dev enabled auto-merge October 12, 2026 08:05
@thomass-dev
thomass-dev disabled auto-merge October 12, 2026 08:11
@thomass-dev
thomass-dev marked this pull request as draft October 12, 2026 08:11
@glemaitre

Copy link
Copy Markdown
Member

Regarding the drop of MLflow 2, I'm all for it because it would be needed for this fix: #3305. Basically, their I saw that the support for polars only start in a certain version of MLflow 3. So we can bump to this version directly.

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report for skore/

Warning: Comment truncated due to GitHub's 65536 character limit

FileStmtsMissBranchBrPartCoverMissing
skore/src/skore
   __init__.py2620092%104–105
   _config.py58312194%70, 116->117, 117–118
   _exceptions.py44000%4, 15, 19, 23
skore/src/skore/_checks
   __init__.py4000100% 
   accessor.py350140100% 
   base.py103028298%271->273, 273->277
   builtin.py17000100% 
   skd001_overfitting.py21040100% 
   skd002_underfitting.py22020100% 
   skd003_metrics_consistency.py31080100% 
   skd004_high_class_imbalance.py25040100% 
   skd005_underrepresented_classes.py25040100% 
   skd006_coefficients_interpretation.py22040100% 
   skd007_mdi_high_cardinality_bias.py25040100% 
   skd008_correlated_features.py28060100% 
   skd009_worse_than_baseline.py35110196%66->67, 67
   skd010_slower_than_baseline.py460120100% 
   skd011_golden_feature.py83226098%207–208
   skd012_useless_features.py24020100% 
   skd013_train_test_time_overlap.py330140100% 
   skd014_hyperparams_at_search_edge.py53126197%88->90, 90
   skd015_search_params_to_tune.py43018198%61->60
   skd016_estimator_not_tuned.py50124197%46->47, 47
   tunable_hyperparameters.py5000100% 
   utils.py19913881192%285->286, 286–288, 306->307, 307, 311->318, 312->313, 313, 318–320, 322–324, 326, 329->330, 330
skore/src/skore/_dispatch
   __init__.py4000100% 
   compare.py5000100% 
   evaluate.py440220100% 
skore/src/skore/_displays
   __init__.py4000100% 
   base.py73214197%72->74, 74–75
   utils.py158376497%256–257, 276->272, 381->375, 455->456, 456, 489->492
skore/src/skore/_displays/data
   __init__.py4000100% 
   table_report.py193362398%123->124, 124–125, 415->418, 726->729, 729
skore/src/skore/_displays/inspection
   __init__.py0000100% 
   calibration_curve.py80914783%117->119, 119–122, 124, 232->235, 235, 238–239, 268->269, 269
   coefficients.py2020100199%277->280
   impurity_decrease.py101234396%220->223, 446->447, 447, 488->491, 491
   permutation_importance.py197190199%662->663, 663
   utils.py320100100% 
skore/src/skore/_displays/metrics
   __init__.py4000100% 
   confusion_matrix.py197066299%328->330, 430->433
   metrics_summary_display.py175062199%143->158
   precision_recall_curve.py116032199%337->341
   prediction_error.py175058299%303->305, 326->307
   roc_curve.py120034299%312->314, 359->353
skore/src/skore/_metrics
   __init__.py3000100% 
   metrics.py375186199%477->478, 478
   registry.py290120100% 
skore/src/skore/_plugins
   __init__.py12000100% 
   requirements.py66226098%78–79
   serde.py32080100% 
skore/src/skore/_plugins/hub
   __init__.py920078%15, 20
   exception.py2000100% 
   json.py1012183%14->16, 16
   metric.py3728291%84->85, 85, 92->93, 93
skore/src/skore/_plugins/hub/artifact
   __init__.py0000100% 
   artifact.py23040100% 
   environment.py1530080%50–52
   pickle.py29060100% 
   serializer.py27020100% 
   upload.py26040100% 
skore/src/skore/_plugins/hub/artifact/media
   __init__.py6000100% 
   checks.py13000100% 
   data.py23000100% 
   inspection.py580100100% 
   media.py12000100% 
   model.py10000100% 
   performance.py57000100% 
skore/src/skore/_plugins/hub/authentication
   __init__.py4000100% 
   key.py25060100% 
   login.py7426295%81->82, 82, 84->87, 87
   uri.py10000100% 
skore/src/skore/_plugins/hub/authentication/registry
   __init__.py2000100% 
   distant.py62060100% 
   local.py930200100% 
skore/src/skore/_plugins/hub/client
   __init__.py0000100% 
   client.py100920390%142, 190–192, 194–195, 197, 199, 201, 255->289
skore/src/skore/_plugins/hub/project
   __init__.py0000100% 
   project.py137628593%87->88, 88, 108->113, 113, 127->128, 128, 324->325, 325, 431, 456->461, 461
skore/src/skore/_plugins/hub/report
   __init__.py3000100% 
   cross_validation_report.py191644396%179->188, 188–192, 206->207, 207, 237->240
   estimator_report.py17000100% 
   report.py7418198%189->191, 191
skore/src/skore/_plugins/local
   __init__.py2000100% 
   project.py250358298%455, 494->495, 495, 515->516, 516
skore/src/skore/_plugins/mlflow
   __init__.py5000100% 
   project.py30726761091%51, 53–55, 120–121, 178->179, 179, 279->286, 286, 301->304, 304, 319–320, 389->392, 407->408, 408, 458->459, 459, 556, 579->580, 580, 581->582, 582, 598, 600–605, 607–609
   reports.py160636594%126->129, 129, 173->176, 176, 209->exit, 214–215, 274->277, 277, 287->288, 288
skore/src/skore/_project
   __init__.py0000100% 
   dependencies.py19060100% 
   git.py30040100% 
   plugin.py9000100% 
   project.py76126198%161->162, 162
   protocol.py55000%3, 5, 7, 13, 16
   summary.py118148199%107->108, 108
   sync.py410100100% 
   types.py4000100% 
skore/src/skore/_reports
   __init__.py4000100% 
   base.py157642694%71, 157->131, 192->exit, 222, 296->299, 299, 307->308, 308, 313->314, 314, 348->349, 349
skore/src/skore/_reports/comparison
   __init__.py9000100% 
   inspection.py25020100% 
   metrics.py116226297%418->419, 419, 673->674, 674
   report.py188790695%278–279, 477->483, 483, 549->534, 556->534, 590->589, 602, 685–687
skore/src/skore/_reports/cross_validation
   __init__.py11000100% 
   data.py40214293%48->49, 49, 74->75, 75
   inspection.py25020100% 
   metrics.py101518294%106->107, 107–108, 110, 113, 620->621, 621
   report.py203946594%231->232, 232, 236->237, 237, 247->248, 248, 252->253, 253, 354->355, 355, 597, 736–738
skore/src/skore/_reports/estimator
   __init__.py11000100% 
   data.py61128198%64->65, 65
   inspection.py4218294%297->298, 298, 347->351
   metrics.py1160220100% 
   report.py3231088796%64->65, 65, 80->81, 81, 254->258, 299->300, 300, 381->382, 382, 435->436, 436, 685->686, 686, 771, 865–867
skore/src/skore/_sklearn
   __init__.py4000100% 

@glemaitre

Copy link
Copy Markdown
Member

So also, I would suggest to pin python<3.15. pyarrow is still not available for this version on conda-forge: https://github.com/conda-forge/pyarrow-feedstock/pulls

So it means that we end-up in a complex situation with weird dependencies. We can remove this constraint once pyarrow is supporting this python version.

@thomass-dev
thomass-dev marked this pull request as ready for review October 12, 2026 09:08

@glemaitre glemaitre left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@thomass-dev
thomass-dev merged commit 5dc08de into main Oct 12, 2026
42 checks passed
@thomass-dev
thomass-dev deleted the upgrade-skore-cli branch October 12, 2026 09:14

This branch was successfully deployed

1 active deployment
dev — 697aa45f Deployed Oct 12, 2026 by thomass-dev via pr-clean-documentation-preview #1503
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants