aiidalab / aiidalab-widgets-base

Reusable widgets for AiiDAlab applications
MIT License
7 stars 17 forks source link

Dependencies: Loosen aiida-core requirement #297

Closed ltalirz closed 2 years ago

ltalirz commented 2 years ago

Do you foresee any specific changes needed for aiidalab-widgets-base?

ltalirz commented 2 years ago

Just pointing out that it seems the only test that installs the package is the docs one (the others passed despite the setup.cfg not being installable).

csadorf commented 2 years ago

Just pointing out that it seems the only test that installs the package is the docs one (the others passed despite the setup.cfg not being installable).

Yes, the package is currently not well tested at all.

yakutovicha commented 2 years ago

Hey @ltalirz, thanks for the PR.

Before accepting the PR I would like to understand if you tried to test it? Some parts of the code might rely on the AiiDA's API and changes to it might affect its functionality.

ltalirz commented 2 years ago

I did play around with the aiidalab when I created the 2.0 container end of last year, i.e. I guess the basics were working.

If you want more tests, I suggest adding some continuous integration tests here?

It seems the rtd test fails because the package can't be installed due to conflicting requirements on the requests package.

Collecting nest-asyncio
  Downloading nest_asyncio-1.4.3-py3-none-any.whl (5.3 kB)
Requirement already satisfied: charset-normalizer~=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages (from requests~=2.27->optimade-client==2022.4.20->aiidalab-widgets-base==1.3.3) (2.0.12)
ERROR: Exception:
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper
    status = run_func(*args)
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 342, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
    collected.requirements, max_rounds=try_to_avoid_resolution_too_deep
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 373, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
  File "/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 227, in _attempt_to_pin_criterion
    raise InconsistentCandidate(candidate, criterion)
pip._vendor.resolvelib.resolvers.InconsistentCandidate: Provided candidate AlreadyInstalledCandidate(requests 2.28.0 (/home/docs/checkouts/readthedocs.org/user_builds/aiidalab-widgets-base/envs/297/lib/python3.7/site-packages)) does not satisfy SpecifierRequirement('requests~=2.27'), SpecifierRequirement('requests~=2.27.0'), SpecifierRequirement('requests'), SpecifierRequirement('requests>=2.5.0'), SpecifierRequirement('requests'), SpecifierRequirement('requests'), SpecifierRequirement('requests~=2.27')

One of the requirements seems to be 'requests~=2.27.0' which seems very harsh

csadorf commented 2 years ago

@yakutovicha That requirement could be loosened, no?

yakutovicha commented 2 years ago

@yakutovicha That requirement could be loosened, no?

I think so, yes. The only issue is that we do not directly depend on requests, so I am not sure what to modify.

It looks like the dependency is brought by the OPTIMADE client, but the restriction there is not that strict. So I was a bit puzzled.

(from requests~=2.27->optimade-client==2022.4.20->aiidalab-widgets-base==1.3.3)
csadorf commented 2 years ago

I think it comes from the aiidalab package: https://github.com/aiidalab/aiidalab/blob/8d217f367f77763db6cf55100b511dba81f4a7d0/setup.cfg#L39

yakutovicha commented 2 years ago

I think it comes from the aiidalab package: https://github.com/aiidalab/aiidalab/blob/8d217f367f77763db6cf55100b511dba81f4a7d0/setup.cfg#L39

Thanks! Here we go https://github.com/aiidalab/aiidalab/pull/286