It creates a list of all package manifest dependencies that require an update
based on the commitAnalyzer results and the list of dependency changes the update type (major, minor, path, nothing) is determined
the list of dependency changes is used for both the release notes as well as update the package.json content
update of package.json content is done in the prepare step when all the new releases are determined by semantic-release
In the process I fixed a few extra corner cases. E.g.,
with new packages, dependencies are not seen as dependency updates. As such they don't show up in the release notes as updates, and they won't impact the type of package version. The package content is set correctly though
With inherit policy, a major dependency update will now override a minor local update, and vice-versa, a local major update will override a dependency minor update.
workspace protocol (workspace:* versions) will always trigger a package.json rewrite, but if the corresponding dependency is not updated it won't be marked as update. This did not work with the 'satisfy' policy as workspace:* was always seen as update, regardless if the referenced package was updated or not.
My attempt to improve the versioning logic...
In the process I fixed a few extra corner cases. E.g.,
workspace:*
versions) will always trigger a package.json rewrite, but if the corresponding dependency is not updated it won't be marked as update. This did not work with the 'satisfy' policy as workspace:* was always seen as update, regardless if the referenced package was updated or not.Fixes #47