Skip to content

Separate TrustedBuilders from SuggestedBuilders#2575

Draft
runesoerensen wants to merge 6 commits into
buildpacks:mainfrom
runesoerensen:runesoerensen/separate-trusted-suggested-builders
Draft

Separate TrustedBuilders from SuggestedBuilders#2575
runesoerensen wants to merge 6 commits into
buildpacks:mainfrom
runesoerensen:runesoerensen/separate-trusted-suggested-builders

Conversation

@runesoerensen

Copy link
Copy Markdown
Contributor

Summary

Note: This draft PR builds on unmerged changes introduced in #2573 - see runesoerensen/pack@runesoerensen/consolidate-trusted-builder-logic...runesoerensen:pack:runesoerensen/separate-trusted-suggested-builders to inspect only the commits introduced since that branch.

Separate trust decisions from display metadata by splitting KnownBuilder into dedicated data structures for each concern.

  • Replace KnownBuilder struct with separate TrustedBuilders (flat []string for trust decisions) and SuggestedBuilder / SuggestedBuilders (display metadata for builder suggest)
  • Add invariant test ensuring every suggested builder is also a trusted builder
  • Remove Trusted and Suggested boolean fields that previously required filtering

Output

N/A - no user-facing output changes.

Documentation

  • Should this change be documented?
    • No

Related

Resolves #2574

@github-actions github-actions Bot added this to the 0.41.0 milestone Apr 15, 2026
@github-actions github-actions Bot added the type/enhancement Issue that requests a new feature or improvement. label Apr 15, 2026
…ilders

Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
Signed-off-by: Rune Soerensen <rsoerensen@salesforce.com>
@runesoerensen runesoerensen force-pushed the runesoerensen/separate-trusted-suggested-builders branch from 10210f0 to 7febf98 Compare May 15, 2026 14:13
@TIR44

TIR44 commented May 31, 2026

Copy link
Copy Markdown

I took a look at this draft while checking the #2574 / #2572 trust split path. One edge to keep before this leaves draft: after the split, IsKnownTrustedBuilder() is exact-match again (paketobuildpacks/builder-jammy-base:latest is expected to return false in the current test), but pkg/client/build.go still defaults opts.TrustBuilder = builder.IsKnownTrustedBuilder.

That means the command path is covered by IsTrustedBuilder(), but the client default build path can still miss tag variants of tagless trusted builders. That seems to preserve part of the #2572 inconsistency after the refactor.

A narrow fix would be either:

  • keep IsKnownTrustedBuilder() reference-aware for entries in TrustedBuilders, or
  • add a separate reference-aware helper for the default client trust checker and use that from pkg/client/build.go.

Suggested regression coverage: a client-level build test where BuildOptions.Builder is paketobuildpacks/builder-jammy-base:latest and TrustBuilder is left nil, asserting the default trusted-builder path is used.

I ran these against the draft branch:

  • go test ./internal/builder -run TestTrustedBuilder -count=1
  • go test ./pkg/client -run 'TestBuild' -count=1

Both pass currently, so this looks like a coverage gap rather than an existing failing test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type/enhancement Issue that requests a new feature or improvement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Separate trusted builders from suggested builders

2 participants