Skip to content

chore(comps): annotate backport overlays with category metadata#17727

Draft
liunan-ms wants to merge 5 commits into
4.0from
liunan/overlay_metadata
Draft

chore(comps): annotate backport overlays with category metadata#17727
liunan-ms wants to merge 5 commits into
4.0from
liunan/overlay_metadata

Conversation

@liunan-ms

@liunan-ms liunan-ms commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

This PR annotates all 24 components surfaced by the overlay classifier as category = "backport-dist-git", attaching commits so future Fedora rebases can mechanically retire patches that have landed upstream.

What changed

  • Inline annotations (17 components): ant, atlas, glade, gt, intel-qpl, maven, maven4, sos, xbean, xclock, xmvn, xmvn5, kdump-utils, rust-podman-sequoia, sssd, vamp-plugin-sdk, xbean, xsimd — added file-level [metadata] blocks on existing single-overlay .comp.toml files.

  • Per-file overlay-dir migration (7 components): cpio, gnulib, javapackages-tools, qemu, zbar, apache-ivy, cloud-init — split inline overlays into per-logical-change *.overlay.toml files so the shared metadata lives once per backport. Multi-commit backports (e.g. javapackages-tools openjdk21 drop) consolidate related upstream commits into a single file via commits = [url1, url2, …].

Note: qemu has azl-feature-disablement overlays instead of backport, adding its annotations as an example of annotations for other categories.

Validation

Comment thread base/comps/cpio/cpio.comp.toml Outdated
replacement = ""
# Overlays live as one-logical-change-per-file under ./overlays/.
# See https://github.com/microsoft/azure-linux-dev-tools/blob/main/docs/user/reference/config/overlays.md#per-file-overlay-format-overlaytoml
overlay-dir = "overlays"

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.

It would be great to update the AI instructions to explain when to use this pattern vs. not, and what sort of data to add to each overlay.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, I'll add a SKILL.md for sorting out the existing overlays and add suggested annotations for new overlays.

@liunan-ms liunan-ms changed the title chore(comps): annotate backport-fedora overlays with category metadata chore(comps): annotate backport overlays with category metadata Jun 18, 2026
@liunan-ms liunan-ms force-pushed the liunan/overlay_metadata branch from 93c3e9b to e29cdb5 Compare June 18, 2026 19:11
Copilot AI review requested due to automatic review settings June 25, 2026 20:37
@liunan-ms liunan-ms force-pushed the liunan/overlay_metadata branch from 23ed86c to 4107a39 Compare June 25, 2026 20:44
Stamp 'category=backport-fedora' (plus 'commits', 'fixed-in', and 'removable-after' where available) on all backport overlays surfaced by the overlay classifier. Migrate cpio, gnulib, javapackages-tools, qemu, and zbar to the per-file 'overlay-dir' layout so the shared metadata lives once in a file-level [metadata] block. Rendered specs are byte-identical and 'azldev comp update' reports no lock drift.
Add category/commits metadata to backport-dist-git overlays across components,
renaming the category from backport-fedora to backport-dist-git and dropping the
removed fixed-in/removable-after fields. Migrate apache-ivy and cloud-init to the
per-file overlay-dir layout. Metadata-only changes; rendered specs are unchanged.

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

This PR annotates the Azure Linux overlays previously flagged by the overlay classifier with structured metadata (a category plus upstream commits/pr/bugs), so future Fedora rebases can mechanically identify and retire backported overlays once they land upstream. It also bumps the pinned azldev version to one that understands these annotations and a new per-file overlay layout.

Changes:

  • Inline annotations (17 components): add a [components.<name>.overlays.metadata] block to existing single-/few-overlay .comp.toml files. Note these attach per-overlay (to the immediately preceding overlay), which is used deliberately in some files (e.g. sos, sssd) but is inconsistent in xbean.
  • Per-file migration (7 components): cpio, gnulib, javapackages-tools, qemu, zbar, apache-ivy, cloud-init move inline overlays into overlays/*.overlay.toml files (top-level [metadata] + [[overlays]], with source paths rewritten to ../ to point back at the component root). qemu also consolidates per-section subpackage removals into spec-remove-subpackage (verified output-equivalent against the rendered spec).
  • .azldev-version bump to enable the new overlay-files/metadata features; the committed authoritative schema was not regenerated to match.

Reviewed changes

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

Show a summary per file
File Description
.azldev-version Bumps pinned azldev to a version supporting overlay-files/metadata; committed schema not regenerated (flagged).
base/comps/{ant,atlas,glade,gt,intel-qpl,maven,maven4,xclock,xmvn,xmvn5}/*.comp.toml Single-overlay inline metadata annotations (correct attachment).
base/comps/{sos,sssd,kdump-utils,rust-podman-sequoia,vamp-plugin-sdk}/*.comp.toml Multi-overlay inline metadata with distinct per-overlay commits (correct).
base/comps/xbean/xbean.comp.toml Inline metadata; remove/add openjdk retarget pair annotated inconsistently (flagged).
base/comps/cpio/* Migrated to per-file overlay; rmt BR drop annotated.
base/comps/gnulib/* Migrated; temporary Source-URL backport annotated.
base/comps/javapackages-tools/* Migrated; openjdk21-drop multi-commit backport consolidated.
base/comps/qemu/* Migrated to 4 overlay files; subpackage removals consolidated to spec-remove-subpackage (output-equivalent).
base/comps/zbar/* Migrated; GIR-drop (backport) and video-disable (pruning) split into two files.
base/comps/apache-ivy/* Migrated; 0001 overlays lack required description fields (flagged nit).
base/comps/cloud-init/* Migrated to 3 overlay files (cpe-fix, azl4 patch series, branding); ../ source paths point at component-root patches.

Comment thread .azldev-version Outdated
@@ -1 +1 @@
0256227f5434d9e00d7c8501b16848efa400a72b
1516af28ef70edbf0b031567be1be93503d1f85a No newline at end of file
Comment thread base/comps/xbean/xbean.comp.toml Outdated
Comment on lines +18 to +20
[components.xbean.overlays.metadata]
category = "backport-dist-git"
commits = ["https://src.fedoraproject.org/rpms/xbean/c/1df289d87c3617482e813a5dac348b01c67d271f"]
Comment on lines +9 to +12
[[overlays]]
type = "file-add"
file = "IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
source = "../IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
Copilot AI review requested due to automatic review settings June 25, 2026 20:49
Bump .azldev-version to 1516af28ef70edbf0b031567be1be93503d1f85a, which
adds the inline [metadata] block and per-file overlay-files support.

Align overlay config with the new format:
- Replace overlay-dir with overlay-files = ["overlays/*.overlay.toml"]
  (cpio, zbar, apache-ivy, javapackages-tools, cloud-init, gnulib)
- Rename retired categories azl-feature-disablement and
  azl-dependency-pruning to azl-pruning
- Replace unsupported metadata fields: bug -> bugs (list of {url=...}),
  drop pr field (not part of the metadata schema)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@liunan-ms liunan-ms force-pushed the liunan/overlay_metadata branch from 4107a39 to 13381f7 Compare June 25, 2026 20:58

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

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

Comment thread base/comps/xbean/xbean.comp.toml Outdated
Comment on lines +18 to +20
[components.xbean.overlays.metadata]
category = "backport-dist-git"
commits = ["https://src.fedoraproject.org/rpms/xbean/c/1df289d87c3617482e813a5dac348b01c67d271f"]
Comment thread .azldev-version Outdated
@@ -1 +1 @@
0256227f5434d9e00d7c8501b16848efa400a72b
1516af28ef70edbf0b031567be1be93503d1f85a No newline at end of file
Copilot AI review requested due to automatic review settings June 25, 2026 21:05

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

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

Comment thread base/comps/xbean/xbean.comp.toml Outdated
Comment on lines +18 to +20
[components.xbean.overlays.metadata]
category = "backport-dist-git"
commits = ["https://src.fedoraproject.org/rpms/xbean/c/1df289d87c3617482e813a5dac348b01c67d271f"]
Comment on lines +9 to +12
[[overlays]]
type = "file-add"
file = "IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
source = "../IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

📄❌ Rendered specs are out of date

FIX: — run this and commit the result:

azldev component render -a --clean-stale

Or download the fix patch and apply it:

gh run download 28404686923 -R microsoft/azurelinux -n rendered-specs-patch
git apply rendered-specs.patch
Category Count
Content diffs 0
Extra files (untracked) 23
Missing files (deleted) 72

Files to add

These files are produced by azldev component render but are missing from your branch. Add them.

  • specs/a/ant-contrib/RENDER_FAILED
  • specs/a/antlr/RENDER_FAILED
  • specs/a/apache-commons-cli/RENDER_FAILED
  • specs/a/apache-commons-codec/RENDER_FAILED
  • specs/a/apache-commons-exec/RENDER_FAILED
  • specs/a/apache-commons-io/RENDER_FAILED
  • specs/a/apache-commons-parent/RENDER_FAILED
  • specs/b/beust-jcommander/RENDER_FAILED
  • specs/b/bsf/RENDER_FAILED
  • specs/i/icu4j/RENDER_FAILED
  • specs/j/jaxen/RENDER_FAILED
  • specs/j/jboss-parent/RENDER_FAILED
  • specs/j/jdom/RENDER_FAILED
  • specs/j/jline/RENDER_FAILED
  • specs/j/jsch/RENDER_FAILED
  • specs/l/log4j/RENDER_FAILED
  • specs/m/maven-antrun-plugin/RENDER_FAILED
  • specs/m/maven-archiver/RENDER_FAILED
  • specs/m/maven-assembly-plugin/RENDER_FAILED
  • specs/m/maven-shade-plugin/RENDER_FAILED
  • specs/m/mojo-parent/RENDER_FAILED
  • specs/m/msv/RENDER_FAILED
  • specs/p/plexus-interactivity/RENDER_FAILED

Files to remove

These files are in your branch but are not produced by render. Remove them.

  • specs/a/ant-contrib/ant-contrib-antservertest.patch
  • specs/a/ant-contrib/ant-contrib-java-8.patch
  • specs/a/ant-contrib/ant-contrib.spec
  • specs/a/ant-contrib/sources
  • specs/a/antlr/antlr-2.7.7-configure-c99.patch
  • specs/a/antlr/antlr-2.7.7-newgcc.patch
  • specs/a/antlr/antlr-build.xml
  • specs/a/antlr/antlr.spec
  • specs/a/antlr/generate-tarball.sh
  • specs/a/antlr/sources
  • specs/a/apache-commons-cli/apache-commons-cli.spec
  • specs/a/apache-commons-cli/sources
  • specs/a/apache-commons-codec/apache-commons-codec.spec
  • specs/a/apache-commons-codec/aspell-mail.txt
  • specs/a/apache-commons-codec/sources
  • specs/a/apache-commons-exec/apache-commons-exec.spec
  • specs/a/apache-commons-exec/sources
  • specs/a/apache-commons-io/apache-commons-io.spec
  • specs/a/apache-commons-io/sources
  • specs/a/apache-commons-parent/apache-commons-parent.spec
  • specs/a/apache-commons-parent/sources
  • specs/b/beust-jcommander/0001-ParseValues-NullPointerException-patch.patch
  • specs/b/beust-jcommander/beust-jcommander.spec
  • specs/b/beust-jcommander/generate-tarball.sh
  • specs/b/beust-jcommander/sources
  • specs/b/bsf/bsf-pom.xml
  • specs/b/bsf/bsf.spec
  • specs/b/bsf/build-file.patch
  • specs/b/bsf/build.properties.patch
  • specs/b/bsf/sources
  • specs/i/icu4j/icu4j.spec
  • specs/i/icu4j/sources
  • specs/j/jaxen/jaxen.spec
  • specs/j/jaxen/sources
  • specs/j/jboss-parent/cc0-1.0.txt
  • specs/j/jboss-parent/jboss-parent.spec
  • specs/j/jboss-parent/sources
  • specs/j/jdom/CVE-2021-33813.patch
  • specs/j/jdom/jdom-1.1-OSGiManifest.patch
  • specs/j/jdom/jdom-1.1.3.pom
  • specs/j/jdom/jdom-crosslink.patch
  • specs/j/jdom/jdom.spec
  • specs/j/jdom/sources
  • specs/j/jline/0001-Load-native-library-form-usr-lib-jline.patch
  • specs/j/jline/0002-Remove-optional-dependency-on-universalchardet.patch
  • specs/j/jline/jline.spec
  • specs/j/jline/sources
  • specs/j/jsch/MANIFEST.MF
  • specs/j/jsch/jsch.spec
  • specs/j/jsch/plugin.properties

… and 22 more file(s).

liunan-ms and others added 2 commits June 29, 2026 21:40
Annotate every overlay in the backport-dist-git category with the new
file-level [metadata] format (category, upstreamable, verified upstream
commits) and migrate all 22 components to the per-file overlay layout.

overlay-files is now declared once in the project-wide
default-component-config (base/comps/components.toml) as
["overlays/*.overlay.toml"] and inherited by every component, instead of
being set per comp.toml. Each component's overlays move into
overlays/*.overlay.toml files (one logical change per file), including
single-overlay components. Mixed-category components (apache-ivy,
cloud-init, grub2, sssd, zbar) move all overlays into files so apply order
is preserved.

Pure annotation/restructuring: verified byte-identical post-overlay
sources for all components via prepare-sources, and no lock drift via
comp update.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The per-file overlay migration relies on inheriting overlay-files from the
project-level default-component-config. That inheritance is only supported as
of azldev 4b5f72c (fix(overlays): expand overlay files after config
resolution). The pin was left at 1516af2, which rejects overlay-files on
default-component-config, breaking the config-load step in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 29, 2026 21:44

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

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

Comment on lines +5 to +7
# All gnulib overlays live one-logical-change-per-file under ./overlays/.
# See https://github.com/microsoft/azure-linux-dev-tools/blob/main/docs/user/reference/config/overlays.md#per-file-overlay-format
overlay-files = ["overlays/*.overlay.toml"]
Comment on lines +9 to +12
[[overlays]]
type = "file-add"
file = "IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
source = "../IMPROVEMENT-use-Apache-Commons-Compress-for-pack200-.patch"
Comment on lines +3 to +5
[metadata]
category = "azl-pruning"
upstreamable = false
Comment on lines +10 to +11
[default-component-config]
overlay-files = ["overlays/*.overlay.toml"]
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.

3 participants