Conversation
|
Thanks for digging into this, Pat!
This would be ideal. If others find it unpalatable, I hope we can at least consider the changes in this PR so that
It's unfortunate that it complicates the release process, but it's likely worth it for the simpler dependencies. We can automate the release process to make it easier on ourselves. |
SG. I'll roll those changes into this PR.
Yeah I agree with that. |
|
Agreed with what y'all have discussed. Unfortunate about the release process but fixing the circular dependency seems worth it. |
These changes peel
esc/cmdout of theescmodule s.t. the latter has no dependency onpulumi/pulumi.Unfortunately, the
escCLI itself does require apulumi/pulumidependency so that it can share credential management with thepulumiCLI.These changes should at least simplify the dependency graph for
pulumi/pulumisomewhat so thatpulumi/pulumi/sdkcan depend onescwithout circularity.Unfortunately, there is still circularity between
esc/cmdandpulumi/pulumi/pkg. We could resolve this by splitting off yet another module that contains the CLI implementation but not the default implementations of various bits that refer topulumi/pulumi/pkg. That would probably give us the following modules:github.com/pulumi/esc<-- no pulumi dependenciesgithub.com/pulumi/esc/cmd<-- pkg/ and sdk/ dependenciesgithub.com/pulumi/esc/cmd/cli<-- sdk/ dependencypulumi/pulumi/sdkcould then freely depend onpulumi/escandpulumi/pulumi/pkgcould depend ongithub.com/pulumi/esc/cmd/cli, all without circularity.The cost, of course, is a more complicated release process for
esc, wherein the commit/tag flow becomes:esc/v1.2.3esc/cmd/clito consumeesc/v1.2.3, then commit + tagesc/cmd/cli/v1.2.3esc/cmdto consumeesc/cmd/cli/v1.2.3, then commit + tagesc/cmd/v1.2.3That said, that process is probably worth the simplicity of reasoning about dependencies.
Thoughts?