-
Notifications
You must be signed in to change notification settings - Fork 41
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
Update dependencies v1.0 #726
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #726 +/- ##
=======================================
Coverage 99.67% 99.67%
=======================================
Files 89 89
Lines 6397 6397
=======================================
Hits 6376 6376
Misses 21 21
☔ View full report in Codecov by Sentry. |
When updating to scikit-learn v1.3.0 old MLLM models cease to work:
|
Good catch re: scikit-learn and MLLM. There's not much we can do about it, I'm afraid. I think it's better to update now, before 1.0, instead of postponing the inevitable. But it has to be mentioned in the release notes. The scikit-learn documentation on Model Persistence has some notes about compatibility between different environments and versions. It mentions the PMML and ONNX formats that could possibly be more durable than serializing sklearn models directly via joblib or pickle, as we currently do in MLLM. But that would be a whole new investigation. I think we should just consider this an unfortunate situation that we couldn't avoid. |
Old method trial.suggest_uniform() is deprecated
Also old stwfsa models won't work with updated skikit-learn, the error message is the same as for MLLM models. |
I'm seeing this new TensorFlow/Keras warning for test_backend_nn_ensemble.py:
It seems there is a new Keras format ( Annif/annif/backend/nn_ensemble.py Line 100 in 40cc2fd
What should we do about this for Annif 1.0?
I don't like 1, because it postpones an inevitable problem. Option 2 breaks compatibility with previously trained models, but provides a fresh start. Option 3 adds a few lines of extra code (and tests), while option 4 is more work but also "promises" to remove that extra code in the future. |
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
Option 3 seems best to me. Better promise as little as possible. |
I initially implemented option 3 in PR #730, but the fallback code (especially the unit test) got messy and then I realized that it's not much use supporting old pre-1.0 NN ensemble models when MLLM and STWFSA models will break anyway due to changes in scikit-learn. |
Updates most of the outdated dependencies, and pins Flask and rdflib versions more tightly.
Exceptions to updating to most-recent releases:
Updating to Optuna 3.3.0 (from 2.10.1) is left to wait for the possible implementation changes in Annif (see issue Update to Optuna 3.x to get rid of deprecation message #532)Also closes #697 and #532.