Skip to content

Conversation

cgrindel-self-hosted-renovate[bot]
Copy link
Contributor

This PR contains the following updates:

Package Update Change
apple/swift-protobuf minor 1.30.0 -> 1.31.0

Release Notes

apple/swift-protobuf (apple/swift-protobuf)

v1.31.0

Compare Source

What's Changed
SemVer Minor
SemVer Patch
Other Changes

Full Changelog: apple/swift-protobuf@1.30.0...1.31.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@cgrindel-self-hosted-renovate
Copy link
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@cgrindel
Copy link
Owner

Swift Package Manager Compatibility Issue Found

I've investigated the build failure that occurs when updating to swift-protobuf v1.31.0 and identified the root cause.

Root Cause

Swift-protobuf v1.31.0 introduced a new protoc product as a binaryTarget (PR #1836). However, this triggers a known bug in Swift Package Manager where it incorrectly handles executable products that use binaryTarget.

The Error

When rules_swift_package_manager runs swift package describe --type json, it fails with:

error: executable product 'protoc' expects target 'protoc' to be executable; an executable target requires a 'main.swift' file

This occurs because Swift Package Manager doesn't properly recognize binaryTarget as a valid executable target.

Swift Package Manager Bug

This is documented as Issue #8101 in the Swift Package Manager repository: "Conflicting detection of executable targets when using a binaryTarget on an executable product"

The bug manifests as:

  1. SPM complains that the binaryTarget is missing a main.swift file
  2. If you add a main.swift, it then complains about having multiple executable targets

Impact on rules_swift_package_manager

Since rules_swift_package_manager depends on swift package describe to analyze package manifests, and this command fails due to the SPM bug, swift-protobuf v1.31.0 is currently incompatible with rules_swift_package_manager.

Next Steps

This update should be blocked until either:

  1. Swift Package Manager fixes issue #8101, or
  2. rules_swift_package_manager implements a workaround for this specific case, or
  3. Swift-protobuf modifies their approach for the protoc target

Testing Details

  • Tried updating swift-tools-version from 5.7 → 5.8 → 5.10 → 6.0 → 6.1
  • All versions exhibit the same failure
  • The issue is not with our configuration but with the upstream SPM bug

The grpc_example demonstrates this issue when attempting to build after the update.

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.

1 participant