Skip to content

Conversation

@bwplotka
Copy link
Collaborator

@bwplotka bwplotka commented Dec 4, 2025

See ops/gmpctl/README.md and cl/840052660 for details.

I removed release bot given ops/gmpctl.sh release is now trivial, @hsmatulis agreed.

See go/gmp:toil-automation for motivation.

* listing Go vulns + severity
* create a security vuln fix commit
* create a new fork release that syncs with certain upstream tag (see go/gmp:fork-toil)
* cut RC

Signed-off-by: bwplotka <bwplotka@google.com>

chore: update

chore: add go version check

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: bwplotka <bwplotka@gmail.com>
@bwplotka bwplotka force-pushed the scripts2 branch 2 times, most recently from 73f3c0f to c264e29 Compare December 11, 2025 19:32
@bwplotka bwplotka changed the title feat: add hack/gmpctl interactive scripts feat: add ops/gmpctl interactive scripts Dec 11, 2025
@bwplotka bwplotka force-pushed the scripts2 branch 3 times, most recently from d6d8e27 to 7a07b02 Compare December 11, 2025 21:19
Copy link
Collaborator

@hsmatulis hsmatulis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Just a plumbing issue

Comment on lines +43 to +52
// ReleaseBranches contains hardcoded list of active branches. We could pull it out from somewhere.
ReleaseBranches = []string{
"release/0.17",
"release/0.15",
"release/0.14",
"release/0.12",
"release-2.45.3-gmp",
"release-2.53.5-gmp",
"release-0.27.0-gmp",
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not hardcode these. Otherwise, this becomes another point of manual maintenance.

Copy link
Collaborator Author

@bwplotka bwplotka Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you suggest instead? Putting them in a static YAML and committed is similarly "hardcoded". Having this locally for each of us will also get obsolete even quicker.

It's hard to pull it from g3 on demand.

I can add TODO, but I don't see a quick path for not hardcoding those for. What am I missing?

Perhaps we can pull some of it from github actions dependabot for PE branches? Or maintain some other coordinated config?

Comment on lines +83 to +84
// compileUpdateList decodes the JSON stream from govulncheck and extracts
// a list of modules that need to be updated to a fixed version.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need Go code to accomplish this? Can we just run an existing tool?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What "just run an existing tool" means for you here?

If you mean why another Go command, I agree, ideally I move vulnupdatelist as another gmpctl command or just add as a library, will add TODO or move 👍🏽

Or did you mean anything else?

Comment on lines +50 to +54
SHFMT := $(GOBIN)/shfmt-v3.12.0
$(SHFMT): $(BINGO_DIR)/shfmt.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/shfmt-v3.12.0"
@cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=shfmt.mod -o=$(GOBIN)/shfmt-v3.12.0 "mvdan.cc/sh/v3/cmd/shfmt"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we still using Bingo? Most tools have moved to go tool.

Copy link
Collaborator Author

@bwplotka bwplotka Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, looks like we do because we have this file. 🙈

Do you ask me to move from bingo to go tool here in this PR, now? (:

Comment on lines +139 to +140
// runLibFunction runs certain function from libScript that is not expected
// to pass any return parameters.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have to jump back and forth between Go code and Bash scripts? Why not implement these bash functions in Go?

Copy link
Collaborator Author

@bwplotka bwplotka Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because of time constraints, because of how quickly I could experiment with bash. So it is an iteration. I'm sorry but I won't be able to port everything in this iteration, I will try to do some.

I would love to prioritize use and enablement of automation for our release process for the team.

Is any bash use a blocker for you?

Copy link
Collaborator

@bernot-dev bernot-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I count 33 TODOs. That seems like a lot of TODO debt to take on for one PR.

@bwplotka
Copy link
Collaborator Author

bwplotka commented Dec 18, 2025

I count 33 TODOs. That seems like a lot of TODO debt to take on for one PR.

Well, it's either that or manual process 10 steps on every vulnfix/release. Which one do we prefer? 🙈

Thanks for feedback! It's an iteration and I do need team help to make it better and portable for everyone. Let's iterate.

BTW: Anyone is welcome to send PRs to this PR etc to contribute the improvements 🤗

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

Successfully merging this pull request may close these issues.

3 participants