Skip to content

feat: add image capabilities, test suites, and publish config#101

Merged
reubeno merged 3 commits intomicrosoft:mainfrom
reubeno:image-metadata
Apr 17, 2026
Merged

feat: add image capabilities, test suites, and publish config#101
reubeno merged 3 commits intomicrosoft:mainfrom
reubeno:image-metadata

Conversation

@reubeno
Copy link
Copy Markdown
Member

@reubeno reubeno commented Apr 15, 2026

Add structured metadata to image configuration:

  • ImageCapabilities: tri-state boolean fields (machine-bootable, container, systemd, runtime-package-management) with *bool semantics for correct merge and underspecification detection
  • ImageTestsConfig: link images to named test suites defined in the new top-level [test-suites] section, with cross-reference validation
  • ImagePublishConfig: multi-channel publish support (channels list), unlike packages which target a single channel

New top-level [test-suites] config section:

  • TestSuiteConfig with name and description fields
  • Loaded via mergeTestSuites in the config loader (duplicates rejected)
  • Image-to-test-suite references validated in ProjectConfig.Validate()

Expose metadata in 'azldev image list':

  • Structured JSON output preserves original projectconfig types
  • Table output shows comma-separated summaries for capabilities, tests, and publish channels

Documentation:

  • images.md: capabilities, tests, and publish field references with examples
  • test-suites.md: new reference page for test suite configuration
  • config-file.md: added test-suites, default-package-config, and package-groups to the top-level sections table

Copilot AI review requested due to automatic review settings April 15, 2026 05:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Extends the project TOML config/schema so images can declare self-reported runtime capabilities and publish channels, and updates schema ordering/structure accordingly.

Changes:

  • Add images.<name>.publish.channels and images.<name>.capabilities (supported hosts + runtime package management) to config model and JSON schema.
  • Restructure schema/root config ordering for components and package-groups, updating snapshots to match.
  • Document the new image fields with examples.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
schemas/azldev.schema.json Adds image capabilities + publish settings definitions; adjusts top-level property structure/order.
scenario/snapshots/TestSnapshots_config_generate-schema_stdout_1.snap Updates schema generation snapshot to include new image config sections and top-level layout changes.
scenario/snapshots/TestSnapshotsContainer_config_generate-schema_stdout_1.snap Same snapshot updates for container scenario.
internal/projectconfig/project.go Reorders/extends ProjectConfig fields to match updated schema (adds PackageGroups placement).
internal/projectconfig/image.go Adds Publish + Capabilities to ImageConfig and introduces new supporting types/constants.
internal/projectconfig/configfile.go Reorders fields and moves PackageGroups to match schema; prepares validation traversal for new layout.
docs/user/reference/config/images.md Documents new publish and capabilities blocks with accepted values and examples.

Comment thread internal/projectconfig/project.go Outdated
Comment thread internal/projectconfig/image.go Outdated
Comment thread internal/projectconfig/image.go Outdated
Comment thread schemas/azldev.schema.json Outdated
Comment thread schemas/azldev.schema.json
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Comment thread internal/projectconfig/image.go Outdated
Comment thread internal/projectconfig/project.go Outdated
Add structured metadata to image configuration:

- ImageCapabilities: tri-state boolean fields (machine-bootable,
  container, systemd, runtime-package-management) with *bool semantics
  for correct merge and underspecification detection
- ImageTestsConfig: link images to named test suites defined in the
  new top-level [test-suites] section, with cross-reference validation
- ImagePublishConfig: multi-channel publish support (channels list),
  unlike packages which target a single channel

New top-level [test-suites] config section:
- TestSuiteConfig with name and description fields
- Loaded via mergeTestSuites in the config loader (duplicates rejected)
- Image-to-test-suite references validated in ProjectConfig.Validate()

Expose metadata in 'azldev image list':
- Structured JSON output preserves original projectconfig types
- Table output shows comma-separated summaries for capabilities,
  tests, and publish channels

Documentation:
- images.md: capabilities, tests, and publish field references with
  examples
- test-suites.md: new reference page for test suite configuration
- config-file.md: added test-suites, default-package-config, and
  package-groups to the top-level sections table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@reubeno reubeno requested a review from Copilot April 17, 2026 21:35
@reubeno reubeno marked this pull request as ready for review April 17, 2026 21:36
@reubeno reubeno changed the title feat: extend TOML schema to describe image capabilities + publish channels feat: add image capabilities, test suites, and publish config Apr 17, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comment thread internal/projectconfig/project.go Outdated
Comment thread internal/projectconfig/loader.go Outdated
Comment thread internal/projectconfig/testsuite.go Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Comment thread internal/projectconfig/project.go
Comment thread internal/projectconfig/testsuite.go Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 17, 2026 22:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated no new comments.

Comment thread internal/projectconfig/image.go
Comment thread internal/projectconfig/testsuite.go
@reubeno reubeno merged commit 710de7a into microsoft:main Apr 17, 2026
19 checks passed
reubeno added a commit that referenced this pull request Apr 17, 2026
@reubeno reubeno deleted the image-metadata branch April 17, 2026 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants