volkamerlab / teachopencadd

TeachOpenCADD: a teaching platform for computer-aided drug design (CADD) using open source packages and data
https://projects.volkamerlab.org/teachopencadd
Creative Commons Attribution 4.0 International
707 stars 196 forks source link

Separate environments for each talktorial #415

Closed mbackenkoehler closed 4 months ago

mbackenkoehler commented 5 months ago

Description

WIP

Playing around with Github actions to get an idea of how to set up a new CI with separated environments.

review-notebook-app[bot] commented 5 months ago

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

ijpulidos commented 5 months ago

Can you explain in more detail what are the current issues being faced with having a single big environment? And I guess also some comment on why having a separate one for each talktorial?

While separating environments could make things easier for people to use the talktorials (in specific circumstances), it does create a significant burden in maintaining each of the environments separately. And maybe even will make things harder for users to add packages to the environments if these are not maintained or kept up to date (since they will probably be harder to maintain if we separate them).

ijpulidos commented 5 months ago

Does it make sense having separate environments but not necessarily one for each talktorial? As in, maybe just having one separate environment for the ML/DL stuff, and the rest in another one. If that makes any sense. Apologies that I'm not that familiar with this project, so I'm just starting to wrap my head around this. Thanks!

mbackenkoehler commented 5 months ago

While separating environments could make things easier for people to use the talktorials (in specific circumstances), it does create a significant burden in maintaining each of the environments separately.

The reasoning is somewhat opposite. The environment for everything is very heavy and complex. Introducing or updating packages is difficult because we are in dependency hell. It's the main reason, everything is still on python 3.8. With packages not being able to be updated easily, tutorials sometimes make use of deprecated behaviors.

The goal therefore is mainly maintainability. From a user's perspective it is probably more cumbersome to install and activate one environment for every talktorial. There are other complications like the CLI (which I have not looked at so far at all) and the teachopencadd conda package.

Merging environments for groups of talktorials is something, we have in mind and likely will do. This has advantages for usability and the CI. We should probably keep one file per talktorial for the sake of consistency, though.

mbackenkoehler commented 4 months ago

This is replaced by #417