Skip to content

Compel users to release new versions of dependencies alongside their dependents #91

@mcmire

Description

@mcmire

Let's say that we have the following package tree:

graph BT
  network-controller --> controller-utils
Loading

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions