The Swift Package Index logo.Swift Package Index

Build Information

Successful build of TrainingPlanKit, reference main (892de8), with Swift 6.3 for macOS (SPM) on 21 Jul 2026 04:13:20 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/swarog46/training_plan_kit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/swarog46/training_plan_kit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 892de8a CI: skip catalog-bound checks on sample + track the known peak-LR gap (green on real regressions)
Cloned https://github.com/swarog46/training_plan_kit.git
Revision (git rev-parse @):
892de8a0c87a5f235f846adfeac8afb46bcb8df2
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/swarog46/training_plan_kit.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "training_plan_kit",
      "name": "TrainingPlanKit",
      "url": "https://github.com/swarog46/training_plan_kit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/training_plan_kit",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/swarog46/training_plan_kit.git
[1/1180] Fetching training_plan_kit
Fetched https://github.com/swarog46/training_plan_kit.git from cache (1.04s)
Creating working copy for https://github.com/swarog46/training_plan_kit.git
Working copy of https://github.com/swarog46/training_plan_kit.git resolved at main (892de8a)
warning: '.resolve-product-dependencies': dependency 'training_plan_kit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/swarog46/training_plan_kit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/3] Copying sample_catalog.json
[0/3] Write sources
[2/3] Write swift-version--6988338F2F200930.txt
[4/31] Compiling TrainingPlanKit IntermediatePlanGenerator.swift
[5/31] Compiling TrainingPlanKit MaintenancePlanGenerator.swift
[6/31] Compiling TrainingPlanKit PlanConfiguration+Accessible.swift
[7/31] Emitting module TrainingPlanKit
[8/31] Compiling TrainingPlanKit C25KPlanGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[9/31] Compiling TrainingPlanKit CompetitivePlanGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[10/31] Compiling TrainingPlanKit DistanceClass.swift
/Users/admin/builder/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[11/31] Compiling TrainingPlanKit PlanGeneratorV3.swift
[12/31] Compiling TrainingPlanKit PlanProfile.swift
[13/31] Compiling TrainingPlanKit RaceWorkoutFactory.swift
[14/34] Compiling TrainingPlanKit PlanConfiguration+VO2.swift
[15/34] Compiling TrainingPlanKit PlanConfiguration.swift
[16/34] Compiling TrainingPlanKit PlanDistribution.swift
[17/34] Compiling TrainingPlanKit PlanConfiguration+CouchTo5K.swift
[18/34] Compiling TrainingPlanKit PlanConfiguration+Intermediate.swift
[19/34] Compiling TrainingPlanKit PlanConfiguration+Maintenance.swift
[20/34] Compiling TrainingPlanKit PlanConfiguration+Advanced.swift
[21/34] Compiling TrainingPlanKit PlanConfiguration+Beginner.swift
[22/34] Compiling TrainingPlanKit PlanConfiguration+Competitive.swift
[23/34] Compiling TrainingPlanKit API.swift
[24/34] Compiling TrainingPlanKit AdvancedPlanGenerator.swift
[25/34] Compiling TrainingPlanKit BeginnerPlanGenerator.swift
[26/34] Compiling TrainingPlanKit Plan.swift
[27/34] Compiling TrainingPlanKit Workout.swift
[28/34] Compiling TrainingPlanKit WorkoutEvent.swift
[29/34] Compiling TrainingPlanKit WorkoutTypes.swift
[30/34] Compiling TrainingPlanKit CompetitiveGate.swift
[31/34] Compiling TrainingPlanKit PaceZoneConverter.swift
[32/34] Compiling TrainingPlanKit PlanRecalculator.swift
[33/34] Compiling TrainingPlanKit VDOT.swift
[34/34] Compiling TrainingPlanKit resource_bundle_accessor.swift
Build complete! (6.43s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TrainingPlanKit",
  "name" : "TrainingPlanKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "TrainingPlanKit",
      "targets" : [
        "TrainingPlanKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TrainingPlanKitTests",
      "module_type" : "SwiftTarget",
      "name" : "TrainingPlanKitTests",
      "path" : "Tests/TrainingPlanKitTests",
      "sources" : [
        "PaceRenderInvariantTests.swift",
        "PaceZoneConverterTests.swift",
        "PlanRecalculatorTests.swift",
        "TrainingPlanKitTests.swift",
        "VDOTTests.swift"
      ],
      "target_dependencies" : [
        "TrainingPlanKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TrainingPlanKit",
      "module_type" : "SwiftTarget",
      "name" : "TrainingPlanKit",
      "path" : "Sources/TrainingPlanKit",
      "product_memberships" : [
        "TrainingPlanKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/TrainingPlanKit/Catalog/sample_catalog.json",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "API.swift",
        "Engine/AdvancedPlanGenerator.swift",
        "Engine/BeginnerPlanGenerator.swift",
        "Engine/C25KPlanGenerator.swift",
        "Engine/CompetitivePlanGenerator.swift",
        "Engine/DistanceClass.swift",
        "Engine/IntermediatePlanGenerator.swift",
        "Engine/MaintenancePlanGenerator.swift",
        "Engine/PlanConfiguration+Accessible.swift",
        "Engine/PlanConfiguration+Advanced.swift",
        "Engine/PlanConfiguration+Beginner.swift",
        "Engine/PlanConfiguration+Competitive.swift",
        "Engine/PlanConfiguration+CouchTo5K.swift",
        "Engine/PlanConfiguration+Intermediate.swift",
        "Engine/PlanConfiguration+Maintenance.swift",
        "Engine/PlanConfiguration+VO2.swift",
        "Engine/PlanConfiguration.swift",
        "Engine/PlanDistribution.swift",
        "Engine/PlanGeneratorV3.swift",
        "Engine/PlanProfile.swift",
        "Engine/RaceWorkoutFactory.swift",
        "Models/Plan.swift",
        "Models/Workout.swift",
        "Models/WorkoutEvent.swift",
        "Models/WorkoutTypes.swift",
        "Pacing/CompetitiveGate.swift",
        "Pacing/PaceZoneConverter.swift",
        "Pacing/PlanRecalculator.swift",
        "Pacing/VDOT.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/swarog46/training_plan_kit/main
Repository:               swarog46/training_plan_kit
Swift version used:       6.3
Target:                   TrainingPlanKit
Extracting symbol information for 'TrainingPlanKit'...
Finished extracting symbol information for 'TrainingPlanKit'. (27.28s)
Building documentation for 'TrainingPlanKit'...
warning: Parameter 'vdotAnchored' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:160:62-160:62
158 |     ///   - conversationalPace: Current easy pace in seconds/km (nil = no adjustment)
159 |     ///   - progressionFactor: Position in plan (0.0 = start, 1.0 = end)
160 +     ///   - config: Progression config for the runner's level
    |                                                              ╰─suggestion: Document 'vdotAnchored' parameter
161 |     /// - Returns: Adjusted multiplier
162 |     public static func progressiveMultiplier(
warning: Parameter 'speedPace' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
    |           ╰─suggestion: Document 'speedPace' parameter
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'isAdvanced' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'isAdvanced' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'conversationalPaceEnd' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'conversationalPaceEnd' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'isCompetitive' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'isCompetitive' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'speedPaceEnd' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'speedPaceEnd' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'raceDistanceMeters' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'raceDistanceMeters' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'isBeginner' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'isBeginner' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
warning: Parameter 'racePaceEnd' is missing documentation
   --> Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:897:47-897:47
895 |     ///   - config: Progression config for the runner's level
896 |     ///   - startDate: Plan start date
897 +     ///   - endDate: Plan end date (race date)
    |                                               ╰─suggestion: Document 'racePaceEnd' parameter
898 |     /// - Returns: Events with pace-based workouts, progressively adjusted
899 |     public static func applyPaceProgression(
Finished building documentation for 'TrainingPlanKit' (0.74s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swarog46/training_plan_kit/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2325] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.42s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.65s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3758] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.25s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.97s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Building for debugging...
[0/8] Write sources
[1/8] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version--6988338F2F200930.txt
[6/54] Emitting module SymbolKit
[7/58] Compiling Snippets SnippetLanguage.swift
[8/58] Emitting module Snippets
[9/58] Compiling Snippets Snippet.swift
[10/58] Compiling Snippets SnippetParser.swift
[11/58] Compiling SymbolKit Mixin+Equals.swift
[12/58] Compiling SymbolKit Mixin+Hash.swift
[13/58] Compiling SymbolKit Mixin.swift
[14/58] Compiling SymbolKit LineList.swift
[15/58] Compiling SymbolKit Position.swift
[16/58] Compiling SymbolKit GenericConstraint.swift
[17/58] Compiling SymbolKit GenericParameter.swift
[18/58] Compiling SymbolKit Generics.swift
[19/58] Compiling SymbolKit Namespace.swift
[20/58] Compiling SymbolKit SourceRange.swift
[21/58] Compiling SymbolKit Metadata.swift
[22/58] Compiling SymbolKit Module.swift
[23/58] Compiling SymbolKit OperatingSystem.swift
[24/58] Compiling SymbolKit Platform.swift
[25/58] Compiling SymbolKit DeclarationFragments.swift
[26/58] Compiling SymbolKit Fragment.swift
[27/58] Compiling SymbolKit FragmentKind.swift
[28/58] Compiling SymbolKit FunctionParameter.swift
[29/58] Compiling SymbolKit FunctionSignature.swift
[30/58] Compiling SymbolKit Identifier.swift
[31/58] Compiling SymbolKit KindIdentifier.swift
[32/58] Compiling SymbolKit Location.swift
[33/58] Compiling SymbolKit Mutability.swift
[34/58] Compiling SymbolKit SemanticVersion.swift
[35/58] Compiling SymbolKit AccessControl.swift
[36/58] Compiling SymbolKit Availability.swift
[37/58] Compiling SymbolKit AvailabilityItem.swift
[38/58] Compiling SymbolKit Domain.swift
[39/58] Compiling SymbolKit Names.swift
[40/58] Compiling SymbolKit SPI.swift
[41/58] Compiling SymbolKit Snippet.swift
[42/58] Compiling SymbolKit Extension.swift
[43/58] Compiling SymbolKit Symbol.swift
[44/58] Compiling SymbolKit SymbolKind.swift
[45/58] Compiling SymbolKit SymbolGraph.swift
[46/58] Compiling SymbolKit GraphCollector.swift
[47/58] Compiling SymbolKit Relationship.swift
[48/58] Compiling SymbolKit RelationshipKind.swift
[49/58] Compiling SymbolKit SourceOrigin.swift
[50/58] Compiling SymbolKit GenericConstraints.swift
[51/58] Compiling SymbolKit Swift.swift
[52/58] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[53/58] Compiling SymbolKit UnifiedSymbol.swift
[54/58] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[55/58] Compiling SymbolKit UnifiedSymbolGraph.swift
[56/62] Compiling snippet_extract URL+Status.swift
[57/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/62] Emitting module snippet_extract
[59/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.48s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'TrainingPlanKit' complete! (0.19s)
    1222
8	/Users/admin/builder/spi-builder-workspace/.docs/swarog46/training_plan_kit/main
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/swarog46/training_plan_kit/main
File count: 1222
Doc size:   8.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -swarog46-training_plan_kit-main-09f2a996.zip to presigned URL
Starting upload of 1680911 bytes...
Upload completed successfully
Done.