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

Release krew v0.3.0 #324

Closed
ahmetb opened this issue Aug 30, 2019 · 21 comments
Closed

Release krew v0.3.0 #324

ahmetb opened this issue Aug 30, 2019 · 21 comments

Comments

@ahmetb
Copy link
Member

ahmetb commented Aug 30, 2019

It seems like there's no reason to hold off onto the v0.3

  • v0.2.1 happened 309 days ago (Oct 24, 2018) and Krew has been working pretty reliably.
  • We made a lot of changes since v0.2.1, most of them are cleanup of technical debt. However, these need more testing before more changes are accumulated.
  • All P0 and P1 bugs are now closed.

We only have a major backlog item we're deferring to v0.4 release:

Major notes from this release:

  • Post-upgrade, krew will prompt users for running a mandatory migration command before any krew subcommand can be used.
  • Krew no longer breaks when an installed plugin deleted/renamed from the upstream index.

/cc @corneliusweig
^ can you please try making a release to exercise this path and see if you have permissions?

@corneliusweig
Copy link
Contributor

It seems I am not allowed to directly push to the krew repository or create tags. The git config used for pushing is:

[remote "origin"]
   url = [email protected]:kubernetes-sigs/krew.git
   fetch = +refs/heads/*:refs/remotes/origin/*

Btw, it would be nice to have the above major notes also in the tag description for v0.3.0. If you go ahead with this task could you add them manually?


And what do you think about listing the merged PRs. For example, minikube has a script (https://github.com/kubernetes/minikube/blob/master/hack/release_notes/listpullreqs.go) which will produce:

Collecting pull request that were merged since the last release: v0.2.1 (2018-10-24 19:45:20 +0000 UTC)
* Add security notice to be shown after install and upgrade [#316](https://github.com/kubernetes-sigs/krew/pull/316)
* Correct import order [#321](https://github.com/kubernetes-sigs/krew/pull/321)
* lint: make test config explicit [#320](https://github.com/kubernetes-sigs/krew/pull/320)
* lint: enable deadcode and varcheck [#318](https://github.com/kubernetes-sigs/krew/pull/318)
* lint: bump golangci-lint to 1.17.1 [#319](https://github.com/kubernetes-sigs/krew/pull/319)
* Clean up stale krew installations on windows [#314](https://github.com/kubernetes-sigs/krew/pull/314)
* pkg/validation: simplify name comparison [#317](https://github.com/kubernetes-sigs/krew/pull/317)
* pkg/download: close files after extracting in tar [#310](https://github.com/kubernetes-sigs/krew/pull/310)
* pkg/index: close manifest file after reading [#313](https://github.com/kubernetes-sigs/krew/pull/313)
* prevent erroring with empty plugin name [#311](https://github.com/kubernetes-sigs/krew/pull/311)
* Add index revision to plugin overview page [#307](https://github.com/kubernetes-sigs/krew/pull/307)
* README: link to the list of available plugins [#304](https://github.com/kubernetes-sigs/krew/pull/304)
* Validate plugins can be removed without local manifest [#300](https://github.com/kubernetes-sigs/krew/pull/300)
* Add script to generate plugin overview page [#260](https://github.com/kubernetes-sigs/krew/pull/260)
* Make files in `spec.platforms[]` optional [#261](https://github.com/kubernetes-sigs/krew/pull/261)
* pkg/installation: cleanup refactoring [#296](https://github.com/kubernetes-sigs/krew/pull/296)
* integration_test: add more test cases [#297](https://github.com/kubernetes-sigs/krew/pull/297)
* pkg/installation: unused pluginVersionFromPath [#290](https://github.com/kubernetes-sigs/krew/pull/290)
* pkg/validation: add selector validation [#288](https://github.com/kubernetes-sigs/krew/pull/288)
* Move platform detection to pkg/installation [#286](https://github.com/kubernetes-sigs/krew/pull/286)
* test: remove -v from tests [#285](https://github.com/kubernetes-sigs/krew/pull/285)
* pkg/receipt: move under pkg/installation [#280](https://github.com/kubernetes-sigs/krew/pull/280)
* Unify yaml serialization dependencies [#266](https://github.com/kubernetes-sigs/krew/pull/266)
* Add --no-update-index option to bypass updates [#279](https://github.com/kubernetes-sigs/krew/pull/279)
* pkg/testutil: add in-memory Plugin builder [#283](https://github.com/kubernetes-sigs/krew/pull/283)
* pkg/index: validate sha256 values [#281](https://github.com/kubernetes-sigs/krew/pull/281)
* Refactor upgrade machinery to use semver versions [#278](https://github.com/kubernetes-sigs/krew/pull/278)
* Update plugin listings to use install receipts [#276](https://github.com/kubernetes-sigs/krew/pull/276)
* semver: add wrapper for SemVer functionality [#273](https://github.com/kubernetes-sigs/krew/pull/273)
* minor: rename environment.Path receipt path methods [#275](https://github.com/kubernetes-sigs/krew/pull/275)
* Make version field required [#269](https://github.com/kubernetes-sigs/krew/pull/269)
* hack: make run-lint.sh work with go modules [#268](https://github.com/kubernetes-sigs/krew/pull/268)
* hack: verify builds are installable [#262](https://github.com/kubernetes-sigs/krew/pull/262)
* hack: add make-binary.sh for local builds [#259](https://github.com/kubernetes-sigs/krew/pull/259)
* README: add github stars from shields.io [#257](https://github.com/kubernetes-sigs/krew/pull/257)
* hack: add script to verify receipts migration [#255](https://github.com/kubernetes-sigs/krew/pull/255)
* Add subcommand for migrating the krew home [#249](https://github.com/kubernetes-sigs/krew/pull/249)
* Add integration test for `krew upgrade` [#242](https://github.com/kubernetes-sigs/krew/pull/242)
* Use `t.Logf` instead of `glog` in tests [#248](https://github.com/kubernetes-sigs/krew/pull/248)
* Make output of `krew search` easier to read [#253](https://github.com/kubernetes-sigs/krew/pull/253)
* Fix typo in the developer docs for plugin manifest [#251](https://github.com/kubernetes-sigs/krew/pull/251)
* Add integration tests for `krew install` with --archive and --manifest options [#245](https://github.com/kubernetes-sigs/krew/pull/245)
* hack/run-in-docker: refactoring [#206](https://github.com/kubernetes-sigs/krew/pull/206)
* Ensure that go modules are enabled in all helper scripts [#243](https://github.com/kubernetes-sigs/krew/pull/243)
* integration_test: split tests into separate files [#240](https://github.com/kubernetes-sigs/krew/pull/240)
* vendor: rename leftover vendor/ directory [#241](https://github.com/kubernetes-sigs/krew/pull/241)
* pkg/installation: reorder receipt save & install() [#237](https://github.com/kubernetes-sigs/krew/pull/237)
* Move to go modules (vgo) [#235](https://github.com/kubernetes-sigs/krew/pull/235)
* Rename /test --> /integration_test [#236](https://github.com/kubernetes-sigs/krew/pull/236)
* Save install receipt [#195](https://github.com/kubernetes-sigs/krew/pull/195)
* Fix a broken link on README.md [#230](https://github.com/kubernetes-sigs/krew/pull/230)
* Fix readme for wrong use of fish subshell in string [#215](https://github.com/kubernetes-sigs/krew/pull/215)
* hack: update verify-code-patterns.sh [#221](https://github.com/kubernetes-sigs/krew/pull/221)
* Various fixes to integration tests [#228](https://github.com/kubernetes-sigs/krew/pull/228)
* Cleanup some TODOs [#218](https://github.com/kubernetes-sigs/krew/pull/218)
* hack: move out install_kubectl_if_needed [#220](https://github.com/kubernetes-sigs/krew/pull/220)
* Small refactorings for better code structure [#223](https://github.com/kubernetes-sigs/krew/pull/223)
* Put local imports in a separate import group [#222](https://github.com/kubernetes-sigs/krew/pull/222)
* Validate manifest file extension and kind field [#191](https://github.com/kubernetes-sigs/krew/pull/191)
* Add myself as krew maintainer [#216](https://github.com/kubernetes-sigs/krew/pull/216)
* Remove obsolete `head` field from plugin manifest [#212](https://github.com/kubernetes-sigs/krew/pull/212)
* Make corneliusweig a maintainer [#214](https://github.com/kubernetes-sigs/krew/pull/214)
* More integration tests [#208](https://github.com/kubernetes-sigs/krew/pull/208)
* Add basic integration tests [#203](https://github.com/kubernetes-sigs/krew/pull/203)
* Added link for contribution doc [#207](https://github.com/kubernetes-sigs/krew/pull/207)
* Add contributor documentation and helper scripts [#201](https://github.com/kubernetes-sigs/krew/pull/201)
* cmd: info: Support only one argument [#197](https://github.com/kubernetes-sigs/krew/pull/197)
* Ensure index updates do not fail if the local and remote history diverge [#202](https://github.com/kubernetes-sigs/krew/pull/202)
* Fix IndexUrl to point to right url [#194](https://github.com/kubernetes-sigs/krew/pull/194)
* Rename `krew remove` to `krew uninstall` [#189](https://github.com/kubernetes-sigs/krew/pull/189)
* Switch linter from gometalinter to golangci-lint [#176](https://github.com/kubernetes-sigs/krew/pull/176)
* add: description how to install krew on fish [#187](https://github.com/kubernetes-sigs/krew/pull/187)
* Validate license boilerplate in CI builds [#183](https://github.com/kubernetes-sigs/krew/pull/183)
* Switch imports to sigs.k8s.io/krew [#181](https://github.com/kubernetes-sigs/krew/pull/181)
* Add some github shields [#177](https://github.com/kubernetes-sigs/krew/pull/177)
* Switch all repo references from `GoogleContainerTools` -> `kubernetes-sigs` [#178](https://github.com/kubernetes-sigs/krew/pull/178)
* Update license headers to reassign copyright [#169](https://github.com/kubernetes-sigs/krew/pull/169)
* README: post-migration updates [#167](https://github.com/kubernetes-sigs/krew/pull/167)
* Add OWNERS, kubernetes project template files [#161](https://github.com/kubernetes-sigs/krew/pull/161)
* Change OWNERS_ALIASES to krew-maintainers [#162](https://github.com/kubernetes-sigs/krew/pull/162)
* Add `spec.homepage` field to the plugin manifest [#158](https://github.com/kubernetes-sigs/krew/pull/158)
* Fix typos in user guide [#153](https://github.com/kubernetes-sigs/krew/pull/153)
* cmd/validate-krew-manifest: initial implementation [#151](https://github.com/kubernetes-sigs/krew/pull/151)
* Use variable extractor methods for mime types [#139](https://github.com/kubernetes-sigs/krew/pull/139)
* Added condition to remove command, to prevent remove krew action [#147](https://github.com/kubernetes-sigs/krew/pull/147)
* docs: add cli-runtime note to DEVELOPER_GUIDE.md [#146](https://github.com/kubernetes-sigs/krew/pull/146)
* Update README.md: --source is now --manifest [#143](https://github.com/kubernetes-sigs/krew/pull/143)
* hack: consistent checksums for archive files [#141](https://github.com/kubernetes-sigs/krew/pull/141)
* Add download tests [#138](https://github.com/kubernetes-sigs/krew/pull/138)
* docs: migrate naming guide to 1.12 plugin call style [#140](https://github.com/kubernetes-sigs/krew/pull/140)
* Fix spelling of 'download' [#136](https://github.com/kubernetes-sigs/krew/pull/136)
* Fix --archive param in developer guide [#134](https://github.com/kubernetes-sigs/krew/pull/134)
* Fix missing krew subcommand in README.md [#132](https://github.com/kubernetes-sigs/krew/pull/132)
* docs: update developer guide [#130](https://github.com/kubernetes-sigs/krew/pull/130)

@ahmetb
Copy link
Member Author

ahmetb commented Sep 2, 2019

@corneliusweig hmm looks like you're in krew-maintainers but not in krew-admins in org config. We might try to get you to -admins instead.

@ahmetb
Copy link
Member Author

ahmetb commented Sep 2, 2019

Commented in #326 as well. List of PRs are probably not directly useful to most users, but if we can list them at the end, or in a collapsed-by-default section, it would be fine.

@corneliusweig
Copy link
Contributor

@ahmetb Maybe you still have repo super-powers which were not removed after the repository migration? But we could try with getting me in the admin list. Would certainly be good for the truck factor 🚚

@corneliusweig
Copy link
Contributor

I think I found the file that needs to be modified: https://github.com/kubernetes/org/blob/93a5d95aa55ccbfa4bf6f0128b8cdb44559c5268/config/kubernetes-sigs/sig-cli/teams.yaml#L40

@ahmetb Can I simply open an issue to request being added in krew-maintainers (for krew-index I don't see a reason why this would be necessary). It's a bit confusing though because https://github.com/kubernetes/community/blob/master/community-membership.md#maintainer says, the maintainer role is deprecated.

@ahmetb
Copy link
Member Author

ahmetb commented Sep 2, 2019

Sounds good. Honestly there are way more krew-maintainers than I expected there, I'm not sure if the bot is doing some inheritance.

@corneliusweig
Copy link
Contributor

The git log says that all the maintainers were added manually by Nikhita during the repo migration. I also think this is a bit excessive. For example, cli-experimental and kustomize have far fewer (around 3-4) entries there.

@corneliusweig
Copy link
Contributor

So it looks like I can create a release tag now, but updating the master failed:

remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "cla/linuxfoundation" is expected.
To github.com:kubernetes-sigs/krew.git
 * [new tag]         v0.3.0 -> v0.3.0
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to '[email protected]:kubernetes-sigs/krew.git'

That's not ideal, because the tagged commit will never be in the master history, but it's tolerable. I'll create a PR for getting the version bump into master.

@corneliusweig
Copy link
Contributor

@ahmetb It looks like the cloud build was not triggered. Is it possible that this broke because of the repository migration?

@ahmetb
Copy link
Member Author

ahmetb commented Sep 6, 2019

Most likely.

@ahmetb
Copy link
Member Author

ahmetb commented Sep 6, 2019

So perhaps for the release, we need an empty commit as a PR.
Then once it’s merged you can tag based on that? It seems like master is a protected branch, but tags aren’t.

@corneliusweig
Copy link
Contributor

Well, we could just use #333 for that. This is the necessary update of the readme. Whether we tag before merging that PR (the current state) or after is another question which should be resolved in the release manual for krew.

But the main issue is that the cloud build was not triggered. Do you have capacity to look into this?

@ahmetb
Copy link
Member Author

ahmetb commented Sep 6, 2019

Yeah, looking. I need to see if we are allowed to do GCB on this org.

@ahmetb
Copy link
Member Author

ahmetb commented Sep 6, 2019

GCB config seems to be borked. We might end up switching to Travis.
When I use the new GCB integration, it doesn't seem to be making .git available to the build.

@corneliusweig
Copy link
Contributor

Then if you don't mind, let's switch to Travis. This has the advantage that the configuration can be seen by everyone and also everybody can contribute.

@ahmetb
Copy link
Member Author

ahmetb commented Sep 6, 2019

Yeah, I'm also thinking we can move to GitHub releases back again for binary distribution, since I was not able to set up a monitoring pipeline via GCS. We can also consider bintray as well, but I don't think there's a precedent for that either.

@corneliusweig
Copy link
Contributor

I just found out that the binaries in the Travis-bundle report a wrong git tag. When installing via krew install --manifest new-krew-manifest.yaml, the version by krew version reports:

OPTION        VALUE
GitTag        v0.2.1-95-g798fe49
GitCommit     798fe49
...

Could it be possible that Travis does not know about the tag just being created?

@ahmetb
Copy link
Member Author

ahmetb commented Sep 10, 2019

I'm not sure which binary you're referring to. Link?
When you "push a tag", travis will start a build just for that tag. That build will know it should execute deploy: section added in #334.

@corneliusweig
Copy link
Contributor

I was installing from the manifest referenced in the rc release. At least I thought I did, because I cannot reproduce this anymore. With

KREW_ROOT=$PWD k krew install --manifest <( curl -L https://github.com/kubernetes-sigs/krew/releases/download/v0.3.0-alpha.1/krew.yaml)
./store/krew/v0.3.0-alpha.1/krew version

I get the expected output

OPTION        VALUE
GitTag        v0.3.0-alpha.1
GitCommit     eaa9900

So.. false alarm 🙏

@ferhatelmas
Copy link
Contributor

Since release is out, seems good to close.

@ahmetb
Copy link
Member Author

ahmetb commented Nov 11, 2019

/close
Ty for the reminder.

@ahmetb ahmetb closed this as completed Nov 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants