cnr-ibf-pa / hbp-bsp-issues

Ticketing system for developers/testers and power users of the Brain Simulation Platform of the Human Brain Project
4 stars 0 forks source link

Validation usecases: Unnecessary package installs #463

Closed alex4200 closed 4 years ago

alex4200 commented 4 years ago

Expected behavior

Required versions of packages should only be installed when they are required, i.e. when the version is different from the installed one.

Actual Behavior (please include screenshot if possible)

It seems like a package will be installed even if the version is fine. This affects every validation use case, and the problem is within the first code cell.

Steps to reproduce the problem

Depends on the user settings - but usually just run the first cell and compare the installed packages before and after

Optional infrastructural data (user, platform, browser, environment, ...)

DEV

appukuttan-shailesh commented 4 years ago

This shouldn't be happening as we have the following check in place inside install_req_packages():

if not pkg_vinfo["min_version"] or current_version < parse_version(pkg_vinfo["min_version"]) or current_version > parse_version(pkg_vinfo["install_version"]):

Also, I am demanding for exact versions of the packages (and not just any version >=) as some of these packages are often changing such that they are not backwards compatible at times. We have seen many such situations with these usecases over the past 2 years, and it is a pain to rectify them for each new version. So we decided to tie these to specific versions of the packages.

alex4200 commented 4 years ago

In the DEV usecases you also have this line in the first code cell:

                "hbp_validation_framework" : {"min_version": "", "install_version": "https://github.com/appukuttan-shailesh/hbp-validation-client@usecase_patching"},

which triggers the framework to be reinstalled although the version remains the same. It is also an example where you do not have an explicit version number.

Suggestion: Do a separate pip install

appukuttan-shailesh commented 4 years ago

This was intended. Some temporary patchwork was required to make the usecases run while the KG backend isn't completely ready (minor API changes to be made/tested).

Once the APIs are completely ready, I will make a new pip release and update the first cell in the usecase notebooks to reflect the latest version number.

appukuttan-shailesh commented 4 years ago

Resolved.

alex4200 commented 4 years ago

yes done