aspect-build / aspect-build/rules_buildx
[Bug]: The buildx_rule generate a lockfile that has a platform specific dependency
- Dominant language
- Starlark
- Stars
- 19
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
### What happened?
I have tested this PR merged https://github.com/aspect-build/rules_buildx/pull/1 and the issue persists.
If we generate MODULE.bazel.lock on one platform, it will not work on another.
```
INFO: Repository aspect_rules_buildx++buildx+buildx_configuration instantiated at:
: in
Repository rule configure_buildx defined at:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl:80:35: in
ERROR: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl:65:21: An error occurred during the fetch of repository 'aspect_rules_buildx++buildx+buildx_configuration':
Traceback (most recent call last):
File "/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/repositories.bzl", line 65, column 21, in _impl_configure_buildx
fail("Failed to create buildx driver %s: \nSTDERR:\n%s\nsSTDOUT:\n%s" % (builder_name, r.stderr, r.stdout))
Error in fail: Failed to create buildx driver rules_buildx_builder:
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file
sSTDOUT:
ERROR: no such package '@@aspect_rules_buildx++buildx+buildx_configuration//': Failed to create buildx driver rules_buildx_builder:
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file
sSTDOUT:
ERROR: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx+/buildx/BUILD.bazel:15:19: @@aspect_rules_buildx+//buildx:resolved_toolchain depends on @@aspect_rules_buildx++buildx+buildx_darwin-arm64//:buildx_toolchain in repository @@aspect_rules_buildx++buildx+buildx_darwin-arm64 which failed to fetch. no such package '@@aspect_rules_buildx++buildx+buildx_configuration//': Failed to create buildx driver rules_buildx_builder:
STDERR:
/private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: /private/var/tmp/_bazel_farcop/e66529431dbede3bc951f821053136ab/external/aspect_rules_buildx++buildx+buildx_linux-amd64/buildx: cannot execute binary file
sSTDOUT:
ERROR: Analysis of target '//nonhermetic/os-cert-generator:image' failed; build aborted: Analysis failed
INFO: Elapsed time: 1.691s, Critical Path: 0.82s
INFO: 1 process: 1 internal.
```
### Version
Development (host) and target OS/architectures:
Output of `bazel --version`: 8.3.1
Version of the Aspect rules, or other relevant rules from your
`WORKSPACE` or `MODULE.bazel` file: 0.0.1
Language(s) and/or frameworks involved:
### How to reproduce
1. Using aspect_rules_buildx generate MODULE.bazel.lock on darwin_arm64
2. Try to build target on the linux_amd64 PC.
### Any other information?
MODULE.bazel.lock still contains that platform specific block:
```
"buildx_configuration": {
"repoRuleId": "@@aspect_rules_buildx+//buildx:repositories.bzl%configure_buildx",
"attributes": {
"buildx": "@@aspect_rules_buildx++buildx+buildx_linux-amd64//:buildx"
}
},
```
Contributor guide
Research direction
Reproduce the two-step case using aspect_rules_buildx with Bazel 8.3.1, generating MODULE.bazel.lock on darwin_arm64 and building on linux_amd64. Read buildx/repositories.bzl around _impl_configure_buildx and inspect the buildx_configuration entry in MODULE.bazel.lock, along with buildx/BUILD.bazel. Done means the cross-platform build no longer tries to execute the wrong platform's buildx binary.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100