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

🔧 dask compatible requirements listings #2420

Merged
merged 7 commits into from
Jul 7, 2021

Conversation

pcrespov
Copy link
Member

@pcrespov pcrespov commented Jul 6, 2021

What do these changes do?

PROBLEM: The interaction between dask actors (i.e. client/scheduler/worker) demands a certain compatibility between libraries installed in different counterparts

SOLUTION: this PR provides listings for different type of clients under services/dask-sidecar/requirements/_dask*.txt that ensure compatibility (i.e. are in sync) with worker and scheduler services build within services/dask-sidecar, i.e.

  • in jupyterlab use services/dask-sidecar/requirements/_dask-complete.txt
  • in director2 use services/dask-sidecar/requirements/_dask-distributed.txt

Other changes:

  • pip-compile now strips extra labels from frozen requirements. (TODO: apply these changes to entire repo in a separate PR)
  • uses long version of pip install CLI options to make it more readable

Related issue/s

provides minimal dask reqs for PR #2418

How to test

To test reqs compatibility

make devenv
cd services/dask-sidecar
make install-dev
make test-dev-unit

and now can update requirements and retest

cd services/dask-sidecar/requirements
make touch
make reqs
cd ..
make install-dev
make test-dev-unit

@pcrespov pcrespov self-assigned this Jul 6, 2021
@pcrespov pcrespov added a:dask-service Any of the dask services: dask-scheduler/sidecar or worker dependencies Pull requests that update a dependency file labels Jul 6, 2021
@codecov
Copy link

codecov bot commented Jul 6, 2021

Codecov Report

Merging #2420 (8f6761d) into master (1c816d3) will increase coverage by 0.0%.
The diff coverage is n/a.

Impacted file tree graph

@@          Coverage Diff           @@
##           master   #2420   +/-   ##
======================================
  Coverage    75.4%   75.5%           
======================================
  Files         560     560           
  Lines       20868   20868           
  Branches     2018    2018           
======================================
+ Hits        15753   15763   +10     
+ Misses       4580    4573    -7     
+ Partials      535     532    -3     
Flag Coverage Δ
integrationtests 66.3% <ø> (+<0.1%) ⬆️
unittests 69.2% <ø> (+<0.1%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...erver/src/simcore_service_webserver/director_v2.py 78.7% <0.0%> (+0.7%) ⬆️
...ages/service-library/src/servicelib/aiopg_utils.py 90.8% <0.0%> (+3.0%) ⬆️
...webserver/computation_comp_tasks_listening_task.py 89.7% <0.0%> (+6.1%) ⬆️

@pcrespov pcrespov added this to the Marmoset milestone Jul 6, 2021
Copy link
Member

@sanderegg sanderegg left a comment

Choose a reason for hiding this comment

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

great!

.github/PULL_REQUEST_TEMPLATE.md Outdated Show resolved Hide resolved
services/dask-sidecar/requirements/_base.in Show resolved Hide resolved
Copy link
Contributor

@GitHK GitHK left a comment

Choose a reason for hiding this comment

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

👍 just a minor change request

Comment on lines +23 to +27
REQS_ENTRY_REGEX = re.compile(r"(\w+)==([\.\w]+)")
NameVersionTuple = Tuple[str, str]

def get_reqs(fname: str) -> Set[NameVersionTuple]:
return set(REQS_ENTRY_REGEX.findall((requirements_folder / fname).read_text()))
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you move these outside of this function?

Copy link
Member Author

Choose a reason for hiding this comment

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

Do you have a special reason? I find it more clear inside of the only function it uses it. Short local functions are very common and useful: I can take advantage of e.g. the scope or shorter names . Generally, if I move these functions outside, i loose both: I would need to add more parameters and have longer names to avoid collisions and make it more clear in a wider context.

@pcrespov pcrespov merged commit 895b0f9 into ITISFoundation:master Jul 7, 2021
@pcrespov pcrespov deleted the enh/dask-reqs branch July 7, 2021 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:dask-service Any of the dask services: dask-scheduler/sidecar or worker dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants