proposal: separate mods for cni, cns, and npm
Reason for Change:
Makes the primary component projects separate go modules so that they can be versioned and released independently.
Issue Fixed:
Requirements:
- [ ] uses conventional commit messages
- [ ] includes documentation
- [ ] adds unit tests
Notes:
Trying to understand the proposal here. This will allow each module to manage its dependencies independently, but it's not clear to me how they can be versioned independently. In regular cases, the module version is still based on a git tag, so even if we have multiple modules, we still only have the one repo tag (unless using different sets of tags per module is suggested?). Let me know what I'm missing :).
Modules in a monorepo can be versioned independently by prefixing the tag with their subpath: @cns/v1.4.16, @npm/v2.0.0, etc. They can also be versioned independently of the parent repo - tagging [email protected] is still valid.
Also, once an initial version for each module is tagged, the replace directives (like for the CNS CNI dependency) can be replaced by requireing the real tag.
I'm wondering if it might be easier to keep CNS and CNI versioned together since they share quite a bit of dependent interaction, and it might get difficult to know which CNI versions and which CNS versions are safe to use together. I suppose semantic versioning would help with this, but there are even cases where CNS isn't used (static Azure CNI) and I'm a little bit afraid of potential complexity that we'd introduce by versioning these separately. NPM of course can (and should) live on its own. But CNS and CNI are tightly coupled and might be best to keep them together.
CNS and CNI still have feature changes and bugfixes that can (and are, at least in AKS) shipped independently. I would prefer we adhere to semver and decouple the component releases.
This pull request is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days
This pull request is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days
This pull request is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days