Skip to content

Complete supplemental package target support - #1149

Open
cpuguy83 wants to merge 5 commits into
subpackage-debfrom
subpackage-targets
Open

Complete supplemental package target support#1149
cpuguy83 wants to merge 5 commits into
subpackage-debfrom
subpackage-targets

Conversation

@cpuguy83

Copy link
Copy Markdown
Collaborator

Adds Windows per-package zip and container handling, cross-target integration coverage, and user documentation.

This top layer completes the native supplemental-packages stack and depends on #1148.

Closes #607.

@cpuguy83
cpuguy83 marked this pull request as ready for review July 16, 2026 21:45
Copilot AI review requested due to automatic review settings July 16, 2026 21:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Completes supplemental package support across Windows outputs, Linux integration tests, and documentation.

Changes:

  • Adds per-package Windows ZIP generation and container assembly.
  • Adds cross-distribution supplemental package integration coverage.
  • Documents supplemental package configuration and behavior.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
website/docs/targets.md Documents supplemental packages.
test/windows_test.go Adds Windows subpackage integration tests.
test/target_rockylinux_test.go Configures Rocky Linux 8 target key.
test/target_almalinux_test.go Configures AlmaLinux 8 target key.
test/subpackage_test.go Adds cross-target subpackage tests.
test/linux_target_test.go Runs subpackage tests for Linux targets.
targets/windows/validation.go Validates non-empty ZIP packages.
targets/windows/handle_zip.go Builds separate ZIPs per package.
targets/windows/handle_zip_test.go Tests Windows package staging and validation.
targets/windows/handle_container.go Installs all package binaries into Windows images.

Comment thread targets/windows/handle_zip.go
Comment thread targets/windows/handle_zip.go Outdated
Comment thread targets/windows/handle_container.go Outdated
Comment thread targets/windows/handle_container.go
Comment thread targets/windows/handle_zip.go Outdated
Comment thread test/subpackage_test.go
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 3c886d7 to 9d039ea Compare July 17, 2026 00:46
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 9d039ea to de443c7 Compare July 17, 2026 18:17
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from de443c7 to 3600d1c Compare July 17, 2026 19:18
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 3600d1c to 6edc253 Compare July 17, 2026 23:58
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 6edc253 to 164570e Compare July 20, 2026 17:54
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 164570e to 8b3afb8 Compare July 21, 2026 00:43
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from 8b3afb8 to b04c34a Compare July 21, 2026 01:09
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from b04c34a to a863f3e Compare July 30, 2026 00:10
cpuguy83 added 5 commits July 29, 2026 19:00
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The windowscross/zip target previously emitted only the primary package
and silently dropped any supplemental packages defined under a target's
`packages` block. Now a single build produces one zip per package
(primary + each supplemental), named
`<name>_<version>-<revision>_<arch>.zip`.

Build artifacts are staged into per-package directories so the zip and
container targets can address each package individually. Artifact `name:`
overrides are now honored for windows binaries, and chmod targets the
staged file rather than the source path (fixing a latent bug for keys
containing a slash).

Because a zip with no contents is meaningless, the zip target now errors
if any package (primary or supplemental) resolves to no artifacts. This
mirrors the "empty artifacts on Windows" requirement and differs from rpm
and deb, where an artifact-less metapackage is valid.

The windowscross container target installs the binaries from every
package, matching the linux container target which installs all packages
produced for the target.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Sign each Windows package independently before aggregating outputs so zip and container targets retain correctly attributed artifacts, dotfiles, and collision isolation. Reject unsupported supplemental Windows runtime dependencies and verify Linux package dependency metadata directly.

This adds one signer solve per produced Windows package while keeping the shared binary build execution.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Use deterministic map iteration in Windows package assembly and validation without materializing sorted key slices.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Resolve supplemental packages through the shared target iterator after the package model migration.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
@cpuguy83
cpuguy83 force-pushed the subpackage-targets branch from a863f3e to 94a9b32 Compare July 30, 2026 02:00
@cpuguy83 cpuguy83 self-assigned this Aug 11, 2026
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.

[REQ] Supplemental packages

2 participants