Skip to content

feat(docker): bump spec version to v1.55 - #275

Merged
Fahl-Design merged 1 commit into
mainfrom
feat/docker-spec-v1.55
Jul 30, 2026
Merged

feat(docker): bump spec version to v1.55#275
Fahl-Design merged 1 commit into
mainfrom
feat/docker-spec-v1.55

Conversation

@Fahl-Design

@Fahl-Design Fahl-Design commented Jul 30, 2026

Copy link
Copy Markdown
Member

Regenerates the client from Docker Engine API v1.55 (was v1.54).

Spec changes (143 lines raw diff)

  • New endpoint GET /images/{name}/attestations — in-toto attestation statements, plus AttestationStatement model and its error responses (incl. 501 for the legacy graphdriver store).
  • TopologyadditionalProperties: string replaced by a Segments property, which yields a dedicated Topology model.
  • SwarmJoin body — now declares required: [ListenAddr, RemoteAddrs, JoinToken].
  • ImageInspect.Identity reordered only (no shape change).

Process

Followed spec/UPDATE.md:

  1. Downloaded spec/docker-v1.55.yaml
  2. swagger2openapi --yaml -t 3.1.0spec/docker-v1.55-patched.yaml
  3. spec/patch.py — idempotency verified (second run is byte-identical); patch markers match v1.54 (31x format: dateTime, 0x nullable: true, 0x format: date-time)
  4. .jane-openapi pointed at the new patched file
  5. composer generate

Also bumped the version references in spec/UPDATE.md and patch.py's fallback path, and documented the uv run --with ruamel.yaml python3 spec/patch.py fallback for when ruamel.yaml is not installed system-wide.

Verification

  • Live socket smoke test: bin/docker-api docker:list-containers -vv — real containers listed, NetworkSettings.Networks denormalized correctly, no validation violations.
  • composer qa: php-cs-fixer 0 fixes / 852 files, 11/11 tests pass, phpstan level max [OK] No errors.

src/ is untouched — the DTO layer insulates callers from generated model churn.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Regenerate the client from Docker Engine API v1.55.

Spec changes:
- new endpoint GET /images/{name}/attestations (in-toto attestation
  statements) with AttestationStatement model
- Topology: additionalProperties map replaced by a Segments property,
  which yields a dedicated Topology model
- SwarmJoin body now requires ListenAddr, RemoteAddrs and JoinToken

src/ is unchanged; the DTO layer insulates callers from the model churn.
Verified with a live-socket smoke test (docker:list-containers) and
composer qa (cs-fixer, tests, phpstan max).
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added support for the Docker Engine API v1.55 specification.
    • Expanded coverage for Docker resources and operations, including containers, images, networks, volumes, Swarm, plugins, and system endpoints.
    • Updated API generation to use the v1.55 specification.
  • Documentation

    • Updated specification-generation instructions for v1.55.
    • Added guidance for installing the required schema-patching tool.

Walkthrough

The repository adds Docker Engine API v1.55 Swagger and patched OpenAPI specifications, updates the configured specification path and patch script defaults, and documents the revised conversion and patching workflow.

Changes

Docker API v1.55

Layer / File(s) Summary
Docker Engine v1.55 specification definitions
spec/docker-v1.55.yaml, spec/docker-v1.55-patched.yaml
Adds complete v1.55 Swagger and patched OpenAPI documents covering Docker Engine endpoints, request bodies, and reusable schemas.
v1.55 selection and patch workflow
.jane-openapi, spec/patch.py, spec/UPDATE.md
Updates specification selection, patch-script defaults, conversion commands, date-time normalization, and ruamel.yaml execution instructions.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Poem

A rabbit hops through YAML bright,
V1.55 comes into sight.
Paths and schemas fill the hay,
Patch scripts guide the build today.
dateTime sparkles in the array—
“The Docker spec is fresh!” we say.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: bumping the Docker spec to v1.55.
Description check ✅ Passed The description is directly related to regenerating the client from Docker Engine API v1.55 and the associated spec updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/docker-spec-v1.55

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
spec/UPDATE.md (1)

7-7: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Inconsistent working directory across the copy-paste steps.

Step 3 writes docker-v1.55-patched.yaml (repo-root-relative), but steps 4a/4b act on spec/docker-v1.55-patched.yaml. Running the block verbatim from the repo root leaves the converted file outside spec/.

📝 Suggested fix
-   npx -p swagger2openapi swagger2openapi --yaml -t 3.1.0 --outfile docker-v1.55-patched.yaml docker-v1.55.yaml
+   npx -p swagger2openapi swagger2openapi --yaml -t 3.1.0 --outfile spec/docker-v1.55-patched.yaml spec/docker-v1.55.yaml
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@spec/UPDATE.md` at line 7, Update the swagger2openapi command in the step 3
copy-paste instructions so its input and output paths consistently target the
spec directory used by steps 4a and 4b, preserving the existing conversion
options.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@spec/docker-v1.55-patched.yaml`:
- Around line 16249-16272: Correct the YAML indentation under the AccessMode
schema so MountVolume’s properties contain FsType and MountFlags, while
BlockVolume remains a sibling property of MountVolume rather than part of its
description scalar. Preserve the existing types and descriptions.

---

Nitpick comments:
In `@spec/UPDATE.md`:
- Line 7: Update the swagger2openapi command in the step 3 copy-paste
instructions so its input and output paths consistently target the spec
directory used by steps 4a and 4b, preserving the existing conversion options.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4375dd6a-f0f4-40bf-a6b9-5f9a5c79d952

📥 Commits

Reviewing files that changed from the base of the PR and between 0b07c47 and b49b3a3.

⛔ Files ignored due to path filters (20)
  • generated/Client.php is excluded by !**/generated/**
  • generated/Endpoint/ImageAttestations.php is excluded by !**/generated/**
  • generated/Exception/ImageAttestationsBadRequestException.php is excluded by !**/generated/**
  • generated/Exception/ImageAttestationsInternalServerErrorException.php is excluded by !**/generated/**
  • generated/Exception/ImageAttestationsNotFoundException.php is excluded by !**/generated/**
  • generated/Exception/ImageAttestationsNotImplementedException.php is excluded by !**/generated/**
  • generated/Exception/NotImplementedException.php is excluded by !**/generated/**
  • generated/Model/AttestationStatement.php is excluded by !**/generated/**
  • generated/Model/ClusterVolumeInfo.php is excluded by !**/generated/**
  • generated/Model/ClusterVolumeSpecAccessModeAccessibilityRequirements.php is excluded by !**/generated/**
  • generated/Model/ImageInspect.php is excluded by !**/generated/**
  • generated/Model/SwarmJoinPostBody.php is excluded by !**/generated/**
  • generated/Model/Topology.php is excluded by !**/generated/**
  • generated/Normalizer/AttestationStatementNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/ClusterVolumeInfoNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/ClusterVolumeSpecAccessModeAccessibilityRequirementsNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/ImageInspectNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/JaneObjectNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/SwarmJoinPostBodyNormalizer.php is excluded by !**/generated/**
  • generated/Normalizer/TopologyNormalizer.php is excluded by !**/generated/**
📒 Files selected for processing (5)
  • .jane-openapi
  • spec/UPDATE.md
  • spec/docker-v1.55-patched.yaml
  • spec/docker-v1.55.yaml
  • spec/patch.py

Comment thread spec/docker-v1.55-patched.yaml
@Fahl-Design
Fahl-Design merged commit 3f08ab2 into main Jul 30, 2026
8 checks passed
@Fahl-Design
Fahl-Design deleted the feat/docker-spec-v1.55 branch July 30, 2026 19:06
webproject-bot Bot pushed a commit that referenced this pull request Jul 30, 2026
## [1.5.0](1.4.5...1.5.0) (2026-07-30)

### Features

* **docker:** bump spec version to v1.55 ([#275](#275)) ([3f08ab2](3f08ab2))
@webproject-bot

Copy link
Copy Markdown

🎉 This PR is included in version 1.5.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant