bluesky / suitcase-core

data export facilities for NSLS-II
https://blueskyproject.io/suitcase
Other
2 stars 13 forks source link

Make suitcase compatible with submodules #51

Closed jrmlhermitte closed 5 years ago

jrmlhermitte commented 6 years ago

Suitcase as is, is currently not compatible with submodules.

From here, there are three ways to make suitcase compatible with submodules:

I'm tempted to do the second. If we do, we need to update suitcase cookiecutter.

What do you think? @danielballan @mrakitin ? Anyone with experience with submodules? (First time reading about this. Learned the hard way when I found out my student currently can't install suitcase and suitcase.pizza_box together. I just removed the __init__.py in this package, and moved the files to submodules for now. This is the first option, which I'd rather go agains)

danielballan commented 6 years ago

I imagined that we would just deprecate and uninstall the original monolithic suitcase package, porting its contents into respective namespace packages. There will be no pip install suitcase; the suitcase package emerges by invoking pip in suitcase-* for one or more subpackages, via the magic of namespace packages.

While namespace packages are sort of possible in Python 2, they are generally considered be "broken" --- impossible to use a way free of traps and unexpected effects. That was my thinking when I advocated for the Python 3-only approach implemented in the cookiecutter.

What about Python 2 support? As the data access layer, databroker should support Python 2 if anything does. We can provide Python 2 support through the databroker RESTer (web client). But the rest of the databroker and its dependencies (e.g. suitcase packages), running on the server side, can be Python 3 only. As we reorganize over the next couple months, there may be a gap where there is no Python 2 support in the master branches, but @stuartcampbell has approved this way forward, noting that the overlap in the Venn diagram of users open enough to try our databroker concept but not willing/able to install Python 3 is vanishingly small.

jrmlhermitte commented 6 years ago

Sounds good. Thanks for the clarification. I'm okay with closing this issue. I'll give it some time for others to read and close it later today unless you prefer it to be visible?

danielballan commented 6 years ago

Fine by me to close it. FYI I had tried to document my intent by leaving this README here, but obviously we need more documentation for suitcase users. Would like to wait a bit until the design has annealed a little more.

danielballan commented 5 years ago

This is done.