Skip to content

Package with enabled traits in dependency chain fails to resolve #9286

@flexlixrup

Description

@flexlixrup

Is it reproducible with SwiftPM command-line tools: swift build, swift test, swift package etc?

  • Confirmed reproduction steps with SwiftPM CLI. The description text must include reproduction steps with either of command-line SwiftPM commands, swift build, swift test, swift package etc.

Description

When using "swift-configuration" with the YAMLSupport enabled, during package resolution, the process stops with the following error:

error: exhausted attempts to resolve the dependencies graph, with the following dependencies unresolved:
* 'yams' from https://github.com/jpsim/Yams

My Package.swift:

// swift-tools-version: 6.2
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
	name: "orchestrator-scheduler",
	platforms: [.macOS(.v26)],
	products: [
		// Products define the executables and libraries a package produces, making them visible to other packages.
		.executable(
			name: "orchestrator-scheduler",
			targets: ["orchestrator-scheduler"]
		)
	],
	dependencies: [
		.package(url: "https://github.com/apple/swift-configuration.git", from: "0.1.1", traits: [.defaults, "YAMLSupport"]),
	//	.package(url: "https://github.com/swift-server/swift-service-lifecycle.git", exact: "2.9.0"),
	//	.package(url: "https://github.com/vapor/fluent.git", exact: "4.13.0"),
	//	.package(url: "https://github.com/apple/swift-log.git", exact: "1.6.4"),
	//	.package(url: "https://github.com/vapor/fluent-postgres-driver.git", exact: "2.11.0")
	],
	targets: [
		// Targets are the basic building blocks of a package, defining a module or a test suite.
		// Targets can depend on other targets in this package and products from dependencies.
		.executableTarget(
			name: "orchestrator-scheduler",
			dependencies: [
				.product(name: "Configuration", package: "swift-configuration"),
			//	.product(name: "ServiceLifecycle", package: "swift-service-lifecycle"),
			//	.product(name: "Fluent", package: "fluent"),
			//	.product(name: "Logging", package: "swift-log"),
			//	.product(name: "FluentPostgresDriver", package: "fluent-postgres-driver")
			]
		),
		.testTarget(
			name: "orchestrator-schedulerTests",
			dependencies: ["orchestrator-scheduler"]
		)
	]
)

Expected behavior

Package resolution does not fail or at least gives me a useful error.

Actual behavior

Package resolution fails.

Steps to reproduce

  1. Use the Package.swift from above
  2. Add the necessary directory structure
  3. Run swift package resolve

Swift Package Manager version/commit hash

6.2

Swift & OS version (output of swift --version ; uname -a)

Apple Swift version 6.2 (swift-6.2-RELEASE)
Target: arm64-apple-macosx26.0
Build config: +assertions
Darwin Felix-MacBook.local 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:41:45 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T6000 arm64

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions