Commit Graph
3260 Commits
Author SHA1 Message Date
Tõnis TiigiandGitHub 542bda49f2 Merge pull request #3188 from crazy-max/buildkit-0.22
dockerfile: update buildkit to 0.22.0
2025-05-22 15:33:45 -07:00
CrazyMax 614cc880dd dockerfile: update buildkit to 0.22.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-21 16:55:34 +02:00
CrazyMaxandGitHub dfad6e0b1f Merge pull request #3189 from rrjjvv/var-typing-docs
Add variable typing to reference docs
2025-05-21 16:34:59 +02:00
CrazyMaxandGitHub 776dbd4086 Merge pull request #3198 from rrjjvv/var-typing-no-value-fix
Consider typed, value-less variables to have `null` value
2025-05-21 16:34:42 +02:00
Tõnis TiigiandGitHub 75f1d5e26b Merge pull request #3199 from crazy-max/buildkit-0.22.0
vendor: github.com/moby/buildkit v0.22.0
2025-05-21 07:26:25 -07:00
CrazyMax 291c353575 bake: TestEmptyVariable
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-21 16:15:30 +02:00
CrazyMax a11bb4985c vendor: github.com/moby/buildkit v0.22.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-21 14:57:25 +02:00
Roberto Villarreal cfeca919a9 Add variable typing to reference docs
This documents the variable typing introduced in #3167.

Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-20 13:49:27 -06:00
Roberto Villarreal 3c0f5c5c21 Consider typed, value-less variables to have null value
A variable with a type but no default value or override resulted in an
empty string.  This matches the legacy behavior of untyped variables,
but does not make sense when using types (an empty string is itself a
type violation for everything except `string`).  All variables defined
with a type but with no value are now a typed `null`.

A variable explicitly typed `any` was previously treated as if the
typing was omitted; with no defined value or override, that resulted in
an empty string.  The `any` type is now distinguished from an omitted
type; these variables, with no default or override, are also `null`.

In other respects, the behavior of `any` is unchanged and largely
behaves as if the type was omitted.  It's not clear whether it should be
 supported, let alone how it should behave, so these tests were removed.
It's being treated as undefined behavior.

Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-20 13:09:13 -06:00
CrazyMaxandGitHub ea2b7020a4 Merge pull request #3193 from crazy-max/buildkit-0.22.0-rc2
vendor: github.com/moby/buildkit v0.22.0-rc2
2025-05-19 17:29:11 +02:00
CrazyMax 5ba7d7eb4f vendor: github.com/moby/buildkit v0.22.0-rc2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-19 17:14:59 +02:00
CrazyMaxandGitHub 95ac2b4d09 Merge pull request #3192 from crazy-max/update-cli-docs-tool
vendor: github.com/docker/cli-docs-tool v0.10.0
2025-05-19 16:23:50 +02:00
CrazyMax 934cca3ab1 vendor: github.com/docker/cli-docs-tool v0.10.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-19 15:54:56 +02:00
CrazyMaxandGitHub 6e562e9ede Merge pull request #3191 from glours/bump-compose-go-v2.6.3
bump compose-go to v2.6.3
2025-05-19 15:05:34 +02:00
Guillaume Lours 51b8646c44 bump compose-go to v2.6.3
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
2025-05-19 14:49:51 +02:00
CrazyMaxandGitHub 57a1c97c9d Merge pull request #3187 from crazy-max/buildkit-0.22.0-rc1
vendor: github.com/moby/buildkit v0.22.0-rc1
2025-05-14 20:29:12 +02:00
CrazyMax 7a54b6ee7e vendor: github.com/moby/buildkit v0.22.0-rc1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-14 20:10:27 +02:00
CrazyMaxandGitHub 2e3108975d Merge pull request #3186 from crazy-max/fix-readme
update readme
2025-05-14 13:40:07 +02:00
CrazyMax cd48c516e2 update readme
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-14 13:21:45 +02:00
Tõnis TiigiandGitHub 2149f03225 Merge pull request #3184 from tonistiigi/lint-merge-conflict-fix
lint: fix linter after merge conflict
2025-05-13 16:52:49 -07:00
Tonis Tiigi f41d5072fd lint: fix linter after merge conflict
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2025-05-13 16:19:33 -07:00
Tõnis TiigiandGitHub 06a1a6344a Merge pull request #3180 from crazy-max/dockerfile-update
dockerfile: update docker to 28.1.1 and buildkit to 0.21.1
2025-05-13 15:09:27 -07:00
Tõnis TiigiandGitHub 4feb05b0bf Merge pull request #3179 from tonistiigi/ls-format-json-current
ls: make sure current builder is available in JSON output
2025-05-13 14:27:36 -07:00
Tõnis TiigiandGitHub 277548e91b Merge pull request #3152 from crazy-max/history-export-finalize
history: make sure build record is finalized before exporting
2025-05-13 14:20:04 -07:00
Tõnis TiigiandGitHub 3f0aec1b3e Merge pull request #3182 from crazy-max/go-1.24
update to go 1.24
2025-05-13 12:14:37 -07:00
CrazyMax 1383aa30c1 lint: modernize fix
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 20:44:57 +02:00
CrazyMaxandCrazyMax 09b824b9dc update to go 1.24
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 19:27:03 +02:00
CrazyMax 68ce10c4d9 tests: history cmds
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 17:17:47 +02:00
CrazyMax 78353f4e8e history: make sure build record is finalized before exporting
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 17:17:47 +02:00
CrazyMaxandGitHub 03f9877429 Merge pull request #3181 from crazy-max/golangci-lint-v2
update golangci-lint to v2.1.5
2025-05-13 17:17:17 +02:00
CrazyMax b606e2f6bb update golangci-lint to v2.1.5
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 16:54:43 +02:00
CrazyMax 874bb14de9 hack: golangci build from source support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 16:20:35 +02:00
CrazyMaxandGitHub a9ab809d15 Merge pull request #3138 from crazy-max/history-copy
history: copy update
2025-05-13 13:06:05 +02:00
CrazyMax 72fde4c53a history: copy update
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 12:20:00 +02:00
CrazyMax df8b997588 dockerfile: update buildkit to 0.21.1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 12:01:12 +02:00
CrazyMax f92c679e14 dockerfile: update docker to 28.1.1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 12:00:45 +02:00
Tonis Tiigi a3180cbf3d ls: make sure current builder is available in JSON output
While lsBuilder has a field called Current that gets lost
because the embedded struct implements custom MarshalJSON method.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2025-05-12 22:30:44 -07:00
Tõnis TiigiandGitHub c398e2a224 Merge pull request #3177 from crazy-max/docs-fix-hcl-syntax
docs: remove commas in bake hcl object blocks
2025-05-12 10:47:11 -07:00
Tõnis TiigiandGitHub 865ad2b8d5 Merge pull request #3167 from rrjjvv/variable-typing
Allow variables to be explicitly typed (and enforced)
2025-05-12 10:45:10 -07:00
CrazyMax 729d58152c docs: remove commas in bake hcl object blocks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-12 10:30:45 +02:00
CrazyMaxandGitHub 9998ef7045 Merge pull request #3171 from glours/bump-compose-go-v2.6.2
bump compose-go to v2.6.2
2025-05-12 09:15:42 +02:00
CrazyMaxandGitHub 7e960152a1 Merge pull request #3168 from tonistiigi/bake-call-empty
bake: fix nil deference on empty call definition
2025-05-12 09:13:05 +02:00
Roberto Villarreal 56d39e619d Skip case-sensitive test on Windows
Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-09 18:36:11 -06:00
Roberto VillarrealandCopilot 65aea3028f Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-09 18:36:11 -06:00
Roberto Villarreal 956fc0c9eb Use unique environment variables to separate JSON from default parsing
The primary intent is to make JSON parsing explicitly opt-in rather than
 using heuristics to determine intent.

With some exceptions, given bake variable `VAR`, an environment variable
 `VAR_JSON` must be used to provide JSON content.  The value in
 `VAR_JSON` will be ignored when:
* a bake built-in of that same name exists
* a user-provided variable of that same name exists
* typing (attribute `type`) is not present

The first is unlikely to happen as built-ins will likely start with
`BUILDX_BAKE_`, an unlikely prefix for end users.  The second may be a
real scenario, where users have `VAR_JSON` dedicated to accepting a
string with JSON content and decoding via an HCL function.  This will
continue to work as-is, but can be simplified by removing the variable
from their bake file (`VAR_JSON`) and applying typing (to `VAR`).

Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-09 18:36:11 -06:00
Roberto Villarreal 1f56984626 Implement CSV-based overrides for list-like variables
Though CSV is favored for 'simple' lists, a JSON value will be used if
it parses without error.  This assumes that it is extremely unlikely
that something that parses as JSON would be intended to be parsed as
CSV, e.g. `["a"` and `"b"]`, as opposed to `a` and `b`.  If
parsing/conversion fails, it is treated as if it was a CSV.

Since the CSV approach required processing of each element, code was
refactored to reuse the same logic used for individual non-typed
variables.

Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-09 18:36:11 -06:00
Roberto Villarreal 5b8a3b3728 Allow variables to be explicitly typed (and enforced)
This allows variables to have explicit types, similar to Terraform
variables.  It uses HCL's `typeexpr` extension for the specification.
For conversion of overrides to complex types (when explicit typing is
provided), HCL's native JSON-based unmarshalling is used.

Typing is independent of any default, but if a default is provided, it
will be validated.  Similarly, if an override is provided, it will be
converted to that type.

When typing is not provided, previous behavior is used, namely
passing through as a string when no default, converting to primitives if
 the default was primitive, and failing otherwise (complex types).

For complex types, the happy path is lists of primitives, but in theory
any complex/composite type can be used provided they are expressed
correctly in JSON.  In the interest of simplicity and correctness, there
 are no shortcuts for lists.  There *is* a shortcut for strings as users
  don't provide them for untyped variables and would be unintuitive.

Signed-off-by: Roberto Villarreal <rrjjvv@yahoo.com>
2025-05-09 18:36:11 -06:00
Guillaume Lours acdf95fe75 bump compose-go to v2.6.2
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
2025-05-07 15:29:18 +02:00
Tõnis TiigiandGitHub 9e17bc7a4c Merge pull request #3127 from sarahsanders-docker/docs-buildx-history
docs: add descriptions and examples for buildx history commands
2025-05-05 15:00:01 -07:00
Tonis Tiigi e1e8f5c68d docs: updated reference docs generation
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2025-05-05 14:32:03 -07:00