Skip to content

[Traits] Remove experimental and SPI guards #8179

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Fixtures/Traits/Example/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "TraitsExample",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package1/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package1",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package10/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package10",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package2/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package2",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package3/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package3",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package4/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package4",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package5/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package5",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package6/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package6",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package7/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package7",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package8/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package8",
Expand Down
4 changes: 2 additions & 2 deletions Fixtures/Traits/Package9/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// swift-tools-version: 999.0.0
// swift-tools-version: 6.1

@_spi(ExperimentalTraits) import PackageDescription
import PackageDescription

let package = Package(
name: "Package9",
Expand Down
6 changes: 3 additions & 3 deletions Sources/CoreCommands/Options.swift
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@ package struct TraitOptions: ParsableArguments {

/// The traits to enable for the package.
@Option(
name: .customLong("experimental-traits"),
name: .customLong("traits"),
help: "Enables the passed traits of the package. Multiple traits can be specified by providing a space separated list e.g. `--traits Trait1 Trait2`. When enabling specific traits the defaults traits need to explictily enabled as well by passing `defaults` to this command."
)
package var _enabledTraits: String?
Expand All @@ -659,14 +659,14 @@ package struct TraitOptions: ParsableArguments {

/// Enables all traits of the package.
@Flag(
name: .customLong("experimental-enable-all-traits"),
name: .customLong("enable-all-traits"),
help: "Enables all traits of the package."
)
package var enableAllTraits: Bool = false

/// Disables all default traits of the package.
@Flag(
name: .customLong("experimental-disable-default-traits"),
name: .customLong("disable-default-traits"),
help: "Disables all default traits of the package."
)
public var disableDefaultTraits: Bool = false
Expand Down
3 changes: 1 addition & 2 deletions Sources/PackageDescription/BuildSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@ public struct BuildSettingCondition: Sendable {
/// - platforms: The applicable platforms for this build setting condition.
/// - configuration: The applicable build configuration for this build setting condition.
/// - traits: The applicable traits for this build setting condition.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func when(
platforms: [Platform]? = nil,
configuration: BuildConfiguration? = nil,
Expand Down
37 changes: 12 additions & 25 deletions Sources/PackageDescription/PackageDependency.swift
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ extension Package {
public let kind: Kind

/// The dependencies traits configuration.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
public let traits: Set<Trait>

Expand Down Expand Up @@ -224,8 +223,7 @@ extension Package.Dependency {
/// - Parameter traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A package dependency.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
path: String,
traits: Set<Trait> = [.defaults]
Expand Down Expand Up @@ -266,8 +264,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A package dependency.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
name: String,
path: String,
Expand Down Expand Up @@ -332,8 +329,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
from version: Version,
Expand Down Expand Up @@ -408,8 +404,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
branch: String,
Expand Down Expand Up @@ -470,8 +465,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
revision: String,
Expand Down Expand Up @@ -541,8 +535,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
_ range: Range<Version>,
Expand Down Expand Up @@ -616,8 +609,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
_ range: ClosedRange<Version>,
Expand Down Expand Up @@ -779,8 +771,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
url: String,
exact version: Version,
Expand Down Expand Up @@ -900,8 +891,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
id: String,
from version: Version,
Expand Down Expand Up @@ -955,8 +945,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
id: String,
exact version: Version,
Expand Down Expand Up @@ -1032,8 +1021,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
id: String,
_ range: Range<Version>,
Expand Down Expand Up @@ -1087,8 +1075,7 @@ extension Package.Dependency {
/// - traits: The trait configuration of this dependency. Defaults to enabling the default traits.
///
/// - Returns: A `Package.Dependency` instance.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func package(
id: String,
_ range: ClosedRange<Version>,
Expand Down
3 changes: 1 addition & 2 deletions Sources/PackageDescription/PackageDependencyTrait.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@

extension Package.Dependency {
/// A struct representing an enabled trait of a dependency.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public struct Trait: Hashable, Sendable, ExpressibleByStringLiteral {
/// Enables all default traits of a package.
public static let defaults = Self.init(name: "default")
Expand Down
6 changes: 2 additions & 4 deletions Sources/PackageDescription/PackageDescription.swift
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,7 @@ public final class Package {
public var products: [Product]

/// The set of traits of this package.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public var traits: Set<Trait>

/// The list of package dependencies.
Expand Down Expand Up @@ -352,8 +351,7 @@ public final class Package {
/// - swiftLanguageModes: The list of Swift language modes with which this package is compatible.
/// - cLanguageStandard: The C language standard to use for all C targets in this package.
/// - cxxLanguageStandard: The C++ language standard to use for all C++ targets in this package.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public init(
name: String,
defaultLocalization: LanguageTag? = nil,
Expand Down
6 changes: 2 additions & 4 deletions Sources/PackageDescription/Target.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1393,8 +1393,7 @@ public struct TargetDependencyCondition: Sendable {
///
/// - Parameter platforms: The applicable platforms for this target dependency condition.
/// - Parameter traits: The applicable traits for this target dependency condition.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func when(
platforms: [Platform],
traits: Set<String>
Expand All @@ -1405,8 +1404,7 @@ public struct TargetDependencyCondition: Sendable {
/// Creates a target dependency condition.
///
/// - Parameter traits: The applicable traits for this target dependency condition.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public static func when(
traits: Set<String>
) -> TargetDependencyCondition? {
Expand Down
3 changes: 1 addition & 2 deletions Sources/PackageDescription/Trait.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
/// Traits can be used for expressing conditional compilation and optional dependencies.
///
/// - Important: Traits must be strictly additive and enabling a trait **must not** remove API.
@_spi(ExperimentalTraits)
@available(_PackageDescription, introduced: 999.0)
@available(_PackageDescription, introduced: 6.1)
public struct Trait: Hashable, ExpressibleByStringLiteral {
/// Declares the default traits for this package.
public static func `default`(enabledTraits: Set<String>) -> Self {
Expand Down
4 changes: 2 additions & 2 deletions Sources/PackageModel/Manifest/Manifest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@ extension Manifest: Encodable {
private enum CodingKeys: CodingKey {
case name, path, url, version, targetMap, toolsVersion,
pkgConfig, providers, cLanguageStandard, cxxLanguageStandard, swiftLanguageVersions,
dependencies, products, targets, experimentalTraits, platforms, packageKind, revision,
dependencies, products, targets, traits, platforms, packageKind, revision,
defaultLocalization
}

Expand Down Expand Up @@ -555,7 +555,7 @@ extension Manifest: Encodable {
try container.encode(self.dependencies, forKey: .dependencies)
try container.encode(self.products, forKey: .products)
try container.encode(self.targets, forKey: .targets)
try container.encode(self.traits, forKey: .experimentalTraits)
try container.encode(self.traits, forKey: .traits)
try container.encode(self.platforms, forKey: .platforms)
try container.encode(self.packageKind, forKey: .packageKind)
}
Expand Down
Loading