Skip to content

feat(packages): add package publish annotation support#16549

Open
liunan-ms wants to merge 1 commit intotomls/base/mainfrom
liunan/package_annotation
Open

feat(packages): add package publish annotation support#16549
liunan-ms wants to merge 1 commit intotomls/base/mainfrom
liunan/package_annotation

Conversation

@liunan-ms
Copy link
Copy Markdown
Contributor

@liunan-ms liunan-ms commented Apr 9, 2026

This PR introduces a project-wide example configuration for package publishing channels and updates the project to include this configuration. It also adds an example of component-level configuration for wget2-wget package. These changes help clarify and demonstrate how packages are grouped and assigned to publishing channels in the project.

Project-wide package publishing configuration:

  • Added packages-demo.toml, an example configuration file that demonstrates how packages are grouped and assigned to publish channels (rpm-base and rpm-build-only). This file includes sample package groupings and default publishing behaviors.
  • Updated project.toml to include the new packages-demo.toml in the list of configuration includes, ensuring the example package publishing configuration is loaded by the project.

Component-specific publishing configuration:

  • Added a publish.channel setting for the wget2-wget package in wget2.comp.toml, specifying that it should be published to the rpm-base channel.

azldev package list <package-name> can be used to view the package publish annotations before build,
e.g.
image

The annotation will be available in the build output:
image

- base/packages-demo.toml: add example packages.toml showing how azldev
  splits packages across rpm-base and rpm-build-only publish channels;
  included in base/project.toml as a demo
- base/project.toml: include packages-demo.toml in the project
- base/comps/wget2/wget2.comp.toml: annotate wget2-wget with
  publish channel rpm-base at component level
Copilot AI review requested due to automatic review settings April 9, 2026 23:12
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

Adds an example, project-wide package publishing configuration and demonstrates per-package publish channel overrides at the component level, to support the new “publish annotation” feature in azldev configs.

Changes:

  • Include a new base/packages-demo.toml config file from base/project.toml.
  • Add base/packages-demo.toml with default-package-config + package-groups examples mapping packages to rpm-base / rpm-build-only.
  • Add a component-level publish channel override for wget2-wget in wget2.comp.toml.

Reviewed changes

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

File Description
base/project.toml Adds packages-demo.toml to the base project config includes.
base/packages-demo.toml Introduces example package-group → publish-channel mappings and a project-wide default publish setting.
base/comps/wget2/wget2.comp.toml Demonstrates per-binary-package publish channel override (wget2-wget).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

#

includes = ["comps/components.toml", "images/images.toml"]
includes = ["comps/components.toml", "images/images.toml", "packages-demo.toml"]
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

Including packages-demo.toml in the project includes makes this "demo" config active for all builds. Since it sets a project-wide [default-package-config] publish.channel = "none", any package not explicitly listed/overridden will be marked as unpublished, which can unintentionally change downstream publishing behavior. If this file is meant to be documentation-only, avoid including it by default (or make the demo non-impacting by removing the default publish override).

Suggested change
includes = ["comps/components.toml", "images/images.toml", "packages-demo.toml"]
includes = ["comps/components.toml", "images/images.toml"]

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +9
# packages-demo.toml — Example of packages.toml with a small subset of packages.
#
# This file demonstrates how azldev splits binary packages across publish
# repositories using package groups. Each [package-groups.<name>] section
# assigns a set of packages to a publish channel.

# The real packages.toml will be added in the future.
#
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

The header comments describe this as an example/small subset and say "The real packages.toml will be added in the future", but the file is now included by default via base/project.toml. That makes it effectively production config; consider renaming it to packages.toml (and treating it as authoritative) or updating the comments to clearly state it is intentionally active and what scope it is expected to cover.

Suggested change
# packages-demo.toml — Example of packages.toml with a small subset of packages.
#
# This file demonstrates how azldev splits binary packages across publish
# repositories using package groups. Each [package-groups.<name>] section
# assigns a set of packages to a publish channel.
# The real packages.toml will be added in the future.
#
# packages-demo.toml — Active package publish configuration for this project.
#
# This file defines how azldev splits binary packages across publish
# repositories using package groups. Each [package-groups.<name>] section
# assigns a set of packages to a publish channel.
#
# It is intentionally active when included by the project, but currently
# covers only a small subset of packages. Expand this file as additional
# package publish groups are defined.
#

Copilot uses AI. Check for mistakes.
# Package publish configuration
#

# Project-wide baseline — unpublished unless overridden by a package group
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

This comment says packages are "unpublished unless overridden by a package group", but publish settings can also be overridden at the component/per-package level (as shown in wget2.comp.toml). Consider updating the comment to reflect the actual precedence so readers don't miss component-level overrides.

Suggested change
# Project-wide baseline — unpublished unless overridden by a package group
# Project-wide baseline — unpublished unless overridden by a package group
# or by more specific component/per-package publish settings.

Copilot uses AI. Check for mistakes.
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.

2 participants