Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tools for evaluating dependency updates to Kubernetes #98698

Closed
dims opened this issue Feb 2, 2021 · 13 comments
Closed

Tools for evaluating dependency updates to Kubernetes #98698

dims opened this issue Feb 2, 2021 · 13 comments
Labels
area/code-organization Issues or PRs related to kubernetes code organization kind/feature Categorizes issue or PR as related to a new feature. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@dims
Copy link
Member

dims commented Feb 2, 2021

NOTE: This is part of the LFX mentorship program

Implement command line utilities that can help Kubernetes developers evaluate new dependencies by capturing statistics/metrics and estimating cost of adding something new. This will involve diving deep into golang dependency chains (transitive/shared dependencies) and coming up with new metrics to estimate how burdensome something new can be or how much we will save by getting rid of something so we can prioritize work and get more efficient from a developer workflow perspective.

For more context see these code-organization meeting notes and this one

image

@dims dims added the kind/feature Categorizes issue or PR as related to a new feature. label Feb 2, 2021
@k8s-ci-robot k8s-ci-robot added needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Feb 2, 2021
@neolit123
Copy link
Member

/sig architecture
/area code-organization

@k8s-ci-robot k8s-ci-robot added sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. area/code-organization Issues or PRs related to kubernetes code organization and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Feb 3, 2021
@neolit123
Copy link
Member

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Feb 3, 2021
@alenkacz
Copy link
Contributor

alenkacz commented Feb 3, 2021

OMG this is amazing, I want this. I've spent last couple of weeks upgrading bunch of kubernetes related deps in several projects and I was thinking about something like this a lot. 🙏

I wish I could work on this :)

@dims
Copy link
Member Author

dims commented Feb 3, 2021

Prior art / background research:

@navidshaikh
Copy link
Member

I've some experience in writing command line utilities and I'd like to collaborate on this. Going to parse the references linked above.

@alenkacz
Copy link
Contributor

alenkacz commented Feb 9, 2021

@abhaykatheria
Copy link

I think if we can get the metadata of all the dependencies (existing and the new one) using goda, and then classify them as incoming or shared.
After getting the metadata we can create a report with some investigatory features like :

  • sort by LoC.
  • sort by no. of deps (new incoming deps)
  • and maybe some other metric.

Then to make it less sore to the eyes, create an HTML report for the same with a dependency graph and features listed above, it can also have links to the respected module repositories where developers can go check out how active the module development is.
After proper investigation developer can decide whether or not to bring in the new dep.
Please point out if I am missing something.
P.S: I am writing this under the assumption that we are currently only concerned with adding new modules not deleting them.

@dims
Copy link
Member Author

dims commented Feb 13, 2021

@abhaykatheria good find, yes we want to highlight cost of adding things, but also celebrate the wins when we drop something.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 17, 2021
@RinkiyaKeDad
Copy link
Member

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 18, 2021
@RinkiyaKeDad
Copy link
Member

@dims can we close this now? 🙂

@dims
Copy link
Member Author

dims commented Jul 13, 2021

yes! thanks a ton @RinkiyaKeDad

/close

@k8s-ci-robot
Copy link
Contributor

@dims: Closing this issue.

In response to this:

yes! thanks a ton @RinkiyaKeDad

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/code-organization Issues or PRs related to kubernetes code organization kind/feature Categorizes issue or PR as related to a new feature. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants