azure-container-networking icon indicating copy to clipboard operation
azure-container-networking copied to clipboard

proposal: separate mods for cni, cns, and npm

Open rbtr opened this issue 4 years ago • 6 comments

Reason for Change:

Makes the primary component projects separate go modules so that they can be versioned and released independently.

Issue Fixed:

Requirements:

Notes:

rbtr avatar Nov 30 '21 01:11 rbtr

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 :).

ramiro-gamarra avatar Nov 30 '21 22:11 ramiro-gamarra

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.

rbtr avatar Nov 30 '21 23:11 rbtr

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.

thatmattlong avatar Nov 30 '21 23:11 thatmattlong

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.

rbtr avatar Dec 01 '21 05:12 rbtr

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

github-actions[bot] avatar Apr 11 '22 00:04 github-actions[bot]

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

github-actions[bot] avatar Jul 11 '22 00:07 github-actions[bot]

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

github-actions[bot] avatar Sep 10 '22 00:09 github-actions[bot]