-
-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Let's say that we have the following package tree:
graph BT
network-controller --> controller-utils
Now controller-utils
introduces a new function that is used by network-controller
. network-controller
is then released without controller-utils
also being released. What would happen? This would break things in the clients when network-controller
was updated to use the new version, because the new function in controller-utils
it was attempting to use would not exist.
To address this, we can make a change to this tool:
Given the project is a monorepo
And the monorepo has a package A
And A depends on B
And B has been changed since its previous release
And the user has included A in the release spec
And the user has not included B in the release spec
When the tool applies the release spec
Then warn the user so that they are compelled to include B in the same way that the tool warns the user about excluding packages with any kinds of changes today (that is, explain the consequences of not including the package, and force the user to re-edit the release spec and indicate intentionally-skip
for B's version if they truly want to bypass the warning).
Note that at the moment, the user will receive a warning if a package has been changed but isn't included in a release, but in order to support partial releases, we will change that in #92, so this logic effectively replaces that logic.