V4#3807
Draft
DrJosh9000 wants to merge 27 commits into
Draft
Conversation
f8066e1 to
d28fd70
Compare
8b3d172 to
7686fe7
Compare
638c3b4 to
a52917e
Compare
Remove deprecated CLI flags
Newline after meta data get
…vars Remove deprecated plugin env vars
…verse-for-tear-down-hooks fix: Reverse ordering for post- hooks
…`cancel-signal-timeout` and `cancel-cleanup-timeout` Previously, `cancel-grace-period` (default 10s) was the *total* time budget covering both process shutdown and agent-side cleanup (log uploads, artifact uploads, disconnects). `signal-grace-period-seconds` (default -1) controlled how much of that budget went to the process, using negative-relative arithmetic: -1 meant "`cancel-grace-period` minus 1", so the process got 9s and the agent got 1s. This made configuration confusing — the flag that *sounded* like the process's grace period (`cancel-grace-period`) was actually the total, and the actual process grace period required subtracting a negative number from it. Validation was also complex because the two values had to be checked against each other, and invalid combinations (e.g. `signal-grace-period-seconds` >= `cancel-grace-period`) returned errors. The new model uses two independent, positive durations: `--cancel-signal-timeout` (default 9s): how long the subprocess gets to handle the cancel signal before receiving SIGKILL. This is the value users actually think about when configuring cancellation. `--cancel-cleanup-timeout` (default 1s): how long the agent gets after the process exits or is killed to upload logs and artifacts. The total grace period is simply their sum. There is no validation logic because the values cannot conflict. Both flags accept Go duration syntax (e.g. "30s", "1m30s") via `cli.DurationFlag` instead of integer seconds, matching the convention used by other timeout flags in the agent (`wait-for-ec2-tags-timeout`, `kubernetes-container-start-timeout`,ó etc.). The defaults produce the same effective behaviour as before: 9s for the process, 1s for agent cleanup, 10s total.
Replace `cancel-grace-period` and `signal-grace-period-seconds` with `cancel-signal-timeout` and `cancel-cleanup-timeout`
Rip out opentracing tracing backend (take 2)
Make pipeline secret redaction default behaviour
Bump changelog and VERSION for v4.0.0-beta.2
Remove header times, ANSI timestamps only and always
Upgrade urfave/cli to v3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Make v4 happen.
Context
It's about time.
Fixes #1391
Fixes #1594
Fixes #1623
Fixes #1646
Closes #1593
Changes
allow-artifact-path-traversal: removed, the insecure behaviour is no longer supportednormalised-upload-paths: is now default behaviouroverride-zero-exit-on-cancel: is now default behaviourresolve-commit-after-checkout: is now default behaviourpropagate-agent-config-vars: is now default behaviourdescending-spawn-priority: removed, with the--spawn-with-priorityflag now taking a string value (one ofstatic,ascending, ordescending)trace-context-encodingkubernetes-log-collection-grace-periodno-automatic-ssh-fingerprint-verification(useno-ssh-keyscaninstead)meta-data(usetagsinstead)meta-data-ec2(usetags-from-ec2-meta-datainstead)meta-data-ec2-tags(usetags-from-ec2-tagsinstead)meta-data-gcp(usetags-from-gcp-meta-datainstead)tags-from-ec2(usetags-from-ec2-meta-datainstead)tags-from-gcp(usetags-from-gcp-meta-datainstead)disconnect-after-job-timeout(usedisconnect-after-idle-timeoutinstead )follow-symlinks(useglob-resolve-follow-symlinksinstead)buildkite-agent meta-data getcancel-grace-periodandsignal-grace-period-secondsflags withcancel-signal-timeoutandcancel-cleanup-timeout, and adjust the timeouts (10s signal timeout and 5s cleanup timeout)reject-secretsis replaced withallow-secrets)Testing
go test ./...). Buildkite employees may check this if the pipeline has run automatically.go tool gofumpt -extra -w .)Disclosures / Credits
So mechanical it doesn't even need an AI.