This is a summary of the options briefly discussed in #230 (comment).
https://github.com/godaddy/kubernetes-client is a fluent JavaScript language API binding and includes experimental support for using https://github.com/kubernetes-client/javascript as it's backend. It could makes sense to move https://github.com/godaddy/kubernetes-client to https://github.com/kubernetes-client. I summarize three options for doing this below:
Option 1: separate repository, separate npm module
Pros:
- Close to what exists today, easy to orchestrate in the short term.
Cons:
- Separate JavaScript client repositories and modules could be confusing to end users.
- Might be cumbersome for maintainers to make major changes (e.g., breaking ones) across multiple repositories.
Option 2: same repository, same npm module
Move godaddy/kubernetes-client to kubernetes-client/javascript/fluent and expose the godaddy/kubernetes-client bindings via require('@kubernetes/client-node/fluent').
Pros:
- Easy for end users because there's a single repository and module for Kubernetes JavaScript clients.
- Facilitates making larger changes across both client types
Cons:
- Existing users of
@kubernetes/client-node will pull in superfluous dependencies from godaddy/kubernetes-client (FWIW, the list is short and will get shorter once @kubernetes/client-node is the backend for `godaddy/kubernetes-client).
- More work for merging (e.g., documentation/README.md, package.json scripts, etc).
Option 3: same repository, separate npm modules
Move godaddy/kubernetes-client to kubernetes-client/javascript/fluent and expose the godaddy/kubernetes-client via the existing npm module, or a new one.
Pros:
- Existing users of
@kubernetes/client-node do no pull in dependencies for godaddy/kubernetes-client by default
- Facilitates making larger changes across both client types
Cons:
- Monorepos for JavaScript/npm modules can require special tooling to do it well in some circumstances.
- The same repo, but different npm modules could lead to confusion for end users
This is a summary of the options briefly discussed in #230 (comment).
https://github.com/godaddy/kubernetes-client is a fluent JavaScript language API binding and includes experimental support for using https://github.com/kubernetes-client/javascript as it's backend. It could makes sense to move https://github.com/godaddy/kubernetes-client to https://github.com/kubernetes-client. I summarize three options for doing this below:
Option 1: separate repository, separate npm module
Pros:
Cons:
Option 2: same repository, same npm module
Move
godaddy/kubernetes-clienttokubernetes-client/javascript/fluentand expose thegodaddy/kubernetes-clientbindings viarequire('@kubernetes/client-node/fluent').Pros:
Cons:
@kubernetes/client-nodewill pull in superfluous dependencies fromgodaddy/kubernetes-client(FWIW, the list is short and will get shorter once@kubernetes/client-nodeis the backend for `godaddy/kubernetes-client).Option 3: same repository, separate npm modules
Move
godaddy/kubernetes-clienttokubernetes-client/javascript/fluentand expose thegodaddy/kubernetes-clientvia the existing npm module, or a new one.Pros:
@kubernetes/client-nodedo no pull in dependencies forgodaddy/kubernetes-clientby defaultCons: