swiftlang/swift-package-manager
65.8
Adequate · 27 September 2026
152.2k
lines of production code
Swift
primary language
3
measurements over time
What this system is
This system is the Swift Package Manager, a tool for managing, building, and testing Swift code packages. It handles dependency resolution, compilation across multiple platforms and languages, and integrates with build systems like Swift Build and CMake. The system also supports advanced features such as plugins, macros, and package registries.
How it got here
2015–2021 — Test fixture expansion and plugin support
69 changes.
This period focused on expanding the repository's test coverage by adding extensive fixtures for dependency resolution, mixed-language builds, and plugin functionality. The work included migrating test suites to Swift Testing, updating fixtures to modern Swift standards, and implementing support for new features like source generators and sandboxed plugin execution.
2022–2024 — plugin system and test infrastructure expansion
61 changes.
This period focused on expanding the plugin system with extensive test fixtures for build tools, source generators, and dependency resolution, alongside initial support for Swift macros. Significant work also went into enhancing test discovery, including inheritance and Swift Testing framework support, while introducing benchmarks and refining sandbox and warning behaviors.
2025–2026 — Test fixture expansion and registry implementation
70 changes.
This period focused on significantly expanding the test fixture suite to cover new Swift build features, platform support, and edge cases, while also introducing a reference implementation for a Swift Package Registry server. The work included adding comprehensive test coverage for migration tools, plugin behaviors, and cross-platform compilation, alongside the development of a secure, API-compliant registry example with authentication and TLS support.
Features
Add ContrivedTestPlugin fixture with source generation and local tool capabilities
This change introduces the ContrivedTestPlugin fixture, which includes a source generator build tool (MySourceGenBuildTool) that reads input files and emits Swift source code containing hex representations of file contents, and a local tool (MyLocalTool) that prints environment-based strings. The fixture also adds supporting data files (foo.dat, bar.dat) and a libpcre module map to support testing plugin behaviors.
Fixtures/Miscellaneous/Plugins/ContrivedTestPlugin · high confidence
Add Docker-based development environment and certificate embedding utilities
Developers can now use Docker Compose files in Utilities/Docker to run SwiftPM builds and tests in isolated containers for various Ubuntu and Swift version combinations. A new Utilities/Certificates directory provides a script to embed root certificates into the PackageSigning and PackageCollectionsSigning targets using SwiftPM's resource embedding feature, ensuring secure package verification. Additionally, a new Utilities/build-using-self script allows self-hosted CI jobs to build and test SwiftPM using its own previously built artifacts.
Utilities · high confidence
Add Fisher-Yates shuffle extension to Collection types
A new file implementing Fisher-Yates shuffle algorithms for Swift Collection and MutableCollection types has been added to the FisherYates fixture. This introduces public extension methods shuffle() and shuffleInPlace() that allow users to randomly reorder collection elements using the system's random number generator.
Fixtures/DependencyResolution/External/Complex/FisherYates · high confidence
Add Linux development container configuration
Developers can now use a pre-configured Linux-based development environment via VS Code Dev Containers. This change introduces a new devcontainer setup that uses the Swift nightly image, mounts the git repository and workspace directories to support git worktrees, and installs necessary build dependencies like curl, sqlite3, and build-essential. The configuration also sets up the lldb debugger library path and installs the Swift VS Code extension, providing an out-of-the-box experience for local development on Linux.
.devcontainer · high confidence
Add MySourceGenBuildToolPlugin fixture for .dat to .swift generation
A new build tool plugin fixture has been added that processes .dat source files and generates corresponding .swift files. The plugin iterates over source files in a target, filters for .dat extensions, and creates build commands that invoke a tool named 'MySourceGenBuildTool' to transform each input file into an output Swift file within the plugin's work directory.
Fixtures/Miscellaneous/Plugins/MySourceGenPluginNoPreBuildCommands/Plugins/MySourceGenBuildToolPlugin · high confidence
Add Simple fixture with Swift 6 pattern matching and dual test frameworks
The Simple fixture now includes a source file demonstrating Swift 6's \if let\ pattern matching syntax in the \greet\ function, alongside a \.gitignore\ for build artifacts. It also provides test coverage using both the legacy XCTest framework and the new Swift Testing framework, ensuring compatibility with both testing styles.
Fixtures/PIFBuilder/Simple · high confidence
Add SwiftBuild coverage support
Added a new fixture for SwiftBuild coverage testing, including a simple Swift source file with public functions and corresponding unit tests to verify code coverage capabilities.
Fixtures/Coverage · high confidence
Add SwiftPMXCTestHelper fixture for testing XCTest bundle test listing
A new fixture, SwiftPMXCTestHelper, has been added to support testing the functionality of listing tests from an XCTest bundle on macOS. This includes a Swift source file for the helper module, a .gitignore file, and test cases in both Swift and Objective-C that define various test method naming patterns (such as camelCase, snake\_case, and non-test methods) to verify correct test discovery behavior.
Fixtures/Miscellaneous/SwiftPMXCTestHelper · high confidence
Add TIF fixture with resource bundle loading test case
Added a new test fixture in Fixtures/Miscellaneous/TIF that demonstrates loading external resources (specifically a text file) from a bundled resource directory at runtime. The fixture includes a macOS view controller (SomeAlert) that reads content from 'some.txt' within a bundle named 'TIF\_TIF.bundle' and displays it in the UI, along with the necessary XIB, assets, and source files to support this behavior.
Fixtures/Miscellaneous/TIF · high confidence
Add contrived test plugin with ambiguous command naming
A new test fixture plugin, MyAmbiguouslyNamedCommandPlugin, has been added to the ContrivedTestPlugin suite. This plugin implements BuildToolPlugin to generate build commands for .dat source files, producing corresponding .swift outputs. The command display name is hardcoded to 'This is a constant name', and it passes a specific environment variable (VARIABLE\_NAME\_PREFIX=SECOND\PREFIX\) to the build tool, serving as a test case for plugin command generation and naming behavior.
Fixtures/Miscellaneous/Plugins/ContrivedTestPlugin/Plugins/MyAmbiguouslyNamedCommandPlugin · high confidence
Add package graph benchmarks with performance thresholds
The Benchmarks area now includes the \PackageGraphBenchmarks\ target, which measures the performance of resolving module graphs using \SwiftPMWorkspace\ and synthetic module sets (including those with macros). This change introduces specific p90 thresholds for memory allocations (\mallocCountTotal\) and system calls to detect regressions, along with configuration options to adjust graph depth and width via environment variables.
Benchmarks · high confidence
Add plugin fixtures using URL-based API with cross-platform support
Added two new plugin fixtures (MySourceGenBuildToolPlugin and MySourceGenPrebuildPlugin) that demonstrate the use of the URL-based API for file paths. These examples show how to handle platform-specific executable paths (Android, Windows, and others) and generate build or prebuild commands using URL objects instead of string paths.
Fixtures/Miscellaneous/Plugins/MySourceGenPluginUsingURLBasedAPI/Plugins/MySourceGenPrebuildPlugin · high confidence
Add plugin script target fixture for internal executable plugin
A new Swift script target (Script.swift) has been added to the PluginWithInternalExecutable plugin fixture. This script implements a BuildToolPlugin that processes .dat source files by invoking an internal executable tool to generate corresponding .swift output files, serving as a test case for plugin-to-executable linking and build command generation.
Fixtures/Miscellaneous/Plugins/PluginWithInternalExecutable/Plugins/PluginScriptTarget · high confidence
Add source generator plugin fixture using URL-based API
A new fixture, MySourceGenPluginUsingURLBasedAPI, has been added to demonstrate a source generator plugin that utilizes the URL-based API. This example includes a build tool that reads input files and generates Swift source code containing hex representations of their contents, alongside local tools and runtime libraries to support the plugin's functionality and testing.
Fixtures/Miscellaneous/Plugins/MySourceGenPluginUsingURLBasedAPI · high confidence
Add source-generator plugin fixture with build and runtime tools
This location introduces a new fixture demonstrating a source-generator plugin. It includes a build tool that reads an input file and generates a Swift source file containing a hex-encoded string constant, along with supporting libraries for runtime functionality and string escaping. The fixture also provides a client project that consumes the generated code and a test suite to verify the tool's output.
Fixtures/Miscellaneous/Plugins/MySourceGenPlugin · high confidence
Add testable executable fixture with resource access
A new test fixture has been added that demonstrates an executable accessing bundled resources at runtime. The executable includes a text resource (foo.txt) and a function that reads this resource via the generated PackageResources type, allowing tests to verify that resource bundling and access work correctly in a testable context.
Fixtures/Miscellaneous/TestableExeWithResources · high confidence
Added DocC documentation and source code for the MyLib fixture
The MyLib fixture now includes a public Swift struct with a greeting constant and a corresponding DocC documentation file (MyLib.md) containing an overview. This change establishes the source code and documentation structure required for the library to be processed by DocC, supporting the experimental build server's ability to return DocC catalogs in source responses.
Fixtures/Miscellaneous/LibraryWithDocC · high confidence
Added DynamicProduct fixture with Swift and C interop
Added a new test fixture under Fixtures/Miscellaneous/DynamicProduct that demonstrates building frameworks with Swift and C interop. The fixture includes a 'firstDyna' package containing a C library (Core) wrapped by Swift, and a 'secondDyna' package that imports and re-exports functionality from 'firstDyna'. An 'exec' target is also included to demonstrate importing 'secondDyna' and calling its functions, along with a corresponding test file.
Fixtures/Miscellaneous/DynamicProduct · high confidence
Added EmptyTestsPkg fixture with .gitignore and empty test structure
A new fixture package named EmptyTestsPkg has been added to the repository. It includes a .gitignore file to exclude build artifacts and IDE files, a source file defining a basic struct, and an empty test file importing XCTest and the package module. This fixture serves as a minimal template for testing scenarios where no actual test cases are defined.
Fixtures/Miscellaneous/EmptyTestsPkg · high confidence
Added FlatPackage fixture with executable and test
A new test fixture named FlatPackage has been added to the Miscellaneous fixtures directory. It includes a simple Swift executable (MyExec) that prints a greeting, a corresponding unit test (MyTest) verifying the output, and a basic README. This fixture serves as a minimal example package for testing purposes.
Fixtures/Miscellaneous/FlatPackage · high confidence
Added Fuzzer fixture with libFuzzer entry point and main entry
A new Swift source file has been added to the Fuzzer fixture that defines the \LLVMFuzzerTestOneInput\ entry point required by libFuzzer, alongside a standard \@main\ struct. This allows the fixture to be used for fuzzing testing while still supporting normal execution.
Fixtures/Miscellaneous/Fuzzer · high confidence
Added Metal rendering fixture with shared types and shaders
A new Metal-based fixture has been added to the Swift build toolchain, providing a complete example of a renderer using Metal shaders. This includes a shared C header defining vertex structures, a Metal shader file implementing a simple vertex shader, a Swift renderer source file, and a corresponding test file, enabling users to download and use this Metal toolchain example.
Fixtures/Metal · high confidence
Added ShowTraits fixture demonstrating package subcommands
A new fixture named ShowTraits has been added to the Miscellaneous folder, containing two Swift applications: a dealer app and a deck-of-playing-cards app. These files serve as a test case for the package subcommand functionality, printing distinct identity strings to verify correct execution context.
Fixtures/Miscellaneous/ShowTraits · high confidence
Added TargetPackageAccess fixture for testing package access rules
A new fixture located at Fixtures/Miscellaneous/TargetPackageAccess has been added to the project. This fixture contains a Swift package structure (libPkg) with multiple targets (Core, DataManager, DataModel, MainLib, ExampleApp) and associated tests (BlackBoxTests, MainLibTests) designed to verify how package access modifiers and target dependencies interact.
Fixtures/Miscellaneous/TargetPackageAccess · high confidence
Added package registry reference implementation with local certificate generation
The Examples/package-registry area now includes a reference implementation for a package registry. This adds a simple Swift source fixture (HelloWorld) and a shell script (generate-cert.sh) that generates a self-signed SSL certificate for localhost. The script also provides platform-specific instructions for trusting the generated certificate, addressing SwiftPM's requirement to trust hosts when using local registries.
Examples/package-registry/Fixtures, Examples/package-registry/scripts · high confidence
Added simple Swift fixture file
A new Swift source file (Foo.swift) has been added to the Fixtures/Miscellaneous/Simple directory, containing a public function that executes an empty closure.
Fixtures/Miscellaneous/Simple · high confidence
Initial project configuration and documentation files added
This change introduces foundational configuration and documentation files for the Swift Package Manager repository. It adds \.editorconfig\ and \.dir-locals.el\ to standardize code formatting (indentation, line endings) across editors, and \.swiftformat\ to enforce consistent Swift code style. A \.swift-version\ file is added to specify the required Swift toolchain version (6.2.3). The commit also includes a \.mailmap\ file to normalize contributor identities in git history, a \.mailfilter\ for privacy filtering in contributor lists, and a \.licenseignore\ file to exclude non-source assets from license header checks. Additionally, it adds a \CHANGELOG.md\ documenting features from Swift 5.7 through 6.2, a \CONTRIBUTING.md\ guide for developers, a \NOTICE.txt\ for third-party license attributions, and a \CMakeLists.txt\ to support CMake-based builds. The README.md is also updated to provide a more concise overview and direct users to the official documentation.
(repo-wide) · high confidence
Initial support for Swift macros
This change introduces initial support for Swift macros by adding fixture packages that demonstrate macro definitions, implementations, and usage. The diff adds a \MacroPackage\ featuring a \\#fontLiteral\ macro and a \MinimalMacroPackage\ with a \\#stringify\ macro, along with their respective test targets to verify correct linking and expansion behavior.
Fixtures/Macros · high confidence
New diagnostic and target-build stub plugins for testing
Added two new command-plugin test stubs to the diagnostics-stub and targetbuild-stub fixtures. The diagnostics-stub plugin allows testing how SwiftPM handles various diagnostic levels (progress, remark, warning, error) and build log echoing, while the targetbuild-stub plugin enables testing target builds with specific configurations (debug, release, inherit). These stubs are used to verify plugin diagnostic output and build parameter handling.
Fixtures/Miscellaneous/Plugins/CommandPluginTestStub/Plugins/diagnostics-stub · high confidence
New example demonstrating async workspace APIs
Added a new example file that demonstrates how to use the async/await-based APIs for loading package manifests, packages, and package graphs within a Swift workspace.
Examples/package-info/Sources · high confidence
New secho fixture tool prints working directory and arguments
A new executable fixture named secho has been added to the Miscellaneous suite. This tool prints the current working directory followed by the command-line arguments passed to it, with each value quoted. It supports multiple C libraries (Glibc, Musl, Android, Darwin.C, ucrt) to ensure compatibility across different operating systems and environments.
Fixtures/Miscellaneous/EchoExecutable/Sources · high confidence
New source generation build tool plugin fixture
A new plugin fixture, MySourceGenBuildToolPlugin, has been added to demonstrate a BuildToolPlugin that processes .dat source files. The plugin scans a target's source files for .dat extensions and generates corresponding .swift files by invoking a tool named 'mytool' with verbose output, effectively showcasing how build tool plugins can transform input data into source code artifacts.
Fixtures/Miscellaneous/Plugins/BinaryToolProductPlugin/Plugins/MySourceGenBuildToolPlugin · high confidence
Reference Package Registry server with authentication and API compliance
The Examples/package-registry/Sources location introduces a reference Swift Package Registry server implementation. It adds a command-line entry point that enables authentication by default (configurable via a --disable-auth flag) and wires up a complete authentication system supporting HTTP Basic (email/password) and Bearer token login, including secure token generation, SHA-256 token hashing, and constant-time password verification to prevent timing side-channels. The server also enforces the Swift Package Registry API specification through middleware that validates the Accept header for API versioning, stamps responses with the Content-Version header, transparently handles HEAD requests, and translates errors into RFC 7807 problem details.
Examples/package-registry/Sources · high confidence
Support for test targets depending on other test targets
The build system now allows a test target to depend on another test target, enabling shared test utilities to be compiled as a static library and imported by multiple test suites. This change introduces a fixture demonstrating this capability, where a \TestUtils\ target provides shared helpers for \FooTests\ and \BarTests\, ensuring that test code can be reused across different test targets without duplication.
Fixtures/Miscellaneous/TestTargetDependsOnTestTarget · high confidence
Support using a Swift file as a build tool plugin executable
Users can now define a build tool plugin executable directly as a Swift file (e.g., a Swift script) rather than requiring a compiled binary. This change adds a fixture demonstrating a \BuildToolPlugin\ that invokes a standalone Swift script (\SimpleSwiftScript.swift\) as its executable, enabling simpler plugin development and execution for build tool plugins.
Fixtures/Miscellaneous/Plugins/SwiftFilePlugin, Fixtures/Miscellaneous/Plugins/SwiftFilePlugin/Plugins/MyCustomBuildTool · high confidence
Removals
Removed swiftpm.xcodeproj project file
The Xcode project file for the Support area (swiftpm.xcodeproj) has been deleted, removing the associated build scheme and project configuration from version control.
Support · high confidence
Behavioural changes
Add Linux aarch64 support to BinaryTargetExePlugin fixture
The BinaryTargetExePlugin test fixture now includes support for the Linux aarch64 architecture. This is achieved by adding a new artifact bundle configuration that lists 'aarch64-unknown-linux-gnu' alongside existing x86\_64 Linux variants, and by providing a corresponding Linux-specific executable script (mytool-linux/mytool) that mirrors the macOS implementation. This allows the plugin fixture to be tested on ARM64 Linux systems.
Fixtures/Miscellaneous/Plugins/BinaryTargetExePlugin · high confidence
Add command and build tool plugin fixtures for consistent configuration builds
New fixture files have been added to demonstrate command-plugin-initiated builds using a consistent configuration. The \BuildInReleasePlugin\ command plugin now explicitly sets the build configuration to \.release\ when invoking the package manager, ensuring that builds triggered by plugins use a predictable release mode. Additionally, the \SourceGenPlugin\ build tool plugin and its associated \SourceGenTool\ are included to show how source generation can be integrated into the build process, with the tool reading \.dat\ files and generating corresponding Swift source files.
Fixtures/Miscellaneous/Plugins/CommandPluginBuildingBuildToolPlugin, Fixtures/Miscellaneous/Plugins/CommandPluginBuildingBuildToolPlugin/Plugins/BuildInReleasePlugin, Fixtures/Miscellaneous/Plugins/CommandPluginBuildingBuildToolPlugin/Plugins/SourceGenPlugin · high confidence
Add prebuild command support to the MySourceGenBuildToolPlugin fixture
The MySourceGenBuildToolPlugin fixture now includes a prebuild command in addition to its existing build commands. This allows the plugin to generate files (specifically bar.swift from bar.in) in the plugin's work directory before the main build phase, alongside its standard source generation behavior for .dat files.
Fixtures/Miscellaneous/Plugins/MyBinaryToolPlugin/Plugins/MySourceGenBuildToolPlugin · high confidence
Added C dependency fixture with Foo and SeaLover components
This change introduces a new test fixture for external C dependency resolution within the CUsingCDep location. It adds a 'Foo' library (containing Foo.c and Foo.h) and a 'SeaLover' component (containing Sea.c and Sea.h) that depends on Foo. Additionally, it moves a Swift executable entry point (main.swift) into the Bar/Sources/SwiftExec directory, establishing a structure where a Swift component can interact with the C dependency.
Fixtures/DependencyResolution/External/CUsingCDep · high confidence
Added FreeBSD and Windows support to the BinaryLibraries Static fixture
The test fixture in Fixtures/BinaryLibraries/Static/Package1 has been updated to include build artifacts and metadata for FreeBSD and Windows platforms. The info.json manifest now declares variants for FreeBSD (x86\_64 and arm64) and Windows (x86\_64 and arm64), and the accompanying Makefile and build scripts generate the corresponding static libraries (.a for FreeBSD, .lib for Windows) alongside the existing macOS and Linux builds.
Fixtures/BinaryLibraries · high confidence
Added localized string support for German, Spanish, and French
The localized resources fixture now includes translation files for German (de.lproj), Spanish (es.lproj), and French (fr.lproj) containing the 'hello\_world' key. The accompanying executable demonstrates how to load and print these localized strings using specific language bundles, allowing users to verify that the localization mechanism correctly retrieves translations for these languages.
Fixtures/Resources/Localized · high confidence
Added multiple executable fixture for testing automatic default target builds
The test fixture at Fixtures/Miscellaneous/MultipleExecutables now includes two distinct executable targets (exec1 and exec2) alongside a library target (lib1). This structure supports the new behavior where the build system automatically selects and builds the default target when a specific product is not specified during a \swift run\ command.
Fixtures/Miscellaneous/MultipleExecutables · medium confidence
Conditional shuffle logic in complex dependency fixture
The main entry point for the Complex external dependency fixture has been moved to a new location and updated to conditionally execute the deck shuffle operation. The code now checks a boolean flag on the FisherYates module before calling shuffle, allowing the behavior to be toggled based on the module's configuration rather than always shuffling unconditionally.
Fixtures/DependencyResolution/External/Complex · high confidence
Contrived test plugin adopts SE-0303 @main entry point
The MySourceGenBuildToolPlugin fixture has been updated to align with SE-0303 by using the @main attribute for its plugin entry point. This change reflects the new PackagePlugin API requirements, ensuring the plugin correctly implements the BuildToolPlugin protocol with the updated context and target handling.
Fixtures/Miscellaneous/Plugins/ContrivedTestPlugin/Plugins/MySourceGenBuildToolPlugin · high confidence
Drop unknown platforms when generating PIF
The PIF builder now excludes platforms that are not recognized from the generated project interface. This change ensures that unsupported or unknown platform targets are not included in the output, preventing potential build or configuration issues related to invalid platform definitions.
Fixtures/PIFBuilder/UnknownPlatforms · high confidence
EchoExecutable fixture now supports custom debugger and test runner configurations
The EchoExecutable fixture has been updated to include platform-specific toolset configurations (toolset.json and toolset.win32.json) that explicitly define the debugger and testRunner paths. On Unix-like systems, the fixture uses echo.sh, while on Windows it uses echo.bat. This change enables the fixture to properly test scenarios where custom debugger or test runner executables are specified in the toolset configuration, aligning with recent changes to apply these properties in swift run and swift test commands.
Fixtures/Miscellaneous/EchoExecutable · high confidence
Expanded platform support for the MyBinaryToolPlugin fixture
The MyBinaryToolPlugin test fixture now includes prebuilt binary artifacts for FreeBSD and Linux aarch64, in addition to the existing macOS and Windows variants. The artifact bundle's info.json has been updated to declare support for FreeBSD (x86\_64 and aarch64) and Linux (x86\_64 and aarch64) triples, and corresponding shell scripts/batch files have been added to handle execution on these platforms, ensuring the fixture can be tested across a wider range of operating systems and architectures.
Fixtures/Miscellaneous/Plugins/MyBinaryToolPlugin · high confidence
Fix sandbox violation in build tool plugin commands
Resolved an issue where the \shouldDisableSandbox\ setting was not being passed to build tool plugin commands, ensuring that plugins like \PackageScribblerPlugin\ can correctly respect sandbox configuration during execution.
Fixtures/Miscellaneous/Plugins/SandboxViolatingBuildToolPluginCommands, Fixtures/Miscellaneous/Plugins/SandboxViolatingBuildToolPluginCommands/MyPlugin/Plugins/PackageScribblerPlugin · low confidence
Improved error message for local package dependencies specified as URLs
When a local package dependency is incorrectly specified using a 'url:' key instead of 'path:', the tool now provides a clearer and more helpful error message to guide users toward the correct configuration.
Fixtures/Miscellaneous/LocalPackageAsURL · medium confidence
Migrated dependency resolution fixtures to Swift 4.2 and restructured test cases
The test fixtures located in Fixtures/DependencyResolution/Internal have been migrated to the Swift 4.2 tools version. This change includes restructuring the 'Simple' and 'Complex' dependency scenarios by introducing new source files for modules like Bar, Baz, Cat, and Sound, and updating the Foo executable to demonstrate these dependencies. Additionally, the 'InternalExecutableAsDependency' fixture was reorganized, moving and renaming files from previous test locations to better reflect its purpose of testing executable module dependencies.
Fixtures/DependencyResolution/Internal · high confidence
MySourceGenBuildToolPlugin adopts @main entry point
The MySourceGenBuildToolPlugin fixture has been updated to use the @main attribute for its entry point, aligning with the SE-0303 proposal for PackagePlugin APIs. This change modifies the plugin's structure to conform to the new standard while preserving its existing functionality of generating Swift files from .dat source files.
Fixtures/Miscellaneous/Plugins/MySourceGenPlugin/Plugins/MySourceGenBuildToolPlugin · high confidence
PlayingCard fixture now conforms to Equatable via synthesized conformance
The PlayingCard fixture used in the DumpPackage test suite has been refactored to adopt the synthesized Equatable conformance. The manual extension and equality operator implementation were removed in favor of the default synthesized behavior, simplifying the source code while maintaining the same equality semantics for the card's rank and suit.
Fixtures/Miscellaneous/DumpPackage, Fixtures/Miscellaneous/DumpPackage/PlayingCard · high confidence
PlayingCard now synthesizes Equatable conformance
The PlayingCard fixture has been refactored to use Swift's automatic Equatable synthesis. The explicit equality operator implementation and manual Equatable extension have been removed, simplifying the code while maintaining the same equality behavior based on rank and suit.
Fixtures/DependencyResolution/External/Complex/PlayingCard · high confidence
Prebuild plugin now uses @main entry point and cross-platform touch commands
The MySourceGenPrebuildPlugin has been updated to adopt the SE-0303 proposal by using the @main attribute for its entry point, replacing the previous plugin registration mechanism. Additionally, the plugin's prebuild command logic has been adjusted to support Windows and Android environments by selecting the appropriate 'touch' executable and arguments for each platform, ensuring the plugin functions correctly across different operating systems.
Fixtures/Miscellaneous/Plugins/MySourceGenPlugin/Plugins/MySourceGenPrebuildPlugin · high confidence
Rearranged library evolution test fixtures
Test fixture files have been moved from the dependency test suite to the miscellaneous library evolution fixtures directory. This reorganization places the Swift source files for libraries A and B into a structure specifically designed for testing library evolution scenarios, aligning the test data with the feature that enables Swift module interfaces when library evolution is enabled via unsafe flags.
Fixtures/Miscellaneous/LibraryEvolution · medium confidence
Refactor dependency resolution fixture structure
The test fixture for simple external dependency resolution has been reorganized: the 'Foo' module source file was moved from the legacy test path to the new 'Fixtures/DependencyResolution/External/Simple' directory, and a new 'Bar' module was added to demonstrate importing and calling the 'Foo' function. Additionally, a missing newline at the end of the 'Foo' source file was added to comply with standard formatting.
Fixtures/DependencyResolution/External/Simple · high confidence
Refactor plugin fixture test cases
The plugin-related test fixtures have been reorganized and updated to better reflect their purpose. The 'MissingPlugin' fixture now uses a 'MissingPlugin' struct instead of the previous 'FooLib' class, and the 'PluginCanBeReferencedByProductName' fixture has been similarly updated to use a 'PluginCanBeReferencedByProductName' struct. Additionally, a new 'main.swift' entry point was added to the 'PluginCanBeReferencedByProductName' fixture to write output to a specified file path.
Fixtures/Miscellaneous/Plugins/MissingPlugin, Fixtures/Miscellaneous/Plugins/PluginCanBeReferencedByProductName · medium confidence
Reorganization of target mismatch test fixtures
The test fixture for implicit executable target generation has been moved from the legacy test directory structure to a new miscellaneous fixtures location, aligning with the improved correctness of target generation logic.
Fixtures/Miscellaneous/TargetMismatch · low confidence
Reorganized deck-of-playing-cards fixture location
The deck-of-playing-cards fixture has been moved from the test-specific directory (Tests/dep/Fixtures/102\_mattts\_dealer/FisherYates) to the main fixtures collection (Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards-local). This change restructures the project layout to better organize external dependency resolution examples, though the underlying file content remains unchanged.
Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards-local · low confidence
Reorganized parseable interface fixture structure
The test fixtures for parseable module interfaces have been reorganized. Source files previously located in the \Tests/dep/Fixtures/15\_buildexec\_src\_mult\_targets\ directory have been moved to \Fixtures/Miscellaneous/ParseableInterfaces/Sources\, with \main.swift\ files renamed to \A.swift\ and \B.swift\ respectively to better reflect their role as distinct module sources in the parseable interfaces test suite.
Fixtures/Miscellaneous/ParseableInterfaces · medium confidence
Resolve duplicate modules when two executable products share an executable target
The build system now prevents the creation of duplicate module files in the products directory when two executable products incorporate the same executable target. This ensures that internal references, such as accessing a struct defined within the shared target from the main entry point, resolve correctly without ambiguity or build errors caused by conflicting module outputs.
Fixtures/Miscellaneous/ExecutableTargetWithTwoProducts · high confidence
Revert optional xcframework support for Linux
The optional xcframework support for Linux has been reverted. This change removes the previously added Swift framework source code and test binary that were used to validate library evolution scenarios on Linux, effectively rolling back the feature that allowed building and testing xcframeworks in this environment.
Fixtures/Miscellaneous/LibraryEvolutionLinuxXCF · high confidence
SandboxTesterPlugin now verifies write access to the non-persistent temporary directory
The MySourceGenBuildToolPlugin fixture has been updated to explicitly test that plugins can write to the non-persistent temporary directory. The plugin implementation now attempts to create and remove a file in the system's temporary directory (via NSTemporaryDirectory) to confirm that this location is accessible for plugin output, in addition to its existing checks for the plugin work directory and restrictions on the user's home directory.
Fixtures/Miscellaneous/Plugins/SandboxTesterPlugin/Plugins/MySourceGenBuildToolPlugin · high confidence
Support for embedding resources in an executable
The Fixtures/Resources/EmbedInCodeSimple location now demonstrates how to embed static resources directly into the compiled executable. A new text file (best.txt) containing 'hello world' is included in the source bundle, and the main entry point (main.swift) shows how to access this embedded resource at runtime using the generated PackageResources type, printing its content as a UTF-8 string.
Fixtures/Resources/EmbedInCodeSimple · high confidence
Support for non-C99 module names and spaces in target names
The package now supports module names that do not conform to C99 identifier rules (such as hyphens) and target names containing spaces. This is demonstrated by the addition of source files for modules named 'A-B', 'B-C', and 'C D', allowing users to work with package structures that use these naming conventions.
Fixtures/Miscellaneous/PackageWithNonc99NameModules · medium confidence
Support qualifiers for ambiguous plugin commands
Added a test fixture demonstrating how the system handles ambiguous plugin commands by introducing qualifiers. The fixture includes two distinct command plugins (A and B) within separate dependency packages, each printing a unique message, alongside a main source file, to verify that the command resolution logic correctly distinguishes between them.
Fixtures/Miscellaneous/Plugins/AmbiguousCommands · medium confidence
Support swift package migrate with --build-system swiftbuild
The \swift package migrate\ command now supports the \--build-system swiftbuild\ flag, allowing users to specify the Swift Build system during migration workflows. This change adds fixture test cases under \Fixtures/SwiftMigrate\ to validate migration scenarios involving build tool plugins and existential type handling (e.g., \ExistentialAnyWithPluginMigration\), ensuring the migration tool correctly processes generated code and plugin dependencies when using the swiftbuild backend.
(repo-wide) · high confidence
Suppress C warning control flags in remote dependencies
When a package containing C code is consumed as a remote dependency, warning control flags (such as treating warnings as errors) defined in its manifest are now stripped. This prevents build conflicts that previously occurred when a downstream project's own warning settings clashed with those of the upstream package, ensuring that warnings in remote dependencies are suppressed rather than promoted to errors.
Fixtures/Miscellaneous/CWarningControlFlagsInManifest, Fixtures/Miscellaneous/WarningControlFlagsInManifest · high confidence
Suppress unhandled file warnings for dependent packages
The PIF builder no longer emits warnings for unhandled files located within dependent packages. This change ensures that files such as READMEs or other non-source assets in dependencies do not trigger build noise, while the fixture structure remains in place to verify this behavior.
Fixtures/PIFBuilder/UnhandledFiled · high confidence
Suppress warnings from remote dependencies
The tool now suppresses deprecation warnings originating from remote dependencies. This change ensures that deprecated types used in external packages (such as \dep1\ and \dep2\ in the test fixtures) do not trigger warnings for the consuming application, allowing users to focus on deprecations within their own codebase.
Fixtures/Miscellaneous/DependenciesWarnings · high confidence
Test discovery now includes inherited test methods
The test runner has been updated to discover and execute test methods that are inherited from parent test classes, not just those defined directly in the test class. This ensures that subclasses overriding or inheriting test logic are fully covered during test discovery, aligning with standard inheritance behaviors in testing frameworks.
Fixtures/Miscellaneous/TestDiscovery/Subclass · high confidence
Test fixture now supports Linux aarch64 for vended binary tools
The BinaryToolProductPlugin test fixture has been updated to include support for the Linux aarch64 platform. The vended source generation tool artifact bundle now lists 'aarch64-unknown-linux-gnu' alongside existing macOS and x86\_64 Linux variants, and includes the corresponding Linux binary wrapper script, allowing the fixture to validate binary tool vending on ARM64 Linux systems.
Fixtures/Miscellaneous/Plugins/BinaryToolProductPlugin · high confidence
Updated BinaryTargets fixture to use modern Xcode project formats
The SwiftFramework fixture within Fixtures/BinaryTargets has been updated to use modern Xcode project configurations. The project file now targets Xcode 11.4 compatibility, and the Info.plist has been migrated to use build settings (such as DEVELOPMENT\_LANGUAGE and PRODUCT\_BUNDLE\_PACKAGE\_TYPE) instead of hardcoded values. Additionally, the workspace settings have been updated to the standard IDEWorkspaceChecks.plist format, and the fixture structure now correctly includes a dedicated Xcode scheme for the SwiftFramework target.
Fixtures/BinaryTargets · high confidence
Updated Deck to use modern Swift protocols and synthesized Equatable
The Deck struct now conforms to Equatable using Swift's synthesized equality rather than a manual implementation, and adopts the updated ExpressibleByArrayLiteral protocol instead of the deprecated ArrayLiteralConvertible. Additionally, the cards property visibility was adjusted from private to fileprivate.
Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards · high confidence
Updated Spaces Fixture to support multi-module imports
The Spaces Fixture has been restructured to better test scenarios involving multiple modules. The previous test sources have been renamed and refactored: the first module now exports a public \Foo\ class, and the second module imports this first module (\Module\_Name\_1\) and also defines a public \Foo\ class, allowing tests to verify behavior when multiple modules with similar structures are involved. Additionally, missing newlines at the end of files have been added to comply with standard formatting.
Fixtures/Miscellaneous/Spaces Fixture · medium confidence
Updated migration fixtures for isolated conformances and strict memory safety
The migration test fixtures have been updated to reflect expected code transformations. For the InferIsolatedConformancesMigration, new 'Fixed' versions demonstrate that classes conforming to \Equatable\ under \@MainActor\ are migrated to use \nonisolated Equatable\, and structs conforming to multiple protocols are migrated to \nonisolated\ protocol compositions. For the StrictMemorySafetyMigration, the 'Fixed' fixture shows that calls to \@unsafe\ functions are explicitly annotated with the \unsafe\ keyword, whereas the original code omitted this annotation.
Fixtures/SwiftMigrate/InferIsolatedConformancesMigration · high confidence
Updated test fixture for transitive plugin-only dependency resolution
The test fixture located at Fixtures/Miscellaneous/Plugins/TransitivePluginOnlyDependency has been updated to verify that plugin-only dependencies are correctly marked as required in target dependencies. This change includes a new plugin definition (MyPlugin) and refactors the associated library sources (Library and TransitivePluginOnlyDependency) to support the updated dependency graph structure.
Fixtures/Miscellaneous/Plugins/TransitivePluginOnlyDependency, Fixtures/Miscellaneous/Plugins/TransitivePluginOnlyDependency/Dependencies/PluginOnly/Plugins/MyPlugin · medium confidence
Vendored generated files for dependent plugins fixture
The \Fixtures/Miscellaneous/Plugins/DependentPlugins\ location now includes the source files for \MyClient\, \MyExecutable\, and \MyExecutable2\. These additions provide the concrete implementation for the dependent plugins test scenario, where \MyExecutable\ generates a struct that \MyClient\ consumes, ensuring the fixture contains the necessary code to validate plugin dependency behavior.
Fixtures/Miscellaneous/Plugins/DependentPlugins · high confidence
Fixes
Add SwiftBuild fixture for testing quiet mode
A new SwiftBuild fixture has been added to the test suite, containing a minimal main.swift script that prints 'done'. This fixture serves as a test case to verify the behavior of the --quiet option with swift run, specifically addressing the issue where the quiet flag was not functioning correctly.
Fixtures/Miscellaneous/SwiftBuild · medium confidence
Add missing source files to PackageWithSDKSpecialization fixture
The PackageWithSDKSpecialization test fixture now includes the required source files for the executable and library targets, ensuring the fixture is complete and can be built correctly.
Fixtures/PIFBuilder/PackageWithSDKSpecialization · high confidence
Added BasicExecutable fixture for Windows swiftbuild linking tests
A new BasicExecutable fixture has been added to the PIFBuilder test suite. This minimal executable target, containing a standard 'Hello, world!' main entry point, serves as the test case to verify that linking works correctly with swiftbuild on Windows, addressing the issue described in fix \#9405.
Fixtures/PIFBuilder/BasicExecutable · high confidence
Added minimal Swift fixture files for Edit mode testing
Added new Swift source files (main.swift, Foo.swift, Bar.swift) to the Fixtures/Miscellaneous/Edit directory to provide a minimal codebase for testing the edit mode functionality.
Fixtures/Miscellaneous/Edit · medium confidence
Fix plugin dependency on local executable
Resolves a bug where a plugin's dependency on a local executable failed to function correctly. This fix ensures that local tools defined within the plugin structure are properly resolved and executed, allowing plugins that rely on bundled local utilities to operate as intended.
Fixtures/Miscellaneous/Plugins/PluginUsingLocalAndRemoteTool, Fixtures/Miscellaneous/Plugins/PluginUsingLocalAndRemoteTool/MyPlugin/Plugins/MyPlugin · medium confidence
Fix plugin executable linking order in test fixtures
Added test fixtures for plugin scenarios involving internal executables to verify that executable targets are correctly linked before being used by plugins. The changes introduce \RootTarget\ sources (including \main.swift\ and \foo.dat\) in both \ClientOfPluginWithInternalExecutable\ and \InvalidUseOfInternalPluginExecutable\ directories, ensuring the build system respects the dependency order where a plugin depends on an internal executable.
Fixtures/Miscellaneous/Plugins/ClientOfPluginWithInternalExecutable, Fixtures/Miscellaneous/Plugins/InvalidUseOfInternalPluginExecutable · medium confidence
Fix reporting of built artifacts for umbrella test products in command plugins
The dump-artifacts-plugin fixture has been updated to correctly report built artifacts when an umbrella test product is requested. This ensures that command plugins receive accurate artifact information for synthetic umbrella test products and individual test products, resolving previous reporting issues.
Fixtures/CommandPluginTestProductArtifacts · high confidence
Updated conditional dependency fixture sources
The test fixture for root packages with conditional dependencies has been updated to reflect the new source structure. A new \linuxOnly\ source file was added containing platform-specific logic that prints a message on Linux and errors otherwise, while the previous \FooLib\ source was renamed and refactored into a \client\ struct within the fixture's Sources directory.
Fixtures/Miscellaneous/RootPackageWithConditionals · high confidence
Test coverage
Add @main entry-point test fixtures for Swift and C executables; Add MyPlugin fixture for BinaryTargetExePlugin testing; Add MyPlugin fixture for product-name-based plugin referencing; Add Objective-C and C++ resource fixture support; Add ShowExecutables fixture with sample Swift executables; Add SimplePlugin fixture for test discovery; Add Swift Package fixture with custom compiler flags; Add SwiftRun test fixture; Add WebAssembly integration test fixtures for macros and plugins; Add branch-based dependency resolution fixture; Add direct module map test fixture; Add fixture for testing fatal errors in single XCTest; Add fixture for testing older deployment target requirements; Add fixture to verify import restrictions for missing dependencies; Add module aliasing integration test fixtures; Add new valid layout fixtures for mixed-language and new executable packages; Add placeholder MyLib source file; Add placeholder source file for ConditionalBuildSettings fixture; Add sandbox tester plugin fixture; Add test fixture for Swift Testing with dynamic dependency; Add test fixture for plugin dependency on remote executable tool; Add test fixtures for debugging single and multi-product Swift packages; Add test fixtures for package edit validation; Add testable executable fixtures for testing import and linking; Add transitive module-map dependency fixture; Added APIDiff test fixtures for C include paths, broken packages, and plugin targets; Added Bar fixture to test missing dependency failure output; Added C++ and Swift source files to the CCPackage test fixture; Added C++17 and module-combination crash regression fixtures; Added C++17 compiler crash regression test fixtures; Added DoNotFilterLinkerDiagnostics test fixture; Added EC and RSA private key fixtures for collection signing; Added Library fixture with Swift Testing support; Added Mirror fixture for external dependency resolution; Added MyPlugin fixture for testing incorrect dependency scenarios; Added SkipTests fixture with example source and tests; Added SwiftTesting fixture for test discovery validation; Added TaskLocal fixture demonstrating value propagation; Added Unicode-heavy test fixture for edge-case validation; Added XCFramework fixture for dependency resolution testing; Added a test fixture for system modules; Added bridging header test fixtures for Swift targets; Added case-collision test fixture for Swift build intermediates; Added command plugin test stub fixture for verifying plugin build behavior; Added dynamic library diamond fixture to test shared module state; Added fixture demonstrating partial dependency usage with artifact dumping; Added fixture for build tool plugin dependencies; Added fixture for handling multiple products with identical names; Added fixture for pkg-config-based C system module integration; Added fixture for source generator plugin without pre-build commands; Added fixture for testing executable module imports; Added fixture for undeclared privacy manifest testing; Added fixture for validating library product constraints; Added fixture plugins for testing dependent plugin workflows; Added fixture to test build-tool plugin crash handling; Added fixture to test multiple async executable targets; Added fixture to test overriding deployment targets via swiftc arguments; Added fixture to verify 'copy' resource rule handling; Added functional test for binary with moved resources; Added module aliasing integration test fixtures; Added parallel test execution fixture; Added plugin and snippet test fixtures; Added regression test fixture for Foundation-less resource bundle access; Added source file to BrokenManifest fixture; Added test discovery fixtures for simple and space-containing module names; Added test fixture for Swift and C targets with LTO; Added test fixture for executable with different product name; Added test fixture for extension-based test discovery; Added test fixture for indirect build tool dependency resolution; Added test fixture for library with dependency and tests; Added test fixture for local source generation build tool plugin; Added test fixture for plugin dependency isolation; Added test fixture for plugin with internal executable target; Added test fixture for prebuild plugin dependency on executable target; Added test fixture for warnings within function scope; Added test fixture to verify LinuxMain.swift is ignored during test discovery; Added test fixtures for async test discovery and deprecation warnings; Added test fixtures for external and internal dependency edges; Added test fixtures for multiple XCTest suites and mixed failure scenarios; Added test fixtures for plugin compilation errors; Added test fixtures for resource bundles and XCBuild scenarios; Added test fixtures for static Linux SDK and C++ library integration; Added test fixtures for validating failure output handling; Added test for Swift testing library environment variables; Added test keys for package signing fixtures; Added test suite for EchoExecutable fixture; Added tests for interop mode configuration fixtures; Added tests for the Swift package registry example implementation; Added trait configuration test fixtures; Added unreachable target fixture for build and run testing; Added version-specific manifest fixture for Swift 5.0; Expanded test fixtures for C-family and mixed-language targets; Fixture demonstrating plugin-generated resource handling; Fixtures for warnings-as-errors behavior with remote dependencies; Migrate test suites to Swift Testing; New PluginScriptTarget fixture for testing snippet target inspection; New fixture demonstrating command and build tool plugins with flag overrides; New plugin fixture for testing mixed-source target APIs; Removed Swift test fixtures for build scenarios; Removed test fixture for Swift package dependency resolution; Reorganized package name flag test fixtures; Reorganized test fixtures for dependency and compilation scenarios; Support warnings-as-errors with suppressed dependency warnings; Swift Package Manifest Migration: Updated Target Configuration Fixtures; Test fixture reorganization for product target naming; Updated ExistentialAny migration test fixtures; Updated parse-as-library test fixtures for executable targets; Updated test fixture for no-test discovery scenarios; Updated test fixtures for case-insensitive package lookup; Updated test fixtures for multi-root interop mode with Swift 6.4; Xcode test plan enables parallel execution for SwiftPM tests.
Dependencies
Add benchmarking and registry example packages
New example packages have been added to the repository: a benchmarking package for SwiftPM that integrates the \package-benchmark\ library, and a package registry example demonstrating integration with Vapor, ZIPFoundation, and swift-crypto.
(dependencies) · high confidence
Housekeeping
SwiftPM sources updated to 6.4
The Sources directory has been updated to version 6.4.
Sources · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 44 → 66 (+22.1)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 82 (-17.7)
- Architecture 69 → 97 (+27.7)
- Maturity 50 → 63 (+12.9)
- Readiness 20 → 61 (+41.0)
- Security 89 → 66 (-23.1)
- Domain Modelling 90 (new)
Resolved (15)
- Dimension evaluation failed
- High IaC: DS-0029 (Utilities/Docker/Dockerfile)
- High IaC: DS-0029 (Utilities/Docker/Dockerfile)
- High IaC: DS-0029 (Utilities/Docker/Dockerfile)
- High IaC: DS-0029 (Utilities/Docker/Dockerfile)
- LLM evaluation failed
- Leaked secret: signing-key (Sources/SBOMModel/CycloneDX/Resources/cyclonedx-1.7.schema.json)
- Low IaC: DS-0026 (Utilities/Docker/Dockerfile)
- No automated tests
- No exposed public API
- No tests found
- Test reliability not included
- early-stage repository — too little history to judge knowledge freshness
- single-commit history — no usable git history window to measure hotspots
- single-maintainer — knowledge-concentration (bus factor) risk
New (1969)
- APIDiff.determineModulesToDiff (cognitive 44) (Sources/Commands/PackageCommands/APIDiff.swift)
- APIDiff.determineModulesToDiff (cyclomatic 16) (Sources/Commands/PackageCommands/APIDiff.swift)
- APIDiff.runWithIntegratedAPIDigesterSupport (cognitive 16) (Sources/Commands/PackageCommands/APIDiff.swift)
- APIDiff.runWithSwiftPMCoordinatedDiffing (cognitive 16) (Sources/Commands/PackageCommands/APIDiff.swift)
- AsyncOperationQueue.waitIfNeeded (cyclomatic 16) (Sources/Basics/Concurrency/ConcurrencyHelpers.swift)
- AsyncProcess.launch (cognitive 61) (Sources/Basics/Concurrency/AsyncProcess.swift)
- AsyncProcess.launch (cyclomatic 34) (Sources/Basics/Concurrency/AsyncProcess.swift)
- BaseTarget.isLinkedAgainst (cognitive 20) (Sources/XCBuildSupport/PIF.swift)
- BuildOperation.build (cognitive 22) (Sources/Build/BuildOperation.swift)
- BuildOperation.build (cyclomatic 20) (Sources/Build/BuildOperation.swift)
- BuildOperation.computeLLBuildTargetName (cognitive 28) (Sources/Build/BuildOperation.swift)
- BuildOperation.computeLLBuildTargetName (cyclomatic 20) (Sources/Build/BuildOperation.swift)
- BuildOperation.verifyTargetImports (cognitive 22) (Sources/Build/BuildOperation.swift)
- BuildPlan.computeDependencies (cognitive 111) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.computeDependencies (cyclomatic 62) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.computeDestinations (cyclomatic 17) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.createAPIToolCommonArgs (cognitive 18) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.init (cognitive 33) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.init (cyclomatic 26) (Sources/Build/BuildPlan/BuildPlan.swift)
- BuildPlan.invokeBuildToolPlugins (cognitive 17) (Sources/Build/BuildPlan/BuildPlan.swift)
- …and 1949 more
Changes since last survey
- 123 commits — 113 feature/other, 10 fixes
By area
- (repo) — 30 commits
- Sources/Basics — 15 commits
- Sources/SwiftBuildSupport — 10 commits
- (root) — 6 commits
- .github/workflows — 6 commits
- Sources/Commands — 6 commits
- Sources/PackageManagerDocs — 6 commits
- Sources/PackageRegistry — 4 commits
- Sources/Workspace — 4 commits
- Fixtures/CFamilyTargets — 3 commits
- Fixtures/Miscellaneous — 3 commits
- Sources/CoreCommands — 3 commits
- Sources/PackageGraph — 3 commits
- Sources/PackageLoading — 3 commits
- Sources/Runtimes — 3 commits
- Examples/package-registry — 2 commits
- Sources/PackageModel — 2 commits
- Tests/SwiftPMBuildServerTests — 2 commits
- Documentation/Design — 1 commit
- Documentation/PackageRegistry — 1 commit
Notable commits
- fix: Allow optional comment in Testing.Bug.issue trait (#10501)
- fix: Fix authentication credential leak on cross-host redirect in DataTaskManager (#10443)
- fix: Fix building and testing on FreeBSD
- fix: Fix explicit enablement of index-while-building in release configs
- fix: Fix rpath used by Apple-platform test bundles to load binary dependencies
- fix: Fix/6.4 release notes style (#10445) (#10476)
- fix: Merge pull request #10506 from michael-yuji/swiftpm-freebsd-fix
- fix: Revert "Surface swiftc failures from SwiftcImportScanner instead of a bare JSON decoding error" (#10532)
- fix: [🍒] Fix traits infinite loop + default traits union + make traits sendable (#10488)
- fix: fix(test): Hide 'last' subcommand from help (#10416)
- change: Add --global flag to CLI for editing and viewing shared mirrors configuration
- change: Add FreeBSD GitHub action (#10071)
- change: Add SWIFTPM_USE_SYSTEM_SDK_DEPS to skip swift-crypto/system/toolchain-sqlite
- change: Add swift package-registry search subcommand (#10125)
- change: Add appendix to Registry.md (#10406)
- change: Add initial docs for mixed language targets
- change: Add support for configuring a bridging header on Swift targets
- change: Address review feedback on mixed source target tests
- change: Adopt Mutex in InMemoryFileSystem (#10425)
- change: Adopt Mutex in the ThreadSafe wrappers (#10403)
- …and 103 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
swiftlang/swift-package-manager was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 24a8a7b071d9fc92540ce464f648bd01f91428cd — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d00c643c3f66.