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

Consider Homebrew as the macOS distribution method #475

Open
ahmetb opened this issue Jan 27, 2020 · 6 comments
Open

Consider Homebrew as the macOS distribution method #475

ahmetb opened this issue Jan 27, 2020 · 6 comments
Labels
area/distribution Issues or PRs related to distribution and installation area/platform/mac macOS related issues lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/P1 P1 issues or PRs

Comments

@ahmetb
Copy link
Member

ahmetb commented Jan 27, 2020

It seems like Krew was added to Homebrew formulae list. and it's currently available to users. Without documenting it, I suspect most people won't install it via brew.

Sadly, Krew is designed to install and update itself, just like any other kubectl plugin. We don't wish to support installation via other package managers as krew is a package manager itself (and while Krew is cross-platform, others aren't).

Homebrew makes sense for binaries like kubectl, but krew has extra installation instructions.

My recommendation would be to get Krew removed from Homebrew in the short term.
Any help is appreciated.

/priority P1

@glensc
Copy link

glensc commented Jan 27, 2020

Created draft PR for removal: Homebrew/homebrew-core#49428

holler there if it's decided removal is the way to proceed.

@glensc
Copy link

glensc commented Jan 27, 2020

@ahmetb PS: I'd prefer if you just ping me using @glensc handle rather send a private email. thanks.

@ahmetb
Copy link
Member Author

ahmetb commented Jan 28, 2020

Sorry about that I wasn't planning on creating an issue initially here.

@ahmetb
Copy link
Member Author

ahmetb commented Jan 29, 2020

So according to the discussion at Homebrew/homebrew-core#49428:

  • Homebrew distributes other package managers like NPM, Gradle, Snapcraft –so Krew is not an exception
  • There's a sentiment (probably stems from the tradition that) as the upstream, we don't get to dictate how we're packaged and distributed.

For the short term, I recommend we take these actions:

  • Make sure Homebrew formula is in good shape, but don't commit to maintaining it.
  • Start keeping in mind the case of "Krew does not always manage itself" while developing the self-upgrade machinery.
  • Homebrew builds currently don't inject -ldflags about Version and GitCommit, so the krew version command is currently showing unknown for those values.

It seems like organically we got >400 downloads on Homebrew in the past 30-days alone. We might make it the recommended solution if or when:

  • we are comfortable with time-to-release new version on Homebrew (e.g. are brew bots able to pick up a new tag within 24h)
  • we integrate our Download Analytics pipeline to also pull from Homebrew Analytics API
  • we are comfortable with the upgrade machinery not making assumptions on krew managing krew.

Until then we don't document Homebrew, but we also don't prevent users from using it.

⚠️ That said, I don't want this to set a precedent for other OSes/Distros:

I am negative about not being able to control distribution of a pre-1.0 software like this. I don't want us to maintain 5 different Linux distro package managers as well as Windows (Chocolatey). That's something Kubernetes project in general does not do (and it is deferred to the user community to package it up).

/retitle Consider Homebrew as the macOS distribution method

/area platform/mac
/area distribution

@k8s-ci-robot k8s-ci-robot changed the title Try to get krew removed from homebrew Consider Homebrew as the macOS distribution method Jan 29, 2020
@k8s-ci-robot k8s-ci-robot added area/platform/mac macOS related issues area/distribution Issues or PRs related to distribution and installation labels Jan 29, 2020
@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-testing, kubernetes/test-infra and/or fejta.
/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 Apr 28, 2020
@ahmetb
Copy link
Member Author

ahmetb commented Apr 29, 2020

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Apr 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/distribution Issues or PRs related to distribution and installation area/platform/mac macOS related issues lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/P1 P1 issues or PRs
Projects
None yet
Development

No branches or pull requests

4 participants