intersystems / intersystems/ipm

Fully incorporate Python dependencies into IPM lifecycle

Open
#542 0 comments 0 reactions 1 assignee Claimed by @isc-shuliu View on GitHub
enhancement
Dominant language
ObjectScript
Stars
41
Forks
29
Avg merge
23h 54m
Merged PRs (30d)
4

Description

Every package installs its dependencies in /python. If you uninstall the package, they stay. If you install a different package with conflicting version requirements in its own requirements.txt, it'll overwrite and things in /python and the first package might break.

We brainstormed some bad ideas in weekly meeting today. Having a path for dependencies per IPM package is a bad idea. Using a virtual environment for each IPM package is too heavy a lift and also wouldn't play well at the IRIS level.

More promising would be having IPM catalog all of the requirements.txt of installed packages and be able to detect conflicts across the whole set and manage installations in a dedicated directory (not /python - maybe /ipm/python) that is also in sys.path.

Other use cases:
* If the flexible python runtime version changes, being able to reinstall for proper python environment without having to reinstall all IPM packages.
* Being able to do an instance-wide python dependency upgrade more generally e.g. to pick up security fixes

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.