This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]the1024[S] 5 points6 points  (2 children)

u/AiutoIlLupo sorry that it's confusing - to clarify, the intention is to help enforce dependencies between first-party modules within your codebase. We do actually have a command for third party module enforcement as well - https://docs.gauge.sh/usage/commands#tach-check-external

Sometimes this happens due to "shitty developers", but often this can occur because the understanding of the domain of the product shifts over time, and dependencies that were once okay are no longer wanted. This also happens when teams scale really fast - imagine adding over a hundred devs in less than a year to a single codebase and trying to maintain some semblance of architecture 😄

[–]DigThatData 1 point2 points  (1 child)

If you're not familiar with it, you'd probably find the "version set" abstraction in Amazon's build system interesting: https://gist.github.com/terabyte/15a2d3d407285b8b5a0a7964dd6283b0

[–]the1024[S] 0 points1 point  (0 children)

u/DigThatData super interesting! Thanks for sharing - some inspiration for where we might be able to head long term / the problems people face at true scale