Skip to content

[Spike] Investigate limitations of chained MR dependencies

Proposal

There is an effort to work on improving the state of MR dependencies and in specific look into enhancing the ability to add a sequence of dependencies.

  • A depends on B
  • B depends on C

We have a limitation in place that prevents these chains from being created, related to avoiding circular dependencies, etc.

We'd like to understand the reasons for this limitation and whether that's something we can expand without sacrificing reliability.

Quoting from an ongoing discussion:

I was wondering if there would be a way to implement this partially that wouldn't incur in the recursive dependency cycle check? I can see that we're enforcing the "shallow" dependency by checking 3 rules when introducing the MR block:

  1. No self-block
  2. Blocking MR can't itself be blocked
  3. Blocked MR can't block others

It seems to me that we could drop rule 3 and still avoid cycles, thereby enabling more complex orders. Modifying the dependency tree after the fact with a large dependency tree would be cumbersome, though.

Questions

  • Can we remove the rule 3 (above) altogether or should we still have some sort of limitation?
  • Why the limit? 🤔
  • Can we handle this with a warnings in case a circular dependency is detected?
Edited by Adam Hegyi