Skip to content

fix(golang-github-aws-sdk-2): disable bootstrap mode - #18326

Open
Mitch Zhu (miz060) wants to merge 1 commit into
4.0from
mitchzhu/golang-github-aws-sdk-2-full-stage2
Open

fix(golang-github-aws-sdk-2): disable bootstrap mode#18326
Mitch Zhu (miz060) wants to merge 1 commit into
4.0from
mitchzhu/golang-github-aws-sdk-2-full-stage2

Conversation

@miz060

@miz060 Mitch Zhu (miz060) commented Aug 5, 2026

Copy link
Copy Markdown
Member

Fixes the duplicate-NVR failure for golang-github-aws-sdk-2. Fedora defaults this package to bootstrap mode while transitive Go dependencies are unavailable, but both Azure Linux build stages provide the complete dependency closure. Keeping bootstrap enabled produces a conflicting ~bootstrap NVR and strips generated Go requirements from the package.

Changes:

  • Disables bootstrap mode for all Azure Linux builds through native build.without configuration.
  • Enables dependency generation and the full test suite in both build stages.

Validation:

  • Stage 1 and Stage 2 prod build complete and resolve to full mode and 20250103-9.azl4.
  • The Stage 1 devel RPM installed in a clean mock chroot with generated dependencies for AWS Smithy, the AWS multi-module tools, and JMESPath.
  • go test github.com/aws/aws-sdk-go-v2/aws passed against the installed package, and go doc resolved aws.String.

Copilot AI balanced review requested due to automatic review settings August 5, 2026 18:03
@miz060
Mitch Zhu (miz060) requested a review from a team as a code owner August 5, 2026 18:03

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

Disables bootstrap mode for Stage 2 while preserving it for Fedora-backed Stage 1.

Changes:

  • Adds a stage-aware bootstrap overlay.
  • Refreshes generated spec, release, changelog, and lock state.
  • Moves the customized component into a dedicated definition.

Reviewed changes

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

Show a summary per file
File Description
base/comps/components.toml Removes the component from the unmodified-import list.
base/comps/golang-github-aws-sdk-2/golang-github-aws-sdk-2.comp.toml Adds its dedicated component definition.
base/comps/golang-github-aws-sdk-2/overlays/0001-disable-bootstrap-mode-in-stage2.overlay.toml Adds the stage-aware bootstrap override.
locks/golang-github-aws-sdk-2.lock Refreshes the input fingerprint.
specs/g/golang-github-aws-sdk-2/golang-github-aws-sdk-2.spec Records the rendered bootstrap behavior and release update.

@miz060

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

[[overlays]]
description = "Disable bootstrap mode in Azure Linux Stage 2"
type = "spec-search-replace"
regex = '^%bcond bootstrap 1$'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

question(blocking): I see from the linked work upstream commit that it's F44 that is missing the required dependencies but I suppose the change ended up in f43 anyhow. From a stage1 vs. stage2 perspective -- we're building the same set of packages. Are we certain we couldn't just flip bootstrap to 0 entirely for AZL4?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good point. Our stage 1 repo also provides the full dependency closure. Updated to disable bootstrap mode for all AZL4 builds.

@miz060
Mitch Zhu (miz060) force-pushed the mitchzhu/golang-github-aws-sdk-2-full-stage2 branch from 0fb4afc to ca42cfb Compare August 5, 2026 20:15
Copilot AI review requested due to automatic review settings August 5, 2026 20:15
@reubeno

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

@miz060 Mitch Zhu (miz060) changed the title fix(golang-github-aws-sdk-2): disable bootstrap mode in Stage 2 fix(golang-github-aws-sdk-2): disable bootstrap mode Aug 5, 2026
[[overlays]]
description = "Disable bootstrap mode for Azure Linux builds"
type = "spec-search-replace"
regex = '^%bcond bootstrap 1$'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

suggestion: Great to see this can work! if this now works, we can simplify even further and specify a without = { "bootstrap" } TOML config -- fully avoiding any need for an overlay or spec mutation.

Don't hesitate to ask if you could use a pointer to examples on how to do this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good suggestion. Switched this to the native build.without = ["bootstrap"] component configuration and removed the overlay so the upstream spec is no longer mutated.

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 4 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (1)

base/comps/golang-github-aws-sdk-2/overlays/0001-disable-bootstrap-mode.overlay.toml:13

  • This overlay is loaded by the project-wide default for every distro version (base/comps/components.toml:10-11), so the unconditional 0 also disables bootstrap in the Fedora-backed Stage 1 build. A Stage 1 rebuild would then lose the ~bootstrap suffix and run generated dependency/test paths, contrary to the PR's stated Stage 1 behavior. Make the default conditional: Stage 1 lacks %azurelinux, while the Stage 2 buildroot defines it.
# Azure Linux builds those prerequisites in both stages. Disable the workaround
# so Stage 1 and Stage 2 generate complete dependency metadata and run all tests.

Fedora defaults this package to bootstrap mode while transitive Go dependencies are unavailable. Both Azure Linux build stages provide the dependency closure, so retaining bootstrap mode strips generated Go requirements and produces a conflicting ~bootstrap NVR.

Use the native build.without configuration to select full mode without mutating the upstream spec. Both stages now generate complete dependency metadata and run the full test suite.

Signed-off-by: Mitch Zhu <mitchzhu@microsoft.com>
Copilot AI review requested due to automatic review settings August 5, 2026 21:18
@miz060
Mitch Zhu (miz060) force-pushed the mitchzhu/golang-github-aws-sdk-2-full-stage2 branch from ca42cfb to cfc57be Compare August 5, 2026 21:18

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 4 out of 5 changed files in this pull request and generated no new comments.

@miz060

Copy link
Copy Markdown
Member Author

Investigating a new Stage 2 prod dependency-resolution failure. The same source built successfully yesterday, so I’m comparing the build-repository snapshots between the two runs.

@reubeno

Copy link
Copy Markdown
Member

Investigating a new Stage 2 prod dependency-resolution failure. The same source built successfully yesterday, so I’m comparing the build-repository snapshots between the two runs.

We did make the change yesterday to flip stage2 to consume only from stage2. and we know we have a few piles of golang packages that don't yet build -- if any of them are in the dependencies for this component, that could be an issue.

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