You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The lack of a mechanism to semi-automatically setup a multi-repo work area is probably one of the longest-standing issues in ipbb. The problem is twofold:
How to define dependencies.
Using .ipbb_setup.yml is probably the simplest solution.
Properly handling multi-layer dependencies.
Implementing a proper dependency management schema seems overkill, for a few reasons.
It could be a lot of work and concepts like 'minimal required package version' require some basic tag conventions, which are not guaranteed.
Instead, the most reasonable way forward is a 'limited responsibility' revision management schema. In this scenario, only a minimal set of automatic checks and actions are implemented to handle multi-layer dependencies and the user intervention is requested in case of any minimal conflict or inconsistency.
For example, let's assume to have 3 inter-dependant repositories A, B and C (and D for the last case)
simple case: A depends on B that depends on C. A imports B, but puts no requirements on C. C's revision is taken from B. (dependency imports)
simple conflict: A depends on B and a specific C version. A conflict between A's and B's reqs on C arises. Assuming that the top-level is in A, a warning is thrown, but the revision of C specified by A is taken (top package dependencies prevail)
sup-package conflict: A depends on B and C, both conflictual depending on D. The responsibility to choose the correct version of C is delegated to A (top package resolves conflicts)
This approach is rather straightforward to implement and avoid inconsistent situations.
The text was updated successfully, but these errors were encountered:
The lack of a mechanism to semi-automatically setup a multi-repo work area is probably one of the longest-standing issues in
ipbb
. The problem is twofold:Using
.ipbb_setup.yml
is probably the simplest solution.Implementing a proper dependency management schema seems overkill, for a few reasons.
It could be a lot of work and concepts like 'minimal required package version' require some basic tag conventions, which are not guaranteed.
Instead, the most reasonable way forward is a 'limited responsibility' revision management schema. In this scenario, only a minimal set of automatic checks and actions are implemented to handle multi-layer dependencies and the user intervention is requested in case of any minimal conflict or inconsistency.
For example, let's assume to have 3 inter-dependant repositories A, B and C (and D for the last case)
This approach is rather straightforward to implement and avoid inconsistent situations.
The text was updated successfully, but these errors were encountered: