Currently, the release-notes utility used to collate all the release notes for a given release is under a personal repo (https://github.com/marpaia/release-notes)
As it's now been used for multiple releases, and is the primary utility moving forward, it should probably live under an official k8s repo.
I propose we
If @marpaia agrees, we could migrate the repo by filing an issue against k/org for step one.
I can file the issue to create the repo and move it over, update the imports, etc.
I wonder however if this is the kind of thing we should move to k/sig-release/release-engineering? Perhaps @tpepper or @aleksandra-malinowska have thoughts on this.
I'm thinking here: https://github.com/kubernetes/release
I had a PR for that up for quite a while but I wasn't able to get any eyes on it: https://github.com/kubernetes/release/pull/575. I can copy it back over there though.
@marpaia That sounds like the best place, I say re-PR it and we'll make sure there's traction.
cc
@marpaia -- Oof. Sorry about that. I'll get this pushed through. PR it again and tag me.
How does this compare to:
Let's make sure we resolve the differences between the two tools as well (at some point).
OK, cool, the PR is up here: https://github.com/kubernetes/release/pull/661
With regards to those other tools, toolbox/relnotes was an attempted re-write of the bash relnotes tool in Go that hasn't really worked out IMO. I tried to extend it when I was working on my tool, but it's not organized in any library package structure that makes it re-usable. I think we should delete it.
As far as the relnotes bash script, this is exec'd by the anago shell script when cutting releases. It generates a really minimal, uncontextualized version of release notes and puts it in the CHANGELOG files in k/k. I would love for this to be using the better, contextualized release-notes tool, but really with all this tooling being untestable 1,000+ bash scripts, there is a lot of work to do before these pieces of software can be extended in meaningful ways.
I'll note that I don't want to put down any of the work that people have done, I just don't think that Bash is a good general purpose programming language for objectives which are complicated and require componentization or testing.
So short term, I'd love it if anago was shelling out to the release-notes Go tool instead of the relnotes bash script, but long term, I'd prefer if anago was a set of well-tested, well-isolated library code written in Go that was tied together in purpose-built binaries.
This got resolved by https://github.com/kubernetes/release/pull/661 :)
Most helpful comment
OK, cool, the PR is up here: https://github.com/kubernetes/release/pull/661
With regards to those other tools,
toolbox/relnoteswas an attempted re-write of the bashrelnotestool in Go that hasn't really worked out IMO. I tried to extend it when I was working on my tool, but it's not organized in any library package structure that makes it re-usable. I think we should delete it.As far as the
relnotesbash script, this is exec'd by theanagoshell script when cutting releases. It generates a really minimal, uncontextualized version of release notes and puts it in the CHANGELOG files in k/k. I would love for this to be using the better, contextualized release-notes tool, but really with all this tooling being untestable 1,000+ bash scripts, there is a lot of work to do before these pieces of software can be extended in meaningful ways.I'll note that I don't want to put down any of the work that people have done, I just don't think that Bash is a good general purpose programming language for objectives which are complicated and require componentization or testing.
So short term, I'd love it if
anagowas shelling out to therelease-notesGo tool instead of therelnotesbash script, but long term, I'd prefer ifanagowas a set of well-tested, well-isolated library code written in Go that was tied together in purpose-built binaries.