<p></p>
<blockquote>
<p>I disagree here. IMO it is not hard to avoid circular dependencies. Nowadays, the typical programming 101 class teaches design patterns that avoid a strong coupling of modules .. Dependency hell is something that we <del>want to</del> <strong>must</strong> avoid, especially if we have a very nuanced dependency tree with a multitude of branches. Enforcing an acyclic dependency graph with a tool is IMO the correct way to go.</p>
</blockquote>
<p>Spoken like coming out of programming 101. Good luck modeling RIOT's current dependencies with that.</p>
<p>There are quite some circular dependencies in RIOT atm. Out of my head, core depends on auto_init. auto_init depends on everything, everything depends on core. Or gnrc depends on gnrc_pktbuf, which depends on gnrc_pkt, which depends on gnrc.<br>
There are different "kinds" of dependencies (A also selects B, A uses header of B, A uses symbols from B, ...). Some are naturally circular. I don't buy "programming 101 dictates that we have to do without".</p>
<p>And believe me, in practice, disallowing seemingly valid circular dependencies is a huge aspect of dependency hell.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/issues/14027#issuecomment-624517607">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYDIM3AZNBZMV6FE443RQEPBDANCNFSM4MZYMHUQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABE7WYET45N6Q7DDA44OK2DRQEPBDA5CNFSM4MZYMHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEU4WDZY.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/issues/14027#issuecomment-624517607",
"url": "https://github.com/RIOT-OS/RIOT/issues/14027#issuecomment-624517607",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>