rajatjindal / krew-release-bot

bot to bump version of plugin in krew-index on new releases
Apache License 2.0
47 stars 17 forks source link

Error parsing tag URI #77

Open wallentx opened 1 week ago

wallentx commented 1 week ago

I'm not a plugin maintainer, but while fixing a bug with krew itself, I noticed that there were a lot of plugins that were listing as unavailable for darwin/arm64, which I knew wasn't accurate, because I am already using some of them (but installed from brew, rather than krew). i.e. popeye

I looked into how the krew-index got updated, and found this repo. I read the instructions for usage, and see that you have a github action that should be extremely easy for maintainers to integrate in their existing release workflows šŸ‘ But I looked at the popeye actions page, and saw that this had never worked for them, and from the best that I can tell, this is due to no fault of their own. https://github.com/derailed/popeye/actions/runs/10864403805/job/30149636725

time="2024-09-14T17:56:02Z" level=fatal msg="GET https://api.github.com/repos/derailed/popeye/releases/tags/v0.21.5: 404 Not Found []"

see that it is appending a : to the URL

Their release wokflow:

name: Krew
on:
  workflow_dispatch:
  push:
    tags:
      - "v*.*.*"

jobs:
  krew:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.7

      - name: Update new version in krew-index
        uses: rajatjindal/krew-release-bot@v0.0.46

I also made some other observations which you may, or may not be interested in, but the remainder of this is not directly related to the previous mentioned error (but some could be, I haven't checked).

Out of 271 packages available on the index, I found that for 34 of the repos (~13%), the latest git tag did not match what is currently being served by the krew-index. That maybe due to CI failures, or some projects not following the same semver format as what they have listed in their krew plugin .yaml, or for any other number of reasons. I don't think that it is your task to ensure that they are following semver, or have integrated the krew-release-bot into their workflows. This just a data point I found, which may, or may not be useful.

Repository: corneliusweig/rakkess
Specified Version: v0.5.0
GitHub Release Tag: v0.5.1
--
Repository: armadaproject/armada
Specified Version: v0.3.8655
GitHub Release Tag: v0.13.0
--
Repository: cert-manager/cert-manager
Specified Version: v2.1.0
GitHub Release Tag: v1.15.3
--
Repository: orangetangerine/kubectl-clog
Specified Version: v0.1.1
GitHub Release Tag: v0.1.3
--
Repository: rikatz/kubepug
Specified Version: v1.6.1
GitHub Release Tag: v1.7.1
--
Repository: emirozer/kubectl-doctor
Specified Version: v0.3.0
GitHub Release Tag: 0.3.1
--
Repository: n3wscott/kubectl-duck
Specified Version: v0.0.1
GitHub Release Tag: v0.0.2
--
Repository: flyteorg/flyte
Specified Version: v1.1.129
GitHub Release Tag: flytectl/v0.9.2
--
Repository: danisla/kubefunc
Specified Version: v1.0.1
GitHub Release Tag: v1.0.2
--
Repository: shibumi/kubectl-htpasswd
Specified Version: v0.1.6
GitHub Release Tag: v0.1.7
--
Repository: truegoric/k8s-insider
Specified Version: v0.4.0
GitHub Release Tag: v0.4.1
--
Repository: kadalu/kadalu
Specified Version: v1.3.0
GitHub Release Tag: 1.3.0
--
Repository: kubesphere-sigs/ks
Specified Version: v0.0.43
GitHub Release Tag: v0.0.71
--
Repository: chaosinthecrd/kube-lock
Specified Version: v0.0.4
GitHub Release Tag: v0.0.5
--
Repository: gerald1248/kubectl-match-name
Specified Version: v0.1.3
GitHub Release Tag: v0.1.5
--
Repository: antitree/krew-net-forward
Specified Version: v1.1.0
GitHub Release Tag: v1.0.3
--
Repository: TremoloSecurity/kubectl-login
Specified Version: v0.0.7
GitHub Release Tag: v0.0.8
--
Repository: chrisns/kubectl-passman
Specified Version: v1.2.3
GitHub Release Tag: heads/renovate/actions-setup-go-digest
--
Repository: caiobegotti/pod-dive
Specified Version: v0.1.4
GitHub Release Tag: v0.1.5
--
Repository: danisla/kubefunc
Specified Version: v1.0.1
GitHub Release Tag: v1.0.2
--
Repository: danisla/kubefunc
Specified Version: v1.0.1
GitHub Release Tag: v1.0.2
--
Repository: FairwindsOps/rbac-lookup
Specified Version: v0.9.0
GitHub Release Tag: v0.10.2
--
Repository: micnncim/kubectl-reap
Specified Version: v0.10.0
GitHub Release Tag: v0.11.3
--
Repository: achanda/kubectl-restart
Specified Version: v0.0.1
GitHub Release Tag: v0.0.3
--
Repository: Ladicle/kubectl-rolesum
Specified Version: v1.5.5
GitHub Release Tag: v1.5.6
--
Repository: LifeWay/kubectl-roll-plugin
Specified Version: v1.0.4
GitHub Release Tag: 1.0.4
--
Repository: honk-ci/kubectl-snap
Specified Version: v0.1.0
GitHub Release Tag: 0.1.0
--
Repository: huazhihao/kubespy
Specified Version: v0.3.3
GitHub Release Tag: v0.4.0
--
Repository: yokawasa/kubectl-plugin-ssh-jump
Specified Version: v0.9.0
GitHub Release Tag: 0.9.0
--
Repository: aquasecurity/starboard
Specified Version: v0.15.8
GitHub Release Tag: v0.15.21
--
Repository: submariner-io/subctl
Specified Version: v0.18.0
GitHub Release Tag: v0.14.9
--
Repository: kubernetes-sigs/kubectl-validate
Specified Version: v0.0.3
GitHub Release Tag: v0.0.4
--
Repository: davidB/kubectl-view-allocations
Specified Version: v0.19.2
GitHub Release Tag: 0.19.2
rajatjindal commented 1 week ago

Hi @wallentx,

I really appreciate the detailed report here.

There could be some delays in release created and available via API. For that reason we have retries in the krew-release-bot. But also, the bot expects that release assets be uploaded and available to be able to calculate the sha256 of assets. (which is required to bump the version in krew-index)

Looking at the release workflow, it seems it be triggered as soon as the release is tagged but I couldn't find where the assets are uploaded. I've asked the question on the linked issue to understand how the releases are done for the popeye project. based on that we can debug this further.

As for the latest release not in krew-index, its quite useful info. but unfortunately I do not have bandwidth to debug and identify why that skew is there (bot failure or configuration issue). If there are specific issues, I am happy to look into those further.

thanks again for the report, Rajat Jindal