Skip to content

by/rebase upstream#25

Closed
bruce-y wants to merge 69 commits intomasterfrom
by/rebase-upstream
Closed

by/rebase upstream#25
bruce-y wants to merge 69 commits intomasterfrom
by/rebase-upstream

Conversation

@bruce-y
Copy link
Copy Markdown

@bruce-y bruce-y commented Apr 14, 2026

  • Fix xattr copy failures on SELinux systems
  • build(deps): bump github.com/cloudflare/circl from 1.6.0 to 1.6.1
  • hack: enable oci-artifact for buildkit and frontend images
  • Fix flaky TestLLBMountPerformance test on Windows
  • vendor: github.com/docker/cli v29.0.1
  • build(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
  • cache(s3): request checksum calculation when required
  • Removed unwanted comma from the sentence.
  • build(deps): bump actions/checkout from 5 to 6
  • Fix markdown/links for AWS auth
  • hack: use bake to build the dockerfile frontend
  • vendor: update github.com/opencontainers/selinux v1.13.1
  • policy: fix metadata resolve via sessionpolicy for git and attestations
  • vendor: otel/contrib v0.63.0
  • util/tracing: switch to semconv v1.37.0
  • build(deps): bump softprops/action-gh-release from 2.4.2 to 2.5.0
  • util/tracing: use ExceptionStacktrace helper
  • vendor: github.com/klauspost/compress v1.18.2
  • docs: ADD --checksum supports git sources
  • Resolved unnecessary files
  • snapshot: prevent duplicate calls to mount returning different values
  • gateway: cache local mounts from fs operations
  • gateway: cache local mounts for forwarder as well
  • client: use inactivity timeout for status stream shutdown
  • frontend/dockerfile: Chomp heredoc before parsing shebang
  • build(deps): bump github.com/containernetworking/plugins
  • Resolved Lint Errors
  • resolver: auth refactor for better readability
  • authprovider: make it possible to provide custom AuthConfig providers
  • Clarify what the ARG instruction actually does during build
  • gitsign: fix for RejectExpiredKeys logic
  • build(deps): bump actions/cache from 4 to 5
  • Dockerfile: update download URL for nydus snapshotter
  • docs: update nydus repository URLs
  • build(deps): bump actions/download-artifact from 6 to 7
  • build(deps): bump actions/upload-artifact from 5 to 6
  • exporter: expose build ref to the exporter as part of buildinfo
  • Fix Windows copy operations with protected system files at mount roots
  • vendor: github.com/docker/cli v29.1.3
  • policy: support convert decisions from sessionpolicy
  • Dockerfile: update runc to 1.3.4
  • dockerfile: update containerd to 2.2.1
  • Dockerfile: update RootlessKit to 2.3.6
  • Dockerfile: update CNI plugins to 1.9.0
  • Dockerfile: update stargz-snapshotter to 0.18.1
  • Dockerfile: update nerdctl to 2.2.0
  • Dockerfile: update Nydus to 2.3.9
  • Dockerfile: update Azurite to 3.35.0
  • Dockerfile: update gotestsum to 1.13.0
  • Dockerfile: update Delve to 1.25.2
  • Dockerfile: update xx to 1.9.0
  • vendor: github.com/containerd/containerd v2.2.1
  • contentutil: add pull through cache for attestations chain resolve
  • vendor: github.com/moby/go-archive v0.2.0
  • gha: add signed cache support
  • lint: go1.25 gopls updates
  • docs: add signed gha cache docs
  • Update apt cache example (fix warning)
  • Fix concurrency issues with source policy
  • dockerfile: promote experimental linter rule
  • vendor: github.com/docker/cli v29.1.4
  • docs: rewrite COPY --chown/--chmod, add non-octal --chmod
  • update alpine to 3.23
  • chore: update yamllint config
  • ci: use docker github builder to build binaries
  • ci: use docker github builder to build buildkit images
  • ci: use docker github builder to build frontend images
  • ci: update docker github builder to latest
  • git: handle updated error message in git 2.52
  • Dockerfile: add Docker deps to dev stage
  • Dockerfile: allow building from git worktree
  • build(deps): bump actions/download-artifact from 6 to 7
  • registry remotecache: push cache blobs in parallel
  • policy: propagate deny messages from policy error
  • vendor: update shared dependencies that are behind moby/moby
  • vendor: update outdated patch versions of dependencies
  • ci: update golangci to v2.8.0
  • hack: update gopls to v0.38.0
  • Dockerfile: fix version inconsistencies
  • ci: fix target for rootless image
  • gateway: create interface for reading from container filesystem
  • containerimage: fix missing lease on fetching attestationchain
  • vendor: github.com/sirupsen/logrus v1.9.4
  • vendor: github.com/containerd/stargz-snapshotter v0.18.1
  • vendor: align google.golang.org/genproto/xxx versions
  • source: avoid error when attestation asked from non-index
  • buildctl: enabled bash completion
  • vendor: update go-actions-cache to 54bc28c2
  • dockerui: allow sharedkey sent for local named contexts
  • forwarder: fix concurrent map write panic in the gateway forwarder
  • dockerfile: run buildkitd within a cgroup namespace for cgroup v2
  • vendor: update moby/policy-helpers to eeebf1a
  • vendor: github.com/klauspost/compress v1.18.3
  • ci: update docker/github-builder to v1
  • frontend: prevent SecretsUsedInArgOrEnv warning for file/version names
  • migrate to github.com/pelletier/go-toml/v2
  • solver: run image and cache exports in parallel
  • containerimage: fix possible race on parallel image create
  • containerimage: add resolve attestation support
  • policy: fix ResolveAttestations via policy callback
  • gitsign: support combined public keys for verification
  • contentutil: fix referrer blob ingest cleanup
  • worker: remove automatic migration of legacy v1 cache
  • docs: add "good" example for SecretsUsedInArgOrEnv check
  • update binfmt to v10.1.3
  • default to provenance slsa v1
  • client/llb: add support for riscv64 architecture
  • provenance: make slsa v1 native default path and keep v0.2 as explicit conversion
  • history: default to provenance slsa v1 and remove BUILDKIT_HISTORY_PROVENANCE_V1
  • http: add support for checksum requests for http sources
  • source/http: add PGP verification and shared pgpsign
  • vendor: outdated dependencies patch update
  • vendor: update dependencies behind moby/moby
  • Dockerfile: runtime dependencies update
  • vendor: update github.com/morikuni/aec v1.1.0
  • vendor: update github.com/in-toto/in-toto-golang v0.10.0
  • source: imageblob source implementation
  • source: update imageblob to new docker-image+blob and ref_type naming
  • source: add support for oci-layout+blob schema
  • chore: exclude in-toto/attestation SA1019 deprecations from staticcheck
  • hack: write cgroup namespace progress message to stderr
  • client: update image blob tests after SLSA v1 default update
  • linter: do not attempt to check for copying ignored file when negated patterns exist
  • gateway: add caps for source metadata extensions
  • chore: bump Go toolchain to 1.26
  • tests: use t.Context in unit tests
  • build(deps): bump actions/upload-artifact from 6 to 7
  • build(deps): bump actions/download-artifact from 7 to 8
  • build(deps): bump crazy-max/ghaction-github-runtime from 3 to 4
  • vendor: update cloudflare/circl v1.6.3
  • vendor: update x/net to v0.51.0
  • build(deps): bump docker/login-action from 3 to 4
  • build(deps): bump docker/setup-qemu-action from 3 to 4
  • client: improve local cache import validation
  • exporter: fix snapshot GC race during image unpack
  • build(deps): bump docker/setup-buildx-action from 3 to 4
  • build(deps): bump docker/bake-action from 6 to 7
  • build(deps): bump docker/build-push-action from 6 to 7
  • testutil: avoid multi-platform mirrored images
  • dockerfile2llb: make proxyEnvFromBuildArgs deterministic
  • gateway: fix ExecProcess deadlock on fast-exiting processes
  • grpcclient: fix procMessageForwarder panic on close
  • refactor: add typed sync.Pool wrapper to eliminate any
  • refactor: add typed sync.Map wrapper to eliminate type assertions
  • refactor: replace strutil.DedupeSlice with generic bkslices.Dedupe
  • refactor: deduplicate NopWriteCloser into util/iohelper
  • refactor: extract build history into dedicated package
  • refactor: split history package into focused files
  • test: add unit tests for history pubsub
  • refactor: move build config helpers into provenance package
  • test: add unit tests for provenance capture and predicate
  • refactor: extract export logic from llbsolver/solver.go
  • refactor: move provenance result helpers to provenance.go
  • refactor: consolidate source policy logic into policy.go
  • refactor: extract entitlements logic from llbsolver/solver.go
  • refactor: extract build history recording from solver.go
  • refactor: move resultProxy from bridge.go to result.go
  • Test Updates for client, secrets and provenance
  • source/git: checkout before submodule update
  • refactor: split dockerfile validations
  • refactor: extract COPY/ADD dispatch into convert_copy.go
  • refactor: decompose toDispatchState into dispatchContext methods
  • ci: update crazy-max/.github reusable workflows to latest
  • update binfmt to v10.2.1
  • util/tracing: remove semconv dependency
  • build(deps): bump softprops/action-gh-release from 2.5.0 to 2.6.0
  • docs: document no-colon variable modifier variants in environment replacement
  • docs: clarify that only final stage labels appear in output image
  • docs: add example showing a previous build stage used as base image
  • docs: clarify STOPSIGNAL applies to docker stop, not keyboard interrupts
  • docs: clarify exec form CMD should be used with exec form ENTRYPOINT
  • docs: fix misleading shell form ENTRYPOINT language around CMD args
  • docs: clarify RUN --mount=type=bind rw write discard behavior
  • docs: document ** recursive glob support in COPY --parents
  • docs: clarify HEALTHCHECK interval behavior during start period
  • docs: clarify leading whitespace behavior in LegacyKeyValueFormat check
  • dockerfile: update cni to 1.9.1
  • ci: update scout to 1.20.2
  • hack: fall back when cgroup remount setup is unavailable
  • build(deps): bump softprops/action-gh-release from 2.6.0 to 2.6.1
  • exporter: fix reporting push progress under export vertex
  • fix: container filesystem resolves symlinks correctly
  • dockerfile: support SOURCE_DATE_EPOCH as global ARG default
  • build(deps): bump nick-fields/retry from 3.0.2 to 4.0.0
  • source: add git.mtime attr for commit-time mtimes
  • vendor: github.com/klauspost/compress v1.18.5
  • exporter: propagate Dockerfile default epoch
  • vendor: go.opentelemetry.io/otel v1.39.0
  • vendor: google.golang.org/grpc v1.79.3
  • solver/llbsolver/history: fix panic when listing history
  • vendor: github.com/moby/patternmatcher v0.6.1
  • ci: bump crazy-max/.github to 1.1.0
  • vendor: update policy-helpers to b7c0b994300b
  • executor: validate container IDs centrally
  • source/http: sanitize downloaded filenames
  • source/http: use os.Root for saved file operations
  • source: extract SafeFileName into shared pathutil package
  • git: normalize and validate subdir paths
  • git: harden ref arg handling
  • source/http: use os.Root for read-path file operations
  • source/git: scope path access to roots
  • executor/oci: scope state files to roots
  • history: fix nil events filtering
  • vendor: update direct deps for v0.29 release
  • vendor: bump outdated patch releases
  • vendor: update deps that are already newer in moby
  • Dockerfile: update containerd to v2.2.2
  • vendor: revert containerd platforms back to rc.2
  • vendor: fix otel dependency version inconsitency
  • build(deps): bump crazy-max/.github from 1.1.0 to 1.2.0
  • build(deps): bump crazy-max/.github/.github/workflows/pr-assign-author.yml
  • ci: zizmor workflow
  • fix zizmor findings
  • Dockerfile: update runc binary to v1.3.5
  • build(deps): bump crazy-max/.github from 1.2.0 to 1.3.0
  • build(deps): bump the crazy-max-dot-github group with 2 updates
  • build(deps): bump codecov/codecov-action from 5.5.4 to 6.0.0
  • build(deps): bump actions/setup-go from 6.3.0 to 6.4.0
  • build(deps): bump github/codeql-action from 4.34.1 to 4.35.1
  • session(auth): cancel blocked credential callbacks
  • ci: fix Windows ARM64 test compatibility
  • gitutil: avoid global git config lookup on Windows
  • Introduce disable_accept_encoding flag in s3 cache.
  • gitutil: add opt-in support for host git config
  • test: use separate container ID for exec phase of worker test
  • build(deps): bump docker/login-action from 4.0.0 to 4.1.0
  • build(deps): bump docker/github-builder/.github/workflows/bake.yml
  • build(deps): bump crazy-max/.github from 1.3.0 to 1.5.0
  • cache: add retry_mode and retry_max_attempts options to s3 cache
  • Dockerfiles: pin doctoc to a fixed version
  • hack: print the README diff when doctoc validation fails
  • frontend/dockerfile: fix HEALTHCHECK history formatting
  • Update Test Coverage for Secrets
  • solver: route gateway dockerfile.v0 source to builtin frontend
  • build(deps): bump the crazy-max-dot-github group with 2 updates
  • build(deps): bump crazy-max/.github from 1.5.0 to 1.6.0
  • chore: prune unused protobuf files from googleapis
  • chore: remove deprecated client.SolveOpts.LocalDirs member
  • client: write CDI specs atomically in integration tests
  • s3cache: Fix data race in readerAtCloser
  • Dockerfile: update docker engine, cli to v29.4
  • vendor: github.com/docker/cli v29.4.0
  • Consolidate documentation into single DEPLOYMENT.md
  • Simplify to rebase-based workflow for patch management
  • Remove FORK_WORKFLOW.md - consolidated into DEPLOYMENT.md
  • Fix yamllint errors: add newlines at end of workflow files
  • Fix newline handling in patch messages
  • Fix build: Create bin directory before building binaries
  • Fix YAML syntax and git fetch issues in release workflow
  • Add error checking for critical git push operations
  • Add required permissions to GitHub Actions workflows
  • Add workflows permission to GitHub Actions
  • Fix workflow permissions issue properly
  • Fix token authentication issue in workflows
  • Debug: Add PR trigger and authentication debugging
  • Add alternative workflow that skips workflow file changes
  • Add prepare-release workflow that leverages existing buildkit.yml
  • Fix yamllint: Add newlines at end of workflow files
  • Simplify to single prepare-patched-release workflow
  • Fix: Push draft artifacts for manual review and release
  • Simplify: Just push the tag directly like other workflows
  • Fix: Avoid branch/tag name collision in release workflow
  • Add token to checkout step in workflow
  • repo: add AGENTS.md with contribution guidelines for AI agents
  • Sync bbolt databases on close to prevent corruption

View in Codesmith
Codesmith can help with this PR — just tag @codesmith or enable autofix.

  • Autofix CI and bot reviews (Staging)

crazy-max and others added 30 commits April 1, 2026 15:25
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
ARM64 test compatibility fixes:
- TestRunCacheWithMounts: create marker file (Windows-only) instead of
  checking whoami.exe (unavailable in nanoserver ARM64), use forward
  slashes for Shlex compat, preserve Linux code path unchanged
- TestDockerfileDirs: use findstr instead of fc /b (unavailable in nanoserver)
- TestExportLocalForcePlatformSplit: normalize platform before comparison
  (platforms.Normalize adds v8 variant on ARM64)

Signed-off-by: Dawei Wei <davwei@microsoft.com>
Avoid global conf lookup via HOME that fails on Windows.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
session(auth): cancel blocked credential callbacks
Signed-off-by: Dmitrii Kostyrev <dkostyrev@joom.com>
gitutil: avoid global git config lookup on Windows
…accept_encoding

remotecache/s3: add disable_accept_encoding option for GCS S3 interoperability
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
gitutil: add opt-in support for host git config
The second Run call in TestWorkerExec reused the same container
ID as the first. On CI this occasionally caused the sleep pid1
to exit immediately with status 1, likely due to incomplete
kernel-level cleanup from the prior container. Use a fresh ID
for the exec-testing phase to avoid any residual state.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@b45d80f...4907a6d)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/github-builder/.github/workflows/bake.yml](https://github.com/docker/github-builder) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/docker/github-builder/releases)
- [Commits](docker/github-builder@7031322...2497a7d)

---
updated-dependencies:
- dependency-name: docker/github-builder/.github/workflows/bake.yml
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crazy-max/.github](https://github.com/crazy-max/.github) from 1.3.0 to 1.5.0.
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](crazy-max/.github@bb328ea...8df2a34)

---
updated-dependencies:
- dependency-name: crazy-max/.github
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…er/login-action-4.1.0

build(deps): bump docker/login-action from 4.0.0 to 4.1.0
Add configurable retry behavior for the S3 cache.
Users can now set `retry_mode` (standard/adaptive) and
`retry_max_attempts` to tune AWS SDK retry settings for their
environment. When not specified, the AWS SDK defaults apply
(standard mode, 3 max attempts).

Signed-off-by: Jiří Moravčík <jiri.moravcik@gmail.com>
…er/github-builder/dot-github/workflows/bake.yml-1.5.0

build(deps): bump docker/github-builder/.github/workflows/bake.yml from 1.4.0 to 1.5.0
…y-max/dot-github-1.5.0

build(deps): bump crazy-max/.github from 1.3.0 to 1.5.0
The v2.4.0 release had a minor regression and didn't detect the HTML
comments correctly;

```
diff --git a/README.md b/README.md
index 3f271be..8ec4a7c 100644
--- a/README.md
+++ b/README.md
@@ -42,6 +42,7 @@ Join `#buildkit` channel on [Docker Community Slack](https://dockr.ly/comm-slack

 <!-- START doctoc generated TOC please keep comment here to allow auto update -->
 <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
+<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

 - [Used by](#used-by)
 - [Quick start](#quick-start)
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Dockerfiles: pin doctoc to a fixed version
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
hack: print the README diff when doctoc validation fails
govet started to complain:

```
 > [golangci-lint 1/1] RUN --mount=target=/go/src/github.com/moby/buildkit     --mount=target=/root/.cache,type=cache,id=lint-cache-default-freebsd/amd64   xx-go --wrap &&   golangci-lint run --build-tags "" &&   touch /golangci-lint.done:
111.1 frontend/dockerfile/dockerfile2llb/convert.go:1601:60: printf: fmt.Sprintf format %q has arg d.image.Config.Healthcheck of wrong type *github.com/moby/docker-image-spec/specs-go/v1.HealthcheckConfig (govet)
111.1 	return commitToHistory(&d.image, fmt.Sprintf("HEALTHCHECK %q", d.image.Config.Healthcheck), false, nil, d.epoch)
111.1 	                                                          ^
111.1 1 issues:
111.1 * govet: 1
```

Before this, the HEALTHCHECK would be formatted like;

    HEALTHCHECK {["bin" "-c" "exit 0"] "1s" "10s" "3s" "100ms" '\x05'}

After this, it includes both the fields and values:

    HEALTHCHECK {Test:[bin -c exit 0] Interval:1s Timeout:10s StartPeriod:3s StartInterval:100ms Retries:5}

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
cache: add retry_mode and retry_max_attempts options to s3 cache
Signed-off-by: Natnael Gebremariam <ngebremariam@microsoft.com>
frontend/dockerfile: fix HEALTHCHECK history formatting
test: use separate container ID for exec phase of worker test
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
solver: route gateway dockerfile.v0 source to builtin frontend
adityamaru and others added 3 commits April 13, 2026 22:17
Signed-off-by: Aditya Maru <adityamaru@gmail.com>
Adds documentation for AI coding agents (Claude, Copilot, etc.) with:
- GitHub CLI usage preferences (gh pr create, gh issue list, etc.)
- Commit message conventions (lowercase, package: summary format)
- PR title formatting requirements
- Code formatting requirements (gofmt before commits)

CLAUDE.md is symlinked to AGENTS.md for Claude Code compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
When bbolt is opened with NoSync: true, transactions complete in memory
without fsync to disk. On graceful shutdown, dirty pages in the OS page
cache may not be flushed before Close() returns, leading to corruption
when the filesystem is unmounted or snapshots are taken.

This is particularly problematic with network block devices (Ceph RBD)
and container snapshot workflows where:
1. BuildKit stops gracefully (SIGTERM)
2. Close() returns without syncing dirty pages
3. Unmount forces writeback of partial/torn pages
4. Snapshot captures inconsistent B-tree state

The fix wraps bolt.DB with syncingDB that calls Sync() before Close(),
ensuring all pending writes are flushed to disk during graceful shutdown
while preserving the NoSync performance benefits during normal operation.

Signed-off-by: Aditya Maru <adityamaru@gmail.com>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
default: 'blacksmith'

permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Prepare patched release
id: prepare
run: |
VERSION="${{ github.event.inputs.upstream_version }}"
id: prepare
run: |
VERSION="${{ github.event.inputs.upstream_version }}"
SUFFIX="${{ github.event.inputs.release_suffix }}"

- name: Upload release info
if: always()
uses: actions/upload-artifact@v4
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f6af825. Configure here.

id: prepare
run: |
VERSION="${{ github.event.inputs.upstream_version }}"
SUFFIX="${{ github.event.inputs.release_suffix }}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Script injection via unsanitized workflow dispatch inputs

Medium Severity

The ${{ github.event.inputs.upstream_version }} and ${{ github.event.inputs.release_suffix }} expressions are directly interpolated into a shell run: block. This is a classic GitHub Actions script injection pattern — the expressions are template-expanded before the shell executes, allowing a malicious input to escape the quotes and inject arbitrary commands. Other workflows in this same PR were specifically updated to use core.getInput() via actions/github-script to avoid this exact pattern.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f6af825. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.