Foreman-js - why keep all meta-packages on the same version?

For our foreman-js meta-packages (like @theforeman/vendor), I was told to update them all together when updating one, so in this PR, I updated @theforeman/test to 6.0.0, but needed to update the other @theforeman/* packages to 6.0.0 as well.

Seeing something like katello-nightly-rpm-pipeline 756 failed makes me wonder if there is a way these can be updated independently. @theforeman/builder updated to 6.0.0, so Katello’s version was no longer available in packaging. But there were no breaking changes in @theforeman/builder, it just was updated along with the other packages. Ths means that pinning to certain version ranges doesn’t behave as expected.

What is the reason for us updating all the packages together right now? More specifically, what I’m wondering is:

  1. Can we publish @theforeman packages independently to npm so they maintain their own semantic versioning?
  2. Can we define the relationships between @theforeman packages better so they don’t have to be updated together when one package was updated?

cc @ui_ux

I don’t see any reason why the packages can’t be versioned separately. We were probably doing it just because they’re all hosted via lerna in the same Github repo. But each package does have its own package.json which can be versioned separately, unless there’s some technical limitation I don’t know about.

Yeah, I also think it’s more for a convenience reason, altough we should then (as John is saying) define more rigid dependencies and set bit more formal processes (write them up in the foreman-js repo would be fine I guess) what needs to be done on each of the version bumps.

Now the processes are quite easy, even though not very convenient. You bump all of them together and then bump them in all plugins xD It would be great to have something better than that, but last discussion on this topic didn’t bring any good answers IIRC.