Copy disabled (too large)
Download .txt
Showing preview only (16,460K chars total). Download the full file to get everything.
Repository: swiftlang/swift-package-manager
Branch: main
Commit: 3fbef9a57628
Files: 2183
Total size: 15.2 MB
Directory structure:
gitextract_zj1y_jdi/
├── .devcontainer/
│ ├── devcontainer.json
│ ├── docker-compose.yaml
│ └── init.sh
├── .dir-locals.el
├── .editorconfig
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── BUG_REPORT.yml
│ │ └── FEATURE_REQUEST.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── scripts/
│ │ ├── prebuild.ps1
│ │ └── prebuild.sh
│ └── workflows/
│ ├── automerge.yml
│ └── pull_request.yml
├── .gitignore
├── .license_header_template
├── .licenseignore
├── .mailfilter
├── .mailmap
├── .pep8
├── .swift-version
├── .swiftformat
├── Benchmarks/
│ ├── Benchmarks/
│ │ └── PackageGraphBenchmarks/
│ │ └── PackageGraphBenchmarks.swift
│ ├── Package.swift
│ ├── README.md
│ └── Thresholds/
│ ├── macos-arm64/
│ │ ├── PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
│ │ ├── PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
│ │ └── PackageGraphBenchmarks.SyntheticModulesGraphWithMacros.p90.json
│ └── macosx-arm64/
│ ├── PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
│ └── PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
├── BuildSupport/
│ └── SwiftSyntax/
│ └── CMakeLists.txt
├── CHANGELOG.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── CONTRIBUTORS.txt
├── Documentation/
│ ├── Design/
│ │ ├── EvolutionIdeas.md
│ │ ├── README.md
│ │ └── SwiftBasedManifestFormat.md
│ ├── PackageRegistry/
│ │ ├── PackageRegistryUsage.md
│ │ ├── Registry.md
│ │ └── registry.openapi.yaml
│ ├── README.md
│ ├── ReleaseNotes/
│ │ ├── 5.3.md
│ │ ├── 5.4.md
│ │ ├── 5.5.md
│ │ ├── 5.6.md
│ │ ├── 5.7.md
│ │ ├── 5.8.md
│ │ ├── 5.9.md
│ │ └── 6.3.md
│ └── libSwiftPM.md
├── Examples/
│ └── package-info/
│ ├── Package.swift
│ ├── README.md
│ └── Sources/
│ └── package-info/
│ └── example.swift
├── Fixtures/
│ ├── BinaryLibraries/
│ │ └── Static/
│ │ └── Package1/
│ │ ├── Package.swift
│ │ ├── Simple.artifactbundle/
│ │ │ ├── Makefile
│ │ │ ├── Package.swift
│ │ │ ├── build.sh
│ │ │ ├── dist/
│ │ │ │ ├── linux/
│ │ │ │ │ ├── libSimple_arm64.a
│ │ │ │ │ └── libSimple_x86_64.a
│ │ │ │ ├── macos/
│ │ │ │ │ ├── libSimple.a
│ │ │ │ │ ├── libSimple_arm64.a
│ │ │ │ │ └── libSimple_x86_64.a
│ │ │ │ └── windows/
│ │ │ │ ├── Simple_arm64.lib
│ │ │ │ └── Simple_x86_64.lib
│ │ │ ├── include/
│ │ │ │ ├── simple.h
│ │ │ │ └── simple.modulemap
│ │ │ ├── info.json
│ │ │ └── simple.c
│ │ └── Sources/
│ │ ├── Example/
│ │ │ └── Example.swift
│ │ └── Wrapper/
│ │ ├── include/
│ │ │ └── wrapper.h
│ │ └── wrapper.c
│ ├── BinaryTargets/
│ │ ├── Inputs/
│ │ │ ├── DynamicLibrary/
│ │ │ │ ├── DynamicLibrary.m
│ │ │ │ └── include/
│ │ │ │ └── DynamicLibrary.h
│ │ │ ├── StaticLibrary/
│ │ │ │ ├── StaticLibrary.m
│ │ │ │ └── include/
│ │ │ │ └── StaticLibrary.h
│ │ │ └── SwiftFramework/
│ │ │ └── SwiftFramework/
│ │ │ ├── Info.plist
│ │ │ ├── SwiftFramework.h
│ │ │ └── SwiftFramework.swift
│ │ └── TestBinary/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CLibrary/
│ │ │ ├── CLibrary.m
│ │ │ └── include/
│ │ │ └── CLibrary.h
│ │ ├── Library/
│ │ │ └── Library.swift
│ │ ├── cexe/
│ │ │ └── main.m
│ │ └── exe/
│ │ └── main.swift
│ ├── CFamilyTargets/
│ │ ├── CDynamicLookup/
│ │ │ ├── Foo.c
│ │ │ ├── Package.swift
│ │ │ └── include/
│ │ │ └── Foo.h
│ │ ├── CLibraryNoIncludeDir/
│ │ │ ├── Cfactorial/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── factorial/
│ │ │ │ ├── factorial.c
│ │ │ │ └── factorial.h
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Client/
│ │ │ └── main.swift
│ │ ├── CLibraryParentSearchPath/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CHeaderInclude/
│ │ │ │ ├── answers.c
│ │ │ │ └── include/
│ │ │ │ └── answers.h
│ │ │ ├── Constants/
│ │ │ │ └── Constants.h
│ │ │ └── HeaderInclude/
│ │ │ └── FinalForm.swift
│ │ ├── CLibrarySources/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── Foo.c
│ │ │ │ └── include/
│ │ │ │ └── Foo.h
│ │ │ └── Tests/
│ │ │ ├── CLibrarySourcesTests/
│ │ │ │ └── foo.swift
│ │ │ └── LinuxMain.swift
│ │ ├── CLibraryWithSpaces/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.c
│ │ │ │ └── include/
│ │ │ │ └── Bar/
│ │ │ │ └── Bar.h
│ │ │ ├── Bar with spaces/
│ │ │ │ ├── Bar.c
│ │ │ │ └── include/
│ │ │ │ └── Bar/
│ │ │ │ └── Bar.h
│ │ │ ├── Baz/
│ │ │ │ └── main.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.c
│ │ │ └── include/
│ │ │ └── Foo/
│ │ │ └── Foo.h
│ │ ├── ModuleMapGenerationCases/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Baz/
│ │ │ │ └── main.swift
│ │ │ ├── CustomModuleMap/
│ │ │ │ ├── CustomModuleMap.c
│ │ │ │ └── include/
│ │ │ │ ├── CustomModuleMap.h
│ │ │ │ └── module.modulemap
│ │ │ ├── FlatInclude/
│ │ │ │ ├── FlatInclude.c
│ │ │ │ └── include/
│ │ │ │ └── FlatIncludeHeader.h
│ │ │ ├── NoIncludeDir/
│ │ │ │ └── Jaz.c
│ │ │ ├── NonModuleDirectoryInclude/
│ │ │ │ ├── Maz.c
│ │ │ │ └── include/
│ │ │ │ └── NonModuleDirectoryInclude/
│ │ │ │ └── Maz.h
│ │ │ ├── UmbrellaDirectoryInclude/
│ │ │ │ ├── Jaz.c
│ │ │ │ └── include/
│ │ │ │ └── Paz.h
│ │ │ ├── UmbrellaHeader/
│ │ │ │ ├── UmbrellaHeader.c
│ │ │ │ └── include/
│ │ │ │ └── UmbrellaHeader/
│ │ │ │ └── UmbrellaHeader.h
│ │ │ └── UmbrellaHeaderFlat/
│ │ │ ├── UmbrellaHeader.c
│ │ │ └── include/
│ │ │ └── UmbrellaHeaderFlat.h
│ │ ├── ObjCmacOSPackage/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── HelloWorldExample.m
│ │ │ │ └── include/
│ │ │ │ └── HelloWorldExample.h
│ │ │ └── Tests/
│ │ │ └── ObjCmacOSPackageTests/
│ │ │ └── HelloWorldTest.m
│ │ └── SwiftCMixed/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CExec/
│ │ │ └── main.c
│ │ ├── SeaExec/
│ │ │ └── main.swift
│ │ └── SeaLib/
│ │ ├── Foo.c
│ │ └── include/
│ │ └── Foo.h
│ ├── Collections/
│ │ ├── GitHub/
│ │ │ ├── contributors.json
│ │ │ ├── languages.json
│ │ │ ├── license.json
│ │ │ ├── metadata.json
│ │ │ ├── readme.json
│ │ │ └── releases.json
│ │ ├── JSON/
│ │ │ ├── good.json
│ │ │ └── good_signed.json
│ │ └── Signing/
│ │ ├── TestIntermediateCA.cer
│ │ ├── TestRootCA.cer
│ │ ├── Test_ec.cer
│ │ ├── Test_ec_key.pem
│ │ ├── Test_rsa.cer
│ │ └── Test_rsa_key.pem
│ ├── Coverage/
│ │ └── Simple/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ └── Simple/
│ │ │ └── Simple.swift
│ │ └── Tests/
│ │ └── SimpleTests/
│ │ └── SimpleTests.swift
│ ├── DependencyResolution/
│ │ ├── External/
│ │ │ ├── Branch/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Foo/
│ │ │ │ └── Foo.swift
│ │ │ ├── CUsingCDep/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ ├── SeaLover/
│ │ │ │ │ │ ├── Sea.c
│ │ │ │ │ │ └── include/
│ │ │ │ │ │ └── Sea.h
│ │ │ │ │ └── SwiftExec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.c
│ │ │ │ ├── Package.swift
│ │ │ │ └── include/
│ │ │ │ └── Foo/
│ │ │ │ └── Foo.h
│ │ │ ├── Complex/
│ │ │ │ ├── FisherYates/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ └── Fisher-Yates_Shuffle.swift
│ │ │ │ ├── PlayingCard/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ ├── PlayingCard.swift
│ │ │ │ │ ├── Rank.swift
│ │ │ │ │ └── Suit.swift
│ │ │ │ ├── app/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ ├── deck-of-playing-cards/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ └── Deck.swift
│ │ │ │ └── deck-of-playing-cards-local/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ └── Deck.swift
│ │ │ ├── Mirror/
│ │ │ │ ├── App/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Bar.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── BarMirror/
│ │ │ │ │ ├── Bar.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ ├── PackageLookupCaseInsensitive/
│ │ │ │ ├── dep/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Dep/
│ │ │ │ │ └── dep.swift
│ │ │ │ └── pkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── pkg/
│ │ │ │ └── pkg.swift
│ │ │ ├── Simple/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ └── XCFramework/
│ │ │ ├── Bar.xcframework/
│ │ │ │ └── Info.plist
│ │ │ ├── Foo/
│ │ │ │ └── Foo.swift
│ │ │ └── Package.swift
│ │ └── Internal/
│ │ ├── Complex/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Bar/
│ │ │ │ └── Bar.swift
│ │ │ ├── Baz/
│ │ │ │ └── Baz.swift
│ │ │ ├── Cat/
│ │ │ │ └── Cat.swift
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── main.swift
│ │ │ └── Sound/
│ │ │ └── Sound.swift
│ │ ├── InternalExecutableAsDependency/
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── main.swift
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── main.swift
│ │ │ └── Package.swift
│ │ └── Simple/
│ │ ├── Bar/
│ │ │ └── Bar.swift
│ │ ├── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── main.swift
│ │ └── Package.swift
│ ├── Macros/
│ │ ├── MacroPackage/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── MacroClient/
│ │ │ │ └── client.swift
│ │ │ ├── MacroDef/
│ │ │ │ └── definition.swift
│ │ │ └── MacroImpl/
│ │ │ └── macro.swift
│ │ └── MinimalMacroPackage/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── MacroClient/
│ │ │ └── main.swift
│ │ ├── MacroDef/
│ │ │ └── MacroDef.swift
│ │ └── MacroImpl/
│ │ └── StringifyMacro.swift
│ ├── Metal/
│ │ └── SimpleLibrary/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ ├── MyRenderer/
│ │ │ │ ├── Renderer.swift
│ │ │ │ └── Shaders.metal
│ │ │ └── MySharedTypes/
│ │ │ └── include/
│ │ │ └── SharedTypes.h
│ │ └── Tests/
│ │ └── MyRendererTests/
│ │ └── MyRendererTests.swift
│ ├── Miscellaneous/
│ │ ├── -DSWIFT_PACKAGE/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CLib/
│ │ │ │ ├── foo.c
│ │ │ │ └── include/
│ │ │ │ └── CLib.h
│ │ │ └── SwiftExec/
│ │ │ └── main.swift
│ │ ├── APIDiff/
│ │ │ ├── Bar/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Baz/
│ │ │ │ │ └── Baz.swift
│ │ │ │ └── Qux/
│ │ │ │ └── Qux.swift
│ │ │ ├── BrokenPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── BrokenPkg/
│ │ │ │ │ ├── bestHeaders/
│ │ │ │ │ │ └── header.h
│ │ │ │ │ └── code.m
│ │ │ │ └── Swift2/
│ │ │ │ └── file.swift
│ │ │ ├── CIncludePath/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── CSample/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ ├── CSample.h
│ │ │ │ │ │ └── config.h
│ │ │ │ │ └── vendorsrc/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ └── vendor.h
│ │ │ │ │ └── src/
│ │ │ │ │ └── vendor.c
│ │ │ │ └── Sample/
│ │ │ │ └── Sample.swift
│ │ │ ├── CTargetDep/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.c
│ │ │ │ └── include/
│ │ │ │ └── Foo.h
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ ├── NonAPILibraryTargets/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ ├── Baz/
│ │ │ │ │ └── Baz.swift
│ │ │ │ ├── Exec/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── Foo/
│ │ │ │ │ └── Foo.swift
│ │ │ │ └── Qux/
│ │ │ │ └── Qux.swift
│ │ │ └── WithPlugin/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── BuildPlugin/
│ │ │ │ └── BuildToolPlugin.swift
│ │ │ └── Sources/
│ │ │ ├── BuildTool/
│ │ │ │ └── BuildTool.swift
│ │ │ └── TargetLib/
│ │ │ └── TargetLib.swift
│ │ ├── AtMainSupport/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── ClangExecSingleFile/
│ │ │ │ └── NotMain.c
│ │ │ ├── SwiftExecMultiFile/
│ │ │ │ ├── NotMain.swift
│ │ │ │ └── OtherFile.swift
│ │ │ └── SwiftExecSingleFile/
│ │ │ └── NotMain.swift
│ │ ├── CXX17CompilerCrash/
│ │ │ ├── v5_7/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── include/
│ │ │ │ │ └── user_objects.h
│ │ │ │ ├── lodepng/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ └── lodepng.h
│ │ │ │ │ └── lodepng.cpp
│ │ │ │ └── src/
│ │ │ │ └── user_objects.cc
│ │ │ └── v5_8/
│ │ │ ├── Package.swift
│ │ │ ├── include/
│ │ │ │ └── user_objects.h
│ │ │ ├── lodepng/
│ │ │ │ ├── include/
│ │ │ │ │ └── lodepng.h
│ │ │ │ └── lodepng.cpp
│ │ │ └── src/
│ │ │ └── user_objects.cc
│ │ ├── CaseCollision/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Foo/
│ │ │ │ └── Foo.swift
│ │ │ └── footool/
│ │ │ └── main.swift
│ │ ├── CheckTestLibraryEnvironmentVariable/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── CheckTestLibraryEnvironmentVariableTests/
│ │ │ └── CheckTestLibraryEnvironmentVariableTests.swift
│ │ ├── CompileFails/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── DependenciesWarnings/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── app.swift
│ │ │ ├── dep1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── code.swift
│ │ │ └── dep2/
│ │ │ ├── Package.swift
│ │ │ └── code.swift
│ │ ├── DependenciesWarnings2/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── app.swift
│ │ │ ├── dep1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── code.swift
│ │ │ └── dep2/
│ │ │ ├── Package.swift
│ │ │ └── code.swift
│ │ ├── DependencyEdges/
│ │ │ ├── External/
│ │ │ │ ├── dep1/
│ │ │ │ │ ├── Foo.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── dep2/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ └── root/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── Package.swift
│ │ │ └── Internal/
│ │ │ ├── Bar/
│ │ │ │ └── Bar.swift
│ │ │ ├── Foo/
│ │ │ │ └── main.swift
│ │ │ └── Package.swift
│ │ ├── DifferentProductTargetName/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── DistantFutureDeploymentTarget/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── DoNotFilterLinkerDiagnostics/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── DoNotFilterLinkerDiagnostics/
│ │ │ └── main.swift
│ │ ├── DumpPackage/
│ │ │ ├── PlayingCard/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ ├── PlayingCard.swift
│ │ │ │ ├── Rank.swift
│ │ │ │ └── Suit.swift
│ │ │ └── app/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── DynamicProduct/
│ │ │ ├── exec/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources/
│ │ │ │ │ └── exec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── DynaTests/
│ │ │ │ └── Tests.swift
│ │ │ ├── firstDyna/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ └── Sources/
│ │ │ │ ├── Core/
│ │ │ │ │ ├── Core.c
│ │ │ │ │ └── include/
│ │ │ │ │ └── Core.h
│ │ │ │ └── firstDyna/
│ │ │ │ └── firstDyna.swift
│ │ │ └── secondDyna/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── secondDyna/
│ │ │ └── secondDyna.swift
│ │ ├── EchoExecutable/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── secho/
│ │ │ │ └── main.swift
│ │ │ ├── Tests/
│ │ │ │ └── TestSuite/
│ │ │ │ └── Tests.swift
│ │ │ ├── echo.bat
│ │ │ ├── echo.sh
│ │ │ ├── toolset.json
│ │ │ └── toolset.win32.json
│ │ ├── Edit/
│ │ │ ├── App/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ └── main.swift
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── Package.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── EmptyTestsPkg/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── EmptyTestsPkg/
│ │ │ │ └── EmptyTestsPkg.swift
│ │ │ └── Tests/
│ │ │ └── EmptyTestsPkgTests/
│ │ │ └── EmptyTestsTests.swift
│ │ ├── Errors/
│ │ │ └── FatalErrorInSingleXCTest/
│ │ │ └── TypeLibrary/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TypeLibrary/
│ │ │ │ └── TypeLibrary.swift
│ │ │ └── Tests/
│ │ │ └── TypeLibraryTests/
│ │ │ └── TypeLibraryTests.swift
│ │ ├── ExactDependencies/
│ │ │ ├── FooExec/
│ │ │ │ ├── FooExec.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ ├── FooLib1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── FooLib1/
│ │ │ │ │ └── FooLib1.swift
│ │ │ │ └── cli/
│ │ │ │ └── main.swift
│ │ │ ├── FooLib2/
│ │ │ │ ├── FooLib2.swift
│ │ │ │ └── Package.swift
│ │ │ └── app/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── ExeTest/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Exe/
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── ExeTests/
│ │ │ └── ExeTests.swift
│ │ ├── ExecutableTargetWithTwoProducts/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── FlatPackage/
│ │ │ ├── MyExec.swift
│ │ │ ├── MyTest.swift
│ │ │ ├── Package.swift
│ │ │ └── README.md
│ │ ├── ImportOfMissingDependency/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ ├── B.swift
│ │ │ └── main.swift
│ │ ├── LTO/
│ │ │ └── SwiftAndCTargets/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── cLib/
│ │ │ │ ├── cLib.c
│ │ │ │ └── include/
│ │ │ │ └── cLib.h
│ │ │ ├── exe/
│ │ │ │ └── main.swift
│ │ │ └── swiftLib/
│ │ │ └── swiftLib.swift
│ │ ├── LibraryEvolution/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ └── B.swift
│ │ ├── LibraryEvolutionLinuxXCF/
│ │ │ ├── SwiftFramework/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── SwiftFramework/
│ │ │ │ └── SwiftFramework.swift
│ │ │ └── TestBinary/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── TestBinary/
│ │ │ └── Main.swift
│ │ ├── LocalPackageAsURL/
│ │ │ ├── Bar/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── MissingDependency/
│ │ │ └── Bar/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── MultipleExecutables/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── exec1/
│ │ │ │ └── main.swift
│ │ │ ├── exec2/
│ │ │ │ └── main.swift
│ │ │ └── lib1/
│ │ │ └── lib.swift
│ │ ├── PackageEdit/
│ │ │ ├── bar/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── bar.swift
│ │ │ ├── baz/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── baz.swift
│ │ │ └── foo/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── PackageNameFlag/
│ │ │ ├── appPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── App/
│ │ │ │ │ └── file.swift
│ │ │ │ └── exe/
│ │ │ │ └── main.swift
│ │ │ ├── barPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── file.swift
│ │ │ │ └── Baz/
│ │ │ │ └── file.swift
│ │ │ └── fooPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Foo/
│ │ │ │ └── file.swift
│ │ │ └── Zoo/
│ │ │ └── file.swift
│ │ ├── PackageWithMalformedLibraryProduct/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── PackageWithMalformedLibraryProduct/
│ │ │ └── main.swift
│ │ ├── PackageWithNonc99NameModules/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A-B/
│ │ │ │ └── ab.swift
│ │ │ ├── B-C/
│ │ │ │ └── bc.swift
│ │ │ └── C D/
│ │ │ └── cd.swift
│ │ ├── PackageWithResource/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── AwesomeResources/
│ │ │ │ ├── AwesomeResource.swift
│ │ │ │ └── hello.txt
│ │ │ └── Tests/
│ │ │ └── AwesomeResourcesTest/
│ │ │ ├── MyTests.swift
│ │ │ └── world.txt
│ │ ├── ParallelTestsPkg/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── ParallelTestsPkg/
│ │ │ │ └── ParallelTestsPkg.swift
│ │ │ └── Tests/
│ │ │ └── ParallelTestsPkgTests/
│ │ │ ├── ParallelTestsFailureTests.swift
│ │ │ └── ParallelTestsTests.swift
│ │ ├── ParseAsLibrary/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── ExecutableTargetOneFileNamedMainMainAttr/
│ │ │ │ └── main.swift
│ │ │ ├── ExecutableTargetOneFileNamedMainNoMainAttr/
│ │ │ │ └── main.swift
│ │ │ ├── ExecutableTargetOneFileNotNamedMainMainAttr/
│ │ │ │ └── othername.swift
│ │ │ ├── ExecutableTargetOneFileNotNamedMainNoMainAttr/
│ │ │ │ └── othername.swift
│ │ │ └── ExecutableTargetTwoFiles/
│ │ │ ├── one.swift
│ │ │ └── two.swift
│ │ ├── ParseableInterfaces/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ └── B.swift
│ │ ├── PkgConfig/
│ │ │ ├── CSystemModule/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── module.modulemap
│ │ │ │ └── shim.h
│ │ │ ├── SystemModule/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── SystemModule.c
│ │ │ │ └── include/
│ │ │ │ └── SystemModule.h
│ │ │ ├── SystemModuleUser/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── main.swift
│ │ │ └── SystemModuleUserClang/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.c
│ │ ├── PluginGeneratedResources/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Generator/
│ │ │ │ └── plugin.swift
│ │ │ └── Sources/
│ │ │ └── PluginGeneratedResources/
│ │ │ └── PluginGeneratedResources.swift
│ │ ├── Plugins/
│ │ │ ├── AmbiguousCommands/
│ │ │ │ ├── Dependencies/
│ │ │ │ │ ├── A/
│ │ │ │ │ │ ├── Package.swift
│ │ │ │ │ │ └── Plugins/
│ │ │ │ │ │ └── A.swift
│ │ │ │ │ └── B/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Plugins/
│ │ │ │ │ └── B.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── main.swift
│ │ │ ├── BinaryTargetExePlugin/
│ │ │ │ ├── Dependency/
│ │ │ │ │ └── MyBinaryTargetExeArtifactBundle.artifactbundle/
│ │ │ │ │ ├── info.json
│ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── mytool-macos/
│ │ │ │ │ └── mytool
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyPluginExe/
│ │ │ │ └── main.swift
│ │ │ ├── BinaryToolProductPlugin/
│ │ │ │ ├── Dependency/
│ │ │ │ │ ├── Binaries/
│ │ │ │ │ │ └── MyVendedSourceGenBuildTool.artifactbundle/
│ │ │ │ │ │ ├── info.json
│ │ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ │ └── mytool
│ │ │ │ │ │ └── mytool-macos/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ └── main.swift
│ │ │ ├── BuildToolPluginCompilationError/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLibrary/
│ │ │ │ └── library.swift
│ │ │ ├── ClientOfPluginWithInternalExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── RootTarget/
│ │ │ │ └── main.swift
│ │ │ ├── CommandPluginCompilationError/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MyCommandPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyExecutable/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MyLibrary/
│ │ │ │ └── library.swift
│ │ │ ├── CommandPluginTestStub/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── check-testability/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── diagnostics-stub/
│ │ │ │ │ │ └── diagnostics_stub.swift
│ │ │ │ │ ├── plugin-dependencies-stub/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── targetbuild-stub/
│ │ │ │ │ └── targetbuild_stub.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── InternalModule/
│ │ │ │ │ │ └── InternalModule.swift
│ │ │ │ │ ├── placeholder/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── plugintool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── InternalModuleTests/
│ │ │ │ └── InternalModuleTests.swift
│ │ │ ├── ContrivedTestPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyAmbiguouslyNamedCommandPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyLocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── libpcre/
│ │ │ │ ├── module.modulemap
│ │ │ │ └── sdk_libpcre.h
│ │ │ ├── DependentPlugins/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MyPlugin2/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyClient/
│ │ │ │ │ └── client.swift
│ │ │ │ ├── MyExecutable/
│ │ │ │ │ └── tool.swift
│ │ │ │ └── MyExecutable2/
│ │ │ │ └── tool.swift
│ │ │ ├── IncorrectDependencies/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── MyPlugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyExecutable/
│ │ │ │ │ │ └── MyExecutable.swift
│ │ │ │ │ ├── MyLibrary/
│ │ │ │ │ │ └── Empty.swift
│ │ │ │ │ └── MyPluginExecutable/
│ │ │ │ │ └── MyPluginExecutable.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyExecutableTests/
│ │ │ │ └── MyExecutableTests.swift
│ │ │ ├── InvalidUseOfInternalPluginExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── RootTarget/
│ │ │ │ └── main.swift
│ │ │ ├── LibraryWithLocalBuildToolPluginUsingRemoteTool/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyLocalSourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── MyLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyLibraryTests/
│ │ │ │ └── test.swift
│ │ │ ├── MissingPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MissingPlugin/
│ │ │ │ └── MissingPlugin.swift
│ │ │ ├── MyBinaryToolPlugin/
│ │ │ │ ├── Binaries/
│ │ │ │ │ └── MyVendedSourceGenBuildTool.artifactbundle/
│ │ │ │ │ ├── info.json
│ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ ├── mytool-macos/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── mytool-windows/
│ │ │ │ │ └── mytool.bat
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ ├── bar.in
│ │ │ │ └── main.swift
│ │ │ ├── MyBuildToolPluginDependencies/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyLocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MySourceGenBuildToolLib/
│ │ │ │ └── library.swift
│ │ │ ├── MySourceGenClient/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── MyTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyTests/
│ │ │ │ └── MyTests.swift
│ │ │ ├── MySourceGenPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MySourceGenBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenPrebuildPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginTests/
│ │ │ │ └── MySourceGenPluginTests.swift
│ │ │ ├── MySourceGenPluginNoPreBuildCommands/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginNoPreBuildCommandsTests/
│ │ │ │ ├── MySourceGenPluginNoPreBuildCommandsTests.swift
│ │ │ │ └── lunch.txt
│ │ │ ├── MySourceGenPluginUsingURLBasedAPI/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MySourceGenBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenPrebuildPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginTests/
│ │ │ │ └── MySourceGenPluginTests.swift
│ │ │ ├── PluginCanBeReferencedByProductName/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Exec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── PluginCanBeReferencedByProductName/
│ │ │ │ └── PluginCanBeReferencedByProductName.swift
│ │ │ ├── PluginUsingLocalAndRemoteTool/
│ │ │ │ ├── MyLibrary/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── Sources/
│ │ │ │ │ │ └── MyLibrary/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── Tests/
│ │ │ │ │ └── MyLibraryTests/
│ │ │ │ │ └── test.swift
│ │ │ │ ├── MyPlugin/
│ │ │ │ │ ├── Libraries/
│ │ │ │ │ │ └── LocalToolHelperLibrary/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── Plugins/
│ │ │ │ │ │ └── MyPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── Tools/
│ │ │ │ │ ├── ImpliedLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── LocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── RemoteTool/
│ │ │ │ ├── Libraries/
│ │ │ │ │ └── RemoteToolHelperLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── Tools/
│ │ │ │ └── RemoteTool/
│ │ │ │ └── main.swift
│ │ │ ├── PluginWithInternalExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── PluginScriptTarget/
│ │ │ │ │ └── Script.swift
│ │ │ │ └── Sources/
│ │ │ │ └── PluginExecutable/
│ │ │ │ ├── Utilities.swift
│ │ │ │ └── main.swift
│ │ │ ├── PluginsAndSnippets/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── PluginScriptTarget/
│ │ │ │ │ └── Script.swift
│ │ │ │ ├── Snippets/
│ │ │ │ │ ├── ContainsMain.swift
│ │ │ │ │ ├── ImportsProductTarget.swift
│ │ │ │ │ ├── MySnippet.swift
│ │ │ │ │ └── SubDirectory/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLib/
│ │ │ │ └── MyLib.swift
│ │ │ ├── PrebuildDependsExecutableTarget/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyClient/
│ │ │ │ │ └── client.swift
│ │ │ │ └── MyExecutable/
│ │ │ │ └── tool.swift
│ │ │ ├── SandboxTesterPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ └── main.swift
│ │ │ ├── SandboxViolatingBuildToolPluginCommands/
│ │ │ │ ├── MyLibrary/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── MyLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ └── MyPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Plugins/
│ │ │ │ └── PackageScribblerPlugin/
│ │ │ │ └── plugin.swift
│ │ │ ├── SwiftFilePlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyCustomBuildTool/
│ │ │ │ │ └── SwiftToolsBuildPlugin.swift
│ │ │ │ ├── SimpleSwiftScript.swift
│ │ │ │ └── Sources/
│ │ │ │ └── SwiftFilePluginFixture/
│ │ │ │ └── SwiftFilePluginFixture.swift
│ │ │ └── TransitivePluginOnlyDependency/
│ │ │ ├── Dependencies/
│ │ │ │ ├── Library/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Library/
│ │ │ │ │ └── Library.swift
│ │ │ │ └── PluginOnly/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Plugins/
│ │ │ │ └── MyPlugin/
│ │ │ │ └── plugin.swift
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── TransitivePluginOnlyDependency/
│ │ │ └── TransitivePluginOnlyDependency.swift
│ │ ├── RequiresOlderDeploymentTarget/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── RootPackageWithConditionals/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── client/
│ │ │ │ └── client.swift
│ │ │ └── linuxOnly/
│ │ │ └── linuxOnly.swift
│ │ ├── ShowExecutables/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── deck-of-playing-cards/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── ShowTraits/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── deck-of-playing-cards/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── Simple/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── SkipTests/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Example/
│ │ │ │ └── Example.swift
│ │ │ └── Tests/
│ │ │ └── ExampleTests/
│ │ │ ├── MoreTests.swift
│ │ │ └── Tests.swift
│ │ ├── Spaces Fixture/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Module Name 1/
│ │ │ │ └── Foo.swift
│ │ │ └── Module Name 2/
│ │ │ └── main.swift
│ │ ├── SwiftBuild/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── SwiftPMXCTestHelper/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── SwiftPMXCTestHelper.swift
│ │ │ └── Tests/
│ │ │ ├── ObjCTests/
│ │ │ │ └── ObjCTests.m
│ │ │ └── SwiftPMXCTestHelperTests/
│ │ │ └── SwiftPMXCTestHelperTests.swift
│ │ ├── SwiftRun/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── SystemModules/
│ │ │ ├── CFake/
│ │ │ │ ├── Package.swift
│ │ │ │ └── module.modulemap
│ │ │ └── TestExec/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── TIF/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── TIF/
│ │ │ ├── SomeAlert.swift
│ │ │ ├── SomeAlert.xib
│ │ │ ├── SomeAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── this_is_fine.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── some.txt
│ │ ├── TargetMismatch/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Sample/
│ │ │ └── main.swift
│ │ ├── TargetPackageAccess/
│ │ │ └── libPkg/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── Core/
│ │ │ │ │ └── Core.swift
│ │ │ │ ├── DataManager/
│ │ │ │ │ └── File.swift
│ │ │ │ ├── DataModel/
│ │ │ │ │ └── File.swift
│ │ │ │ ├── ExampleApp/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MainLib/
│ │ │ │ └── Lib.swift
│ │ │ └── Tests/
│ │ │ ├── BlackBoxTests/
│ │ │ │ └── BlackBoxTests.swift
│ │ │ └── MainLibTests/
│ │ │ └── MainLibTests.swift
│ │ ├── TestDiscovery/
│ │ │ ├── Async/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Async/
│ │ │ │ │ └── Async.swift
│ │ │ │ └── Tests/
│ │ │ │ └── AsyncTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Deprecation/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Extensions/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ ├── SwiftTests1.swift
│ │ │ │ ├── SwiftTests2.swift
│ │ │ │ ├── SwiftTests3.swift
│ │ │ │ └── SwiftTests4.swift
│ │ │ ├── IgnoresLinuxMain/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Tests/
│ │ │ │ ├── IgnoresLinuxMainTests/
│ │ │ │ │ └── SomeTest.swift
│ │ │ │ └── LinuxMain.swift
│ │ │ ├── NoTests/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Simple/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── SimplePlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Subclass/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Subclass/
│ │ │ │ │ └── Subclass.swift
│ │ │ │ └── Tests/
│ │ │ │ ├── Module1Tests/
│ │ │ │ │ ├── Tests1.swift
│ │ │ │ │ └── Tests2.swift
│ │ │ │ └── Module2Tests/
│ │ │ │ └── Test1.swift
│ │ │ ├── SwiftTesting/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── SwiftTesting/
│ │ │ │ │ └── SwiftTesting.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SwiftTestingTests/
│ │ │ │ └── SwiftTestingTests.swift
│ │ │ └── hello world/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── hello world/
│ │ │ │ └── hello world.swift
│ │ │ └── Tests/
│ │ │ └── hello world tests/
│ │ │ └── hello world tests.swift
│ │ ├── TestMultipleFailureSwiftTesting/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestMultipleFailureSwiftTestingTests/
│ │ │ └── TestMultipleFailureSwiftTestingTests.swift
│ │ ├── TestMultipleFailureXCTest/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestMultipleFailureXCTestTests/
│ │ │ └── TestMultipleFailureXCTestTests.swift
│ │ ├── TestSingleFailureSwiftTesting/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestFailuresSwiftTestingTests/
│ │ │ └── TestFailuresSwiftTestingTests.swift
│ │ ├── TestSingleFailureXCTest/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestFailuresTests/
│ │ │ └── TestFailuresTests.swift
│ │ ├── TestableAsyncExe/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── TestableAsyncExe1/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableAsyncExe2/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableAsyncExe3/
│ │ │ │ │ └── NonMain.swift
│ │ │ │ └── TestableAsyncExe4/
│ │ │ │ └── NonMain.swift
│ │ │ └── Tests/
│ │ │ └── TestableAsyncExeTests/
│ │ │ └── TestableAsyncExeTests.swift
│ │ ├── TestableExe/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── TestableExe1/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableExe2/
│ │ │ │ │ └── main.swift
│ │ │ │ └── TestableExe3/
│ │ │ │ ├── include/
│ │ │ │ │ └── TestableExe3.h
│ │ │ │ └── main.c
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── TestableExeWithDifferentProductName/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TestableExe/
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── TestableExeWithResources/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TestableExe/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── Unicode/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Sources/
│ │ │ │ ├── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ │ │ └── πשּׁµ𝄞🇺🇳x̱̱̱̱̱̄̄̄̄̄.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄‐tool/
│ │ │ │ └── main.swift
│ │ │ ├── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄Tests/
│ │ │ │ ├── XCTestManifests.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄Tests.swift
│ │ │ └── Utilities/
│ │ │ └── SomeOtherPackage/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── SomeOtherPackage/
│ │ │ └── main.swift
│ │ ├── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ └── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄.swift
│ │ ├── UnreachableTargets/
│ │ │ ├── A/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── ATarget/
│ │ │ │ └── main.swift
│ │ │ ├── B/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── BTarget1/
│ │ │ │ │ └── BTarget1.swift
│ │ │ │ └── BTarget2/
│ │ │ │ └── main.swift
│ │ │ └── C/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── CTarget/
│ │ │ └── main.swift
│ │ ├── VersionSpecificManifest/
│ │ │ ├── Foo.swift
│ │ │ ├── Package.swift
│ │ │ └── Package@swift-5.0.swift
│ │ └── WarningWithinFunction/
│ │ ├── Package.swift
│ │ └── app.swift
│ ├── ModuleAliasing/
│ │ ├── DirectDeps1/
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── App/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Utils/
│ │ │ │ └── FileUtils.swift
│ │ │ └── UtilsPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── FileUtils.swift
│ │ ├── DirectDeps2/
│ │ │ ├── Apkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── AApp/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ └── Bpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ ├── NestedDeps1/
│ │ │ ├── APkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── A/
│ │ │ │ └── File.swift
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ ├── BPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── CPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── XPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Utils/
│ │ │ │ │ └── File.swift
│ │ │ │ └── X/
│ │ │ │ └── File.swift
│ │ │ └── YPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ └── NestedDeps2/
│ │ ├── Apkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── A/
│ │ │ └── File.swift
│ │ ├── AppPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── App/
│ │ │ └── main.swift
│ │ ├── Bpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ ├── Cpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ └── Xpkg/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── Utils/
│ │ └── File.swift
│ ├── ModuleMaps/
│ │ ├── Direct/
│ │ │ ├── App/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── CFoo/
│ │ │ ├── C/
│ │ │ │ ├── foo.c
│ │ │ │ └── foo.h
│ │ │ ├── Package.swift
│ │ │ └── module.modulemap
│ │ └── Transitive/
│ │ ├── packageA/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── packageB/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── y/
│ │ │ └── y.swift
│ │ └── packageC/
│ │ ├── .gitignore
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── x/
│ │ └── x.swift
│ ├── PIFBuilder/
│ │ ├── BasicExecutable/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── BasicExecutable/
│ │ │ └── BasicExecutable.swift
│ │ ├── CCPackage/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CCTarget/
│ │ │ │ ├── include/
│ │ │ │ │ └── test.h
│ │ │ │ └── test.cc
│ │ │ └── executable/
│ │ │ └── executable.swift
│ │ ├── ConditionalBuildSettings/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── ConditionalBuildSettings/
│ │ │ └── ConditionalBuildSettings.swift
│ │ ├── Library/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Library/
│ │ │ │ └── Library.swift
│ │ │ └── Tests/
│ │ │ └── LibraryTests/
│ │ │ └── LibraryTests.swift
│ │ ├── PackageWithSDKSpecialization/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Executable/
│ │ │ │ └── main.swift
│ │ │ └── PackageWithSDKSpecialization/
│ │ │ └── PackageWithSDKSpecialization.swift
│ │ ├── Simple/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Simple/
│ │ │ │ └── Simple.swift
│ │ │ └── Tests/
│ │ │ └── SimpleTests/
│ │ │ └── SimpleTests.swift
│ │ └── UnknownPlatforms/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── UnknownPlatforms/
│ │ └── UnknownPlatforms.swift
│ ├── PartiallyUnusedDependency/
│ │ ├── Dep/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── MyDynamicLibrary/
│ │ │ │ └── Dep.swift
│ │ │ └── MySupportExecutable/
│ │ │ └── exe.swift
│ │ ├── Package.swift
│ │ ├── Plugins/
│ │ │ └── dump-artifacts-plugin.swift
│ │ └── Sources/
│ │ └── MyExecutable/
│ │ └── PartiallyUnusedDependency.swift
│ ├── Resources/
│ │ ├── EmbedInCodeSimple/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── EmbedInCodeSimple/
│ │ │ ├── best.txt
│ │ │ └── main.swift
│ │ ├── FoundationlessClient/
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ ├── UtilsPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ ├── FooUtils.swift
│ │ │ │ └── foo.txt
│ │ │ └── UtilsWithFoundationPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── UtilsWithFoundationPkg/
│ │ │ ├── FooUtils.swift
│ │ │ └── foo.txt
│ │ ├── Localized/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── exe/
│ │ │ ├── Resources/
│ │ │ │ ├── de.lproj/
│ │ │ │ │ └── Localizable.strings
│ │ │ │ ├── es.lproj/
│ │ │ │ │ └── Localizable.strings
│ │ │ │ └── fr.lproj/
│ │ │ │ └── Localizable.strings
│ │ │ └── main.swift
│ │ ├── Moved/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── SeaResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.m
│ │ │ └── SwiftyResource/
│ │ │ ├── foo.txt
│ │ │ └── main.swift
│ │ ├── ResourceRules/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── ResourceRules/
│ │ │ ├── CopiedAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── pixel.imageset/
│ │ │ │ └── Contents.json
│ │ │ ├── ProcessedAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── processedpixel.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── main.swift
│ │ └── Simple/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ ├── CPPResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.mm
│ │ │ ├── ClangResource/
│ │ │ │ ├── Package.m
│ │ │ │ ├── foo.txt
│ │ │ │ └── include/
│ │ │ │ └── Package.h
│ │ │ ├── MixedClangResource/
│ │ │ │ ├── Foo.m
│ │ │ │ ├── bar.c
│ │ │ │ ├── bar.h
│ │ │ │ ├── baz.S
│ │ │ │ ├── foo.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── Foo.h
│ │ │ │ └── qux.cpp
│ │ │ ├── SeaResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.m
│ │ │ └── SwiftyResource/
│ │ │ ├── foo.txt
│ │ │ └── main.swift
│ │ └── Tests/
│ │ └── ClangResourceTests/
│ │ └── ClangResourceTests.m
│ ├── Signing/
│ │ └── Certificates/
│ │ ├── TestIntermediateCA.cer
│ │ ├── TestRootCA.cer
│ │ ├── Test_ec.cer
│ │ ├── Test_ec_key.p8
│ │ ├── Test_ec_key.pem
│ │ ├── Test_ec_self_signed.cer
│ │ ├── Test_ec_self_signed_key.p8
│ │ ├── Test_rsa.cer
│ │ ├── Test_rsa_key.p8
│ │ ├── Test_rsa_key.pem
│ │ ├── Test_rsa_self_signed.cer
│ │ └── Test_rsa_self_signed_key.p8
│ ├── SwiftMigrate/
│ │ ├── ExistentialAnyMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ └── Test.swift
│ │ │ └── Test.swift
│ │ ├── ExistentialAnyWithCommonPluginDependencyMigration/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Plugin/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── CommonLibrary/
│ │ │ │ └── Common.swift
│ │ │ ├── Library/
│ │ │ │ └── Test.swift
│ │ │ └── Tool/
│ │ │ └── tool.swift
│ │ ├── ExistentialAnyWithPluginMigration/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Plugin/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── Library/
│ │ │ │ └── Test.swift
│ │ │ └── Tool/
│ │ │ └── tool.swift
│ │ ├── InferIsolatedConformancesMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ ├── Test.swift
│ │ │ │ └── Test2.swift
│ │ │ ├── Test.swift
│ │ │ └── Test2.swift
│ │ ├── StrictMemorySafetyMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ └── Test.swift
│ │ │ └── Test.swift
│ │ └── UpdateManifest/
│ │ ├── Package.swift
│ │ ├── Package.updated.targets-A-B.swift
│ │ ├── Package.updated.targets-A.swift
│ │ ├── Package.updated.targets-all.swift
│ │ └── Sources/
│ │ ├── A/
│ │ │ └── File.swift
│ │ ├── B/
│ │ │ └── File.swift
│ │ ├── CannotFindSettings/
│ │ │ └── File.swift
│ │ └── CannotFindTarget/
│ │ └── File.swift
│ ├── SwiftSDKs/
│ │ └── Package.swift
│ ├── Traits/
│ │ ├── DisablingEmptyDefaultsExample/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── DisablingEmptyDefaultsExample/
│ │ │ └── Example.swift
│ │ ├── Example/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Example/
│ │ │ │ └── Example.swift
│ │ │ └── Tests/
│ │ │ └── ExampleTests/
│ │ │ └── Tests.swift
│ │ ├── Package1/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package1Library1/
│ │ │ └── Library.swift
│ │ ├── Package10/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── SymbolGraphExtract/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── Package10Library1/
│ │ │ │ └── Library.swift
│ │ │ └── Package10Library2/
│ │ │ └── Library.swift
│ │ ├── Package11/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package11Library1/
│ │ │ └── Library.swift
│ │ ├── Package2/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package2Library1/
│ │ │ └── Library.swift
│ │ ├── Package3/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package3Library1/
│ │ │ └── Library.swift
│ │ ├── Package4/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package4Library1/
│ │ │ └── Library.swift
│ │ ├── Package5/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package5Library1/
│ │ │ └── Library.swift
│ │ ├── Package6/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package6Library1/
│ │ │ └── Library.swift
│ │ ├── Package7/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package7Library1/
│ │ │ └── Library.swift
│ │ ├── Package8/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package6Library1/
│ │ │ └── Library.swift
│ │ ├── Package9/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package9Library1/
│ │ │ └── Library.swift
│ │ └── PackageConditionalDeps/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── PackageConditionalDeps/
│ │ └── PackageConditionalDeps.swift
│ ├── ValidLayouts/
│ │ └── SingleModule/
│ │ ├── ExecutableMixed/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ ├── ExecutableC/
│ │ │ │ └── c.c
│ │ │ ├── ExecutableCxx/
│ │ │ │ └── cxx.cpp
│ │ │ └── ExecutableSwift/
│ │ │ └── main.swift
│ │ ├── ExecutableNew/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── ExecutableNew/
│ │ │ └── main.swift
│ │ └── Library/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── Library/
│ │ └── Foo.swift
│ └── XCBuild/
│ ├── ExecutableProducts/
│ │ ├── Bar/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── BarLib/
│ │ │ │ └── BarLib.swift
│ │ │ ├── bar/
│ │ │ │ └── main.swift
│ │ │ └── cbar/
│ │ │ └── main.c
│ │ └── Foo/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── FooLib/
│ │ │ └── FooLib.swift
│ │ ├── cfoo/
│ │ │ └── main.c
│ │ └── foo/
│ │ └── main.swift
│ ├── Libraries/
│ │ ├── Bar/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── BarLib/
│ │ │ └── BarLib.swift
│ │ └── Foo/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CFooLib/
│ │ │ ├── CFooLib.m
│ │ │ └── include/
│ │ │ └── CFooLib.h
│ │ └── FooLib/
│ │ └── FooLib.swift
│ ├── SystemTargets/
│ │ ├── Foo/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── SystemLib/
│ │ │ │ └── module.modulemap
│ │ │ └── foo/
│ │ │ └── main.swift
│ │ └── Inputs/
│ │ ├── libsys.c
│ │ ├── libsys.h
│ │ └── libsys.pc
│ └── TestProducts/
│ ├── Bar/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── BarLib/
│ │ ├── BarLib.m
│ │ └── include/
│ │ └── BarLib.h
│ └── Foo/
│ ├── Package.swift
│ ├── Sources/
│ │ └── FooLib/
│ │ └── FooLib.swift
│ └── Tests/
│ ├── CFooTests/
│ │ └── tests.m
│ └── FooTests/
│ └── FooTests.swift
├── LICENSE.txt
├── NOTICE.txt
├── Package.swift
├── README.md
├── Sources/
│ ├── AppleProductTypes/
│ │ └── Product.swift
│ ├── Basics/
│ │ ├── Archiver/
│ │ │ ├── Archiver.swift
│ │ │ ├── TarArchiver.swift
│ │ │ ├── UniversalArchiver.swift
│ │ │ └── ZipArchiver.swift
│ │ ├── ArrayHelpers.swift
│ │ ├── AuthorizationProvider.swift
│ │ ├── CMakeLists.txt
│ │ ├── Cancellator.swift
│ │ ├── Collections/
│ │ │ ├── ByteString+Extensions.swift
│ │ │ ├── Dictionary+Extensions.swift
│ │ │ ├── IdentifiableSet.swift
│ │ │ └── String+Extensions.swift
│ │ ├── Concurrency/
│ │ │ ├── AsyncProcess.swift
│ │ │ ├── ConcurrencyHelpers.swift
│ │ │ ├── NSLock+Extensions.swift
│ │ │ ├── SendableBox.swift
│ │ │ ├── ThreadSafeArrayStore.swift
│ │ │ ├── ThreadSafeBox.swift
│ │ │ ├── ThreadSafeKeyValueStore.swift
│ │ │ ├── ThrowingDefer.swift
│ │ │ └── TokenBucket.swift
│ │ ├── DispatchTimeInterval+Extensions.swift
│ │ ├── Environment/
│ │ │ ├── Environment.swift
│ │ │ ├── EnvironmentKey.swift
│ │ │ └── EnvironmentShims.swift
│ │ ├── Errors.swift
│ │ ├── FileSystem/
│ │ │ ├── AbsolutePath.swift
│ │ │ ├── CommonParentDirectory.swift
│ │ │ ├── FileSystem+Extensions.swift
│ │ │ ├── InMemoryFileSystem.swift
│ │ │ ├── NativePathExtensions.swift
│ │ │ ├── RelativePath.swift
│ │ │ ├── TSCAdapters.swift
│ │ │ ├── TemporaryFile.swift
│ │ │ ├── VFSOverlay.swift
│ │ │ └── VirtualFileSystem.swift
│ │ ├── Graph/
│ │ │ ├── AdjacencyMatrix.swift
│ │ │ ├── DirectedGraph.swift
│ │ │ ├── GraphAlgorithms.swift
│ │ │ └── UndirectedGraph.swift
│ │ ├── HTTPClient/
│ │ │ ├── HTTPClient.swift
│ │ │ ├── HTTPClientConfiguration.swift
│ │ │ ├── HTTPClientError.swift
│ │ │ ├── HTTPClientHeaders.swift
│ │ │ ├── HTTPClientRequest.swift
│ │ │ ├── HTTPClientResponse.swift
│ │ │ ├── HTTPMethod.swift
│ │ │ ├── LegacyHTTPClient.swift
│ │ │ ├── LegacyHTTPClientRequest.swift
│ │ │ └── URLSessionHTTPClient.swift
│ │ ├── ImportScanning.swift
│ │ ├── JSON+Extensions.swift
│ │ ├── JSONDecoder+Extensions.swift
│ │ ├── Netrc.swift
│ │ ├── OSSignpost.swift
│ │ ├── Observability.swift
│ │ ├── Process.swift
│ │ ├── ProgressAnimation/
│ │ │ ├── NinjaProgressAnimation.swift
│ │ │ ├── PercentProgressAnimation.swift
│ │ │ ├── ProgressAnimationProtocol.swift
│ │ │ ├── SingleLinePercentProgressAnimation.swift
│ │ │ └── ThrottledProgressAnimation.swift
│ │ ├── SQLite.swift
│ │ ├── SQLiteBackedCache.swift
│ │ ├── Sandbox.swift
│ │ ├── SendableTimeInterval.swift
│ │ ├── Serialization/
│ │ │ └── SerializedJSON.swift
│ │ ├── SourceControlURL.swift
│ │ ├── SwiftVersion.swift
│ │ ├── TestingLibrary.swift
│ │ ├── Triple+Basics.swift
│ │ ├── URL.swift
│ │ ├── Vendor/
│ │ │ ├── README.md
│ │ │ ├── Triple+Platforms.swift
│ │ │ └── Triple.swift
│ │ ├── Version+Extensions.swift
│ │ └── WritableByteStream+Extensions.swift
│ ├── BinarySymbols/
│ │ ├── CMakeLists.txt
│ │ ├── ClangHostDefaultObjectsDetector.swift
│ │ ├── LLVMObjdumpSymbolProvider.swift
│ │ ├── ReferencedSymbols.swift
│ │ └── SymbolProvider.swift
│ ├── Build/
│ │ ├── BuildDescription/
│ │ │ ├── ClangModuleBuildDescription.swift
│ │ │ ├── ModuleBuildDescription.swift
│ │ │ ├── PluginBuildDescription.swift
│ │ │ ├── ProductBuildDescription.swift
│ │ │ ├── ResolvedModule+BuildDescription.swift
│ │ │ └── SwiftModuleBuildDescription.swift
│ │ ├── BuildManifest/
│ │ │ ├── LLBuildManifestBuilder+Clang.swift
│ │ │ ├── LLBuildManifestBuilder+Product.swift
│ │ │ ├── LLBuildManifestBuilder+Resources.swift
│ │ │ ├── LLBuildManifestBuilder+Swift.swift
│ │ │ └── LLBuildManifestBuilder.swift
│ │ ├── BuildOperation.swift
│ │ ├── BuildPlan/
│ │ │ ├── BuildPlan+Clang.swift
│ │ │ ├── BuildPlan+Product.swift
│ │ │ ├── BuildPlan+Swift.swift
│ │ │ ├── BuildPlan+Test.swift
│ │ │ └── BuildPlan.swift
│ │ ├── CMakeLists.txt
│ │ ├── ClangSupport.swift
│ │ ├── LLBuildCommands.swift
│ │ ├── LLBuildDescription.swift
│ │ ├── LLBuildProgressTracker.swift
│ │ ├── SwiftCompilerOutputParser.swift
│ │ └── TestObservation.swift
│ ├── CMakeLists.txt
│ ├── Commands/
│ │ ├── CMakeLists.txt
│ │ ├── CommandWorkspaceDelegate.swift
│ │ ├── PackageCommands/
│ │ │ ├── APIDiff.swift
│ │ │ ├── AddDependency.swift
│ │ │ ├── AddProduct.swift
│ │ │ ├── AddSetting.swift
│ │ │ ├── AddTarget.swift
│ │ │ ├── AddTargetDependency.swift
│ │ │ ├── ArchiveSource.swift
│ │ │ ├── AuditBinaryArtifact.swift
│ │ │ ├── BuildServer.swift
│ │ │ ├── CompletionCommand.swift
│ │ │ ├── ComputeChecksum.swift
│ │ │ ├── Config.swift
│ │ │ ├── Describe.swift
│ │ │ ├── DumpCommands.swift
│ │ │ ├── EditCommands.swift
│ │ │ ├── Format.swift
│ │ │ ├── GenerateSBOM.swift
│ │ │ ├── Init.swift
│ │ │ ├── Install.swift
│ │ │ ├── Learn.swift
│ │ │ ├── Migrate.swift
│ │ │ ├── PluginCommand.swift
│ │ │ ├── ResetCommands.swift
│ │ │ ├── Resolve.swift
│ │ │ ├── ShowDependencies.swift
│ │ │ ├── ShowExecutables.swift
│ │ │ ├── ShowTraits.swift
│ │ │ ├── SwiftPackageCommand.swift
│ │ │ ├── ToolsVersionCommand.swift
│ │ │ └── Update.swift
│ │ ├── README.md
│ │ ├── Snippets/
│ │ │ ├── Card.swift
│ │ │ ├── CardEvent.swift
│ │ │ ├── CardStack.swift
│ │ │ ├── Cards/
│ │ │ │ ├── SnippetCard.swift
│ │ │ │ ├── SnippetGroupCard.swift
│ │ │ │ └── TopCard.swift
│ │ │ └── Colorful.swift
│ │ ├── SwiftBuildCommand.swift
│ │ ├── SwiftRunCommand.swift
│ │ ├── SwiftTestCommand.swift
│ │ └── Utilities/
│ │ ├── APIDigester.swift
│ │ ├── DOTManifestSerializer.swift
│ │ ├── DependenciesSerializer.swift
│ │ ├── DescribedPackage.swift
│ │ ├── MermaidPackageSerializer.swift
│ │ ├── MultiRootSupport.swift
│ │ ├── PlainTextEncoder.swift
│ │ ├── PluginDelegate.swift
│ │ ├── RefactoringSupport.swift
│ │ ├── SymbolGraphExtract.swift
│ │ ├── TestingSupport.swift
│ │ └── XCTEvents.swift
│ ├── CoreCommands/
│ │ ├── BuildSystemSupport.swift
│ │ ├── CMakeLists.txt
│ │ ├── Options.swift
│ │ ├── SwiftCommandObservabilityHandler.swift
│ │ └── SwiftCommandState.swift
│ ├── DriverSupport/
│ │ ├── CMakeLists.txt
│ │ ├── DriverSupportUtils.swift
│ │ └── SPMSwiftDriverExecutor.swift
│ ├── LLBuildManifest/
│ │ ├── CMakeLists.txt
│ │ ├── Command.swift
│ │ ├── LLBuildManifest.swift
│ │ ├── LLBuildManifestWriter.swift
│ │ ├── Node.swift
│ │ ├── Target.swift
│ │ └── Tools.swift
│ ├── PackageCollections/
│ │ ├── API.swift
│ │ ├── CMakeLists.txt
│ │ ├── Model/
│ │ │ ├── CVE.swift
│ │ │ ├── Collection.swift
│ │ │ ├── License.swift
│ │ │ ├── PackageList.swift
│ │ │ ├── PackageTypes.swift
│ │ │ ├── Search.swift
│ │ │ └── TargetListResult.swift
│ │ ├── PackageCollections+CertificatePolicy.swift
│ │ ├── PackageCollections+Configuration.swift
│ │ ├── PackageCollections+Storage.swift
│ │ ├── PackageCollections+Validation.swift
│ │ ├── PackageCollections.swift
│ │ ├── PackageIndex+Configuration.swift
│ │ ├── PackageIndex.swift
│ │ ├── PackageIndexAndCollections.swift
│ │ ├── Providers/
│ │ │ ├── GitHubPackageMetadataProvider.swift
│ │ │ ├── JSONPackageCollectionProvider.swift
│ │ │ ├── PackageCollectionProvider.swift
│ │ │ └── PackageMetadataProvider.swift
│ │ ├── Storage/
│ │ │ ├── FilePackageCollectionsSourcesStorage.swift
│ │ │ ├── PackageCollectionsSourcesStorage.swift
│ │ │ ├── PackageCollectionsStorage.swift
│ │ │ ├── SQLitePackageCollectionsStorage.swift
│ │ │ └── Trie.swift
│ │ └── Utility.swift
│ ├── PackageCollectionsCommand/
│ │ └── PackageCollectionsCommand.swift
│ ├── PackageCollectionsModel/
│ │ ├── CMakeLists.txt
│ │ ├── Formats/
│ │ │ └── v1.md
│ │ ├── PackageCollectionModel+v1.swift
│ │ └── PackageCollectionModel.swift
│ ├── PackageCollectionsSigning/
│ │ ├── CMakeLists.txt
│ │ ├── CertificatePolicy.swift
│ │ ├── PackageCollectionSigning.swift
│ │ ├── Signature.swift
│ │ ├── Utilities/
│ │ │ ├── Base64URL.swift
│ │ │ └── Utilities.swift
│ │ ├── X509Extensions.swift
│ │ └── embedded_resources.swift
│ ├── PackageFingerprint/
│ │ ├── CMakeLists.txt
│ │ ├── FilePackageFingerprintStorage.swift
│ │ ├── Model.swift
│ │ └── PackageFingerprintStorage.swift
│ ├── PackageGraph/
│ │ ├── BoundVersion.swift
│ │ ├── CMakeLists.txt
│ │ ├── DependencyMirrors.swift
│ │ ├── Diagnostics.swift
│ │ ├── GraphLoadingNode.swift
│ │ ├── ModuleAliasTracker.swift
│ │ ├── ModulesGraph+Loading.swift
│ │ ├── ModulesGraph.swift
│ │ ├── PackageContainer.swift
│ │ ├── PackageGraphRoot.swift
│ │ ├── PackageModel+Extensions.swift
│ │ ├── PackageRequirement.swift
│ │ ├── README.md
│ │ ├── Resolution/
│ │ │ ├── DependencyResolutionNode.swift
│ │ │ ├── DependencyResolverBinding.swift
│ │ │ ├── DependencyResolverDelegate.swift
│ │ │ ├── DependencyResolverError.swift
│ │ │ ├── PlatformVersionProvider.swift
│ │ │ ├── PubGrub/
│ │ │ │ ├── Assignment.swift
│ │ │ │ ├── ContainerProvider.swift
│ │ │ │ ├── DiagnosticReportBuilder.swift
│ │ │ │ ├── Incompatibility.swift
│ │ │ │ ├── PartialSolution.swift
│ │ │ │ ├── PubGrubDependencyResolver.swift
│ │ │ │ ├── PubGrubPackageContainer.swift
│ │ │ │ └── Term.swift
│ │ │ ├── ResolvedModule.swift
│ │ │ ├── ResolvedPackage.swift
│ │ │ └── ResolvedProduct.swift
│ │ ├── ResolvedPackagesStore.swift
│ │ ├── Version+Extensions.swift
│ │ └── VersionSetSpecifier.swift
│ ├── PackageLoading/
│ │ ├── CMakeLists.txt
│ │ ├── ContextModel.swift
│ │ ├── Diagnostics.swift
│ │ ├── ManifestJSONParser.swift
│ │ ├── ManifestLoader+Validation.swift
│ │ ├── ManifestLoader.swift
│ │ ├── ManifestSignatureParser.swift
│ │ ├── ModuleMapGenerator.swift
│ │ ├── PackageBuilder.swift
│ │ ├── PkgConfig.swift
│ │ ├── Platform.swift
│ │ ├── README.md
│ │ ├── RegistryReleaseMetadataSerialization.swift
│ │ ├── Target+PkgConfig.swift
│ │ ├── TargetSourcesBuilder.swift
│ │ └── ToolsVersionParser.swift
│ ├── PackageManagerDocs/
│ │ ├── Documentation.docc/
│ │ │ ├── BundlingResources.md
│ │ │ ├── ContinuousIntegration.md
│ │ │ ├── CreatingCLanguageTargets.md
│ │ │ ├── CreatingSwiftPackage.md
│ │ │ ├── Dependencies/
│ │ │ │ ├── AddingDependencies.md
│ │ │ │ ├── AddingSystemLibraryDependency.md
│ │ │ │ ├── EditingDependencyPackage.md
│ │ │ │ ├── ExampleSystemLibraryPkgConfig.md
│ │ │ │ ├── PackageTraits.md
│ │ │ │ └── ResolvingDependencyFailures.md
│ │ │ ├── Documentation.md
│ │ │ ├── GeneratingSBOMs.md
│ │ │ ├── GettingStarted.md
│ │ │ ├── IntroducingPackages.md
│ │ │ ├── ModuleAliasing.md
│ │ │ ├── Package/
│ │ │ │ ├── PackageAddDependency.md
│ │ │ │ ├── PackageAddProduct.md
│ │ │ │ ├── PackageAddSetting.md
│ │ │ │ ├── PackageAddTarget.md
│ │ │ │ ├── PackageAddTargetDependency.md
│ │ │ │ ├── PackageArchiveSource.md
│ │ │ │ ├── PackageClean.md
│ │ │ │ ├── PackageCompletionTool.md
│ │ │ │ ├── PackageComputeChecksum.md
│ │ │ │ ├── PackageConfigGetMirror.md
│ │ │ │ ├── PackageConfigSetMirror.md
│ │ │ │ ├── PackageConfigUnsetMirror.md
│ │ │ │ ├── PackageDescribe.md
│ │ │ │ ├── PackageDiagnoseAPIBreakingChange.md
│ │ │ │ ├── PackageDumpPackage.md
│ │ │ │ ├── PackageDumpSymbolGraph.md
│ │ │ │ ├── PackageEdit.md
│ │ │ │ ├── PackageExperimentalInstall.md
│ │ │ │ ├── PackageExperimentalUninstall.md
│ │ │ │ ├── PackageGenerateSBOM.md
│ │ │ │ ├── PackageInit.md
│ │ │ │ ├── PackageMigrate.md
│ │ │ │ ├── PackagePlugin.md
│ │ │ │ ├── PackagePurgeCache.md
│ │ │ │ ├── PackageReset.md
│ │ │ │ ├── PackageResolve.md
│ │ │ │ ├── PackageShowDependencies.md
│ │ │ │ ├── PackageShowExecutables.md
│ │ │ │ ├── PackageShowTraits.md
│ │ │ │ ├── PackageToolsVersion.md
│ │ │ │ ├── PackageUnedit.md
│ │ │ │ └── PackageUpdate.md
│ │ │ ├── PackageCollections/
│ │ │ │ ├── PackageCollectionAdd.md
│ │ │ │ ├── PackageCollectionDescribe.md
│ │ │ │ ├── PackageCollectionList.md
│ │ │ │ ├── PackageCollectionRefresh.md
│ │ │ │ ├── PackageCollectionRemove.md
│ │ │ │ └── PackageCollectionSearch.md
│ │ │ ├── PackageCollections.md
│ │ │ ├── PackageRegistry/
│ │ │ │ ├── PackageRegistryLogin.md
│ │ │ │ ├── PackageRegistryLogout.md
│ │ │ │ ├── PackageRegistryPublish.md
│ │ │ │ ├── PackageRegistrySet.md
│ │ │ │ └── PackageRegistryUnset.md
│ │ │ ├── PackageSecurity.md
│ │ │ ├── Plugins/
│ │ │ │ ├── EnableBuildPlugin.md
│ │ │ │ ├── EnableCommandPlugin.md
│ │ │ │ ├── WritingBuildToolPlugin.md
│ │ │ │ └── WritingCommandPlugin.md
│ │ │ ├── Plugins.md
│ │ │ ├── RegistryServerSpecification.md
│ │ │ ├── ReleasingPublishingAPackage.md
│ │ │ ├── ResolvingPackageVersions.md
│ │ │ ├── SDK/
│ │ │ │ ├── SDKConfigurationReset.md
│ │ │ │ ├── SDKConfigurationSet.md
│ │ │ │ ├── SDKConfigurationShow.md
│ │ │ │ ├── SDKConfigure.md
│ │ │ │ ├── SDKInstall.md
│ │ │ │ ├── SDKList.md
│ │ │ │ └── SDKRemove.md
│ │ │ ├── SettingSwiftToolsVersion.md
│ │ │ ├── SwiftBuild.md
│ │ │ ├── SwiftBuildPreview.md
│ │ │ ├── SwiftPMAsALibrary.md
│ │ │ ├── SwiftPackageCollectionCommands.md
│ │ │ ├── SwiftPackageCommands.md
│ │ │ ├── SwiftPackageRegistryCommands.md
│ │ │ ├── SwiftRun.md
│ │ │ ├── SwiftSDKCommands.md
│ │ │ ├── SwiftTest.md
│ │ │ ├── SwiftVersionSpecificPackaging.md
│ │ │ ├── UsingBuildConfigurations.md
│ │ │ ├── UsingShellCompletion.md
│ │ │ └── UsingSwiftPackageRegistry.md
│ │ ├── EmptyFile.swift
│ │ └── README.md
│ ├── PackageMetadata/
│ │ └── PackageMetadata.swift
│ ├── PackageModel/
│ │ ├── ArtifactsArchiveMetadata.swift
│ │ ├── BuildConfiguration.swift
│ │ ├── BuildEnvironment.swift
│ │ ├── BuildFlags.swift
│ │ ├── BuildSettings.swift
│ │ ├── CMakeLists.txt
│ │ ├── DependencyMapper.swift
│ │ ├── Diagnostics.swift
│ │ ├── EnabledTrait.swift
│ │ ├── IdentityResolver.swift
│ │ ├── InstalledSwiftPMConfiguration.swift
│ │ ├── Manifest/
│ │ │ ├── Manifest+Traits.swift
│ │ │ ├── Manifest.swift
│ │ │ ├── PackageConditionDescription.swift
│ │ │ ├── PackageDependencyDescription.swift
│ │ │ ├── PlatformDescription.swift
│ │ │ ├── ProductDescription.swift
│ │ │ ├── SystemPackageProviderDescription.swift
│ │ │ ├── TargetBuildSettingDescription.swift
│ │ │ ├── TargetDescription.swift
│ │ │ ├── TraitConfiguration.swift
│ │ │ └── TraitDescription.swift
│ │ ├── ManifestSourceGeneration.swift
│ │ ├── MinimumDeploymentTarget.swift
│ │ ├── Module/
│ │ │ ├── BinaryModule.swift
│ │ │ ├── ClangModule.swift
│ │ │ ├── Module.swift
│ │ │ ├── PluginModule.swift
│ │ │ ├── SwiftModule.swift
│ │ │ └── SystemLibraryModule.swift
│ │ ├── ModuleMapType.swift
│ │ ├── PackageIdentity.swift
│ │ ├── PackageModel.swift
│ │ ├── PackageReference.swift
│ │ ├── Platform.swift
│ │ ├── PlatformRegistry.swift
│ │ ├── PrebuiltLibrary.swift
│ │ ├── Product.swift
│ │ ├── README.md
│ │ ├── Registry.swift
│ │ ├── RegistryReleaseMetadata.swift
│ │ ├── Resource.swift
│ │ ├── Sanitizers.swift
│ │ ├── Snippets/
│ │ │ ├── Model/
│ │ │ │ ├── Snippet.swift
│ │ │ │ └── SnippetGroup.swift
│ │ │ └── Parsing/
│ │ │ └── PlainTextSnippetExtractor.swift
│ │ ├── Sources.swift
│ │ ├── SupportedLanguageExtension.swift
│ │ ├── SwiftLanguageVersion.swift
│ │ ├── SwiftSDKs/
│ │ │ ├── SwiftSDK.swift
│ │ │ ├── SwiftSDKBundle.swift
│ │ │ ├── SwiftSDKBundleStore.swift
│ │ │ └── SwiftSDKConfigurationStore.swift
│ │ ├── Toolchain+SupportedFeatures.swift
│ │ ├── Toolchain.swift
│ │ ├── ToolchainConfiguration.swift
│ │ ├── ToolsVersion.swift
│ │ ├── ToolsVersionSpecificationGeneration.swift
│ │ ├── Toolset.swift
│ │ ├── UserToolchain.swift
│ │ └── WindowsToolchainInfo.swift
│ ├── PackageRegistry/
│ │ ├── CMakeLists.txt
│ │ ├── ChecksumTOFU.swift
│ │ ├── RegistryClient.swift
│ │ ├── RegistryConfiguration.swift
│ │ ├── RegistryDownloadsManager.swift
│ │ ├── SignatureValidation.swift
│ │ └── SigningEntityTOFU.swift
│ ├── PackageRegistryCommand/
│ │ ├── CMakeLists.txt
│ │ ├── PackageRegistryCommand+Auth.swift
│ │ ├── PackageRegistryCommand+Publish.swift
│ │ └── PackageRegistryCommand.swift
│ ├── PackageSigning/
│ │ ├── CMakeLists.txt
│ │ ├── CertificateStores.swift
│ │ ├── SignatureProvider.swift
│ │ ├── SigningEntity/
│ │ │ ├── FilePackageSigningEntityStorage.swift
│ │ │ ├── PackageSigningEntityStorage.swift
│ │ │ └── SigningEntity.swift
│ │ ├── SigningIdentity.swift
│ │ ├── VerifierPolicies.swift
│ │ ├── X509Extensions.swift
│ │ └── embedded_resources.swift
│ ├── QueryEngine/
│ │ ├── CMakeLists.txt
│ │ ├── CacheKey.swift
│ │ ├── FileCacheRecord.swift
│ │ ├── Query.swift
│ │ └── QueryEngine.swift
│ ├── Runtimes/
│ │ ├── CMakeLists.txt
│ │ ├── CompilerPluginSupport/
│ │ │ ├── CMakeLists.txt
│ │ │ └── TargetExtensions.swift
│ │ ├── PackageDescription/
│ │ │ ├── BuildSettings.swift
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Context.swift
│ │ │ ├── LanguageStandardSettings.swift
│ │ │ ├── PackageDependency.swift
│ │ │ ├── PackageDependencyTrait.swift
│ │ │ ├── PackageDescription.docc/
│ │ │ │ ├── Curation/
│ │ │ │ │ ├── BuildConfiguration.md
│ │ │ │ │ ├── BuildSettingCondition.md
│ │ │ │ │ ├── CLanguageStandard.md
│ │ │ │ │ ├── CSetting.md
│ │ │ │ │ ├── CXXLanguageStandard.md
│ │ │ │ │ ├── CXXSetting.md
│ │ │ │ │ ├── Dependency-Trait.md
│ │ │ │ │ ├── Dependency.md
│ │ │ │ │ ├── Extensions/
│ │ │ │ │ │ ├── CLanguageStandard-hash.md
│ │ │ │ │ │ ├── CLanguageStandard-hashValue.md
│ │ │ │ │ │ ├── CLanguageStandard-notEqual.md
│ │ │ │ │ │ ├── CXXLanguageStandard-hash.md
│ │ │ │ │ │ ├── CXXLanguageStandard-hashValue.md
│ │ │ │ │ │ ├── CXXLanguageStandard-notEqual.md
│ │ │ │ │ │ ├── LanguageTag-hash.md
│ │ │ │ │ │ ├── LanguageTag-hashValue.md
│ │ │ │ │ │ ├── LanguageTag-initRawValue.md
│ │ │ │ │ │ ├── LanguageTag-notEqual.md
│ │ │ │ │ │ ├── LanguageTag-rawValue.md
│ │ │ │ │ │ ├── Library-LibraryType-hash.md
│ │ │ │ │ │ ├── Library-LibraryType-hashValue.md
│ │ │ │ │ │ ├── Library-LibraryType-initRawValue.md
│ │ │ │ │ │ ├── Library-LibraryType-notEqual.md
│ │ │ │ │ │ ├── Library-LibraryType.md
│ │ │ │ │ │ ├── Product-Executable.md
│ │ │ │ │ │ ├── Resource-Localization-hash.md
│ │ │ │ │ │ ├── Resource-Localization-hashValue.md
│ │ │ │ │ │ ├── Resource-Localization-notEqual.md
│ │ │ │ │ │ ├── Target-TargetType-hash.md
│ │ │ │ │ │ ├── Target-TargetType-hashValue.md
│ │ │ │ │ │ └── Target-TargetType-notEqual.md
│ │ │ │ │ ├── LanguageTag.md
│ │ │ │ │ ├── Library.md
│ │ │ │ │ ├── LinkerSetting.md
│ │ │ │ │ ├── Package.md
│ │ │ │ │ ├── Platform-notEqual.md
│ │ │ │ │ ├── Platform.md
│ │ │ │ │ ├── Plugin.md
│ │ │ │ │ ├── PluginCapability.md
│ │ │ │ │ ├── PluginCommandIntent.md
│ │ │ │ │ ├── PluginPermission.md
│ │ │ │ │ ├── PluginUsage.md
│ │ │ │ │ ├── Product.md
│ │ │ │ │ ├── Resource-Localization.md
│ │ │ │ │ ├── Resource.md
│ │ │ │ │ ├── SupportedPlatforms-notEqual.md
│ │ │ │ │ ├── SupportedPlatforms.md
│ │ │ │ │ ├── SwiftLanguageMode.md
│ │ │ │ │ ├── SwiftSetting.md
│ │ │ │ │ ├── SystemPackageProvider.md
│ │ │ │ │ ├── Target-Dependency.md
│ │ │ │ │ ├── Target-TargetDependencyCondition.md
│ │ │ │ │ ├── Target-TargetType.md
│ │ │ │ │ ├── Target.md
│ │ │ │ │ ├── Trait.md
│ │ │ │ │ └── Version.md
│ │ │ │ ├── Info.plist
│ │ │ │ └── PackageDescription.md
│ │ │ ├── PackageDescription.swift
│ │ │ ├── PackageDescriptionSerialization.swift
│ │ │ ├── PackageDescriptionSerializationConversion.swift
│ │ │ ├── PackageRequirement.swift
│ │ │ ├── Product.swift
│ │ │ ├── Resource.swift
│ │ │ ├── SupportedPlatforms.swift
│ │ │ ├── Target.swift
│ │ │ ├── Trait.swift
│ │ │ ├── Version+StringLiteralConvertible.swift
│ │ │ ├── Version.swift
│ │ │ └── WarningLevel.swift
│ │ ├── PackagePlugin/
│ │ │ ├── ArgumentExtractor.swift
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Command.swift
│ │ │ ├── Context.swift
│ │ │ ├── Diagnostics.swift
│ │ │ ├── Documentation.docc/
│ │ │ │ ├── Curation/
│ │ │ │ │ ├── ArgumentExtractor.md
│ │ │ │ │ ├── BinaryArtifactTarget.md
│ │ │ │ │ ├── BuildToolPlugin.md
│ │ │ │ │ ├── ClangSourceModuleTarget.md
│ │ │ │ │ ├── Command.md
│ │ │ │ │ ├── CommandPlugin.md
│ │ │ │ │ ├── Diagnostics.md
│ │ │ │ │ ├── ExecutableProduct.md
│ │ │ │ │ ├── File.md
│ │ │ │ │ ├── FileList.md
│ │ │ │ │ ├── FileType.md
│ │ │ │ │ ├── LibraryProduct.md
│ │ │ │ │ ├── LibraryProduct_Kind.md
│ │ │ │ │ ├── ModuleKind.md
│ │ │ │ │ ├── Package.md
│ │ │ │ │ ├── PackageDependency.md
│ │ │ │ │ ├── PackageManager.md
│ │ │ │ │ ├── PackageManagerProxyError.md
│ │ │ │ │ ├── PackageManager_BuildConfiguration.md
│ │ │ │ │ ├── PackageManager_BuildLogVerbosity.md
│ │ │ │ │ ├── PackageManager_BuildParameters.md
│ │ │ │ │ ├── PackageManager_BuildResult.md
│ │ │ │ │ ├── PackageManager_BuildResult_BuiltArtifact.md
│ │ │ │ │ ├── PackageManager_BuildSubset.md
│ │ │ │ │ ├── PackageManager_SymbolGraphOptions.md
│ │ │ │ │ ├── PackageManager_SymbolGraphOptions_AccessLevel.md
│ │ │ │ │ ├── PackageManager_SymbolGraphResult.md
│ │ │ │ │ ├── PackageManager_TestParameters.md
│ │ │ │ │ ├── PackageManager_TestResult.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase_Test.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase_Test_Result.md
│ │ │ │ │ ├── PackageManager_TestSubset.md
│ │ │ │ │ ├── PackageOrigin.md
│ │ │ │ │ ├── Path.md
│ │ │ │ │ ├── PathList.md
│ │ │ │ │ ├── Plugin.md
│ │ │ │ │ ├── PluginContext.md
│ │ │ │ │ ├── PluginContextError.md
│ │ │ │ │ ├── PluginDeserializationError.md
│ │ │ │ │ ├── Product.md
│ │ │ │ │ ├── SourceModuleTarget.md
│ │ │ │ │ ├── SwiftSourceModuleTarget.md
│ │ │ │ │ ├── SystemLibraryTarget.md
│ │ │ │ │ ├── Target.md
│ │ │ │ │ ├── TargetDependency.md
│ │ │ │ │ └── ToolsVersion.md
│ │ │ │ ├── Documentation.md
│ │ │ │ └── Info.plist
│ │ │ ├── Errors.swift
│ │ │ ├── PackageManagerProxy.swift
│ │ │ ├── PackageModel.swift
│ │ │ ├── Path.swift
│ │ │ ├── Plugin.swift
│ │ │ ├── PluginContextDeserializer.swift
│ │ │ ├── PluginMessages.swift
│ │ │ ├── Protocols.swift
│ │ │ └── Utilities.swift
│ │ └── cmake/
│ │ └── modules/
│ │ ├── EmitSwiftInterface.cmake
│ │ ├── InstallSwiftInterface.cmake
│ │ └── PlatformInfo.cmake
│ ├── SBOMModel/
│ │ ├── CMakeLists.txt
│ │ ├── Converter/
│ │ │ ├── CycloneDXConverter.swift
│ │ │ └── SPDXConverter.swift
│ │ ├── Core/
│ │ │ ├── SBOMCommit.swift
│ │ │ ├── SBOMComponent.swift
│ │ │ ├── SBOMDependencies.swift
│ │ │ ├── SBOMDocument.swift
│ │ │ ├── SBOMIdentifier.swift
│ │ │ ├── SBOMLicense.swift
│ │ │ ├── SBOMMetadata.swift
│ │ │ ├── SBOMOriginator.swift
│ │ │ ├── SBOMPerson.swift
│ │ │ ├── SBOMRegistryEntry.swift
│ │ │ ├── SBOMRelationship.swift
│ │ │ ├── SBOMSpec.swift
│ │ │ ├── SBOMTool.swift
│ │ │ └── SBOMVersionRegistry.swift
│ │ ├── CycloneDX/
│ │ │ ├── CycloneDXComponent.swift
│ │ │ ├── CycloneDXConstants.swift
│ │ │ ├── CycloneDXDependency.swift
│ │ │ ├── CycloneDXDocument.swift
│ │ │ ├── CycloneDXExternalReference.swift
│ │ │ ├── CycloneDXLicense.swift
│ │ │ ├── CycloneDXMetadata.swift
│ │ │ ├── CycloneDXPedigree.swift
│ │ │ ├── CycloneDXProperty.swift
│ │ │ └── Resources/
│ │ │ └── cyclonedx-1.7.schema.json
│ │ ├── Encoder/
│ │ │ └── SBOMEncoder.swift
│ │ ├── Extractor/
│ │ │ ├── DependencySourceStrategy.swift
│ │ │ ├── PURL.swift
│ │ │ ├── SBOMCache.swift
│ │ │ ├── SBOMDependenciesExtractor.swift
│ │ │ ├── SBOMExtractor.swift
│ │ │ ├── SBOMFilterStrategy.swift
│ │ │ └── SBOMGraphsConverter.swift
│ │ ├── README.md
│ │ ├── SBOMCreator.swift
│ │ ├── SBOMError.swift
│ │ ├── SBOMInput.swift
│ │ ├── SPDX/
│ │ │ ├── Resources/
│ │ │ │ └── spdx-3.0.1.schema.json
│ │ │ ├── SPDXAgent.swift
│ │ │ ├── SPDXConstants.swift
│ │ │ ├── SPDXCreationInfo.swift
│ │ │ ├── SPDXDocument.swift
│ │ │ ├── SPDXExternalIdentifier.swift
│ │ │ ├── SPDXGraph.swift
│ │ │ ├── SPDXLicenseExpression.swift
│ │ │ ├── SPDXObject.swift
│ │ │ ├── SPDXPackage.swift
│ │ │ ├── SPDXRelationship.swift
│ │ │ ├── SPDXSBOM.swift
│ │ │ └── SPDXType.swift
│ │ └── Validator/
│ │ ├── CycloneDXValidator.swift
│ │ ├── SBOMValidator.swift
│ │ ├── SBOMValidatorProtocol.swift
│ │ └── SPDXValidator.swift
│ ├── SPMBuildCore/
│ │ ├── BinaryTarget+Extensions.swift
│ │ ├── BuildParameters/
│ │ │ ├── BuildParameters+APIDigester.swift
│ │ │ ├── BuildParameters+Debugging.swift
│ │ │ ├── BuildParameters+Driver.swift
│ │ │ ├── BuildParameters+Linking.swift
│ │ │ ├── BuildParameters+Output.swift
│ │ │ ├── BuildParameters+Testing.swift
│ │ │ └── BuildParameters.swift
│ │ ├── BuildSystem/
│ │ │ ├── BuildSystem.swift
│ │ │ ├── BuildSystemCommand.swift
│ │ │ ├── BuildSystemDelegate.swift
│ │ │ └── DiagnosticsCapturingBuildSystemDelegate.swift
│ │ ├── BuiltTestProduct.swift
│ │ ├── CMakeLists.txt
│ │ ├── CommandPluginResult.swift
│ │ ├── ConfigurableEnvVar.swift
│ │ ├── MainAttrDetection.swift
│ │ ├── Plugins/
│ │ │ ├── DefaultPluginScriptRunner.swift
│ │ │ ├── PluginContextSerializer.swift
│ │ │ ├── PluginInvocation.swift
│ │ │ └── PluginScriptRunner.swift
│ │ ├── ResolvedPackage+Extensions.swift
│ │ ├── Triple+Extensions.swift
│ │ ├── WarningControlFlags.swift
│ │ ├── XCFrameworkMetadata.swift
│ │ └── XcodeProjectRepresentation.swift
│ ├── SPMLLBuild/
│ │ ├── CMakeLists.txt
│ │ └── llbuild.swift
│ ├── SPMSQLite3/
│ │ ├── CMakeLists.txt
│ │ ├── module.modulemap
│ │ └── sqlite.h
│ ├── SourceControl/
│ │ ├── CMakeLists.txt
│ │ ├── GitRepository.swift
│ │ ├── Repository.swift
│ │ └── RepositoryManager.swift
│ ├── SourceKitLSPAPI/
│ │ ├── BuildDescription.swift
│ │ ├── CMakeLists.txt
│ │ └── PluginTargetBuildDescription.swift
│ ├── SwiftBuildSupport/
│ │ ├── BuildSystem.swift
│ │ ├── CMakeLists.txt
│ │ ├── Diagnostics+Extensions.swift
│ │ ├── DotPIFSerializer.swift
│ │ ├── PIF.swift
│ │ ├── PIFBuilder.swift
│ │ ├── PackagePIFBuilder+Helpers.swift
│ │ ├── PackagePIFBuilder+Plugins.swift
│ │ ├── PackagePIFBuilder.swift
│ │ ├── PackagePIFProjectBuilder+Modules.swift
│ │ ├── PackagePIFProjectBuilder+Products.swift
│ │ ├── PackagePIFProjectBuilder.swift
│ │ ├── PluginConfiguration.swift
│ │ ├── README.md
│ │ ├── SwiftBuildSystem.swift
│ │ └── SwiftBuildSystemMessageHandler.swift
│ ├── SwiftFixIt/
│ │ ├── CMakeLists.txt
│ │ └── SwiftFixIt.swift
│ ├── SwiftPMBuildServer/
│ │ ├── CMakeLists.txt
│ │ ├── DisableSigpipe.swift
│ │ └── SwiftPMBuildServer.swift
│ ├── SwiftSDKCommand/
│ │ ├── CMakeLists.txt
│ │ ├── Configuration/
│ │ │ ├── ConfigurationSubcommand.swift
│ │ │ ├── DeprecatedSwiftSDKConfigurationCommand.swift
│ │ │ ├── ResetConfiguration.swift
│ │ │ ├── SetConfiguration.swift
│ │ │ └── ShowConfiguration.swift
│ │ ├── ConfigureSwiftSDK.swift
│ │ ├── InstallSwiftSDK.swift
│ │ ├── ListSwiftSDKs.swift
│ │ ├── README.md
│ │ ├── RemoveSwiftSDK.swift
│ │ ├── SwiftSDKCommand.swift
│ │ └── SwiftSDKSubcommand.swift
│ ├── Workspace/
│ │ ├── CMakeLists.txt
│ │ ├── CheckoutState.swift
│ │ ├── Diagnostics.swift
│ │ ├── InitPackage.swift
│ │ ├── LoadableResult.swift
│ │ ├── ManagedArtifact.swift
│ │ ├── ManagedDependency.swift
│ │ ├── ManagedPrebuilt.swift
│ │ ├── ManifestSigning/
│ │ │ ├── Base64URL.swift
│ │ │ ├── CertificatePolicy.swift
│ │ │ ├── ManifestSigning.swift
│ │ │ ├── Signature.swift
│ │ │ ├── Utilities.swift
│ │ │ ├── X509Extensions.swift
│ │ │ └── embedded_resources.swift
│ │ ├── PackageContainer/
│ │ │ ├── FileSystemPackageContainer.swift
│ │ │ ├── RegistryPackageContainer.swift
│ │ │ └── SourceControlPackageContainer.swift
│ │ ├── ResolvedFileWatcher.swift
│ │ ├── ResolverPrecomputationProvider.swift
│ │ ├── ToolsVersionSpecificationRewriter.swift
│ │ ├── Workspace+BinaryArtifacts.swift
│ │ ├── Workspace+Configuration.swift
│ │ ├── Workspace+Delegation.swift
│ │ ├── Workspace+Dependencies.swift
│ │ ├── Workspace+Editing.swift
│ │ ├── Workspace+Manifests.swift
│ │ ├── Workspace+PackageContainer.swift
│ │ ├── Workspace+Prebuilts.swift
│ │ ├── Workspace+Registry.swift
│ │ ├── Workspace+ResolvedPackages.swift
│ │ ├── Workspace+Signing.swift
│ │ ├── Workspace+SourceControl.swift
│ │ ├── Workspace+State.swift
│ │ ├── Workspace+Traits.swift
│ │ └── Workspace.swift
│ ├── XCBuildSupport/
│ │ ├── CMakeLists.txt
│ │ ├── PIF.swift
│ │ ├── PIFBuilder.swift
│ │ ├── XCBuildDelegate.swift
│ │ ├── XCBuildMessage.swift
│ │ ├── XCBuildOutputParser.swift
│ │ └── XcodeBuildSystem.swift
│ ├── _AsyncFileSystem/
│ │ ├── AsyncFileSystem.swift
│ │ ├── CMakeLists.txt
│ │ ├── ConcurrencySupport.swift
│ │ ├── MockFileSystem.swift
│ │ ├── OSFileSystem.swift
│ │ ├── OpenReadableFile.swift
│ │ ├── OpenWritableFile.swift
│ │ ├── ReadableFileStream.swift
│ │ └── WritableStream.swift
│ ├── _IntegrationTestSupport/
│ │ ├── Filesystem.swift
│ │ └── Helpers.swift
│ ├── _InternalBuildTestSupport/
│ │ ├── MockBuildTestHelper.swift
│ │ └── PIFTester.swift
│ ├── _InternalTestSupport/
│ │ ├── BuildConfiguration+Helpers.swift
│ │ ├── BuildSystemProvider+Configuration.swift
│ │ ├── BuildSystemProvider+Supported.swift
│ │ ├── CombinationsWithRepetition.swift
│ │ ├── Commands.swift
│ │ ├── FileSystemHelpers.swift
│ │ ├── GitRepositoryExtensions.swift
│ │ ├── InMemoryGitRepository.swift
│ │ ├── ManifestExtensions.swift
│ │ ├── MockArchiver.swift
│ │ ├── MockBuildTestHelper.swift
│ │ ├── MockDependency.swift
│ │ ├── MockDependencyGraph.swift
│ │ ├── MockHTTPClient.swift
│ │ ├── MockHashAlgorithm.swift
│ │ ├── MockManifestLoader.swift
│ │ ├── MockPackage.swift
│ │ ├── MockPackageContainer.swift
│ │ ├── MockPackageFingerprintStorage.swift
│ │ ├── MockPackageGraphs.swift
│ │ ├── MockPackageSigningEntityStorage.swift
│ │ ├── MockProduct.swift
│ │ ├── MockRegistry.swift
│ │ ├── MockTarget.swift
│ │ ├── MockWorkspace.swift
│ │ ├── Observability.swift
│ │ ├── PackageDependencyDescriptionExtensions.swift
│ │ ├── PackageGraphTester.swift
│ │ ├── PackageGraphTesterXCTest.swift
│ │ ├── ProcessInfo+hostutils.swift
│ │ ├── ResolvedModule+Mock.swift
│ │ ├── SwiftPMProduct.swift
│ │ ├── SwiftTesting+Data.swift
│ │ ├── SwiftTesting+Helpers.swift
│ │ ├── SwiftTesting+Tags.swift
│ │ ├── SwiftTesting+TraitArgumentData.swift
│ │ ├── SwiftTesting+TraitConditional.swift
│ │ ├── SwiftTesting+Traits.swift
│ │ ├── SwiftTesting+TraitsBug.swift
│ │ ├── Toolchain.swift
│ │ ├── XCTAssertHelpers.swift
│ │ └── misc.swift
│ ├── dummy-swiftc/
│ │ └── main.swift
│ ├── swift-bootstrap/
│ │ ├── CMakeLists.txt
│ │ └── main.swift
│ ├── swift-build/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-build-prebuilts/
│ │ ├── BuildPrebuilts.swift
│ │ └── build.sh
│ ├── swift-experimental-sdk/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-package/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-package-collection/
│ │ └── Entrypoint.swift
│ ├── swift-package-manager/
│ │ └── SwiftPM.swift
│ ├── swift-package-registry/
│ │ └── runner.swift
│ ├── swift-run/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-sdk/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-test/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swiftpm-testing-helper/
│ │ └── Entrypoint.swift
│ └── tsan_utils/
│ ├── CMakeLists.txt
│ ├── include/
│ │ ├── module.modulemap
│ │ └── tsan_utils.h
│ └── tsan_utils.c
├── Tests/
│ ├── BasicsTests/
│ │ ├── Archiver/
│ │ │ ├── TarArchiverTests.swift
│ │ │ ├── UniversalArchiverTests.swift
│ │ │ └── ZipArchiverTests.swift
│ │ ├── ArrayHelpersTests.swift
│ │ ├── AsyncProcessTests.swift
│ │ ├── AuthorizationProviderTests.swift
│ │ ├── ByteStringExtensionsTests.swift
│ │ ├── CancellatorTests.swift
│ │ ├── ConcurrencyHelpersTests.swift
│ │ ├── DictionaryTest.swift
│ │ ├── DispatchTimeTests.swift
│ │ ├── Environment/
│ │ │ ├── EnvironmentKeyTests.swift
│ │ │ └── EnvironmentTests.swift
│ │ ├── FileSystem/
│ │ │ ├── CommonParentDirectoryTests.swift
│ │ │ ├── FileSystemTests.swift
│ │ │ ├── InMemoryFilesSystemTests.swift
│ │ │ ├── PathShimTests.swift
│ │ │ ├── PathTests.swift
│ │ │ ├── TemporaryFileTests.swift
│ │ │ └── VFSTests.swift
│ │ ├── Graph/
│ │ │ ├── AdjacencyMatrixTests.swift
│ │ │ ├── DirectedGraphTests.swift
│ │ │ └── UndirectedGraphTests.swift
│ │ ├── HTTPClientTests.swift
│ │ ├── LegacyHTTPClientTests.swift
│ │ ├── NetrcTests.swift
│ │ ├── ObservabilitySystemTests.swift
│ │ ├── ProcessInfoTests.swift
│ │ ├── ProgressAnimationTests.swift
│ │ ├── SQLiteBackedCacheTests.swift
│ │ ├── SandboxTests.swift
│ │ ├── Serialization/
│ │ │ └── SerializedJSONTests.swift
│ │ ├── StringExtensionsTests.swift
│ │ ├── TripleTests.swift
│ │ ├── URLSessionHTTPClientTests.swift
│ │ └── processInputs/
│ │ ├── deadlock-if-blocking-io
│ │ ├── deadlock-if-blocking-io.bat
│ │ ├── echo
│ │ ├── echo.bat
│ │ ├── exit4
│ │ ├── exit4.bat
│ │ ├── in-to-out
│ │ ├── in-to-out.bat
│ │ ├── long-stdout-stderr
│ │ ├── long-stdout-stderr.bat
│ │ ├── simple-stdout-stderr
│ │ └── simple-stdout-stderr.bat
│ ├── BinarySymbolsTests/
│ │ └── LLVMObjdumpSymbolProviderTests.swift
│ ├── BuildMetalTests/
│ │ └── BuildMetalTests.swift
│ ├── BuildTests/
│ │ ├── BuildOperationTests.swift
│ │ ├── BuildPlanTests.swift
│ │ ├── BuildPlanTraversalTests.swift
│ │ ├── BuildSystemDelegateTests.swift
│ │ ├── CGenPluginsBuildPlanTests.swift
│ │ ├── ClangTargetBuildDescriptionTests.swift
│ │ ├── CrossCompilationBuildPlanTests.swift
│ │ ├── IncrementalBuildTests.swift
│ │ ├── LLBuildManifestBuilderTests.swift
│ │ ├── ModuleAliasingBuildTests.swift
│ │ ├── PluginInvocationTests.swift
│ │ ├── PluginsBuildPlanTests.swift
│ │ ├── PrebuiltsBuildPlanTests.swift
│ │ ├── PrepareForIndexTests.swift
│ │ ├── ProductBuildDescriptionTests.swift
│ │ ├── SwiftCompilerOutputParserTests.swift
│ │ └── WindowsBuildPlanTests.swift
│ ├── CommandsTests/
│ │ ├── APIDiffTests.swift
│ │ ├── BuildCommandTests.swift
│ │ ├── CoverageTests.swift
│ │ ├── MermaidPackageSerializerTests.swift
│ │ ├── MultiRootSupportTests.swift
│ │ ├── PackageCommandTests.swift
│ │ ├── PackageRegistryCommandTests.swift
│ │ ├── RunCommandTests.swift
│ │ ├── Sanitizer+ExtensionsTests.swift
│ │ ├── SwiftCommandStateTests.swift
│ │ ├── SwiftSDKCommandTests.swift
│ │ └── TestCommandTests.swift
│ ├── ExtraTests/
│ │ ├── .gitignore
│ │ ├── Package.swift
│ │ ├── README.md
│ │ └── Tests/
│ │ ├── ExtraTests/
│ │ │ └── FSWatchTests.swift
│ │ └── LinuxMain.swift
│ ├── FunctionalPerformanceTests/
│ │ └── BuildPerfTests.swift
│ ├── FunctionalTests/
│ │ ├── CFamilyTargetTests.swift
│ │ ├── DependencyResolutionTests.swift
│ │ ├── LibraryEvolutionXCFLinuxTests.swift
│ │ ├── MacroTests.swift
│ │ ├── MiscellaneousTests.swift
│ │ ├── ModuleAliasingFixtureTests.swift
│ │ ├── ModuleMapTests.swift
│ │ ├── PluginTests.swift
│ │ ├── ResourcesTests.swift
│ │ ├── StaticBinaryLibrary.swift
│ │ ├── TaskBacktracesTests.swift
│ │ ├── TestDiscoveryTests.swift
│ │ ├── ToolsVersionTests.swift
│ │ ├── TraitTests.swift
│ │ └── VersionSpecificTests.swift
│ ├── IntegrationTests/
│ │ ├── BasicTests.swift
│ │ ├── SwiftPMTests.swift
│ │ └── XCBuildTests.swift
│ ├── LLBuildManifestTests/
│ │ └── LLBuildManifestTests.swift
│ ├── PackageCollectionsModelTests/
│ │ └── PackageCollectionModelTests.swift
│ ├── PackageCollectionsSigningTests/
│ │ ├── CertificatePolicyTests.swift
│ │ ├── PackageCollectionSigningTests.swift
│ │ ├── SignatureTests.swift
│ │ └── Utilities.swift
│ ├── PackageCollectionsTests/
│ │ ├── GitHubPackageMetadataProviderTests.swift
│ │ ├── JSONPackageCollectionProviderTests.swift
│ │ ├── PackageCollectionSourceCertificatePolicyTests.swift
│ │ ├── PackageCollectionValidationTests.swift
│ │ ├── PackageCollectionsModelTests.swift
│ │ ├── PackageCollectionsSourcesStorageTest.swift
│ │ ├── PackageCollectionsStorageTests.swift
│ │ ├── PackageCollectionsTests.swift
│ │ ├── PackageIndexAndCollectionsTests.swift
│ │ ├── PackageIndexConfigurationTests.swift
│ │ ├── PackageIndexTests.swift
│ │ ├── TrieTests.swift
│ │ ├── Utility.swift
│ │ └── ValidationMessageTests.swift
│ ├── PackageDescriptionTests/
│ │ └── VersionTests.swift
│ ├── PackageFingerprintTests/
│ │ └── FilePackageFingerprintStorageTests.swift
│ ├── PackageGraphPerformanceTests/
│ │ ├── DependencyResolverPerfTests.swift
│ │ ├── Inputs/
│ │ │ ├── PerfectHTTPServer.json
│ │ │ ├── SourceKitten.json
│ │ │ ├── ZewoHTTPServer.json
│ │ │ └── kitura.json
│ │ └── PackageGraphPerfTests.swift
│ ├── PackageGraphTests/
│ │ ├── CrossCompilationPackageGraphTests.swift
│ │ ├── DependencyResolverTests.swift
│ │ ├── ModulesGraphTests+Traits.swift
│ │ ├── ModulesGraphTests.swift
│ │ ├── PubGrubTests.swift
│ │ ├── ResolvedTargetTests.swift
│ │ ├── TopologicalSortTests.swift
│ │ └── VersionSetSpecifierTests.swift
│ ├── PackageLoadingTests/
│ │ ├── Inputs/
│ │ │ ├── Bar.pc
│ │ │ ├── Dependency.pc
│ │ │ ├── Dependent.pc
│ │ │ ├── Foo.pc
│ │ │ ├── Framework.pc
│ │ │ ├── package-deps-manifest.swift
│ │ │ ├── target-deps-manifest.swift
│ │ │ └── trivial-manifest.swift
│ │ ├── ManifestLoaderCacheTests.swift
│ │ ├── ManifestSignatureParserTests.swift
│ │ ├── ModuleMapGenerationTests.swift
│ │ ├── PDAppleProductLoadingTests.swift
│ │ ├── PDLoadingTests.swift
│ │ ├── PD_4_0_LoadingTests.swift
│ │ ├── PD_4_2_LoadingTests.swift
│ │ ├── PD_5_0_LoadingTests.swift
│ │ ├── PD_5_2_LoadingTests.swift
│ │ ├── PD_5_3_LoadingTests.swift
│ │ ├── PD_5_4_LoadingTests.swift
│ │ ├── PD_5_5_LoadingTests.swift
│ │ ├── PD_5_6_LoadingTests.swift
│ │ ├── PD_5_7_LoadingTests.swift
│ │ ├── PD_5_9_LoadingTests.swift
│ │ ├── PD_6_0_LoadingTests.swift
│ │ ├── PD_6_2_LoadingTests.swift
│ │ ├── PD_Next_LoadingTests.swift
│ │ ├── PackageBuilderTests.swift
│ │ ├── PkgConfigAllowlistTests.swift
│ │ ├── PkgConfigParserTests.swift
│ │ ├── PkgConfigTests.swift
│ │ ├── TargetSourcesBuilderTests.swift
│ │ ├── ToolsVersionParserTests.swift
│ │ ├── TraitLoadingTests.swift
│ │ └── pkgconfigInputs/
│ │ ├── case_insensitive.pc
│ │ ├── deps_variable.pc
│ │ ├── double_sysroot.pc
│ │ ├── dummy_dependency.pc
│ │ ├── empty_cflags.pc
│ │ ├── escaped_spaces.pc
│ │ ├── failure_case.pc
│ │ ├── freetype2.pc
│ │ ├── gobject-2.0.pc
│ │ ├── gtk+-3.0.pc
│ │ ├── harfbuzz.pc
│ │ ├── libffi.pc
│ │ ├── not_double_sysroot.pc
│ │ └── quotes_failure.pc
│ ├── PackageModelTests/
│ │ ├── CanonicalPackageLocationTests.swift
│ │ ├── EnabledTraitTests.swift
│ │ ├── InstalledSwiftPMConfigurationTests.swift
│ │ ├── ManifestTests.swift
│ │ ├── MinimumDeploymentTargetTests.swift
│ │ ├── PackageIdentityNameTests.swift
│ │ ├── PackageIdentityParser.swift
│ │ ├── PackageIdentityScopeTests.swift
│ │ ├── PackageModelTests.swift
│ │ ├── SnippetTests.swift
│ │ ├── SwiftLanguageVersionTests.swift
│ │ ├── SwiftSDKBundleTests.swift
│ │ ├── SwiftSDKTests.swift
│ │ ├── ToolsVersionTests.swift
│ │ └── ToolsetTests.swift
│ ├── PackagePluginAPITests/
│ │ ├── ArgumentExtractorTests.swift
│ │ └── PathTests.swift
│ ├── PackageRegistryTests/
│ │ ├── PackageSigningEntityTOFUTests.swift
│ │ ├── PackageVersionChecksumTOFUTests.swift
│ │ ├── RegistryClientTests.swift
│ │ ├── RegistryConfigurationTests.swift
│ │ ├── RegistryDownloadsManagerTests.swift
│ │ └── SignatureValidationTests.swift
│ ├── PackageSigningTests/
│ │ ├── FilePackageSigningEntityStorageTests.swift
│ │ ├── SigningEntityTests.swift
│ │ ├── SigningIdentityTests.swift
│ │ ├── SigningTests.swift
│ │ └── Utilities.swift
│ ├── QueryEngineTests/
│ │ └── QueryEngineTests.swift
│ ├── SBOMModelTests/
│ │ ├── CycloneDXConverterTests.swift
│ │ ├── PURLTests.swift
│ │ ├── SBOMEncoderTests.swift
│ │ ├── SBOMExtractCategoryTests.swift
│ │ ├── SBOMExtractComponentsTests.swift
│ │ ├── SBOMExtractDependenciesTests.swift
│ │ ├── SBOMExtractMetadataTests.swift
│ │ ├── SBOMExtractPrimaryComponentTests.swift
│ │ ├── SBOMExtractScopeTests.swift
│ │ ├── SBOMExtractTests.swift
│ │ ├── SBOMFilterStrategyTests.swift
│ │ ├── SBOMGetSpecTests.swift
│ │ ├── SBOMGraphsConverterTests.swift
│ │ ├── SBOMTestDependencyGraphHelpers.swift
│ │ ├── SBOMTestDependencyGraphSPM.swift
│ │ ├── SBOMTestDependencyGraphSimple.swift
│ │ ├── SBOMTestDependencyGraphSimpleDifferent.swift
│ │ ├── SBOMTestDependencyGraphSwiftly.swift
│ │ ├── SBOMTestError.swift
│ │ ├── SBOMTestModulesGraphConditional.swift
│ │ ├── SBOMTestModulesGraphHelpers.swift
│ │ ├── SBOMTestModulesGraphSPM.swift
│ │ ├── SBOMTestModulesGraphSimple.swift
│ │ ├── SBOMTestModulesGraphSwiftly.swift
│ │ ├── SBOMTestRepo.swift
│ │ ├── SBOMTestStore.swift
│ │ ├── SBOMTestTraits.swift
│ │ ├── SBOMValidationTests.swift
│ │ ├── SPDXConverterTests.swift
│ │ ├── SPMFixtures/
│ │ │ ├── SBOMSPMBuildToolingPackages.swift
│ │ │ ├── SBOMSPMDocumentationPackages.swift
│ │ │ ├── SBOMSPMFoundationPackages.swift
│ │ │ ├── SBOMSPMRootPackageAssembly.swift
│ │ │ ├── SBOMSPMRootPackageCommand.swift
│ │ │ ├── SBOMSPMRootPackageCore.swift
│ │ │ ├── SBOMSPMRootPackageExecutable.swift
│ │ │ ├── SBOMSPMSecurityPackages.swift
│ │ │ ├── SBOMSPMSwiftBuildPackage.swift
│ │ │ └── SBOMSPMSwiftSyntaxPackage.swift
│ │ ├── SwiftlyFixtures/
│ │ │ ├── SBOMSwiftlyCollectionsPackages.swift
│ │ │ ├── SBOMSwiftlyFoundationPackages.swift
│ │ │ ├── SBOMSwiftlyNIOPackages.swift
│ │ │ ├── SBOMSwiftlyOpenAPIPackages.swift
│ │ │ ├── SBOMSwiftlyRootPackage.swift
│ │ │ ├── SBOMSwiftlySecurityPackages.swift
│ │ │ └── SBOMSwiftlyUtilityPackages.swift
│ │ └── testfiles/
│ │ ├── invalid-cyclonedx-1-missing-fields.json
│ │ ├── invalid-cyclonedx-1-small.json
│ │ ├── invalid-cyclonedx-1.7-uppercase-uuid.json
│ │ ├── invalid-cyclonedx-1.7-wrong-bomformat.json
│ │ ├── invalid-spdx-3-small.json
│ │ ├── invalid-spdx-3.0.1-no-iri.json
│ │ ├── invalid-spdx-3.0.1-spm.json
│ │ ├── invalid-spdx-3.0.1-wrong-relationshiptype.json
│ │ ├── valid-cyclonedx-1.7-empty-comps.json
│ │ ├── valid-cyclonedx-1.7-minimal.json
│ │ ├── valid-cyclonedx-1.7-spm.json
│ │ ├── valid-cyclonedx-1.7-unicode.json
│ │ ├── valid-cyclonedx-1.7-versions.json
│ │ └── valid-spdx-3.0.1-spm.json
│ ├── SPMBuildCoreTests/
│ │ ├── ArtifactsArchiveMetadataTests.swift
│ │ ├── BuildParametersTests.swift
│ │ ├── MainAttrDetectionTests.swift
│ │ └── XCFrameworkMetadataTests.swift
│ ├── SourceControlTests/
│ │ ├── GitRepositoryProviderTests.swift
│ │ ├── GitRepositoryTests.swift
│ │ ├── InMemoryGitRepositoryTests.swift
│ │ ├── Inputs/
│ │ │ └── TestRepo.tgz
│ │ └── RepositoryManagerTests.swift
│ ├── SourceKitLSPAPITests/
│ │ └── SourceKitLSPAPITests.swift
│ ├── SwiftBuildSupportTests/
│ │ ├── CGenPIFTests.swift
│ │ ├── PIFBuilderTests.swift
│ │ ├── PackagePIFBuilderHelpersTests.swift
│ │ ├── PrebuiltsPIFTests.swift
│ │ ├── ProductTests.swift
│ │ ├── SwiftBuildSystemMessageHandlerTests.swift
│ │ └── SwiftBuildSystemTests.swift
│ ├── SwiftFixItTests/
│ │ ├── BasicTests.swift
│ │ ├── CategoryTests.swift
│ │ ├── FilteringTests.swift
│ │ └── Utilities.swift
│ ├── SwiftPMBuildServerTests/
│ │ └── BuildServerTests.swift
│ ├── WorkspaceTests/
│ │ ├── AuthorizationProviderTests.swift
│ │ ├── InitTests.swift
│ │ ├── ManifestSourceGenerationTests.swift
│ │ ├── MirrorsConfigurationTests.swift
│ │ ├── PrebuiltsTests.swift
│ │ ├── RegistryPackageContainerTests.swift
│ │ ├── ResolvedPackagesStoreTests.swift
│ │ ├── SourceControlPackageContainerTests.swift
│ │ ├── ToolsVersionSpecificationGenerationTests.swift
│ │ ├── ToolsVersionSpecificationRewriterTests.swift
│ │ ├── WorkspaceStateTests.swift
│ │ ├── WorkspaceTests+Traits.swift
│ │ └── WorkspaceTests.swift
│ ├── XCBuildSupportTests/
│ │ ├── Inputs/
│ │ │ └── Foo.pc
│ │ ├── PIFBuilderTests.swift
│ │ └── PIFTests.swift
│ ├── _AsyncFileSystemTests/
│ │ └── AsyncFileSystemTests.swift
│ └── _InternalTestSupportTests/
│ ├── FileSystemHelpersTests.swift
│ ├── MiscTests.swift
│ └── XCTAssertHelpersTests.swift
├── Utilities/
│ ├── Certificates/
│ │ ├── Intermediates/
│ │ │ ├── AppleWWDRCAG2.cer
│ │ │ ├── AppleWWDRCAG3.cer
│ │ │ ├── AppleWWDRCAG4.cer
│ │ │ ├── AppleWWDRCAG5.cer
│ │ │ ├── AppleWWDRCAG6.cer
│ │ │ ├── AppleWWDRCAG7.cer
│ │ │ └── AppleWWDRCAG8.cer
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Roots/
│ │ │ ├── AppleComputerRootCertificate.cer
│ │ │ ├── AppleIncRootCertificate.cer
│ │ │ ├── AppleRootCA-G2.cer
│ │ │ └── AppleRootCA-G3.cer
│ │ ├── empty.swift
│ │ └── generate.sh
│ ├── Docker/
│ │ ├── Dockerfile
│ │ ├── docker-compose.1604.53.yaml
│ │ ├── docker-compose.1804.53.yaml
│ │ ├── docker-compose.2004.54.yaml
│ │ ├── docker-compose.2004.55.yaml
│ │ ├── docker-compose.2004.56.yaml
│ │ ├── docker-compose.2004.57.yaml
│ │ ├── docker-compose.2004.main.yaml
│ │ ├── docker-compose.2204.58.yaml
│ │ ├── docker-compose.2204.59.yaml
│ │ └── docker-compose.yaml
│ ├── InstalledSwiftPMConfiguration/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── exec.swift
│ ├── README.md
│ ├── SwiftPM+SwiftBuild.xcworkspace/
│ │ └── contents.xcworkspacedata
│ ├── bootstrap
│ ├── build-using-self
│ ├── config.json
│ ├── generate_contributors_list.sh
│ ├── helpers.py
│ ├── new-bootstrap
│ ├── soundness.sh
│ └── test-toolchain
├── cmake/
│ └── modules/
│ ├── CMakeLists.txt
│ └── FindLLBuild.cmake
├── swiftbuild_specific_issues.md
├── withKnownIssue_tests_report.md
└── xcode/
└── SwiftPM-Package.xctestplan
================================================
FILE CONTENTS
================================================
================================================
FILE: .devcontainer/devcontainer.json
================================================
{
"name": "Swift Nightly Main",
"dockerComposeFile": "docker-compose.yaml",
"service": "devcontainer",
"workspaceFolder": "${localWorkspaceFolder}",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": "false",
"username": "root",
"upgradePackages": "false"
},
"ghcr.io/devcontainers/features/git:1": {
"version": "os-provided",
"ppa": "false"
}
},
"initializeCommand": ".devcontainer/init.sh",
"postCreateCommand": "apt-get update && apt-get install -y curl sqlite3 libsqlite3-dev libncurses5-dev python3 build-essential",
"postStartCommand": "cd ${WORKSPACE_DIR}",
"customizations": {
"vscode": {
"settings": {
"lldb.library": "/usr/lib/liblldb.so"
},
"extensions": [
"swiftlang.swift-vscode"
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
"remoteUser": "root"
}
================================================
FILE: .devcontainer/docker-compose.yaml
================================================
services:
devcontainer:
# Use your desired image or Dockerfile here
image: "swiftlang/swift:nightly-main"
env_file:
- .env
cap_add:
- SYS_PTRACE
security_opt:
- seccomp=unconfined
volumes:
# Mount the main git repo dir and the current worktree dir at the same absolute path as the host
- ${GIT_REPO}:${GIT_REPO}:rw
- ${WORKSPACE_DIR}:${WORKSPACE_DIR}:rw
command: sleep infinity
================================================
FILE: .devcontainer/init.sh
================================================
#!/bin/bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift open source project
##
## Copyright (c) 2022 Apple Inc. and the Swift project authors
## Licensed under Apache License v2.0 with Runtime Library Exception
##
## See http://swift.org/LICENSE.txt for license information
## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
##
##===----------------------------------------------------------------------===##
# Calculates absolute paths for the git repo root and current workspace
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
GIT_COMMON_DIR=$(git rev-parse --git-common-dir)
case "$GIT_COMMON_DIR" in
/*) ;;
*) GIT_COMMON_DIR="$PWD/$GIT_COMMON_DIR" ;;
esac
env_file="${SCRIPT_DIR}/.env"
# Ensure the paths are absolute for Docker mounting
echo "GIT_REPO=$(realpath "$GIT_COMMON_DIR")" > "${env_file}"
echo "WORKSPACE_DIR=$(realpath "$PWD")" >> "${env_file}"
================================================
FILE: .dir-locals.el
================================================
;;; Directory Local Variables -*- no-byte-compile: t -*-
;;; For more information see (info "(emacs) Directory Variables")
((nil . ((c-basic-offset . 4)))
(swift-mode . ((swift-mode:basic-offset . 4))))
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
xcode_trim_whitespace_on_empty_lines = true
[*.{yml,yaml}]
indent_size = 2
================================================
FILE: .github/CODEOWNERS
================================================
# This file is a list of the people responsible for ensuring that patches for a
# particular part of Swift are reviewed, either by themselves or by someone else.
# They are also the gatekeepers for their part of Swift, with the final word on
# what goes in or not.
#
# The list is sorted by surname and formatted to allow easy grepping and
# beautification by scripts. The fields are: name (N), email (E), web-address
# (W), PGP key ID and fingerprint (P), description (D), and snail-mail address
# (S).
# N: Tomer Doron
# E: tomer@apple.com
# D: Package Manager
# N: Max Desiatov
# E: m_desiatov@apple.com
# D: Package Manager
# N: Ben Barham
# E: ben_barham@apple.com
# D: Package Manager
###
# The following lines are used by GitHub to automatically recommend reviewers.
* @jakepetroules @dschaefer2 @bripeticca @plemarquand @owenv @bkhouri @cmcgee1024 @daveyc123 @rconnell9 @daveinglis
Sources/Commands/PackageCommands/Migrate.swift @AnthonyLatsis @xedin @jakepetroules @dschaefer2 @bripeticca @plemarquand @owenv @bkhouri @cmcgee1024 @daveyc123 @rconnell9 @daveinglis
Sources/SwiftFixIt/* @AnthonyLatsis @xedin @jakepetroules @dschaefer2 @bripeticca @plemarquand @owenv @bkhouri @cmcgee1024 @daveyc123 @rconnell9 @daveinglis
Tests/SwiftFixItTests/* @AnthonyLatsis @xedin @jakepetroules @dschaefer2 @bripeticca @plemarquand @owenv @bkhouri @cmcgee1024 @daveyc123 @rconnell9 @daveinglis
================================================
FILE: .github/ISSUE_TEMPLATE/BUG_REPORT.yml
================================================
name: Bug Report
description: Something isn't working as expected
labels: [bug]
body:
- type: checkboxes
id: cat-preferences
attributes:
label: >-
Is it reproducible with SwiftPM command-line tools: `swift build`,
`swift test`, `swift package` etc?
description: >-
Issues related to closed-source software are not tracked by this
repository and will be closed. For Xcode and `xcodebuild`, please
file a feedback at https://feedbackassistant.apple.com instead."
options:
- label: >-
Confirmed reproduction steps with SwiftPM CLI. The description
text _must_ include reproduction steps with either of command-line
SwiftPM commands, `swift build`, `swift test`, `swift package` etc.
required: true
- type: textarea
attributes:
label: Description
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: What you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Actual behavior
description: What actually happened.
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
placeholder: |
1. ...
2. ...
validations:
required: false
- type: input
attributes:
label: Swift Package Manager version/commit hash
validations:
required: false
- type: textarea
attributes:
label: Swift & OS version (output of `swift --version ; uname -a`)
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml
================================================
name: Feature Request
description: A suggestion for a new feature
labels: [enhancement]
body:
- type: textarea
attributes:
label: Description
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: What you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Actual behavior
description: What actually happened.
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
placeholder: |
1. ...
2. ...
validations:
required: false
- type: input
attributes:
label: Swift Package Manager version/commit hash
validations:
required: false
- type: textarea
attributes:
label: Swift & OS version (output of `swift --version && uname -a`)
validations:
required: false
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
_[One line description of your change]_
### Motivation:
_[Explain here the context, and why you're making that change. What is the problem you're trying to solve.]_
### Modifications:
_[Describe the modifications you've done.]_
### Result:
_[After your change, what will change.]_
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
================================================
FILE: .github/scripts/prebuild.ps1
================================================
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift open source project
##
## Copyright (c) 2025 Apple Inc. and the Swift project authors
## Licensed under Apache License v2.0 with Runtime Library Exception
##
## See http://swift.org/LICENSE.txt for license information
## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
##
##===----------------------------------------------------------------------===##
param (
[switch]$SkipAndroid,
[switch]$InstallCMake
)
# winget isn't easily made available in containers, so use chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
if ($InstallCMake) {
choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System' --apply-install-arguments-to-dependencies
choco install -y ninja
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
# Let swiftc find the path to link.exe in the CMake smoke test
$env:Path += ";$(Split-Path -Path "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" "-latest" -products Microsoft.VisualStudio.Product.BuildTools -find VC\Tools\MSVC\*\bin\HostX64\x64\link.exe)" -Parent)"
}
if (-not $SkipAndroid) {
choco install -y android-ndk
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
# Work around a bug in the package causing the env var to be set incorrectly
$env:ANDROID_NDK_ROOT = $env:ANDROID_NDK_ROOT.replace('-windows.zip','')
}
================================================
FILE: .github/scripts/prebuild.sh
================================================
#!/bin/bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift open source project
##
## Copyright (c) 2025 Apple Inc. and the Swift project authors
## Licensed under Apache License v2.0 with Runtime Library Exception
##
## See http://swift.org/LICENSE.txt for license information
## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
##
##===----------------------------------------------------------------------===##
set -e
if [[ $(uname) == Darwin ]] ; then
if [[ "$INSTALL_CMAKE" == "1" ]] ; then
mkdir -p "$RUNNER_TOOL_CACHE"
if ! command -v cmake >/dev/null 2>&1 ; then
curl -fsSLO https://github.com/Kitware/CMake/releases/download/v4.1.2/cmake-4.1.2-macos-universal.tar.gz
echo '3be85f5b999e327b1ac7d804cbc9acd767059e9f603c42ec2765f6ab68fbd367 cmake-4.1.2-macos-universal.tar.gz' > cmake-4.1.2-macos-universal.tar.gz.sha256
sha256sum -c cmake-4.1.2-macos-universal.tar.gz.sha256
tar -xf cmake-4.1.2-macos-universal.tar.gz
ln -s "$PWD/cmake-4.1.2-macos-universal/CMake.app/Contents/bin/cmake" "$RUNNER_TOOL_CACHE/cmake"
fi
if ! command -v ninja >/dev/null 2>&1 ; then
curl -fsSLO https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-mac.zip
echo 'da7797794153629aca5570ef7c813342d0be214ba84632af886856e8f0063dd9 ninja-mac.zip' > ninja-mac.zip.sha256
sha256sum -c ninja-mac.zip.sha256
unzip ninja-mac.zip
rm -f ninja-mac.zip
mv ninja "$RUNNER_TOOL_CACHE/ninja"
fi
fi
elif command -v apt-get >/dev/null 2>&1 ; then # bookworm, noble, jammy
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
# Build dependencies
apt-get install -y libsqlite3-dev libncurses-dev
# Debug symbols
apt-get install -y libc6-dbg
if [[ "$INSTALL_CMAKE" == "1" ]] ; then
apt-get install -y cmake ninja-build
fi
# Android NDK
dpkg_architecture="$(dpkg --print-architecture)"
if [[ "$SKIP_ANDROID" != "1" ]] && [[ "$dpkg_architecture" == amd64 ]] ; then
eval "$(cat /etc/os-release)"
case "$VERSION_CODENAME" in
bookworm|jammy)
: # Not available
;;
noble)
apt-get install -y google-android-ndk-r26c-installer
;;
*)
echo "Unable to fetch Android NDK for unknown Linux distribution: $VERSION_CODENAME" >&2
exit 1
esac
else
echo "Skipping Android NDK installation on $dpkg_architecture" >&2
fi
elif command -v dnf >/dev/null 2>&1 ; then # rhel-ubi9
dnf update -y
# Build dependencies
dnf install -y sqlite-devel ncurses-devel
# Debug symbols
dnf debuginfo-install -y glibc
elif command -v yum >/dev/null 2>&1 ; then # amazonlinux2
yum update -y
# Build dependencies
yum install -y sqlite-devel ncurses-devel
# Debug symbols
yum install -y yum-utils
debuginfo-install -y glibc
fi
================================================
FILE: .github/workflows/automerge.yml
================================================
name: Create PR to merge main into release branch
# In the first period after branching the release branch,
# we typically want to include many changes from `main` in the release branch.
# This workflow automatically creates a PR to merge the main into the release branch.
# Later in the release cycle we should stop this practice to avoid landing risky changes by disabling this workflow.
# To do so, disable the workflow as described in https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/disabling-and-enabling-a-workflow
permissions:
contents: read
on:
workflow_dispatch:
jobs:
create_merge_pr:
name: Create PR to merge main into release branch
uses: swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml@0.0.8
with:
head_branch: main
base_branch: release/6.3
permissions:
contents: write
pull-requests: write
if: (github.event_name == 'schedule' && github.repository == 'swiftlang/swift-package-manager') || (github.event_name != 'schedule') # Ensure that we don't run this on a schedule in a fork
================================================
FILE: .github/workflows/pull_request.yml
================================================
name: Pull request
permissions:
contents: read
on:
pull_request:
types: [opened, reopened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
needs: [soundness]
strategy:
fail-fast: false
matrix:
executableTargetBuildSystem: ["native"]
buildSystem: ["native", "swiftbuild"]
linuxSwiftVersion: ['["nightly-main", "nightly-6.2"]', '["nightly-main"]']
exclude:
- buildSystem: "swiftbuild"
linuxSwiftVersion: '["nightly-main", "nightly-6.2"]'
- buildSystem: "native"
linuxSwiftVersion: '["nightly-main"]'
name: Build (${{ matrix.buildSystem }}) (exectable target built using ${{ matrix.executableTargetBuildSystem }})
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.8
with:
linux_os_versions: '["amazonlinux2", "bookworm", "noble", "jammy", "rhel-ubi9"]'
linux_swift_versions: ${{ matrix.linuxSwiftVersion }}
linux_pre_build_command: ./.github/scripts/prebuild.sh
linux_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}}'
# linux_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem}}'
windows_build_timeout: 180
windows_swift_versions: '["nightly-main"]'
windows_pre_build_command: 'Invoke-Program .\.github\scripts\prebuild.ps1'
windows_build_command: 'Invoke-Program swift run -Xlinker /ignore:4217 --configuration release --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests -Xlinker /ignore:4217 --build-system ${{ matrix.buildSystem}}'
# windows_build_command: 'Invoke-Program swift run -Xlinker /ignore:4217 --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests -Xlinker /ignore:4217 --build-system ${{ matrix.buildSystem}}; Invoke-Program swift run --build-system ${{ matrix.executableTargetBuildSystem }} -Xlinker /ignore:4217 swift-test -Xlinker /ignore:4217 --parallel --build-system ${{ matrix.buildSystem}}'
enable_windows_checks: true
enable_ios_checks: false
enable_macos_checks: true
macos_exclude_xcode_versions: "[{\"xcode_version\": \"16.3\"}, {\"xcode_version\": \"16.4\"}]"
macos_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}}'
# macos_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem}}'
ios_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios'
# ios_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem }} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios'
build-using-swiftbuild:
strategy:
fail-fast: false
matrix:
executableTargetBuildSystem: ["swiftbuild"]
buildSystem: ["swiftbuild"]
name: Build (${{ matrix.buildSystem }}) (exectable target built using ${{ matrix.executableTargetBuildSystem }})
needs: [soundness]
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.8
with:
linux_os_versions: '["amazonlinux2", "bookworm", "noble", "jammy", "rhel-ubi9"]'
linux_swift_versions: '["nightly-main"]'
linux_pre_build_command: ./.github/scripts/prebuild.sh
linux_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
enable_windows_checks: false
windows_build_timeout: 180
windows_swift_versions: '["nightly-main"]'
windows_pre_build_command: 'Invoke-Program .\.github\scripts\prebuild.ps1'
windows_build_command: 'Invoke-Program swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
enable_ios_checks: false
enable_macos_checks: true
macos_exclude_xcode_versions: "[{\"xcode_version\": \"16.3\"}, {\"xcode_version\": \"16.4\"}]"
macos_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
ios_build_command: 'swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios'
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@0.0.8
with:
license_header_check_project_name: "Swift"
license_header_check_enabled: true
unacceptable_language_check_enabled: true
api_breakage_check_enabled: false
format_check_enabled: false
shell_check_enabled: false
docs_check_enabled: true
broken_symlink_check_enabled: true
python_lint_check_enabled: true
yamllint_check_enabled: true
================================================
FILE: .gitignore
================================================
.build
.test
.index-build
.devcontainer/.env
DerivedData
/.previous-build
xcuserdata
.DS_Store
*~
\#*
.\#*
.*.sw[nop]
*.xcscmblueprint
/default.profraw
*.xcodeproj
Utilities/Docker/*.tar.gz
.swiftpm
Package.resolved
/build
*.pyc
.docc-build
.vscode
/stage/
Utilities/InstalledSwiftPMConfiguration/config.json
Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/build
================================================
FILE: .license_header_template
================================================
@@===----------------------------------------------------------------------===@@
@@
@@ This source file is part of the Swift open source project
@@
@@ Copyright (c) YEARS Apple Inc. and the Swift project authors
@@ Licensed under Apache License v2.0 with Runtime Library Exception
@@
@@ See http://swift.org/LICENSE.txt for license information
@@ See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
@@
@@===----------------------------------------------------------------------===@@
================================================
FILE: .licenseignore
================================================
**/*.mlmodel
**/*.pbxproj
**/*.png
**/*.xcworkspacedata
**/Package.swift
.dir-locals.el
.editorconfig
.swift-version
.swiftformat
.pep8
.mailmap
.mailfilter
CODEOWNERS
Package.swift
Fixtures/**/*.*
**/*.pc
**/*.cer
**/*.zip
**/*.tar
**/*.tgz
**/*.gz
**/*.svg
**/*.bat
**/*.xctestplan
**/processInputs/**
Utilities/bootstrap
Utilities/build-using-self
Utilities/new-bootstrap
Utilities/test-toolchain
================================================
FILE: .mailfilter
================================================
# This is a list of `shasum` hashed email addresses which are filtered from CONTRIBUTORS.txt, typically for privacy.
# Lines can be generated by running `echo -n 'My Name <my@email>' | shasum | head -c 40`.
03a39e53ca4764a094b9f6e548e8d1ce0d941d7b
38268a29b340ecfb435c5e6c5827a596acb71cc6
43b012c0b4e67962522a02e12d07cb5d5c5ba036
886d1da6503c6de1d630beaf6acb667e4ce3e2a0
================================================
FILE: .mailmap
================================================
Alex Blewitt <alblue@apple.com> <alblue@apple.com>
Alex Blewitt <alblue@apple.com> <alex.blewitt@gmail.com>
Alex Hoppen <ahoppen@apple.com> <ahoppen@apple.com>
Alex Hoppen <ahoppen@apple.com> <alex@ateamer.de>
Ankit Aggarwal <ankit_aggarwal@apple.com> <ankit_aggarwal@apple.com>
Ankit Aggarwal <ankit_aggarwal@apple.com> <ankit.spd@gmail.com>
Ankit Aggarwal <ankit_aggarwal@apple.com> <ankit.spd@gmail.com>
Ankit Aggarwal <ankit_aggarwal@apple.com> <ankit@Stardust.local>
Ben Chatelain <ben@octop.ad> <ben@octop.ad>
Ben Chatelain <ben@octop.ad> <phatblat@users.noreply.github.com>
Ben Cohen <ben_cohen@apple.com> <ben_cohen@apple.com>
Ben Cohen <ben_cohen@apple.com> <airspeedswift@users.noreply.github.com>
Ben Langmuir <blangmuir@apple.com> <blangmuir@apple.com>
Ben Langmuir <blangmuir@apple.com> <ben.langmuir@gmail.com>
Benjamin Herzog <benjamin_herzog@apple.com> <benjamin_herzog@apple.com>
Benjamin Herzog <benjamin_herzog@apple.com> <mail@benchr.de>
Benjamin Scholtysik <bscholtysik@apple.com> <bscholtysik@apple.com>
Benjamin Scholtysik (Reimold) <bscholtysik@apple.com> <bereimol@microsoft.com>
Benjamin Scholtysik <bscholtysik@apple.com> <bereimol@microsoft.com>
Boris Buegling <bbuegling@apple.com> <bbuegling@apple.com>
Boris Buegling <bbuegling@apple.com> <boris@icculus.org>
Braden Scothern <BradenScothern@gmail.com> <BradenScothern@gmail.com>
Braden Scothern <BradenScothern@gmail.com> <bscothern@users.noreply.github.com>
Brandon Titus <bjtitus@gmail.com> <bjtitus@gmail.com>
Brandon Titus <bjtitus@gmail.com> <b@titus.io>
Brian Croom <bcroom@apple.com> <bcroom@apple.com>
Brian Croom <bcroom@apple.com> <brian.s.croom@gmail.com>
Brian Gesiak <modocache@gmail.com> <modocache@gmail.com>
Brian Gesiak <modocache@gmail.com> <bgesiak@fb.com>
Chris Lattner <clattner@apple.com> <clattner@apple.com>
Chris Lattner <clattner@apple.com> <lattner@users.noreply.github.com>
Dan Zheng <danielzheng@google.com> <danielzheng@google.com>
Dan Zheng <danielzheng@google.com> <zheng321@purdue.edu>
Daniel Duan <danmarner@gmail.com> <danmarner@gmail.com>
Daniel Duan <danmarner@gmail.com> <daniel@duan.ca>
Daniel Duan <danmarner@gmail.com> <daniel@duan.org>
Daniel Dunbar <daniel_dunbar@apple.com> <daniel_dunbar@apple.com>
Daniel Dunbar <daniel_dunbar@apple.com> <daniel@zuster.org>
Dario Rexin <drexin@apple.com> <drexin@apple.com>
Dario Rexin <drexin@apple.com> <dario.rexin@me.com>
Dave Abrahams <dabrahams@apple.com> <dabrahams@apple.com>
Dave Abrahams <dabrahams@apple.com> <dave@Skree.local>
David Hart <david@hartbit.com> <david@hartbit.com>
David Hart <david@hartbit.com> <david@atipik.ch>
Harlan Haskins <harlan@apple.com> <harlan@apple.com>
Harlan Haskins <harlan@apple.com> <harlan@harlanhaskins.com>
Helge Hess <me@helgehess.eu> <me@helgehess.eu>
Honza Dvorsky <honza@apple.com> <honza@apple.com>
Honza Dvorsky <honza@apple.com> <honza@swiftkey.com>
Honza Dvorsky <honza@apple.com> <jan.dvorsky@yahoo.com>
J. Cheyo Jimenez <cheyo@masters3d.com> <cheyo@masters3d.com>
J. Cheyo Jimenez <cheyo@masters3d.com> <masters3d@users.noreply.github.com>
Johannes Weiss <johannesweiss@apple.com> <johannesweiss@apple.com>
Johannes Weiss <johannesweiss@apple.com> <github@tux4u.de>
Johannes Weiss <johannesweiss@apple.com> <johannesweiss@apple.com>
Kilian Koeltzsch <kiliank@apple.com> <kiliank@apple.com>
Kilian Koeltzsch <kiliank@apple.com> <me@kilian.io>
Kyle Jessup <kyle@perfect.org> <kyle@perfect.org>
Kyle Jessup <kyle@perfect.org> <badthing@gmail.com>
Lev Walkin <lwalkin@apple.com> <lwalkin@apple.com>
Lev Walkin <lwalkin@apple.com> <vlm@lionet.info>
Marcin Krzyzanowski <marcin@krzyzanowskim.com> <marcin@krzyzanowskim.com>
Marcin Krzyzanowski <marcin@krzyzanowskim.com> <758033+krzyzanowskim@users.noreply.github.com>
Marcin Krzyzanowski <marcin@krzyzanowskim.com> <marcin.krzyzanowski@gmail.com>
Marcin Krzyzanowski <marcin@krzyzanowskim.com> <marcin@krzyzanowskim.com>
Matthew Seaman <mattsdeveloper@gmail.com> <mattsdeveloper@gmail.com>
Matthew Seaman <mattsdeveloper@gmail.com> <matthewseaman@users.noreply.github.com>
Mattt Thompson <mattt@me.com> <mattt@me.com>
Mattt Thompson <mattt@me.com> <mattt@github.com>
Mattt Thompson <mattt@me.com> <mattt.thompson@apple.com>
Max Howell <max.howell@apple.com> <max.howell@apple.com>
Max Howell <max.howell@apple.com> <mxcl@me.com>
Max Liberman <max.y.liberman@gmail.com> <max.y.liberman@gmail.com>
Max Liberman <max.y.liberman@gmail.com> <liberman@wetransfer.com>
Max Moiseev <moiseev@apple.com> <moiseev@apple.com>
Max Moiseev <moiseev@apple.com> <moiseev@users.noreply.github.com>
Max Moiseev <moiseev@apple.com> <maxim.moiseev@gmail.com>
Michael Ilseman <milseman@apple.com> <milseman@apple.com>
Michael Ilseman <milseman@apple.com> <michael.ilseman@gmail.com>
Mishal Shah <mishal_shah@apple.com> <mishal_shah@apple.com>
Mishal Shah <mishal_shah@apple.com> <shahmishal@users.noreply.github.com>
Nikola Lajic <n.lajic@gmail.com> <n.lajic@gmail.com>
Nikola Lajic <n.lajic@gmail.com> <nikola.lajic@codecentric.de>
Owen Voorhees <owen@squibner.com> <owen@squibner.com>
Owen Voorhees <owen@squibner.com> <owenvoorhees@gmail.com>
Pavel Yaskevich <pyaskevich@apple.com> <pyaskevich@apple.com>
Pavel Yaskevich <pyaskevich@apple.com> <xedin@apache.org>
Saleem Abdulrasool <compnerd@compnerd.org> <compnerd@compnerd.org>
Saleem Abdulrasool <compnerd@compnerd.org> <abdulras@fb.com>
Saleem Abdulrasool <compnerd@compnerd.org> <abdulras@google.com>
Sergio Campamá <scampama@apple.com> <scampama@apple.com>
Sergio Campamá <scampama@apple.com> <kaipi@copilot.money>
Slava Pestov <spestov@apple.com> <spestov@apple.com>
Slava Pestov <spestov@apple.com> <sviatoslav.pestov@gmail.com>
Thomas Roughton <t.roughton@me.com> <t.roughton@me.com>
Thomas Roughton <t.roughton@me.com> <troughton@users.noreply.github.com>
Tim Condon <0xTim@users.noreply.github.com> <0xTim@users.noreply.github.com>
Tim Condon <0xTim@users.noreply.github.com> <tg908@icloud.com>
Tim Gymnich <tgymnich@icloud.com> <tgymnich@icloud.com>
Tim Gymnich <tgymnich@icloud.com> <tg908@icloud.com>
Tom Doron <tomer@apple.com> <tomer@apple.com>
Valeriy Van <github@w7software.com> <valeriy.van@enote.com>
Valeriy Van <github@w7software.com> <github@w7software.com>
finagolfin <butta@fastem.com> <butta@fastem.com>
finagolfin <butta@fastem.com> <repo@butta.fastem.com>
================================================
FILE: .pep8
================================================
[flake8]
filename = *.py,bootstrap
max-line-length = 80
================================================
FILE: .swift-version
================================================
6.2.3
================================================
FILE: .swiftformat
================================================
## File options
--swiftversion 5.9
--exclude .build
## Formatting options
# Configure the placement of an extension's access control keyword.
--extensionacl on-declarations
# #if indenting
--ifdef no-indent
# Wrap lines that exceed the specified maximum width.
--maxwidth 120
# Reposition `let` or `var` bindings within pattern.
--patternlet inline
# Insert explicit `self` where applicable.
--self insert
# Mark unused function arguments with `_`.
--stripunusedargs unnamed-only
# Remove trailing space at end of a line.
--trimwhitespace always
# Wrap `@attributes` onto a separate line.
--funcattributes prev-line
--typeattributes prev-line
# Use `Void` for type declarations and `()` for values.
--voidtype void
# Align wrapped function arguments or collection elements.
--wraparguments before-first
## Rules
# Prefer `&&` over `,` comma in `if`, `guard` or `while` conditions.
# Preserve `nil` default value (Optional `var`s are `nil` by default).
--disable andOperator,redundantNilInit
================================================
FILE: Benchmarks/Benchmarks/PackageGraphBenchmarks/PackageGraphBenchmarks.swift
================================================
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift open source project
//
// Copyright (c) 2024 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
@_spi(DontAdoptOutsideOfSwiftPMExposedForBenchmarksAndTestsOnly)
import Basics
import Benchmark
import Foundation
import PackageModel
@_spi(DontAdoptOutsideOfSwiftPMExposedForBenchmarksAndTestsOnly)
import func PackageGraph.loadModulesGraph
import Workspace
let benchmarks = {
let defaultMetrics: [BenchmarkMetric]
if let envVar = ProcessInfo.processInfo.environment["SWIFTPM_BENCHMARK_ALL_METRICS"],
envVar.lowercased() == "true" || envVar == "1" {
defaultMetrics = .all
} else {
defaultMetrics = [
.mallocCountTotal,
.syscalls,
]
}
let modulesGraphDepth: Int
if let envVar = ProcessInfo.processInfo.environment["SWIFTPM_BENCHMARK_MODULES_GRAPH_DEPTH"],
let parsedValue = Int(envVar) {
modulesGraphDepth = parsedValue
} else {
modulesGraphDepth = 150
}
let modulesGraphWidth: Int
if let envVar = ProcessInfo.processInfo.environment["SWIFTPM_BENCHMARK_MODULES_GRAPH_WIDTH"],
let parsedValue = Int(envVar) {
modulesGraphWidth = parsedValue
} else {
modulesGraphWidth = 150
}
let packagesGraphDepth: Int
if let envVar = ProcessInfo.processInfo.environment["SWIFTPM_BENCHMARK_PACKAGES_GRAPH_DEPTH"],
let parsedValue = Int(envVar) {
packagesGraphDepth = parsedValue
} else {
packagesGraphDepth = 10
}
// Benchmarks computation of a resolved graph of modules for a package using `Workspace` as an entry point. It runs PubGrub to get
// resolved concrete versions of dependencies, assigning all modules and products to each other as corresponding dependencies
// with their build triples, but with the build plan not yet constructed. In this benchmark specifically we're loading `Package.swift`
// for SwiftPM itself.
Benchmark(
"SwiftPMWorkspaceModulesGraph",
configuration: .init(
metrics: defaultMetrics,
maxDuration: .seconds(10),
thresholds: [
.mallocCountTotal: .init(absolute: [.p90: 12000]),
.syscalls: .init(absolute: [.p90: 1600]),
]
)
) { benchmark in
let path = try AbsolutePath(validating: #file).parentDirectory.parentDirectory.parentDirectory
let workspace = try Workspace(fileSystem: localFileSystem, location: .init(forRootPackage: path, fileSystem: localFileSystem))
for _ in benchmark.scaledIterations {
try workspace.loadPackageGraph(rootPath: path, observabilityScope: ObservabilitySystem.NOOP)
}
}
// Benchmarks computation of a resolved graph of modules for a trivial synthesized package using `loadModulesGraph`
// as an entry point, which almost immediately delegates to `ModulesGraph.load` under the hood.
Benchmark(
"SyntheticModulesGraph",
configuration: .init(
metrics: defaultMetrics,
maxDuration: .seconds(10),
thresholds: [
.mallocCountTotal: .init(absolute: [.p90: 17000]),
.syscalls: .init(absolute: [.p90: 5]),
]
)
) { benchmark in
try syntheticModulesGraph(
benchmark,
modulesGraphDepth: modulesGraphDepth,
modulesGraphWidth: modulesGraphWidth
)
}
// Benchmarks computation of a resolved graph of modules for a synthesized package that includes macros,
// using `loadModulesGraph` as an entry point, which almost immediately delegates to `ModulesGraph.load` under
// the hood.
Benchmark(
"SyntheticModulesGraphWithMacros",
configuration: .init(
metrics: defaultMetrics,
maxDuration: .seconds(10),
thresholds: [
.mallocCountTotal: .init(absolute: [.p90: 8000]),
.syscalls: .init(absolute: [.p90: 5]),
]
)
) { benchmark in
try syntheticModulesGraph(
benchmark,
modulesGraphDepth: modulesGraphDepth,
modulesGraphWidth: modulesGraphWidth,
includeMacros: true
)
}
}
func syntheticModulesGraph(
_ benchmark: Benchmark,
modulesGraphDepth: Int,
modulesGraphWidth: Int,
includeMacros: Bool = false
) throws {
// If macros are included, modules are split in three parts:
// 1. top-level modules
// 2. macros
// 3. dependencies of macros
let macrosDenominator = includeMacros ? 3 : 1
let libraryModules: [TargetDescription] = try (0..<(modulesGraphWidth / macrosDenominator)).map { i -> TargetDescription in
let dependencies = (0..<min(i, modulesGraphDepth / macrosDenominator)).flatMap { i -> [TargetDescription.Dependency] in
if includeMacros {
[.target(name: "Module\(i)"), .target(name: "Macros\(i)")]
} else {
[.target(name: "Module\(i)")]
}
}
return try TargetDescription(name: "Module\(i)", dependencies: dependencies)
}
let macrosModules: [TargetDescription]
let macrosDependenciesModules: [TargetDescription]
if includeMacros {
macrosModules = try (0..<modulesGraphWidth / macrosDenominator).map { i in
try TargetDescription(name: "Macros\(i)", dependencies: (0..<min(i, modulesGraphDepth)).map {
.target(name: "MacrosDependency\($0)")
})
}
macrosDependenciesModules = try (0..<modulesGraphWidth / macrosDenominator).map { i in
try TargetDescription(name: "MacrosDependency\(i)")
}
} else {
macrosModules = []
macrosDependenciesModules = []
}
let modules = libraryModules + macrosModules + macrosDependenciesModules
let fileSystem = InMemoryFileSystem(
emptyFiles: modules.map {
"/benchmark/Sources/\($0.name)/empty.swift"
}
)
let rootPackagePath = try AbsolutePath(validating: "/benchmark")
let manifest = Manifest(
displayName: "benchmark",
path: rootPackagePath,
packageKind: .root(rootPackagePath),
packageLocation: rootPackagePath.pathString,
defaultLocalization: nil,
platforms: [],
version: nil,
revision: nil,
toolsVersion: .v5_10,
pkgConfig: nil,
providers: nil,
cLanguageStandard: nil,
cxxLanguageStandard: nil,
swiftLanguageVersions: nil,
targets: modules
)
for _ in benchmark.scaledIterations {
try blackHole(
loadModulesGraph(fileSystem: fileSystem, manifests: [manifest], observabilityScope: ObservabilitySystem.NOOP)
)
}
}
================================================
FILE: Benchmarks/Package.swift
================================================
// swift-tools-version: 5.7
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift open source project
//
// Copyright (c) 2023 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import PackageDescription
let package = Package(
name: "SwiftPMBenchmarks",
platforms: [
.macOS("14"),
],
dependencies: [
.package(path: "../"),
.package(url: "https://github.com/ordo-one/package-benchmark.git", from: "1.13.0"),
],
targets: [
.executableTarget(
name: "PackageGraphBenchmarks",
dependencies: [
.product(name: "Benchmark", package: "package-benchmark"),
.product(name: "SwiftPMDataModel", package: "SwiftPM"),
],
path: "Benchmarks/PackageGraphBenchmarks",
plugins: [
.plugin(name: "BenchmarkPlugin", package: "package-benchmark"),
]
),
]
)
================================================
FILE: Benchmarks/README.md
================================================
# SwiftPM Benchmarks
Benchmarks currently use [ordo-one/package-benchmark](https://github.com/ordo-one/package-benchmark) library for
benchmarking.
## How to Run
To run the benchmarks in their default configuration, run this command in the `Benchmarks` subdirectory of the SwiftPM
repository clone (the directory in which this `README.md` file is contained):
```
swift package benchmark
```
To collect all benchmark metrics, set `SWIFTPM_BENCHMARK_ALL_METRICS` to a truthy value:
```
SWIFTPM_BENCHMARK_ALL_METRICS=true swift package benchmark
```
## Benchmark Thresholds
`Benchmarks/Thresholds` subdirectory contains recorded allocation and syscall counts for macOS on Apple Silicon when
built with Swift 5.10. To record new thresholds, run the following command:
```
swift package --allow-writing-to-package-directory benchmark \
--format metricP90AbsoluteThresholds \
--path "Thresholds/$([[ $(uname) == Darwin ]] && echo macos || echo linux)-$(uname -m)"
```
To verify that recorded thresholds do not exceeded given relative or absolute values (passed as `thresholds` arguments
to each benchmark's configuration), run this command:
```
swift package benchmark baseline check --check-absolute-path Thresholds/
```
================================================
FILE: Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
================================================
{
"mallocCountTotal" : 11255,
"syscalls" : 1497
}
================================================
FILE: Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
================================================
{
"mallocCountTotal" : 15679,
"syscalls" : 0
}
================================================
FILE: Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SyntheticModulesGraphWithMacros.p90.json
================================================
{
"mallocCountTotal" : 7743,
"syscalls" : 0
}
================================================
FILE: Benchmarks/Thresholds/macosx-arm64/PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
================================================
{
"mallocCountTotal" : 10775,
"syscalls" : 1508
}
================================================
FILE: Benchmarks/Thresholds/macosx-arm64/PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
================================================
{
"mallocCountTotal" : 2427,
"syscalls" : 0
}
================================================
FILE: BuildSupport/SwiftSyntax/CMakeLists.txt
================================================
include(FetchContent)
find_package(SwiftSyntax CONFIG GLOBAL)
if(NOT SwiftSyntax_FOUND)
set(SWIFT_SYNTAX_INSTALL_TARGETS YES)
if(DEFINED SWIFTPM_PATH_TO_SWIFT_SYNTAX_SOURCE)
file(TO_CMAKE_PATH "${SWIFTPM_PATH_TO_SWIFT_SYNTAX_SOURCE}" swift_syntax_path)
FetchContent_Declare(SwiftSyntax
SOURCE_DIR "${swift_syntax_path}")
else()
FetchContent_Declare(SwiftSyntax
GIT_REPOSITORY https://github.com/swiftlang/swift-syntax
GIT_TAG main)
endif()
FetchContent_MakeAvailable(SwiftSyntax)
endif()
================================================
FILE: CHANGELOG.md
================================================
Note: This is in reverse chronological order, so newer entries are added to the top.
Swift Next
-----------
Swift 6.2
---------
* [#8314]
Starting from tools-version 6.2, `SwiftSetting` provides a `strictMemorySafety` setting to enable the strict memory safety checking introduced in [SE-0458].
* [#8301]
Starting from tools-version 6.2, `SwiftSetting` provides a `defaultIsolation` setting to allow specifying default actor isolation for a target [SE-0466].
Swift 6.0
-----------
* [#7813]
Starting from tools-version 6.0, `swiftLanguageMode` can be specified at the target level, allowing for gradual per-target migration to the Swift 6 language mode.
The `swiftLanguageVersions` setting has been deprecated and renamed to `swiftLanguageModes`.
* [#7530]
Starting from tools-version 6.0 makes it possible for packages to depend on each other if such dependency doesn't form any target-level cycles.
For example, package `A` can depend on `B` and `B` on `A` unless targets in `B` depend on products of `A` that depend on some of the same
targets from `B` and vice versa.
* [#7741]
Fixed an issue where repositories would be re-cloned each build rather than using the cache due to git validation errors.
* [#7507]
`swift experimental-sdk` command is deprecated with `swift sdk` command replacing it. `--experimental-swift-sdk` and
`--experimental-swift-sdks-path` options on `swift build` are deprecated with replacements that don't have the
`experimental` prefix.
* [#7722]
An additional `--checksum` option is now required for `swift sdk install` subcommand with remote URLs as arguments. `--checksum` allows users of a Swift SDK to specify a checksum provided by the SDK publisher. A checksum can be produced by running `swift package compute-checksum` command (introduced in [SE-0272]) with the Swift SDK bundle archive as an argument.
* [#7535]
The `swift sdk configuration` subcommand is deprecated with a replacement named `configure` that has options that exactly match
[SE-0387 proposal text].
* [#7202]
Package manifests can now access information about the Git repository the given package is in via the context object's
`gitInformation` property. This allows to determine the current tag (if any), the current commit and whether or not there are uncommited changes.
* [#7201]
`// swift-tools-version:` can now be specified on subsequent lines of `Package.swift`, for example when first few lines are required to contain a licensing comment header.
* [#7118]
Macros cross-compiled by SwiftPM with Swift SDKs are now correctly built, loaded, and evaluated for the host triple.
Packages with modules that incorrectly imported macro modules directly instead of importing macro interface modules will no longer build
with `swift build`.
Swift 5.10
-----------
* [#7010]
On macOS, `swift build` and `swift run` now produce binaries that allow backtraces in debug builds. Pass `SWIFT_BACKTRACE=enable=yes` environment variable to enable backtraces on such binaries when running them.
* [#7101]
Binary artifacts are now cached along side repository checkouts so they do not need to be re-downloaded across projects.
Swift 5.9
-----------
* [SE-0386]
SwiftPM packages can now use `package` as a new access modifier, allowing accessing symbols in another target / module within the same package without making it public.
* [SE-0387]
New `swift experimental-sdk` experimental command is now available for managing Swift SDK bundles that follow the format described in [SE-0387]: "Swift SDKs for Cross-Compilation".
* [SE-0391]
SwiftPM can now publish to a registry following the publishing spec as defined in [SE-0391]. SwiftPM also gains support for signed packages. Trust-on-first-use (TOFU) check which includes only fingerprints (e.g., checksums) previously has been extended to include signing identities, and it is enforced for source archives as well as package manifests.
* [#5966]
Plugin compilation can be influenced by using `-Xbuild-tools-swiftc` arguments in the SwiftPM command line. This is similar to the existing mechanism for influencing the manifest compilation using `-Xmanifest` arguments. Manifest compilation will also be influenced by `-Xbuild-tools-swiftc`, but only if no other `-Xmanifest` arguments are provided. Using `-Xmanifest` will show a deprecation message. `-Xmanifest` will be removed in the future.
* [#6060]
Support for building plugin dependencies for the host when cross-compiling.
* [#6067]
Basic support for a new `.embedInCode` resource rule which allows embedding the contents of the resource into the executable code by generating a byte array, e.g.
```
struct PackageResources {
static let best_txt: [UInt8] = [104,101,108,108,111,32,119,111,114,108,100,10]
}
```
* [#6111]
Package creation using `package init` now also supports the build tool plugin and command plugin types.
* [#6114]
Added a new `allowNetworkConnections(scope:reason:)` for giving a command plugin permissions to access the network. Permissions can be scoped to Unix domain sockets in general or specifically for Docker, as well as local or remote IP connections which can be limited by port. For non-interactive use cases, there is also a `--allow-network-connections` commandline flag to allow network connections for a particular scope.
* [#6144]
Remove the `system-module` and `manifest` templates and clean up the remaining `empty`, `library`, and `executable` templates so they include the minimum information needed to get started, with links to documentation in the generated library, executable, and test content.
* [#6185], [#6200]
Add a new `CompilerPluginSupport` module which contains the definition for macro targets. Macro targets allow authoring and distribution of custom Swift macros such as [expression macros](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0382-expression-macros.md).
* [#6276]
Add new build setting in the package manifest that enables Swift/C++ Interoperability for a given Swift target.
```
.interoperabilityMode(.Cxx, version: "swift-5.9")
```
* [#6294]
When a package contains a single target, sources may be distributed anywhere within the `./Sources` directory. If sources are placed in a subdirectory under `./Sources/<target>`, or there is more than one target, the existing expectation for sources apply.
* [#6540]
Build tool plugins can be used with C-family targets
* [#6663]
Add `visionOS` as a platform alongside `iOS` and other platforms
Swift 5.8
-----------
* [SE-0362]
SwiftPM targets can now specify the upcoming language features they require. `Package.swift` manifest syntax has been expanded with an API to include setting `enableUpcomingFeature` and `enableExperimentalFeature` flags at the target level, as specified by [SE-0362].
* [SE-0378]
SwiftPM now supports token authentication when interacting with a package registry. The `swift package-registry` command has two new subcommands `login` and `logout` as defined in SE-0378 for adding/removing registry credentials.
* [#5810]
SwiftPM now allows exposing an executable product that consists solely of a binary target that is backed by an artifact bundle. This allow vending binary executables as their own separate package, independently of the plugins that are using them.
* [#5819]
Improved handling of offline behavior when a cached version of a dependency exists on disk. SwiftPM will check for network availability status to determine if it should attempt to update a checked version of a dependency, and when offline will use the cached version without an update.
* [#5874]
In packages using tools version 5.8 or later, Foundation is no longer implicitly imported into package manifests. If Foundation APIs are used, the module needs to be imported explicitly.
* [#5892]
Added new `--emit-extension-block-symbols` and `--omit-extension-block-symbols` via `swift package dump-symbol-graph`. `--emit-extension-block-symbols` dumps symbol graph files that are extension block symbol format. The default behavior does not change. The `--omit-extension-block-symbols` flag will be used to explicitly disable the feature once the default behavior has been changed to `--emit-extension-block-symbols` in the future.
* [#5949]
New `--pkg-config-path` option on `build`, `test`, and `run` commands has been introduced as an alternative to passing `PKG_CONFIG_PATH` environment variable. It allows specifying alternative path to search for `.pc` files used by `pkg-config`. Use the option multiple times to specify more than one path.
Swift 5.7
-----------
* [SE-0292]
SwiftPM can now resolve dependencies from a server compliant with the package registry server API defined in SE-0292.
* [SE-0339]
Module aliases can now be defined in the package manifest to disambiguate between modules with the same name originating from different packages.
* [#4119]
Add a `--disable-testable-imports` flag to `swift test` with which tests are built without the testability feature (`import @testable` disabled).
* [#4131]
Update to manifest API to make it impossible to create an invalid build settings condition.
* [#4135]
Enable linker dead stripping for all platforms. This can be disabled with `--disable-dead-strip`
* [#4168]
Update to manifest API to make it impossible to create an invalid target dependency condition.
Swift 5.6
-----------
* [SE-0303]
Package plugins of the type `buildTool` can now be declared in packages that specify a tools version of 5.6 or later, and can be invoked using the `swift build` command.
* [SE-0332]
Package plugins of the type `command` can now be declared in packages that specify a tools version of 5.6 or later, and can be invoked using the `swift package` subcommand.
* [#3649]
Semantic version dependencies can now be resolved against Git tag names that contain only major and minor version identifiers. A tag with the form `X.Y` will be treated as `X.Y.0`. This improves compatibility with existing repositories.
* [#3486]
Both parsing and comparison of semantic versions now strictly follow the [Semantic Versioning 2.0.0 specification](https://semver.org).
The parsing logic now treats the first "-" in a version string as the delimiter between the version core and the pre-release identifiers, _only_ if there is no preceding "+". Otherwise, it's treated as part of a build metadata identifier.
The comparison logic now ignores build metadata identifiers, and treats 2 semantic versions as equal if and only if they're equal in their major, minor, patch versions and pre-release identifiers.
* [#3641]
Soft deprecate `.package(name:, url:)` dependency syntax in favor of `.package(url:)`, given that an explicit `name` attribute is no longer needed for target dependencies lookup.
* [#3641]
Adding a dependency requirement can now be done with the convenience initializer `.package(url: String, exact: Version)`.
* [#3641]
Dependency requirement enum calling convention is deprecated in favour of labeled argument:
* `.package(url: String, .branch(String))` -> `.package(url: String, branch: String)`
* `.package(url: String, .revision(String))` -> `.package(url: String, revision: String)`
* `.package(url: String, .exact(Version))` -> `.package(url: String, exact: Version)`
* [#3717]
Introduce a second version of `Package.resolved` file format which more accurately captures package identity.
* [#3890]
To increase the security of packages, SwiftPM performs trust on first use (TOFU) validation. The fingerprint of a package is now being recorded when the package is first downloaded from a Git repository or package registry. Subsequent downloads must have fingerpints matching previous recorded values, otherwise it would result in build warnings or failures depending on settings.
* [#3670], [#3901], [#3942]
Location of configuration files (including mirror file) have changed to accomodate new features that require more robust configuration directories structure, such as SE-0292:
* `<project>/.swiftpm/config` (mirrors file) was moved to `<project>/.swiftpm/configuration/mirrors.json`. SwiftPM 5.6 will automatically copy the file from the old location to the new one and emit a warning to prompt the user to delete the file from the old location.
* `~/.swiftpm/config/collections.json` (collections file) was moved to `~/.swiftpm/configuration/collections.json`. SwiftPM 5.6 will automatically copy the file from the old location to the new one and emit a warning to prompt the user to delete the file from the old location.
Swift 5.5
-----------
* [#3410]
In a package that specifies a minimum tools version of 5.5, `@main` can now be used in a single-source file executable as long as the name of the source file isn't `main.swift`. To work around special compiler semantics with single-file modules, SwiftPM now passes `-parse-as-library` when compiling an executable module that contains a single Swift source file whose name is not `main.swift`.
* [#3310]
Adding a dependency requirement can now be done with the convenience initializer `.package(url: String, revision: String)`.
* [#3292]
Adding a dependency requirement can now be done with the convenience initializer `.package(url: String, branch: String)`.
* [#3280]
A more intuitive `.product(name:, package:)` target dependency syntax is now accepted, where `package` is the package identifier as defined by the package URL.
* [#3316]
Test targets can now link against executable targets as if they were libraries, so that they can test any data structures or algorithms in them. All the code in the executable except for the main entry point itself is available to the unit test. Separate executables are still linked, and can be tested as a subprocess in the same way as before. This feature is available to tests defined in packages that have a tools version of `5.5` or newer.
Swift 5.4
-----------
* [#2937]
* Improvements
`Package` manifests can now have any combination of leading whitespace characters. This allows more flexibility in formatting the manifests.
[SR-13566] The Swift tools version specification in each manifest file now accepts any combination of _horizontal_ whitespace characters surrounding `swift-tools-version`, if and only if the specified version ≥ `5.4`. For example, `//swift-tools-version: 5.4` and `// swift-tools-version: 5.4` are valid.
All [Unicode line terminators](https://www.unicode.org/reports/tr14/) are now recognized in `Package` manifests. This ensures correctness in parsing manifests that are edited and/or built on many non-Unix-like platforms that use ASCII or Unicode encodings.
* API Removal
`ToolsVersionLoader.Error.malformedToolsVersion(specifier: String, currentToolsVersion: ToolsVersion)` is replaced by `ToolsVersionLoader.Error.malformedToolsVersionSpecification(_ malformation: ToolsVersionSpecificationMalformation)`.
`ToolsVersionLoader.split(_ bytes: ByteString) -> (versionSpecifier: String?, rest: [UInt8])` and `ToolsVersionLoader.regex` are together replaced by `ToolsVersionLoader.split(_ manifest: String) -> ManifestComponents`.
* Source Breakages for Swift Packages
The package manager now throws an error if a manifest file contains invalid UTF-8 byte sequences.
Swift 4.2
---------
* [SE-0209]
The `swiftLanguageVersions` property no longer takes its Swift language versions via
a freeform Integer array; instead it should be passed as a new `SwiftVersion` enum
array.
* [SE-0208]
The `Package` manifest now accepts a new type of target, `systemLibrary`. This
deprecates "system-module packages" which are now to be included in the packages
that require system-installed dependencies.
* [SE-0201]
Packages can now specify a dependency as `package(path: String)` to point to a
path on the local filesystem which hosts a package. This will enable interconnected
projects to be edited in parallel.
* [#1604]
The `generate-xcodeproj` has a new `--watch` option to automatically regenerate the Xcode project
if changes are detected. This uses the
[`watchman`](https://facebook.github.io/watchman/docs/install.html) tool to detect filesystem
changes.
* Scheme generation has been improved:
* One scheme containing all regular and test targets of the root package.
* One scheme per executable target containing the test targets whose dependencies
intersect with the dependencies of the exectuable target.
* [SR-6978]
Packages which mix versions of the form `vX.X.X` with `Y.Y.Y` will now be parsed and
ordered numerically.
* [#1489]
A simpler progress bar is now generated for "dumb" terminals.
Swift 4.1
---------
* [#1485]
Support has been added to automatically generate the `LinuxMain` files for testing on
Linux systems. On a macOS system, run `swift test --generate-linuxmain`.
* [SR-5918]
`Package` manifests that include multiple products with the same name will now throw an
error.
Swift 4.0
---------
* The generated Xcode project creates a dummy target which provides
autocompletion for the manifest files. The name of the dummy target is in
format: `<PackageName>PackageDescription`.
* `--specifier` option for `swift test` is now deprecated.
Use `--filter` instead which supports regex.
Swift 3.0
---------
* [SE-0135]
The package manager now supports writing Swift 3.0 specific tags and
manifests, in order to support future evolution of the formats used in both
cases while still allowing the Swift 3.0 package manager to continue to
function.
* [SE-0129]
Test modules now *must* be named with a `Tests` suffix (e.g.,
`Foo/Tests/BarTests/BarTests.swift`). This name also defines the name of the
Swift module, replacing the old `BarTestSuite` module name.
* It is no longer necessary to run `swift build` before running `swift test` (it
will always regenerates the build manifest when necessary). In addition, it
now accepts (and requires) the same `-Xcc`, etc. options as are used with
`swift build`.
* The `Package` initializer now requires the `name:` parameter.
[SE-0129]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0129-package-manager-test-naming-conventions.md
[SE-0135]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0135-package-manager-support-for-differentiating-packages-by-swift-version.md
[SE-0201]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0201-package-manager-local-dependencies.md
[SE-0208]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0208-package-manager-system-library-targets.md
[SE-0209]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0209-package-manager-swift-lang-version-update.md
[SE-0272]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0272-swiftpm-binary-dependencies.md
[SE-0292]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0292-package-registry-service.md
[SE-0303]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0303-swiftpm-extensible-build-tools.md
[SE-0332]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0332-swiftpm-command-plugins.md
[SE-0339]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0339-module-aliasing-for-disambiguation.md
[SE-0362]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0362-piecemeal-future-features.md
[SE-0378]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0378-package-registry-auth.md
[SE-0386]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0386-package-access-modifier.md
[SE-0387]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0387-cross-compilation-destinations.md
[SE-0391]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0391-package-registry-publish.md
[SE-0387 proposal text]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0387-cross-compilation-destinations.md#swift-sdk-installation-and-configuration
[SE-0458]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0458-strict-memory-safety.md
[SR-5918]: https://bugs.swift.org/browse/SR-5918
[SR-6978]: https://bugs.swift.org/browse/SR-6978
[SR-13566]: https://bugs.swift.org/browse/SR-13566
[#1485]: https://github.com/swiftlang/swift-package-manager/pull/1485
[#1489]: https://github.com/swiftlang/swift-package-manager/pull/1489
[#1604]: https://github.com/swiftlang/swift-package-manager/pull/1604
[#2937]: https://github.com/swiftlang/swift-package-manager/pull/2937
[#3280]: https://github.com/swiftlang/swift-package-manager/pull/3280
[#3292]: https://github.com/swiftlang/swift-package-manager/pull/3292
[#3310]: https://github.com/swiftlang/swift-package-manager/pull/3310
[#3316]: https://github.com/swiftlang/swift-package-manager/pull/3316
[#3410]: https://github.com/swiftlang/swift-package-manager/pull/3410
[#3486]: https://github.com/swiftlang/swift-package-manager/pull/3486
[#3641]: https://github.com/swiftlang/swift-package-manager/pull/3641
[#3649]: https://github.com/swiftlang/swift-package-manager/pull/3649
[#3670]: https://github.com/swiftlang/swift-package-manager/pull/3670
[#3717]: https://github.com/swiftlang/swift-package-manager/pull/3717
[#3890]: https://github.com/swiftlang/swift-package-manager/pull/3890
[#3901]: https://github.com/swiftlang/swift-package-manager/pull/3901
[#3942]: https://github.com/swiftlang/swift-package-manager/pull/3942
[#4119]: https://github.com/swiftlang/swift-package-manager/pull/4119
[#4131]: https://github.com/swiftlang/swift-package-manager/pull/4131
[#4135]: https://github.com/swiftlang/swift-package-manager/pull/4135
[#4168]: https://github.com/swiftlang/swift-package-manager/pull/4168
[#5728]: https://github.com/swiftlang/swift-package-manager/pull/5728
[#5810]: https://github.com/swiftlang/swift-package-manager/pull/5810
[#5819]: https://github.com/swiftlang/swift-package-manager/pull/5819
[#5874]: https://github.com/swiftlang/swift-package-manager/pull/5874
[#5949]: https://github.com/swiftlang/swift-package-manager/pull/5949
[#5892]: https://github.com/swiftlang/swift-package-manager/pull/5892
[#5966]: https://github.com/swiftlang/swift-package-manager/pull/5966
[#6060]: https://github.com/swiftlang/swift-package-manager/pull/6060
[#6067]: https://github.com/swiftlang/swift-package-manager/pull/6067
[#6111]: https://github.com/swiftlang/swift-package-manager/pull/6111
[#6114]: https://github.com/swiftlang/swift-package-manager/pull/6114
[#6144]: https://github.com/swiftlang/swift-package-manager/pull/6144
[#6294]: https://github.com/swiftlang/swift-package-manager/pull/6294
[#6185]: https://github.com/swiftlang/swift-package-manager/pull/6185
[#6200]: https://github.com/swiftlang/swift-package-manager/pull/6200
[#6276]: https://github.com/swiftlang/swift-package-manager/pull/6276
[#6540]: https://github.com/swiftlang/swift-package-manager/pull/6540
[#6663]: https://github.com/swiftlang/swift-package-manager/pull/6663
[#7010]: https://github.com/swiftlang/swift-package-manager/pull/7010
[#7101]: https://github.com/swiftlang/swift-package-manager/pull/7101
[#7118]: https://github.com/swiftlang/swift-package-manager/pull/7118
[#7201]: https://github.com/swiftlang/swift-package-manager/pull/7201
[#7202]: https://github.com/swiftlang/swift-package-manager/pull/7202
[#7507]: https://github.com/swiftlang/swift-package-manager/pull/7507
[#7530]: https://github.com/swiftlang/swift-package-manager/pull/7530
[#7535]: https://github.com/swiftlang/swift-package-manager/pull/7535
[#7722]: https://github.com/swiftlang/swift-package-manager/pull/7722
[#7741]: https://github.com/swiftlang/swift-package-manager/pull/7741
[#7813]: https://github.com/swiftlang/swift-package-manager/pull/7813
[#8301]: https://github.com/swiftlang/swift-package-manager/pull/8301
[#8314]: https://github.com/swiftlang/swift-package-manager/pull/8314
================================================
FILE: CMakeLists.txt
================================================
# This source file is part of the Swift open source project
#
# Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
# Licensed under Apache License v2.0 with Runtime Library Exception
#
# See http://swift.org/LICENSE.txt for license information
# See http://swift.org/CONTRIBUTORS.txt for Swift project authors
if(POLICY CMP0091)
cmake_policy(SET CMP0091 NEW)
endif()
cmake_minimum_required(VERSION 3.24)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
project(SwiftPM LANGUAGES C Swift)
option(BUILD_SHARED_LIBS "Build shared libraries by default" YES)
option(FIND_PM_DEPS "Search for all external Package Manager dependencies" YES)
option(SwiftPM_ENABLE_RUNTIME "Build the runtime" YES)
set(CMAKE_Swift_LANGUAGE_VERSION 5)
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)
set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
set(CMAKE_POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS})
if(FIND_PM_DEPS)
find_package(SwiftSystem CONFIG REQUIRED)
find_package(TSC CONFIG REQUIRED)
find_package(LLBuild CONFIG)
if(NOT LLBuild_FOUND)
find_package(LLBuild REQUIRED)
endif()
find_package(ArgumentParser CONFIG REQUIRED)
find_package(SwiftDriver CONFIG REQUIRED)
find_package(SwiftCollections CONFIG REQUIRED)
find_package(SwiftASN1 CONFIG REQUIRED)
find_package(SwiftCertificates CONFIG REQUIRED)
find_package(SwiftCrypto CONFIG REQUIRED)
find_package(SwiftToolsProtocols CONFIG REQUIRED)
find_package(SwiftBuild CONFIG REQUIRED)
endif()
find_package(dispatch QUIET)
find_package(Foundation QUIET)
find_package(SQLite3 REQUIRED)
# Enable `package` modifier for the whole package.
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-package-name swift_package_manager>")
if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
link_directories(/usr/local/lib)
endif()
add_subdirectory(BuildSupport/SwiftSyntax)
add_subdirectory(Sources)
add_subdirectory(cmake/modules)
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Swift Package Manager
There are several types of contributions one can make. Bug fixes, documentation and enhancements that do not materially change the user facing semantics of Swift Package Manager should be submitted directly as PR.
Larger changes that do materially change the semantics of Swift Package Manager (e.g. changes to the manifest format or behavior) are required to go through [Swift Evolution Process](https://github.com/swiftlang/swift-evolution/blob/main/process.md).
To see how previous evolution decisions for SwiftPM have been made and have some direction for the development of future features please check out the [Community Proposals](https://forums.swift.org/tag/packagemanager).
For more information about making contributions to the Swift project in general see [Swift Contribution Guide](https://swift.org/contributing/).
## Reporting issues
Issues are tracked using [SwiftPM GitHub Issue Tracker](https://github.com/swiftlang/swift-package-manager/issues).
Fill the following fields:
* `Title`: A one line summary of the problem you're facing.
* `Description`: The complete description of the problem. Be specific.
* `Expected behavior`: How you expect SwiftPM to behave.
* `Actual behavior` : What actually happens.
* `Steps to reproduce`: Be specific, provide steps to reproduce the bug.
* `Swift Package Manager version/commit hash` : With which version are you testing.
* `Actual behavior` : What actually happens.
* `Swift & OS version` : (output of `swift --version && uname -a`).
Please include a minimal example package which can reproduce the issue. The
sample package can be attached with the report or you can include the URL of the
package hosted on places like GitHub.
Also, include the verbose logs by adding `--verbose` or `-v` after a subcommand.
For example:
$ swift build --verbose
$ swift package update --verbose
If the bug is with a generated Xcode project, include how the project was
generated and the Xcode build log.
## Setting up the development environment
First, clone a copy of SwiftPM code from https://github.com/swiftlang/swift-package-manager.
If you are preparing to make a contribution you should fork the repository first and clone the fork which will make opening Pull Requests easier. See "Creating Pull Requests" section below.
SwiftPM is typically built with a pre-existing version of SwiftPM present on the system, but there are multiple ways to setup your development environment:
### Using Xcode (Easiest)
1. Install Xcode from [https://developer.apple.com/xcode](https://developer.apple.com/xcode) (including betas!).
2. Verify the expected version of Xcode was installed.
3. Open SwiftPM's `Package.swift` manifest with Xcode.
4. Use Xcode to inspect, edit, and build the code.
5. Select the `SwiftPM-Package` scheme to run the tests from Xcode. Note that the `SwiftPM-Package`
should be built prior to running any other schemes. This is so the `PackageDescription` module can be
built and cached for use.
### Using the Command Line
If you are using macOS and have Xcode installed, you can use Swift from the command line immediately.
If you are not using macOS or do not have Xcode installed, you need to download and install a toolchain.
#### Installing a toolchain
1. Download a toolchain from https://swift.org/download/
2. Install it and verify the expected version of the toolchain was installed:
**macOS**
```bash
$> export TOOLCHAINS=swift
$> xcrun --find swift
/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swift
$> swift package --version
Swift Package Manager - Swift 5.3.0
$> swift --version
Apple Swift version 5.3
```
**Linux**
```bash
$> export PATH=/path/to/swift-toolchain/usr/bin:"${PATH}"
$> which swift
/path/to/swift-toolchain/usr/bin/swift
$> swift package --version
Swift Package Manager - Swift 5.3.0
$> swift --version
Apple Swift version 5.3
```
Alternatively, there are tools like [swiftly](https://github.com/swiftlang/swiftly) that can install and manage toolchains automatically. This repository has a file called `.swift-version` that will keep swiftly at the current recommended version of the toolchain for best results. The `swiftly install` command ensures that SwiftPM's in-use toolchain is installed on your system and ready for you to do your development work with the usual swift commands.
```bash
swiftly install
swift build
swift test
```
## Developing in the Linux devcontainer
SwiftPM includes a devcontainer configuration that allows you to develop in a containerized environment with VS Code. This approach provides a consistent development environment with all necessary dependencies pre-installed, regardless of your host operating system.
### Prerequisites
1. Install [Visual Studio Code](https://code.visualstudio.com/)
2. Install the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) for VS Code
3. Install [Docker](https://www.docker.com/products/docker-desktop/) on your system
### Opening the Project in a Container
1. Clone the SwiftPM repository (if you haven't already)
2. Open the SwiftPM folder in VS Code
3. VS Code will detect the devcontainer configuration and prompt you to "Reopen in Container". Click this button to start building and opening the container
- Alternatively, you can press `F1`, type "Dev Containers: Reopen in Container", and press Enter
4. Wait for the container to build and initialize (this may take a few minutes the first time)
### What's Included in the Dev Container
The SwiftPM devcontainer is based on the `swiftlang/swift:nightly-main` Docker image and includes:
- Swift nightly build from the main branch
- Git
- Common development utilities
- VS Code Swift extension for syntax highlighting and language support
- Debugging support with LLDB
### Building and Testing in the Container
Once you've opened the project in VS Code, choose `> Dev Containers: Build and Reopen in Container` from the command pallete. Once the container finishes building it will open and you can develop as if you are on Linux using VS Code.
All the commands described in the "Local Development" section below will work in the container environment.
## Local Development
With a Swift toolchain installed and the SwiftPM code cloned, you are ready to make changes and test them locally.
### Building
```bash
$> swift build
```
A successful build will create a `.build/` directory with the following approximate structure:
```
artifacts
checkouts
debug
repositories
x86_64-apple-macosx
```
Binary artifacts are located in `x86_64-apple-macosx/` when building on macOS,
or the equivalent on other architectures and operating systems.
These binaries can be used to test the code modification. For example, to test the `swift package init` and `swift build` commands from the new SwiftPM artifacts in `.build/`:
```bash
$> cd /tmp && mkdir hello && cd hello
$> /path/to/swiftpm/.build/x86_64-apple-macosx/debug/swift-package init
$> /path/to/swiftpm/.build/x86_64-apple-macosx/debug/swift-build
```
### Testing
```bash
$> swift test
```
to run a single test:
```bash
$> swift test --filter PackageGraphTests.DependencyResolverTests/testBasics
```
Or another example, to run tests for the test targets BuildTests and WorkspaceTests, but skip some test cases:
```bash
$> swift test --filter BuildTests --skip BuildPlanTests --filter WorkspaceTests --skip InitTests
```
To run the performance tests, enable them with an ENV variable:
```bash
$> export TSC_ENABLE_PERF_TESTS=1
$> swift test -c release --filter PerformanceTests
```
### The bootstrap script
The bootstrap script is designed for building SwiftPM on systems that do not have Xcode or a toolchain installed.
It is used on bare systems to bootstrap the Swift toolchain (including SwiftPM), and as such not typically used outside the Swift team.
The bootstrap script requires having [CMake](https://cmake.org/) and [Ninja](https://ninja-build.org/) installed.
Please refer to the [_Get Started_ guide](https://github.com/apple/swift/blob/main/docs/HowToGuides/GettingStarted.md#installing-dependencies) on the Swift project repository for installation instructions.
Clone the following repositories beside the SwiftPM directory:
1. [swift-argument-parser] and check out tag with the [latest version](https://github.com/apple/swift-argument-parser/tags).
For example, if the latest tag is 0.4.3:
```sh
$> git clone https://github.com/apple/swift-argument-parser --branch 0.4.3
```
2. [swift-llbuild] as llbuild
```sh
$> git clone https://github.com/apple/swift-llbuild llbuild
```
> Note: Make sure the directory for llbuild is called "llbuild" and not "swift-llbuild".
3. [swift-tools-support-core]
```sh
$> git clone https://github.com/apple/swift-tools-support-core
```
4. [swift-driver]
```sh
$> git clone https://github.com/apple/swift-driver
```
5. [swift-system] and check out tag with the [latest version](https://github.com/apple/swift-system/tags).
For example, if the latest tag is 1.0.0:
```sh
$> git clone https://github.com/apple/swift-system --branch 1.0.0
```
6. [swift-collections] and check out tag with the [latest version](https://github.com/apple/swift-collections/tags).
For example, if the latest tag is 1.0.1:
```sh
$> git clone https://github.com/apple/swift-collections --branch 1.0.1
```
7. [swift-crypto] and check out tag with the [latest version](https://github.com/apple/swift-crypto/tags).
For example, if the latest tag is 2.3.0:
```sh
$> git clone https://github.com/apple/swift-crypto --branch 2.3.0
```
8. [swift-asn1]
```sh
$> git clone https://github.com/apple/swift-asn1
```
9. [swift-certificates]
```sh
$> git clone https://github.com/apple/swift-certificates
```
10. [swift-syntax]
```sh
$> git clone https://github.com/swiftlang/swift-syntax
```
11. [swift-toolchain-sqlite]
```sh
$> git clone https://github.com/swiftlang/swift-toolchain-sqlite
```
[swift-argument-parser]: https://github.com/apple/swift-argument-parser
[swift-collections]: https://github.com/apple/swift-collections
[swift-driver]: https://github.com/apple/swift-driver
[swift-llbuild]: https://github.com/apple/swift-llbuild
[swift-system]: https://github.com/apple/swift-system
[swift-tools-support-core]: https://github.com/apple/swift-tools-support-core
[swift-crypto]: https://github.com/apple/swift-crypto
[swift-asn1]: https://github.com/apple/swift-asn1
[swift-certificates]: https://github.com/apple/swift-certificates
[swift-toolchain-sqlite]: https://github.com/swiftlang/swift-toolchain-sqlite
[swift-syntax]: https://github.com/swiftlang/swift-syntax
#### Building
```bash
$> Utilities/bootstrap build
```
See "Using the Command Line / Building" section above for more information on how to test the new artifacts.
#### Testing
```bash
$> Utilities/bootstrap test
```
## Working with Docker to build and test for Linux
When developing on macOS and need to test on Linux, install
[Docker](https://www.docker.com/products/docker-desktop) and
[Docker compose](https://docs.docker.com/compose/install/) and
use the following docker compose commands:
Prepare the underlying image with the selected Ubuntu and Swift versions:
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
build
```
Start an interactive shell session:
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
run --rm shell
```
Build SwiftPM (using the pre-installed SwiftPM version).
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
run --rm build
```
Test SwiftPM (using the pre-installed SwiftPM version).
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
run --rm test
```
Build SwiftPM using the bootstrap script:
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
run --rm bootstrap-build
```
Test SwiftPM using the bootstrap script:
```bash
docker-compose \
-f Utilities/docker/docker-compose.yaml \
-f Utilities/docker/docker-compose.<os-version>.<swift-version>.yaml \
run --rm bootstrap-test
```
Note there are several Linux and Swift versions options to choose from, e.g.:
`docker-compose.1804.53.yaml` => Ubuntu 18.04, Swift 5.3
`docker-compose.2004.54.yaml` => Ubuntu 20.04, Swift 5.4
`docker-compose.2004.main.yaml` => Ubuntu 20.04, Swift nightly
## Creating Pull Requests
1. Fork: https://github.com/swiftlang/swift-package-manager
2. Clone a working copy of your fork
3. Create a new branch
4. Make your code changes
5. If a particular version of the Swift toolchain is needed then update the `.swift-version` file to that version (or use `swiftly use` to update it).
6. Try to keep your changes (when possible) below 200 lines of code.
7. We use [SwiftFormat](https://www.github.com/nicklockwood/SwiftFormat) to enforce code style. Please install and run SwiftFormat before submitting your PR, ideally isolating formatting changes only to code changed for the original goal of the PR. This will keep the PR diff smaller.
8. Commit (include the Radar link or GitHub issue id in the commit message if possible and a description your changes). Try to have only 1 commit in your PR (but, of course, if you add changes that can be helpful to be kept aside from the previous commit, make a new commit for them).
9. Push the commit / branch to your fork
10. Make a PR from your fork / branch to `apple: main`
11. While creating your PR, make sure to follow the PR Template providing information about the motivation and highlighting the changes.
12. Reviewers are going to be automatically added to your PR
13. Pull requests will be merged by the maintainers after it passes CI testing and receives approval from one or more reviewers. Merge timing may be impacted by release schedule considerations.
By submitting a pull request, you represent that you have the right to license
your contribution to Apple and the community, and agree by submitting the patch
that your contributions are licensed under the [Swift
license](https://swift.org/LICENSE.txt).
After a change is known not to cause regressions in the `main` branch, it may be considered for cherry-picking to the latest release branch depending on the release schedule. Cherry-picks require [a specific template to be followed](https://github.com/swiftlang/.github/blob/main/PULL_REQUEST_TEMPLATE/release.md) in PR description that consolidates information about the change necessary for inclusion in the release branch and provides risk evaluation for nominating the change.
## Continuous Integration
SwiftPM uses [swift-ci](https://ci.swift.org) infrastructure for its continuous integration testing. The bots can be triggered on pull-requests if you have commit access. Otherwise, ask one of the code owners to trigger them for you.
This is **required** before a pull-request can be merged.
To run just the self-hosted test suite (faster turnaround times so it can be used to get quick feedback) use:
```
@swift-ci please test self hosted
```
To run the windows self-hosted suite, use:
```
@swift-ci please test self hosted windows
```
To run the swift toolchain test suite including SwiftPM use:
```
@swift-ci please test
```
To run the swift toolchain test suite against a specific platform use one of the following:
```
@swift-ci please test macos
@swift-ci please test linux
@swift-ci please test windows
```
To run package compatibility test suite (validates we do not break 3rd party packages) use:
```
@swift-ci please test package compatibility
```
## Generating Documentation
SwiftPM uses [DocC](https://github.com/apple/swift-docc) to generate some of its documentation (currently only the `PackageDescription` module). Documentation can be built using Xcode's GUI (Product → Build Documentation or `⌃⇧⌘D`) or manually:
1. Build and dump the symbol graph metadata used to generate the documentation:
```
swift package dump-symbol-graph
```
2. Generate the documentation and start a local preview server to review your changes:
```
xcrun docc preview Sources/PackageDescription/PackageDescription.docc --additional-symbol-graph-dir .build/*/symbolgraph/
```
Note that this may generate documentation for multiple modules — the preview link for PackageDescription will typically be: http://localhost:8000/documentation/packagedescription
## Advanced
### Using Custom Swift Compilers
SwiftPM needs the Swift compiler to parse `Package.swift` manifest files and to
compile Swift source files. You can use the `SWIFT_EXEC` and `SWIFT_EXEC_MANIFEST`
environment variables to control which compiler to use for these operations.
`SWIFT_EXEC_MANIFEST`: This variable controls which compiler to use for parsing
`Package.swift` manifest files. The lookup order for the manifest compiler is:
`SWIFT_EXEC_MANIFEST`, `swiftc` adjacent to the `swiftpm` binaries, then `SWIFT_EXEC`
`SWIFT_EXEC`: This variable controls which compiler to use for compiling Swift
sources. The lookup order for the sources' compiler is: `SWIFT_EXEC`, then `swiftc` adjacent
to `swiftpm` binaries. This is also useful for Swift compiler developers when they
want to use a debug compiler with SwiftPM.
```bash
$> SWIFT_EXEC=/path/to/my/built/swiftc swift build
```
### Overriding the Path to the Runtime Libraries
SwiftPM computes the path of its runtime libraries relative to where it is
installed. This path can be overridden by setting the environment variable
`SWIFTPM_CUSTOM_LIBS_DIR` to a directory containing the libraries, or a colon-separated list of
absolute search paths. SwiftPM will choose the first
path which exists on disk. If none of the paths are present on disk, it will fall
back to built-in computation.
### Making changes in TSC targets
SwiftPM uses [Tools Support Core](https://github.com/apple/swift-tools-support-core) (aka TSC) for many of its general purpose utilities. Changes in SwiftPM often require changes in TSC first. To coordinate changes, open a PR against TSC first, then a second one against SwiftPM pulling the correct TSC version.
## Community and Support
If you want to connect with the Swift community you can:
* Use Swift Forums: [https://forums.swift.org/c/development/SwiftPM](https://forums.swift.org/c/development/SwiftPM)
* Contact the CODEOWNERS: https://github.com/swiftlang/swift-package-manager/blob/main/CODEOWNERS
## Additional resources
* `Swift.org` Contributing page
[https://swift.org/contributing/](https://swift.org/contributing/)
* License
[https://swift.org/LICENSE.txt](https://swift.org/LICENSE.txt)
* Code of Conduct
[https://swift.org/community/#code-of-conduct](https://swift.org/community/#code-of-conduct)
## Troubleshooting
* If during `swift build` you encounter this error:
```bash
/../apple-repos/swift-package-manager/.build/checkouts/swift-driver/Sources/SwiftDriver/Explicit Module Builds/InterModuleDependencyGraph.swift:102:3: error: unknown attribute '_spi'
@_spi(Testing) public var isFramework: Bool
^
```
Make sure you are using SwiftPM 5.3
```bash
$> swift package --version
Swift Package Manager - Swift 5.3.0
```
* If during `swift build` you encounter this error:
```bash
/../swift-package-manager/Sources/PackageLoading/Target+PkgConfig.swift:84:36: error: type 'PkgConfigError' has no member 'prohibitedFlags'
error = PkgConfigError.prohibitedFlags(filtered.unallowed.joined(separator: ", "))
~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~
```
Make sure to update your TSC (Tools Support Core):
```bash
$> swift package update
```
Alternatively, if you are using Xcode, you can update to the latest version of all packages:
**Xcode App** > *File* > *Swift Packages* > *Update to Latest Package Versions*
================================================
FILE: CONTRIBUTORS.txt
================================================
For the purpose of tracking copyright, this is the list of individuals and
organizations who have contributed to Swift Package Manager.
For employees of an organization/company where the copyright of work done
by employees of that company is held by the company itself, only the company
needs to be listed here.
## COPYRIGHT HOLDERS
- Apple Inc. (all contributors with '@apple.com')
### Contributors
- 3405691582 <dsk@google.com>
- A Koufatzis <akoufa@gmail.com>
- AG <acgarland@apple.com>
- Aaron Crespo <aaroncrespo@users.noreply.github.com>
- Abdulhakim Ajetunmobi <abdulrapidz@live.com>
- Adam Cox <extreme.boredom@gmail.com>
- Adam Thayer <user@biticus.net>
- Adam Yanalunas <adamyanalunas@users.noreply.github.com>
- Ahmad Yasser <42544598+ahmdyasser@users.noreply.github.com>
- Alastair Houghton <ahoughton@apple.com>
- Alejandro Alonso <alejandro_alonso@apple.com>
- Aleksei Sapitskii <45671572+aleksproger@users.noreply.github.com>
- Aleksey Mashanov <a.mashanov@corp.mail.ru>
- Aleph Retamal <retamal.ph@gmail.com>
- Alex Blewitt <alblue@apple.com>
- Alex Hoppen <ahoppen@apple.com>
- Alex Lorenz <arphaman@gmail.com>
- Alex Migicovsky <migi@apple.com>
- Alexander Sandberg <hi@alexandersandberg.com>
- Alexey Ivashko <mcivashko@gmail.com>
- Alexis Laferrière <alaf@apple.com>
- Anders Bertelrud <anders@apple.com>
- Andreas Koslowski <andreas@dock13.com>
- Andrew Carter <acarter@flipboard.com>
- Andrew Clark <acdlite@me.com>
- Angelo Villegas <gelo.web@gmail.com>
- Anh Pham <thuanhsone99@gmail.com>
- Ankit Aggarwal <ankit_aggarwal@apple.com>
- Anton <antonmes@users.noreply.github.com>
- Anton Pogonets <apogonets@readdle.com>
- Antonio Mayorga <amayorga95@outlook.com>
- Argyrios Kyrtzidis <kyrtzidis@apple.com>
- Ariel Elkin <1756909+arielelkin@users.noreply.github.com>
- Aris Sarris <78614622+a-sarris@users.noreply.github.com>
- Arjun Nayini <aanayini@gmail.com>
- Arnold Schwaighofer <aschwaighofer@apple.com>
- Artem Chikin <achikin@apple.com>
- Artemiy Sobolev <avriy@me.com>
- Arthur Ariel Sabintsev <arthur@sabintsev.com>
- Atul Sowani <asowani@users.noreply.github.com>
- Aura Lily Vulcano <millenomi@apple.com>
- Austin <Austinpayne@users.noreply.github.com>
- BJ Homer <bjhomer@gmail.com>
- Bastian Rinsche <bastian.rinsche@gmail.com>
- Ben Barham <b.n.barham@gmail.com>
- Ben Chatelain <ben@octop.ad>
- Ben Cohen <ben_cohen@apple.com>
- Ben Kennedy <ben-github@zygoat.ca>
- Ben Langmuir <blangmuir@apple.com>
- Ben Rimmington <me@benrimmington.com>
- Ben Waldie <benwaldie@apple.com>
- BenedictSt <52418145+BenedictSt@users.noreply.github.com>
- Benedikt Terhechte <terhechte@gmail.com>
- Benjamin Herzog <benjamin_herzog@apple.com>
- Benjamin Scholtysik <bscholtysik@apple.com>
- Bhargav <bhargav.grlnk@gmail.com>
- Bhargav Gurlanka <bhargav.grlnk@gmail.com>
- Bob Flanagan <89808793+bflanagan-apple@users.noreply.github.com>
- Bob Wilson <bob.wilson@apple.com>
- Boris Bielik <h3sperian@gmail.com>
- Boris Buegling <bbuegling@apple.com>
- BossJue <240778488@qq.com>
- Bouke Haarsma <bouke@haarsma.eu>
- Braden Scothern <BradenScothern@gmail.com>
- Brandon Titus <bjtitus@gmail.com>
- Brent Royal-Gordon <brentdax@apple.com>
- Brian Croom <bcroom@apple.com>
- Brian Gesiak <modocache@gmail.com>
- Brian Pratt <brian@8thlight.com>
- Calvin Hill <mr_j.c.h@hotmail.com>
- Chris Lattner <clattner@apple.com>
- Chris Willmore <cwillmore@apple.com>
- Chris Zielinski <chrisz@berkeley.edu>
- Christian Rishøj <christian@rishoj.net>
- Christopher Goulet <christophergoulet@outlook.com>
- Clay Ellis <clayellis@me.com>
- Colin Cornaby <colin.cornaby@mac.com>
- Connor Wakamo <cwakamo@apple.com>
- Conrad Kramer <conrad@kramerapps.com>
- Cory Benfield <lukasa@apple.com>
- Dadoum <24679280+Dadoum@users.noreply.github.com>
- Damiaan Dufaux <damiaan@dpro.be>
- Dan Liew <dliew@apple.com>
- Dan Mendoza <footpad01@gmail.com>
- Dan Zheng <danielzheng@google.com>
- Daniel Duan <danmarner@gmail.com>
- Daniel Dunbar <daniel_dunbar@apple.com>
- Daniel Firsht <dfirsht@us.ibm.com>
- Daniel Rodríguez Troitiño <drodriguez@users.noreply.github.com>
- Danny Mösch <danny.moesch@icloud.com>
- Dario Rexin <drexin@apple.com>
- Dave Abrahams <dabrahams@apple.com>
- Dave Weston <dave.weston@binocracy.com>
- David Bryson <dmbryson@apple.com>
- David Farler <dfarler@apple.com>
- David Hart <david@hartbit.com>
- David M. Bryson <dmbryson@apple.com>
- David Nadoba <dnadoba@gmail.com>
- David Ungar <dungar@apple.com>
- Denis Morozov <dmorozkn@gmail.com>
- Derik Ramirez <rderik@gmail.com>
- Diggory Laycock <nospam@diggory.net>
- Dima Hutsuliak <doberq@gmail.com>
- Ding Ye <dingobye@gmail.com>
- Dmitri Gribenko <gribozavr@gmail.com>
- Dmitriy Borovikov <dmitry@borovikov.name>
- Dmytro Mishchenko <narmdv5@gmail.com>
- Doug Gregor <dgregor@apple.com>
- Drew Crawford <drew@sealedabstract.com>
- Ed Arenberg <arenberg@epage.com>
- Edan Lichtenstein <edan@bricksimple.com>
- Edward Huynh <edward@edwardhuynh.com>
- Edward Valentini <edward@interlook.com>
- Egor Zhdan <e_zhdan@apple.com>
- Egor Zhdan <egor.zhdan@gmail.com>
- Eli Geller <elitree@gmail.com>
- Ellie Shin <ellie_shin@apple.com>
- Eric Dudiak <dudiak@apple.com>
- Eric Jensen <jensen39@gmail.com>
- Eric Miotto <1094986+edymtt@users.noreply.github.com>
- Erik Eckstein <eeckstein@apple.com>
- Erwin Mazariegos <erwinmaza@gmail.com>
- Etan1 <Etan1@users.noreply.github.com>
- Euan Harris <euan+github@ardenwood.net>
- Eugene Tulushev <eugene@tulushev.com>
- Evan Wilde <etceterawilde@gmail.com>
- Example Example <example@example.com>
- Fabian Cañas <fcanas@gmail.com>
- Federico Bucchi <b.federico@gmail.com>
- Federico Zanetello <zntfdr@gmail.com>
- Florian Friedrich <ffried@me.com>
- Florian Reinhart <florian.reinhart@gmail.com>
- Franz Busch <privat@franz-busch.de>
- Gaushik M.R <gaushik126@gmail.com>
- Gavin Eadie <gavin@umich.edu>
- George <unknown>
- George Barnett <gbarnett@apple.com>
- Glenn 'devalias' Grant <glenn@ensquared.net>
- Grzegorz Miłoś <gmilos@apple.com>
- Guillermo Ignacio Enriquez Gutierrez <nacho4d@mac.com>
- Gwen Mittertreiner <gwen.mittertreiner@gmail.com>
- Harlan Haskins <harlan@apple.com>
- Hayden McCabe <hayden@haydenmccabe.com>
- Helge Hess <me@helgehess.eu>
- Honza Dvorsky <honza@apple.com>
- Husein Kareem <huseinkareem@gmail.com>
- Ian Partridge <i.partridge@uk.ibm.com>
- Ilya Kulakov <kulakov.ilya@gmail.com>
- Ismael Vilas Boas <ismael.vb@gmail.com>
- Itai Ferber <iferber@apple.com>
- Iulian Onofrei <5748627+revolter@users.noreply.github.com>
- IxhenHasaniQM <94111216+IxhenHasaniQM@users.noreply.github.com>
- J. Cheyo Jimenez <cheyo@masters3d.com>
- J.D. Healy <jdhealy@gmail.com>
- JP Simard <jp@jpsim.com>
- JPMartha <jpmartha.jp@gmail.com>
- Jacob Bandes-Storch <jacob@bandes-stor.ch>
- Jacopo Andrea Giola <jacopo@giola.org>
- Jader Feijo <jader@gojimo.co.uk>
- Jake Heiser <jake@quizlet.com>
- Jake Petroules <jake.petroules@apple.com>
- Jane Manchun Wong <wongmjane@users.noreply.github.com>
- Jason Choi <jasonnoahchoi@gmail.com>
- Jason R Tibbetts <708510+jrtibbetts@users.noreply.github.com>
- Jason Wray <friedbunny@users.noreply.github.com>
- Jeff Kelley <SlaunchaMan@gmail.com>
- Jeff Lett <2142301+jeffctown@users.noreply.github.com>
- Jeremiah Njoroge <jnjoroge@gmail.com>
- Jeremy David Giesbrecht <jeremy.g@sasktel.net>
- Jhonny Bill <jhonnybillm@gmail.com>
- Jimmy Arts <arts.jimmy@gmail.com>
- Jobins John <jobins666@gmail.com>
- Joe Groff <jgroff@apple.com>
- Joe Heck <heckj@mac.com>
- Joe Smith <yasumoto7@gmail.com>
- Joe Susnick <joesusnick@gmail.com>
- Johannes Plunien <johannes@plunien.de>
- Johannes Weiss <johannesweiss@apple.com>
- John Holdsworth <github@johnholdsworth.com>
- John McCall <rjmccall@apple.com>
- Jonas Schwartz <jonas@josc.io>
- Jonathan Grynspan <grynspan@me.com>
- Jordan Rose <jordan_rose@apple.com>
- Jose Marcelino <jmarcelino@users.noreply.github.com>
- Joseph Heck <heckj@mac.com>
- Josh Parnham <joshparnham@gmail.com>
- Joshua Emmons <joshua@reverb.com>
- Joshua Peek <josh@joshpeek.com>
- Julian Grosshauser <julian@juliangrosshauser.com>
- Justas Brazauskas <brazauskasjustas@gmail.com>
- Justin Jia <justin.jia.developer@gmail.com>
- Justin Oroz <Juice805@users.noreply.github.com>
- Justus Kandzi <justus.kandzi@kitchenstories.de>
- Kaan Dedeoglu <kaandedeoglu@me.com>
- Karl <5254025+karwa@users.noreply.github.com>
- Karoy Lorentey <klorentey@apple.com>
- Kazumasa Wakamori <k.wakamori.shizuoka@gmail.com>
- Keith Smiley <keithbsmiley@gmail.com>
- Kenta Kubo <601636+kkk669@users.noreply.github.com>
- Kilian Koeltzsch <kiliank@apple.com>
- Kit Langton <kitlangton@gmail.com>
- Kohki Miki <giginet.net@gmail.com>
- Kostiantyn Koval <konstantin.koval1@gmail.com>
- Kyle <43724855+Kyle-Ye@users.noreply.github.com>
- Kyle <kyle201817146@gmail.com>
- Kyle Jessup <kyle@perfect.org>
- Kyle Rokita <kyle.rokita@gmail.com>
- Lei Zhang <lzhang@ca.ibm.com>
- Lev Walkin <lwalkin@apple.com>
- Lily Vulcano <millenomi@apple.com>
- Ling Wang <an00na@gmail.com>
- Liu Liu <i@liuliu.me>
- Lukas Stabe <lukas@stabe.de>
- Luke Lau <luke_lau@icloud.com>
- MIZUNO Hiroki <mzpppp@gmail.com>
- Marcin Iwanicki <iwan@icode.pl>
- Marcin Krzyzanowski <marcin@krzyzanowskim.com>
- Marco Eidinger <eidingermarco@gmail.com>
- Marin Todorov <marin@underplot.com>
- Mark Brownsword <markbrownsword@gmail.com>
- Mark Lacey <mark.lacey@apple.com>
- Martin Waitz <tali@admingilde.org>
- Matt Diephouse <matt@diephouse.com>
- Matt Seaman <mseaman@apple.com>
- Matthew Seaman <mattsdeveloper@gmail.com>
- Matthias Bartelmeß <mba@fourplusone.de>
- Mattt Thompson <mattt@me.com>
- Max Desiatov <m_desiatov@apple.com>
- Max Desiatov <max@desiatov.com>
- Max Howell <max.howell@apple.com>
- Max Liberman <max.y.liberman@gmail.com>
- Max Moiseev <moiseev@apple.com>
- Max Obermeier <themomax@icloud.com>
- Michael Gottesman <mgottesman@apple.com>
- Michael Henson <mikehenson@gmail.com>
- Michael Ilseman <milseman@apple.com>
- Michael McGuire <Michael.McGuire@gmail.com>
- Michael Munday <mike.munday@ibm.com>
- Michael Vendivel <mvendivel@us.ibm.com>
- Miguel A. Perez Ojito <54909066+miggs597@users.noreply.github.com>
- Miguel Salinas <mikeys@me.com>
- Mike Ash <mikeash@apple.com>
- Mike Ferris <mferris@apple.com>
- Mishal Awadah <mawadah@apple.com>
- Mishal Shah <mishal_shah@apple.com>
- Morten Bjerg Gregersen <morten@mogee.dk>
- Muhammed Yavuz Nuzumlali <manuyavuz@gmail.com>
- Nate Cook <natecook@apple.com>
- Nathan Hawes <nhawes@apple.com>
- Nathan Lanza <nathan@lanza.io>
- Natik Gadzhi <natik@respawn.io>
- Neil Jones <futurejones@users.noreply.github.com>
- Nicholas Maccharoli <nmaccharoli@gmail.com>
- Nick Cooke <36927374+ncooke3@users.noreply.github.com>
- Nikola Lajic <n.lajic@gmail.com>
- Noah Gilmore <noah.w.gilmore@gmail.com>
- NobodyNada <jkeller234@icloud.com>
- Norio Nomura <norio.nomura@gmail.com>
- Noé Froidevaux <noe@noefroidevaux.com>
- Oliver Chick <orac@apple.com>
- Oliver Epper <45991777+oliverepper@users.noreply.github.com>
- Orta <orta.therox+github@gmail.com>
- Ostap Taran <github@austinate.me>
- Owen Voorhees <owen@squibner.com>
- P W <patrick@subzero.eu>
- Patrick Balestra <me@patrickbalestra.com>
- Patrick Metcalfe <git@patrickmetcalfe.com>
- Paul Nettle <nettlep@users.noreply.github.com>
- Paulo Faria <paulo.faria.rl@gmail.com>
- Pavel Yaskevich <pyaskevich@apple.com>
- Pedro José Pereira Vieito <pvieito@gmail.com>
- Peteous <erik.peterman@und.edu>
- Peter Adams <pp_adams@apple.com>
- Peter Matta <pet3r.matta@gmail.com>
- Philippe Hausler <phausler@apple.com>
- Prachi <prachi.pai@gmail.com>
- Pritesh Nandgaonkar <pncooldude91@gmail.com>
- Quinn McHenry <quinn@jqm.us>
- Rahul Malik <rmalik@pinterest.com>
- Randy Becker <81446220+randy-becker@users.noreply.github.com>
- Rauhul Varma <rauhul@apple.com>
- Renzo Crisóstomo <renzo.crisostomo@xing.com>
- Rich Ellis <rich@richellis.net>
- Rick Ballard <rballard@apple.com>
- Rintaro Ishizaki <rishizaki@apple.com>
- Ritwik Gupta <RitwikGupta@users.noreply.github.com>
- Robert Widmann <devteam.codafi@gmail.com>
- Romain Pouclet <code@romain-pouclet.com>
- Roman Levenstein <rlevenstein@apple.com>
- Ron Baker <ronbak@protonmail.com>
- Ron Olson <tachoknight@gmail.com>
- Runar <runhum@gmail.com>
- Runar Hummelsund <runhum@users.noreply.github.com>
- Ryan Lovelett <ryan@lovelett.me>
- Ryan Wilson <wilsonryan@google.com>
- Ryosuke Hayashi <hayashikun@hayashikun.com>
- Saleem Abdulrasool <abdulras@thebrowser.company>
- Saleem Abdulrasool <compnerd@compnerd.org>
- Samuel Giddins <segiddins@segiddins.me>
- Sebastian Grail <sgrail@gmail.com>
- Sergio Campamá <scampama@apple.com>
- Sheikh Bayazid <44797746+sheikhbayazid@users.noreply.github.com>
- Slava Pestov <spestov@apple.com>
- Stan Stadelman <sstadelman@gmail.com>
- Stephen Brown <steveybrown@gmail.com>
- Stephen Celis <stephen@stephencelis.com>
- Steve Barron <sdbarron@users.noreply.github.com>
- Steve Moser <contact@stevemoser.org>
- Steven Sherry <steven.r.sherry@gmail.com>
- Stuart Montgomery <smontgomery@apple.com>
- Sven A. Schmidt <sas@finestructure.co>
- Swiftfuchs <github@t-no.de>
- TaborKelly <taborkelly+github@gmail.com>
- Ted Kremenek <kremenek@apple.com>
- Thi <t@thi.im>
- Thiago Holanda <unnamedd@gmail.com>
- Thomas Grapperon <35562418+tgrapperon@users.noreply.github.com>
- Thomas Roughton <t.roughton@me.com>
- Thomas Van Lenten <thomasvl@google.com>
- Tiago Martinho <martinho@thoughtworks.com>
- Tianyu Wang <i@cee.moe>
- Tim Condon <0xTim@users.noreply.github.com>
- Tim Gymnich <tgymnich@icloud.com>
- Tobias Landsberg <TobiLandsberg@gmail.com>
- Tokuriku <oeil.noir@gmail.com>
- Tom Doron <tomer@apple.com>
- Tomasz Bąk <me@tomaszbak.engineer>
- Tomoya Kose <tomoya@mitsuse.jp>
- Toni Suter <tonisuter@users.noreply.github.com>
- Tony Arnold <tony@thecocoabots.com>
- Tony Parker <anthony.parker@apple.com>
- TornjV <tornjanski.veljko@gmail.com>
- Trevör Anne Denise <trevor.annedenise@icloud.com>
- Tyler Stromberg <tylers@mac.com>
- Török Zsolt <torokzsolt91@gmail.com>
- Vadim Eisenberg <vadime@il.ibm.com>
- Vadim Smal <vvsmal@avito.ru>
- Valeriy Van <valeriy.van@enote.com>
- Vasilica Costescu <vasilica.costescu@gmail.com>
- Vatsal Manot <vatsal.manot@yahoo.com>
- Viktor Szilárd Simkó <aqviktor@gmail.com>
- Vincent Esche <regexident@gmail.com>
- Vivian Kong <vivkong@ca.ibm.com>
- Vladislav Alekseev <beefon@users.noreply.github.com>
- WFT <will.a.ft@gmail.com>
- Wang Binbin <hellomsg_noreply@163.com>
- William Dillon <william@housedillon.com>
- William Entriken <github.com@phor.net>
- Wojtek Czekalski <me@wczekalski.com>
- Wowbagger & his liquid lunch <55120045+WowbaggersLiquidLunch@users.noreply.github.com>
- Xavier Matos <matos.xav@gmail.com>
- Xiaodi Wu <13952+xwu@users.noreply.github.com>
- Xiaodi Wu <xiaodi.wu@gmail.com>
- Xing He <17washabi@gmail.com>
- YOCKOW <YOCKOW@users.noreply.github.com>
- YOUNG MO SONG <77970826+mooyoung2309@users.noreply.github.com>
- YR Chen <stevapple@icloud.com>
- Yan Li <eyeplum@gmail.com>
- Yannick Heinrich <yannick.heinrich@gmail.com>
- Yim Lee <yim_lee@apple.com>
- Yonas Kolb <yonaskolb@gmail.com>
- Yoshimasa Niwa <niw@niw.at>
- Yu Ao <YuAo@users.noreply.github.com>
- Yu Su <ssuuyyuu@gmail.com>
- YuAo <me@imyuao.com>
- Yuta Koshizawa <koher@koherent.org>
- Yuta Saito <kateinoigakukun@gmail.com>
- Zsolt Kiraly <zkiraly@gmail.com>
- adamnemecek <adamnemecek@gmail.com>
- aemino <aeminodev@gmail.com>
- akashhansda <99724223+akashhansda@users.noreply.github.com>
- aniket sharma <aniket965.as@gmail.com>
- badim <goloveychuk@mail.ru>
- buttaface <butta@fastem.com>
- dudiak <dudiak@mac.com>
- eeckstein <eeckstein@apple.com>
- elsh <ellie_shin@apple.com>
- emlai <emil.laine@cs.helsinki.fi>
- freak4pc <freak4pc@gmail.com>
- futbalguy <kyle.rokita@gmail.com>
- futurejones <futurejones@users.noreply.github.com>
- gibachan <childhoodend.tk@gmail.com>
- giginet <giginet.net@gmail.com>
- givip <pataridzegivi@gmail.com>
- goloveychuk <goloveychuk@users.noreply.github.com>
- hotchemi <hot.chemistry21@gmail.com>
- jhonnybillm <jhonnybillm@gmail.com>
- jp_pancake <jpmartha@users.noreply.github.com>
- k-kohey <kawagutsuchi@gmail.com>
- linqingmo <mariopteris@foxmail.com>
- naru <tus.naru@gmail.com>
- nate-chandler <46721658+nate-chandler@users.noreply.github.com>
- nathan spindel <nathans@gmail.com>
- nonsensery <ajohnson@quickleft.com>
- onevcat <onevcat@gmail.com>
- pcbeard <pcbeard@mac.com>
- prachipai <prachi.pai@gmail.com>
- samding01 <samding@ca.ibm.com>
- sarveshtamba <sarvesh.tamba@ibm.com>
- seabaylea <baileyc@uk.ibm.com>
- sora0077 <t.hayashi0077+github@gmail.com>
- swift-ci <swift-ci@users.noreply.github.com>
- swiftix <swiftix@users.noreply.github.com>
- t_hayashi <t.hayashi0077+github@gmail.com>
- thecb4 <cavelle@thecb4.io>
- twobitunicorn <joseph.ruskiewicz@gmail.com>
- uhooi <the_uhooi@yahoo.co.jp>
- yonihemi <jonathan@hemi.dev>
- Łukasz Mróz <lukasz.mroz@droidsonroids.pl>
- Šimon Javora <s.javora@me.com>
- ✪ vi4m Marcin Kliks <vi4m@users.noreply.github.com>
- 冀卓疌 <55120045+WowbaggersLiquidLunch@users.noreply.github.com>
**Updating this list**
Please do not edit this file manually. It is generated using `./Utilities/generate_contributors_list.sh`. If a name is misspelled or appearing multiple times: add an entry in `./.mailmap`
================================================
FILE: Documentation/Design/EvolutionIdeas.md
================================================
# Swift Package Manager Ideas
This is a list of some evolution ideas for the package manager. Once the details
of an idea are fleshed out and there is a full proposal, it can be scheduled for
the Swift Evolution process. It is important to note that not every idea on this
list is guaranteed to become an official feature, and it all depends on where
the design discussion leads us. Also, this is not meant to be an exhaustive
feature list, if you have an idea for a feature that you think will be
a valuable addition to the package manager, feel free to start a discussion
about it.
If you're interested in participating in a particular evolution idea, please
familiarize yourself with the existing discussion on that topic and start
participating in the discussion thread of that idea. If a thread doesn't exist
for that idea, please start one with a [draft
proposal](https://github.com/swiftlang/swift-evolution/blob/main/proposal-templates/0000-swiftpm-template.md)
that can be used as a starting point.
**Important Note**: This list is not in any particular order. I plan to keep
this post updated, but please let me know if you see something out-of-date.
## Mirror and Fork Support
You may want an easy way to mirror or fork specific packages in your package
graph. This could be useful if you want to make a private customization to
a package that you depend on, or even if you just want to override the origin
repository of your packages so that you can fetch from a private mirror and not
depend on the original repository always being there.
Thread: https://forums.swift.org/t/dependency-mirroring-and-forking/13902
Bug: [SR-679](https://bugs.swift.org/browse/SR-679)
## Build Settings
Some packages require specific language or linker flags that SwiftPM doesn’t
currently support, and some packages may desire other configurable properties as
well. We want to have a real, robust "build settings" model for adding these
kinds of properties, potentially including conditional settings and
fine-grained control over what parts of the package use which property values.
Thread: N/A
Bug: [SR-3948](https://bugs.swift.org/browse/SR-3948)
## Conditional Dependencies
Packages may want to use dependencies that they only use while testing the
package. Such dependencies shouldn't take part in dependency resolution process
when a package is being used as a dependency. This is also called test-only or
development dependencies in other package managers. It is sometimes also
required to declare platform-specific dependencies which should only be fetched
when a package is being built for a certain platform. This is currently possible
using `#if os` checks, but it leads to two problems: 1) it forces
a non-declarative syntax in the manifest file, and 2) it causes issues in
maintaining the `Package.resolved` file as the dependency is added or removed
depending on the platform.
Thread: N/A
Bug: [SR-883](https://bugs.swift.org/browse/SR-883)
## Resource Support
The Swift Package Manager needs a story for how packages should specify their
resources to include with products.
Thread: N/A
Bug: [SR-2866](https://bugs.swift.org/browse/SR-2866)
## Extensible Build Tools
Many users want to incorporate a variety of build-time tools into their
packages, whether to support a custom language or preprocessor, or to add their
own documentation generator or linter. SwiftPM could add extensibility to
support tools packages which could bring these steps to the build process. We
expect this behavior to greatly enhance our capacity for building complex
software packages.
One important thing for us to be careful about here is to make sure that all
parts of the build process still clearly declare their inputs and outputs to
SwiftPM, so that it can make sure that they behave correctly and perform well
for incremental and parallel builds.
Thread: https://forums.swift.org/t/package-manager-extensible-build-tools/10900
Bug: N/A
## User-defined Template Support
It would be nice if users can hook into the init command to add custom templates
that they frequently use.
Thread: N/A
Bug: [SR-7837](https://bugs.swift.org/browse/SR-7837)
## Documentation Generation Support
We can leverage SourceKit to extract documentation information from Swift
packages that can be further transformed into a developer consumable format like
a static HTML website.
Thread: N/A
Bug: N/A
## Tagging and Publishing Support
Today you publish new versions of your package by tagging manually with Git, and
you use Git directly to view your published tags. SwiftPM could help automate
this process, performing any validation, housekeeping, or auxiliary tasks that
might make sense as part of a streamlined and safe publication workflow.
Thread: N/A
Bug: N/A
## Install/Deploy Command
When you’re deploying the product of your package, whether to a server or your
local system, it could be helpful for SwiftPM to provide support for automating
that process. You may want to configure layout and library linkage aspects of
your products for your specific deployment environment, record version
information about what your products were built from, and otherwise leverage the
context that SwiftPM has about your packages for a seamless deployment
experience.
Thread: N/A
Bug: N/A
## Performance Testing Support
Currently, SwiftPM has no support for running performance tests. We need to
provide a way to specify performance tests for a package and to run them from
the SwiftPM command-line tools.
[Here](https://github.com/aciidb0mb3r/swift-evolution/blob/pref-proposal/proposals/xxxx-package-manager-performance-testing.md) is a very old draft proposal that I haven't gotten around to posting for discussion yet.
Thread: N/A
Bug: [SR-1354](https://bugs.swift.org/browse/SR-1354)
## Support for External Testing Frameworks
Currently, SwiftPM only supports writing tests with help of the XCTest testing
framework. The community should be able to use any testing framework of their
choice to test with SwiftPM. This feature will most likely depend on the proposed extensible
build tools feature described [here](https://forums.swift.org/t/package-manager-extensible-build-tools/10900).
Thread: N/A
Bug: N/A
## Package Index
SwiftPM plans to have a real index for Swift packages some day. In addition to
defining a namespace for package names and providing easier package discovery,
it could even support metrics for quality, such as automated test coverage
statistics, or ways to evaluate the trustworthiness of packages that you’re
considering using. This will be a large project.
Thread: N/A
Bug: N/A
## Multi-Package Repository Support
Currently the package manager requires that each package live at the root of
a Git repository. This means that you can't store multiple packages in the same
repository, or develop packages which locate each other in a filesystem-relative
manner without relying on Git. We need a proposal for how we would like to
support this.
Thread: N/A
Bug: [SR-3951](https://bugs.swift.org/browse/SR-3951)
## Cross-platform Sandboxing
Sandboxing is one way to help prevent `Package.swift` manifest evaluation and
builds from escaping out into your system, either accidentally or deliberately.
SwiftPM uses macOS's sandboxing technology already, but it would be great to
bring this safety to other platforms.
Thread: N/A
Bug: N/A
## Automatic Semantic Versioning
Automatically detecting what semantic version it looks like you should be
publishing your changes with could be very helpful for package authors. SwiftPM
could do this by analyzing the source code's API to see what has changed and
whether the API is backwards-compatible, at least at compile time.
Thread: N/A
Bug: N/A
## Machine-Editable Package.swift
We need an easy way to edit the Package.swift manifest from automated tools, for
cases where you don't want users to have to update the Swift code directly. We
think that it's possible to provide an API to allow this, probably using
[`SwiftSyntax`](https://github.com/swiftlang/swift-syntax).
Thread: N/A
Bug: N/A
================================================
FILE: Documentation/Design/README.md
================================================
# Swift Package Manager Design Docs
Swift Package Manager design is done in open source, and governed by Swift Evolution process.
As such, you can find up-to-date Swift Package Manager design docs [in the Swift Evolution repository](https://github.com/swiftlang/swift-evolution/tree/main/proposals).
This directory contains documentation on the engineering design decisions and internals of the Swift Package Manager, outside the evolution process.
================================================
FILE: Documentation/Design/SwiftBasedManifestFormat.md
================================================
# Swift-based Manifest Format
> **PLEASE NOTE** This document represents the initial proposal for Swift Package Manager, and is provided for historical purposes only. It does not represent the current state or future direction of the project. For current documentation, see the main Swift Package Manager [documentation](../README.md).
## Purpose
We need to have some facility for describing additional package metadata, outside of the content in the sources files. This document describes a proposal for using a Swift-based format for this manifest data.
## Motivation
The package manager strives to support a "convention based" project structure which is derived from the project files and source code. This approach allows users to primarily focus on authoring their actual software and expect that the tools will assemble it into a product by following sensible defaults.
However, packages also have information which cannot naturally be inferred from the project structure. To that end, we need to support some kind of manifest which contains the additional project information.
At a high level, the primary purpose of this manifest is to:
* Complement the convention based system.
The manifest complements the convention based system, by being the one definitive place to add any project metadata that would otherwise require the project to use a custom configuration. The goal is that 80%+ of projects should be able to use only a manifest and the convention based layout.
By allowing the manifest to extend and override a few key, carefully picked details of the convention based system, then we allow many more projects to use the system without needing to define complex conventions.
* Provide package information in a standard format.
There are certain pieces of information which are important enough and common enough that we would like all projects to include, or any projects which do include them to do so in a standardized manner. For example, the license declaration of a project should follow a very standard definition.
* Serve as an indicator of a package manager project.
Although it is simple, having the manifest exist with a known name at the root of a package serves as an indicator to developers and tools of the type of project and how they are expected to interact with it.
* Provide support for programmatic analysis and editing of project structure.
The manifest should be machine readable and writeable format. We envision a variety of tools that may want to inspect the contents of packages (for example, to build information for an index) or make automatic edits to the project structure. For example, when introducing a new library dependency via adding an import statement, we would like it if a tool could, after a user prompt, automatically update the manifest to specify the new dependency.
## Proposal
We propose to use the Swift language itself to write the manifest. An example of a proposed manifest for a small cross-platform project with several libraries might look something like this:
```swift
// This imports the API for declaring packages.
import PackageDescription
// This declares the package.
let package = Package(
// The name of the package (defaults to source root directory name).
name: "Foo",
// The list of targets in the package.
targets: [
// Declares the main application.
Target(
name: "Foo",
// Declare the type of application.
type: .Tool,
// Declare that this target is a published product of the package
// (as opposed to an internal library or tool).
published: true),
// Add information on a support library "CoreFoo" (as found by the
// convention based system in CoreFoo/**/*.swift).
Target(
name: "CoreFoo",
depends: [
// The library always depends on the "Utils" target.
"Utils",
// This library depends on "AccessibilityUtils" on Linux.
.Conditional(name: "AccessibilityUtils", platforms: [.Linux])
]),
// NOTE: There is a "Utils" target inferred by the convention based
// system, but we don't need to modify it at all because the defaults
// were fine.
// Declare that the "AccessibilityUtils" target is Linux-specific.
Target(name: "AccessibilityUtils", platforms: [.Linux])
])
```
*NOTE: this example is for expository purposes, the exact APIs are subject to change.*
By writing the manifest in Swift, we ensure a consistent development experience across not only authoring their source code, but also their project metadata. This means developers will have a consistent environment with all of the development conveniences they expect: syntax coloring, code completion, API documentation, and formatting tools. This also ensures that new developers to Swift can focus on learning the language and its tools, not another custom package description format.
The package description itself is a declarative definition of information which *augments* the convention based system. The actual package definition that will be used for a project consists of the convention based package definition with the package description applied to override or customize default behaviors. For example, this target description:
```swift
Target(name: "AccessibilityUtils", platforms: [.Linux])
```
*does not* add a new target. Rather, it modifies the existing target `AccessibilityUtils` to specify what platforms it is available for.
## Customization
We intend for the declaration package definition to cover 80%+ of the use cases for modifying the convention based system. Nevertheless, there are some kinds of legitimate project structures which are difficult or cumbersome to encode in a purely declarative model. For example, designing a general purpose mechanism to cover all the ways in which users may wish to divide their source code is difficult.
Instead, we allow users to interact with the `Package` object using its native Swift APIs. The package declaration in a file may be followed by additional code which configures the package using a natural, imperative, Swifty API. For example, this is an example of a project which uses a custom convention for selecting which files build with unchecked optimizations:
```swift
import PackageDescription
let package = Package(name: "FTW")
// MARK: Custom Configuration
// Build all *_unchecked.swift files using "-Ounchecked" for Release mode.
for target in package.targets {
for source in target.sources {
if source.path.hasSuffix("_unchecked.swift") {
source.customFlags += [.Conditional("-Ounchecked", mode: .Release)
}
}
}
```
It is important to note that even when using this feature, package manifest still **must be** declarative. That is, the only output of a manifest is a complete description of the package, which is then operated on by the package manager and build tools. For example, a manifest **must not** attempt to do anything to directly interact with the build output. All such interactions must go through a documented, public API vended by the package manager libraries and surfaced via the package manager tools.
## Editor Support
The package definition format being written in Swift is problematic for tools that wish to perform automatic updates to the file (for example, in response to a user action, or to bind to a user interface), or for situations where dealing with executable code is problematic.
To that end, the declarative package specification portion of the file is "Swift" in the same sense that "JSON is Javascript". The syntax itself is valid, executable, Swift but the tools that process it will only accept a restricted, declarative, subset of Swift which can be statically evaluated, and which can be unambiguously, automatically rewritten by editing tools. We do not intend to define a "standard" syntax for "Swift Object Notation", but we intend to accept a natural restriction of the language which only accepts literal expressions. We do intend to allow the restricted subset to take full advantage of Swift's rich type inference and literal convertible design to allow for a succinct, readable, and yet expressive syntax.
The customization section above will *not* be written in this syntax. Instead, the customization section will be clearly demarcated in the file. The leading file section up to the first '// MARK:' will be processed as part of the restricted declarative specification. All subsequent code **must be** honored by tools which only need to consume the output of the specification, and **should be** displayed by tools which present an editor view of the manifest, but **should not** be automatically modified. The semantics of the APIs will be specifically designed to accommodate the expected use case of editor support for the primary data with custom project-specific logic for special cases.
All tools which process the package manifest **must** validate that the declaration portion of the specification fits into the restricted language subset, to ensure a consistent user experience.
## Implementation
We need to have efficient, programmatic access to the data from the manifest for use in the package manager and associated tools. Additionally, we may wish to use this data in contexts where the executable-code nature of the manifest format is problematic. On the other hand, we also want the file format to properly match the Swift language.
To satisfy these two goals, we intend to extract the package metadata from the manifest file by using the Swift parser **and** type checker to parse the leading package declaration portion of the file (not including any customizations made subsequent to the package definition). Once type checked, we will then validate the AST produced for the package description using custom logic which validates that the AST can (a) be parsed into validate model objects without needing to execute code, and (b) is written following the strict format such that it can be automatically modified by editing tools.
Tools that do not need to be as strict with the manifest format will be able to load it by using Swift directly to execute the file and then interact with the package definition API to extract the constructed model.
## Discussion
We decided to use a Swift-based format for the manifest because we believe it gives developers the best experience for working with and describing their project. The primary alternative we considered was to use a declarative format encoded in a common data format like JSON. Although that would simplify implementation of the tooling around the manifest, it has the downside that users must then learn this additional language, and the development of high quality tools for that (documentation, syntax coloring, parsing diagnostics) isn't aligned with our goal of building great tools for Swift. In contrast, using the Swift language means that we can leverage all of the work on Swift to make those tools great.
The decision to use a restricted subset of Swift for the primary package definition is because we believe it is important that common tasks which require the manifest be able to be automated or surfaced via a user interface.
We decided to allow additional customization of the package via imperative code because we do not anticipate that the convention based system will be able to cover all possible uses cases. When users need to accommodate special cases, we want them to be able to do so using the most natural and expression medium, by writing Swift code. By explicitly designing in a customization system, we believe we will be able to deliver a higher quality set of core conventions -- there is an escape hatch for the special cases that allows us to focus on only delivering conventions (and core APIs) for the things that truly merit it.
A common problem with systems that permit arbitrary customization (especially via a programmatic interface) is that they become difficult to maintain and evolve, since it is hard to predict how developers have taken advantage of the interface. We deal with this by requiring that the manifest only interact with the package and tools through a strict, well defined API. That is, even though we allow developers to write arbitrary code to construct their package, we do not allow arbitrary interactions with the build process. Viewed a different way, the output of *all* manifests **must be** able to be treated as a single declaration specification -- even if part of that specification was programmatically generated.
================================================
FILE: Documentation/PackageRegistry/PackageRegistryUsage.md
================================================
# Package Registry Usage
## Table of Contents
* [Getting Started](#getting-started)
+ [Configuring a registry](#configuring-a-registry)
+ [Adding a registry package dependency](#adding-a-registry-package-dependency)
+ [Registry authentication](#registry-authentication)
* [Dependency Resolution Using Registry](#dependency-resolution-using-registry)
+ [Using registry for source control dependencies](#using-registry-for-source-control-dependencies)
* [Dependency Download From Registry](#dependency-download-from-registry)
+ [Checksum TOFU](#checksum-tofu)
+ [Validating signed packages](#validating-signed-packages)
- [Trusted vs. untrusted certificate](#trusted-vs-untrusted-certificate)
- [Certificate policies](#certificate-policies)
- [Publisher TOFU](#publisher-tofu)
* [Publishing to Registry](#publishing-to-registry)
+ [Package release metadata](#package-release-metadata)
+ [Package signing](#package-signing)
- [Signature formats](#signature-formats)
- [Signed contents](#signed-contents)
* [Source archive](#source-archive)
* [Package release metadata](#package-release-metadata-1)
* [Package manifest(s)](#package-manifest-s-)
* [SwiftPM Registry Configuration](#swiftpm-registry-configuration)
+ [Registry-to-scope mappings](#registry-to-scope-mappings)
- [`swift package-registry set` subcommand](#-swift-package-registry-set--subcommand)
+ [Security configuration](#security-configuration)
## Getting Started
SwiftPM supports downloading dependencies from any package registry that implements
[SE-0292](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0292-package-registry-service.md)
and the corresponding [service specification](Registry.md).
In a registry, packages are identified by [package identifier](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0292-package-registry-service.md#package-identity)
in the form of `scope.package-name`.
### Configuring a registry
A registry can be configured in SwiftPM at two levels:
- Project: the registry will be used for packages within the project. Settings are stored in `.swiftpm/configuration/registries.json`.
- User: the registry will be used for all projects for the user. Settings are stored in `~/.swiftpm/configuration/registries.json`.
One could use the [`swift package-registry set` subcommand](#swift-package-registry-set-subcommand)
to assign a registry URL:
```bash
$ swift package-registry set https://packages.example.com
```
The above sets registry to `https://packages.example.com` at project level. Pass
the `--global` option to set registry at user level:
```bash
$ swift package-registry set --global https://packages.example.com
```
The resulting `registries.json` would look something like:
```json
{
"registries" : {
"[default]" : {
"url": "https://packages.example.com"
}
},
"version" : 1
}
```
The JSON key `[default]` means that the registry at `https://packages.example.com` is
"unscoped" and will be applied when there is no registry association found for
a given scope.
In this example, `https://packages.example.com` will be applied to all scopes.
### Adding a registry package dependency
A registry package dependency is declared in `Package.swift` using the
package identifier. For example:
```swift
dependencies: [
.package(id: "mona.LinkedList", .upToNextMajor(from: "1.0.0")),
],
```
SwiftPM will query the registry mapped to a package's scope to
resolve and download the appropriate release version.
### Registry authentication
If a registry requires authentication, it can be set up by using the
[`swift package-registry login` subcommand](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0378-package-registry-auth.md#new-login-subcommand)
introduced by SE-0378:
```bash
$ swift package-registry login
OVERVIEW: Log in to a registry
USAGE: swift package-registry login [<url>] [--username <username>] [--password <password>] [--token <token>] [--no-confirm]
ARGUMENTS:
<url> The registry URL
OPTIONS:
--username <username> Username
--password <password> Password
--token <token> Access token
--no-confirm Allow writing to netrc file without confirmation
```
Currently, basic and token authentication are supported.
Provide the credentials either by setting the corresponding options
(i.e., one of username/password or access token) or when prompted:
```bash
$ swift package-registry login https://packages.example.com
```
SwiftPM will save the credentials to the operating system's credential store
(e.g., Keychain in macOS) or netrc file (which by default is located at `~/.netrc`)
and apply them automatically when making registry API requests.
## Dependency Resolution Using Registry
Resolving a registry dependency involves these steps:
1. Fetch a package's available versions by calling the [list package releases](Registry.md#41-list-package-releases) API.
2. Compute the dependency graph by [fetching manifest(s) for a package release](Registry.md#43-fetch-manifest-for-a-package-release).
3. Pinpoint the package version to use.
### Using registry for source control dependencies
Here is an example of a source control dependency:
```swift
dependencies: [
.package(url: "https://github.com/mona/LinkedList", .upToNextMajor(from: "1.0.0")),
],
```
Registry can be used for source control dependencies as well. This is
particularly useful when there is a "mixed" graph (i.e., a dependency
graph that has both source control and registry dependencies). SwiftPM
considers packages with different origins to be different, so if a
package is referenced as both a registry (e.g., `mona.LinkedList`) and
source control (e.g., `https://github.com/mona/LinkedList`) dependency,
they are considered different even though they are the same package,
and would result in symbol clashes.
SwiftPM can deduplicate packages by performing a
[lookup on the source control URL](Registry.md#endpoint-5)
(e.g., `https://github.com/mona/LinkedList`) to see if it is associated with
any package identifier (e.g., `mona.LinkedList`).
One can control if/how SwiftPM should use registry in conjunction with
source control dependencies by setting one of these flags:
- `--disable-scm-to-registry-transformation` (default): SwiftPM will not transform source control dependency to registry dependency. Source control dependency will be downloaded from its corresponding URL, while registry dependency will be resolved and downloaded using the configured registry (if any).
- `--use-registry-identity-for-scm`: SwiftPM will look up source control dependencies in the registry and use their registry identity whenever possible to help deduplicate packages across the two origins. In other words, suppose `mona.LinkedList` is the package identifier for `https://github.com/mona/LinkedList`, then SwiftPM will treat both references in the dependency graph as the same package.
- `--replace-scm-with-registry`: SwiftPM will look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible. In other words, SwiftPM will attempt to download a source control dependency from the registry first, and fall back to cloning the source repository iff the dependency is not found in the registry.
## Dependency Download From Registry
After a registry dependency is resolved, SwiftPM can
[download source archive](Registry.md#endpoint-4)
of the computed package version from the registry.
### Checksum TOFU
SwiftPM performs checksum TOFU
([trust-on-first-use](https://en.wikipedia.org/wiki/Trust_on_first_use))
on the downloaded source archive. If the archive is downloaded
for the first time, SwiftPM
[fetches metadata of the package release](Registry.md#endpoint-2)
to obtain the expected checksum. Otherwise, SwiftPM
compares the checksum with that in local storage (`~/.swiftpm/security/fingerprints/`)
saved from previous download.
If checksum of the downloaded archive doesn't match the expected
or previous value, SwiftPM will fail the build. This can be
tuned down from error to warning by setting the build option
`--resolver-fingerprint-checking` to `warn` (default is `strict`).
Checksum TOFU is also done for manifests downloaded from registry.
### Validating signed packages
[SE-0391](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0391-package-registry-publish.md#package-signing)
adds package signing support to SwiftPM. SwiftPM determines if
a downloaded archive is signed by checking for presence of the
`X-Swift-Package-Signature-Format` and `X-Swift-Package-Signature`
headers in the HTTP response.
SwiftPM then performs a series of validations based on user's
[security configuration](#security-configuration).
- If the archive is unsigned, SwiftPM will error/prompt/warn/allow
based on the `signing.onUnsigned` configuration.
- If the archive is signed, SwiftPM will validate the signature and
the signing certificate chain. (see the following sections for details)
#### Trusted vs. untrusted certificate
A certificate is trusted if it is chained to any root in SwiftPM's
trust store, which consists of:
- SwiftPM's default trust store, if `signing.includeDefaultTrustedRootCertificates` is `true`.
- Custom root(s) in the configured trusted roots directory at `signing.trustedRootCertificatesPath`. Certificates must be DER-encoded.
Otherwise, a certificate is untrusted and handled according to the
`signing.onUntrustedCertificate` configuration. If user opts to
continue with the untrusted certificate, SwiftPM will proceed with
the archive as if it were an unsigned package.
#### Certificate policies
SwiftPM requires all certificates used for package signing to have
the "code signing" extended key usage extension. They must also
satisfy the core policies from
[RFC 5280](https://www.rfc-editor.org/rfc/rfc5280), as implemented
by [swift-certificates](https://github.com/apple/swift-certificates).
User can configure certificate expiry and revocation check
through the `signing.validationChecks.certificateExpiration`
and `signing.validationChecks.certificateRevocation` configuration,
respectively. Note that revocation check implicitly requires
expiry check.
An invalid signing certificate would result in SwiftPM rejecting
the archive.
#### Publisher TOFU
Some certificates allow SwiftPM to extract additional information
about the signing identity. For packages signed with these certificates,
SwiftPM will perform publisher TOFU to ensure the signer remains the
same across all versions of the package.
The `--resolver-signing-entity-checking` option controls whether publisher
mismatch should result in a warning (`warn`) or error (`strict`).
Data used by publisher TOFU is saved to `~/.swiftpm/security/signing-entities/`.
## Publishing to Registry
[`swift package-registry publish`](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0391-package-registry-publish.md#new-package-registry-publish-subcommand)
is an all-in-one command for publishing a package release to registry:
```bash
OVERVIEW: Publish to a registry
USAGE: swift package-registry publish <package-id> <package-version> [--url <url>] [--scratch-directory <scratch-directory>] [--metadata-path <metadata-path>] [--signing-identity <signing-identity>] [--private-key-path <private-key-path>] [--cert-chain-paths <cert-chain-paths> ...] [--dry-run]
ARGUMENTS:
<package-id> The package identifier.
<package-version> The package release version being created.
OPTIONS:
--url, --registry-url <url>
The registry URL.
--scratch-directory <scratch-directory>
The path of the directory where working file(s) will be written.
--metadata-path <metadata-path>
The path to the package metadata JSON file if it is not 'package-metadata.json' in the package directory.
--signing-identity <signing-identity>
The label of the signing identity to be retrieved from the system's identity store if supported.
--private-key-path <private-key-path>
The path to the certificate's PKCS#8 private key (DER-encoded).
--cert-chain-paths <cert-chain-paths>
Path(s) to the signing certificate (DER-encoded) and optionally the rest of the certificate chain. Certificates
should be ordered with the leaf first and the root last.
--dry-run Dry run only; prepare the archive and sign it but do not publish to the registry.
```
The command creates source archive for the package release,
optionally signs the package release, and
[publishes the package release](Registry.md#endpoint-6)
to the registry.
If authentication is required for package publication,
package author should [configure registry login](#registry-authentication)
before running `publish`.
### Package release metadata
Package author can specify a custom location of the package
release metadata file by setting the `--metadata-path` option
of the `publish` subcommand. Otherwise, by default SwiftPM
looks for a file named `package-metadata.json` in the
package directory.
Contents of the metadata file must conform to the
[JSON schema](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0391-package-registry-publish.md#package-release-metadata-standards)
defined in SE-0391. Also refer to registry documentation
for any additional requirements.
### Package signing
A registry may support or require signing. To sign a package
release, package author will need to set either the `signing-identity`
(for reading from operating system's identity store such as Keychain in macOS),
or `private-key-path` and `cert-chain-paths` (for reading from files)
options of the `publish` subcommand such that SwiftPM can
locate the signing key and certificate.
If the certificate chain's root and intermediates are known by SwiftPM,
then package author would only need to provide the leaf signing
certificate in `cert-chain-paths`.
Otherwise, the entire certificate chain should be provided as
`cert-chain-paths` so that all of the certificates will be
included in the signature and make it possible for SwiftPM
to reconstruct the certificate chain for validation later.
This is applicable to `signing-identity` as well
(i.e., `signing-identity` can be used in combination with
`cert-chain-paths` to provide the entire certificate chain).
If the root of the signing certificate is not in SwiftPM's
default trust store, package author is responsible for
telling package users to include the root certificate in their local
[trust roots](#trusted-vs-untrusted-certificate)
directory, or else [signature validation](#validating-signed-packages)
may fail upon download because the signing certificate is not trusted.
Refer to registry documentation for its certificate policy.
#### Signature formats
| Signature Format | Specification |
| ---------------- | ------------- |
| `cms-1.0.0` | [SE-391](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0391-package-registry-publish.md#package-signature-format-cms-100) |
Since there is only one supported signature format, all
signatures produced by SwiftPM are in `cms-1.0.0`.
#### Signed contents
##### Source archive
The signature is detached and sent as part of the HTTP request to the
publish API. It is included in the source archive download response as
HTTP headers, and is part of the package release metadata.
##### Package release metadata
The signature is detached and sent as part of the HTTP request to the
publish API. The current API specification does not include an endpoint
for fetching this metadata in its original form.
##### Package manifest(s)
`Package.swift` and version-specific manifests are individually signed.
The signature is embedded in the corresponding manifest file. The source
archive is generated and signed **after** manifest signing.
```swift
// swift-tools-version: 5.7
import PackageDescription
let package = Package(
name: "library",
products: [ .library(name: "library", targets: ["library"]) ],
targets: [ .target(name: "library") ]
)
// signature: cms-1.0.0;l1TdTeIuGdNsO1FQ0ptD64F5nSSOsQ5WzhM6/7KsHRuLHfTsggnyIWr0DxMcBj5F40zfplwntXAgS0ynlqvlFw==
```
When a manifest is fetched from the registry, SwiftPM checks if the
containing source archive is signed by fetching the package release
metadata. It is a failure if the source archive is signed but the
manifest is not. SwiftPM will extract and parse signature from
the manifest then validate it similar to what is done for
[source archive signature](#validating-signed-packages).
SwiftPM performs publisher TOFU to ensure it remains consistent
for the package. This implies the signer of manifests and source
archive must be the same.
To reduce the amount of logging and thus noise, diagnostics related
to manifest signature validation are set to DEBUG level. Only when
user chooses the `prompt` option for unsigned packages or packages
signed with an untrusted certificate would SwiftPM behave like
source archive validation.
## SwiftPM Registry Configuration
### Registry-to-scope mappings
When resolving or downloading registry packages, SwiftPM looks at the
registry-to-scope mappings in project and user-level configuration to
determine which registry is assigned for a package's scope.
For example, given the following configuration files:
```json
// User-level configuration (~/.swiftpm/configuration/registries.json)
{
"registries": {
"[default]": {
"url": "https://global.example.com"
},
"foo": {
"url": "https://global.example.com"
},
},
"version": 1
}
// Local configuration (.swiftpm/configuration/registries.json)
{
"registries": {
"foo": {
"url": "https://local.example.com"
}
},
"version": 1
}
```
- For package `foo.LinkedList`, the registry at `https://local.example.com` is used. (Local configuration has higher precedence than user-level configuration.)
- For package `bar.LinkedList`, the registry at `https://global.example.com` is used. (No mapping for scope `bar` is found, so `[default]` is used.)
#### `swift package-registry set` subcommand
```bash
$ swift package-registry set
OVERVIEW: Set a custom registry
USAGE: swift package-registry set [--global] [--scope <scope>] <url>
ARGUMENTS:
<url> The registry URL
OPTIONS:
--global Apply settings to all projects for this user
--scope <scope> Associate the registry with a given scope
```
This subcommand is used to assign registry at project or user-level:
```bash
# project-level
$ swift package-registry set https://packages.example.com
# user-level
$ swift package-registry set --global https://global.example.com
```
For a specific scope:
```bash
# project-level
$ swift package-registry set --scope foo https://local.example.com
# user-level
$ swift package-registry set --scope foo --global https://global.example.com
```
To remove a registry assignment, use the `swift package-registry unset` subcommand.
### Security configuration
Registry security configuration are specified in the user-level `registries.json`
(`~/.swiftpm/configuration/registries.json`):
```json
{
"security": {
"default": {
"signing": {
"onUnsigned": "prompt", // One of: "error", "prompt", "warn", "silentAllow"
"onUntrustedCertificate": "prompt", // One of: "error", "prompt", "warn", "silentAllow"
"trustedRootCertificatesPath": "~/.swiftpm/security/trusted-root-certs/",
"includeDefaultTrustedRootCertificates": true,
"validationChecks": {
"certificateExpiration": "disabled", // One of: "enabled", "disabled"
"certificateRevocation": "disabled" // One of: "strict", "allowSoftFail", "disabled"
}
}
},
"registryOverrides": {
// The example shows all configuration overridable at registry level
"packages.example.com": {
"signing": {
"onUnsigned": "warn",
"onUntrustedCertificate": "warn",
"trustedRootCertificatesPath": <STRING>,
"includeDefaultTrustedRootCertificates": <BOOL>,
"validationChecks": {
"certificateExpiration": "enabled",
"certificateRevocation": "allowSoftFail"
}
}
}
},
"scopeOverrides": {
// The example shows all configuration overridable at scope level
"mona": {
"signing": {
"trustedRootCertificatesPath": <STRING>,
"includeDefaultTrustedRootCertificates": <BOOL>
}
}
},
"packageOverrides": {
// The example shows all configuration overridable at package level
"mona.LinkedList": {
"signing": {
"trustedRootCertificatesPath": <STRING>,
"includeDefaultTrustedRootCertificates": <BOOL>
}
}
}
},
...
}
```
There are multiple levels of overrides. Configuration for a
package is computed using values from the following
(in descending precedence):
1. `packageOverrides` (if any)
1. `scopeOverrides` (if any)
1. `registryOverrides` (if any)
1. `default`
The `default` JSON object in the example above contains all
configurable security options and their default value when
there is no override.
- `signing.onUnsigned`: Indicates how SwiftPM will handle an unsigned package.
| Option | Description |
| ------------- | --------------------------------------------------------- |
| `error` | SwiftPM will reject the package and fail the build. |
| `prompt` | SwiftPM will prompt user to see if the unsigned package should be allowed. <ul><li>If no, SwiftPM will reject the package and fail the build.</li><li>If yes and the package has never been downloaded, its checksum will be stored for [checksum TOFU](#checksum-tofu). Otherwise, if the package has been downloaded before, its checksum must match the previous value or else SwiftPM will reject the package and fail the build.</li></ul> SwiftPM will record user's response to prevent repetitive prompting. |
| `warn` | SwiftPM will not prompt user but will emit a warning before proceeding. |
| `silentAllow` | SwiftPM will allow the unsigned package without prompting user or emitting warning. |
- `signing.onUntrustedCertificate`: Indicates how SwiftPM will handle a package signed with an [untrusted certificate](#trusted-vs-untrusted-certificate).
| Option | Description |
| ------------- | --------------------------------------------------------- |
| `error` | SwiftPM will reject the package and fail the build. |
| `prompt` | SwiftPM will prompt user to see if the package signed with an untrusted certificate should be allowed. <ul><li>If no, SwiftPM will reject the package and fail the build.</li><li>If yes, SwiftPM will proceed with the package as if it were an unsigned package.</li></ul> SwiftPM will record user's response to prevent repetitive prompting. |
| `warn` | SwiftPM will not prompt user but will emit a warning before proceeding. |
| `silentAllow` | SwiftPM will allow the package signed with an untrusted certificate without prompting user or emitting warning. |
- `signing.trustedRootCertificatesPath`: Absolute path to the directory containing custom trusted roots. SwiftPM will include these roots in its [trust store](#trusted-vs-untrusted-certificate), and certificates used for package signing must chain to roots found in this store. This configuration allows override at the package, scope, and registry levels.
- `signing.includeDefaultTrustedRootCertificates`: Indicates if SwiftPM should include default trusted roots in its [trust store](#trusted-vs-untrusted-certificate). This configuration allows override at the package, scope, and registry levels.
- `signing.validationChecks`: Validation check settings for the package signature.
| Validation | Description |
| ------------------------ | --------------------------------------------------------------- |
| `certificateExpiration` | <ul><li>`enabled`: SwiftPM will check that the current timestamp when downloading falls within the signing certificate's validity period. If it doesn't, SwiftPM will reject the package and fail the build.</li><li>`disabled`: SwiftPM will not perform this check.</li></ul> |
| `certificateRevocation` | With the exception of `disabled`, SwiftPM will check revocation status of the signing certificate. Currently, SwiftPM only supports revocation check done through [OCSP](https://www.rfc-editor.org/rfc/rfc6960).<ul><li>`strict`: Revocation check must complete successfully and the certificate must be in good status. SwiftPM will reject the package and fail the build if the revocation status is revoked or unknown (including revocation check not supported or failed).</li><li>`allowSoftFail`: SwiftPM will reject the package and fail the build iff the certificate has been revoked. SwiftPM will allow the certificate's revocation status to be unknown (including revocation check not supported or failed).</li><li>`disabled`: SwiftPM will not perform this check.</li></ul> |
================================================
FILE: Documentation/PackageRegistry/Registry.md
================================================
# Swift Package Registry Service Specification
- [1. Notations](#1-notations)
- [2. Definitions](#2-definitions)
- [3. Conventions](#3-conventions)
- [3.1. Application layer protocols](#31-application-layer-protocols)
- [3.2. Authentication](#32-authentication)
- [3.3. Error handling](#33-error-handling)
- [3.4. Rate limiting](#34-rate-limiting)
- [3.5. API versioning](#35-api-versioning)
- [3.6. Package identification](#36-package-identification)
- [3.6.1 Package scope](#361-package-scope)
- [3.6.2. Package name](#362-package-name)
- [4. Endpoints](#4-endpoints)
- [4.1. List package releases](#41-list-package-releases)
- [4.2. Fetch information about a package release](#42-fetch-information-about-a-package-release)
- [4.2.1. Package release resources](#421-package-release-resources)
- [4.2.2. Package release metadata standards](#422-package-release-metadata-standards)
- [4.3. Fetch manifest for a package release](#43-fetch-manifest-for-a-package-release)
- [4.3.1. swift-version query parameter](#431-swift-version-query-parameter)
- [4.4. Download source archive](#44-download-source-archive)
- [4.4.1. Integrity verification](#441-integrity-verification)
- [4.4.2. Download locations](#442-download-locations)
- [4.4.3. Signature validation](#443-signature-validation)
- [4.5. Lookup package identifiers registered for a URL](#45-lookup-package-identifiers-registered-for-a-url)
- [4.5.1 URL to package identifier mappings](#451-url-to-package-identifier-mappings)
- [4.6. Create a package release](#46-create-a-package-release)
- [4.6.1. Source archive](#461-source-archive)
- [4.6.2. Package release metadata](#462-package-release-metadata)
- [4.6.3. Synchronous and asynchronous publication](#463-synchronous-and-asynchronous-publication)
- [4.6.3.1. Synchronous publication](#4631-synchronous-publication)
- [4.6.3.2. Asynchronous publication](#4632-asynchronous-publication)
- [5. Normative References](#5-normative-references)
- [6. Informative References](#6-informative-references)
- [Appendix A - OpenAPI Document](#appendix-a---openapi-document)
- [Appendix B - Package Release Metadata JSON Schema](#appendix-b---package-release-metadata-json-schema)
## 1. Notations
The following terminology and conventions are used in this document.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in [RFC 2119].
This specification uses the Augmented Backus-Naur Form (ABNF) notation
as described in [RFC 5234]
and Unicode regular expression syntax
as described in [Unicode Technical Standard #18][UAX18].
API endpoints that accept parameters in their path
are expressed by Uniform Resource Identifier (URI) templates,
as described in [RFC 6570].
## 2. Definitions
The following terms, as used in this document, have the meanings indicated.
- _Package_:
A named collection of Swift source code
that is organized into one or more modules
according to a `Package.swift` manifest file.
- _Scope_:
A logical grouping of related packages assigned by a package registry.
- _Release_:
The state of a package after applying a particular set of changes
that is uniquely identified by an assigned version number.
- _Version Number_:
An identifier for a package release
in accordance with the [Semantic Versioning Specification (SemVer)][SemVer].
- _Precedence_:
The ordering of version numbers relative to each other
as defined by the [Semantic Versioning Specification (SemVer)][SemVer].
## 3. Conventions
This document uses the following conventions
in its description of client-server interactions.
### 3.1. Application layer protocols
A client and server MUST communicate over a secured connection
using Transport Layer Security (TLS) with the `https` URI scheme.
The use of HTTP 1.1 in examples is non-normative.
A client and server MAY communicate according to this specification
using any version of the HTTP protocol.
### 3.2. Authentication
A server MAY require authentication
for client requests to access information about packages and package releases.
A server SHOULD respond with a status code of `401` (Unauthorized)
if a client sends a request to an endpoint that requires authentication
without providing credentials.
A server MAY respond with a status code of `404` (Not Found) or `403` (Forbidden)
when a client provides valid credentials
but isn't authorized to access the requested resource.
A server MAY use any authentication model of its choosing.
However, the use of a scoped, revocable authorization framework
like [OAuth 2.0][RFC 6749] is RECOMMENDED.
### 3.3. Error handling
A server MUST communicate any errors to the client
using "problem details" objects,
as described by [RFC 7807].
For example,
a client sends a request for a nonexistent release of a package
and receives the following response:
```http
HTTP/1.1 404
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "release not found"
}
```
### 3.4. Rate limiting
A server MAY limit the number of requests made by a client
by responding with a status code of `429` (Too Many Requests).
```http
HTTP/1.1 429
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
Retry-After: 60
{
"detail": "try again in 60 seconds"
}
```
A client SHOULD follow the guidance of any
`Retry-After` header values provided in responses
to prevent overwhelming a server with retry requests.
It is RECOMMENDED for clients to introduce random jitter in their retry logic
to avoid a [thundering herd effect].
### 3.5. API versioning
Package registry APIs are versioned.
API version numbers are designated by decimal integers.
The accepted version of this proposal constitutes the initial version, `1`.
Subsequent revisions SHOULD be numbered sequentially
(`2`, `3`, and so on).
API version numbers SHOULD follow
Semantic Versioning conventions for major releases.
Non-breaking changes, such as
adding new endpoints,
adding new optional parameters to existing endpoints,
or adding new information to existing endpoints in a backward-compatible way,
SHOULD NOT require a new version.
Breaking changes, such as
removing or changing an existing endpoint
in a backward-incompatible way,
MUST correspond to a new version.
A client SHOULD set the `Accept` header field
to specify the API version of a request.
```http
GET /mona/LinkedList/list HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+json
```
Valid `Accept` header field values are described by the following rules:
```abnf
version = "1" ; The API version
mediatype = "json" / ; JSON (default media type)
"zip" / ; Zip archives, used for package releases
"swift" ; Swift file, used for package manifest
accept = "application/vnd.swift.registry" [".v" version] ["+" mediatype]
```
A server MUST set the `Content-Type` header field
with the corresponding content type of the response.
A server MUST set the `Content-Version` header field
with the API version number of the response, unless
explicitly stated otherwise.
```http
HTTP/1.1 200 OK
Content-Type: application/json
Content-Version: 1
```
If a client sends a request without an `Accept` header,
a server MAY either respond with a status code of `400 Bad Request` or
process the request using an API version that it chooses,
making sure to set the `Content-Type` and `Content-Version` headers accordingly.
If a client sends a request with an `Accept` header
that specifies an unknown or invalid API version,
a server SHOULD respond with a status code of `400` (Bad Request).
```http
HTTP/1.1 400 Bad Request
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "invalid API version"
}
```
If a client sends a request with an `Accept` header
that specifies a valid but unsupported API version,
a server SHOULD respond with a status code of `415` (Unsupported Media Type).
```http
HTTP/1.1 415 Unsupported Media Type
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "unsupported API version"
}
```
### 3.6. Package identification
A package may declare external packages as dependencies in its manifest.
Each package dependency may specify a requirement
on which versions are allowed.
An external package dependency may itself have
one or more external package dependencies,
known as <dfn>transitive dependencies</dfn>.
When multiple packages have dependencies in common,
Swift Package Manager determines which version of that package should be used
(if any exist that satisfy all specified requirements)
in a process called <dfn>package resolution</dfn>.
Each external package is uniquely identified
by a scoped identifier in the form `scope.package-name`.
#### 3.6.1 Package scope
A *scope* provides a namespace for related packages within a package registry.
A package scope consists of alphanumeric characters and hyphens.
Hyphens may not occur at the beginning or end,
nor consecutively within a scope.
The maximum length of a package scope is 39 characters.
A valid package scope matches the following regular expression pattern:
```regexp
\A[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}\z
```
Package scopes are case-insensitive
(for example, `mona` ≍ `MONA`).
#### 3.6.2. Package name
A package's *name* uniquely identifies a package in a scope.
A package name consists of alphanumeric characters, underscores, and hyphens.
Hyphens and underscores may not occur at the beginning or end,
nor consecutively within a name.
The maximum length of a package name is 100 characters.
A valid package name matches the following regular expression pattern:
```regexp
\A[a-zA-Z0-9](?:[a-zA-Z0-9]|[-_](?=[a-zA-Z0-9])){0,99}\z
```
Package names are case-insensitive
(for example, `LinkedList` ≍ `LINKEDLIST`).
## 4. Endpoints
A server MUST respond to the following endpoints:
| Link | Method | Path | Description |
| -------------------- | ------ | --------------------------------------------------------- | ------------------------------------------------- |
| [\[1\]](#endpoint-1) | `GET` | `/{scope}/{name}` | List package releases |
| [\[2\]](#endpoint-2) | `GET` | `/{scope}/{name}/{version}` | Fetch metadata for a package release |
| [\[3\]](#endpoint-3) | `GET` | `/{scope}/{name}/{version}/Package.swift{?swift-version}` | Fetch manifest for a package release |
| [\[4\]](#endpoint-4) | `GET` | `/{scope}/{name}/{version}.zip` | Download source archive for a package release |
| [\[5\]](#endpoint-5) | `GET` | `/identifiers{?url}` | Lookup package identifiers registered for a URL |
| [\[6\]](#endpoint-6) | `PUT` | `/{scope}/{name}/{version}` | Create a package release |
A server SHOULD also respond to `HEAD` requests
for each of the specified endpoints.
A client MAY send an `OPTIONS` request with an asterisk (`*`)
to determine the permitted communication options for the server.
A server MAY respond with a `Link` header containing
an entry for the `service-doc` relation type
with a link to this document, and
an entry for the `service-desc` relation type
with a link to the OpenAPI specification.
* * *
<a name="endpoint-1"></a>
### 4.1. List package releases
A client MAY send a `GET` request
for a URI matching the expression `/{scope}/{name}`
to retrieve a list of the available releases for a particular package.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+json`
and MAY append the `.json` extension to the requested URI.
```http
GET /mona/LinkedList HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+json
```
If a package is found at the requested location,
a server SHOULD respond with a status code of `200` (OK)
and the `Content-Type` header `application/json`.
Otherwise, a server SHOULD respond with a status code of `404` (Not Found).
A server SHOULD respond with a JSON document
containing the releases for the requested package.
```http
HTTP/1.1 200 OK
Content-Type: application/json
Content-Version: 1
Content-Length: 508
Link: <https://github.com/mona/LinkedList>; rel="canonical",
<ssh://git@github.com:mona/LinkedList.git>; rel="alternate",
<https://packages.example.com/mona/LinkedList/1.1.1>; rel="latest-version",
<https://github.com/sponsors/mona>; rel="payment"
{
"releases": {
"1.1.1": {
"url": "https://packages.example.com/mona/LinkedList/1.1.1"
},
"1.1.0": {
"url": "https://packages.example.com/mona/LinkedList/1.1.0",
"problem": {
"status": 410,
"title": "Gone",
"detail": "this release was removed from the registry"
}
},
"1.0.0": {
"url": "https://packages.example.com/mona/LinkedList/1.0.0"
}
}
}
```
The response body MUST contain a JSON object
nested at a top-level `releases` key,
whose keys are version numbers for releases and
whose values are objects containing the following fields:
| Key | Type | Description | Requirement Level |
| --------- | ------ | ------------------------------------- | ----------------- |
| `url` | String | The location of the release resource. | OPTIONAL |
| `problem` | Object | A [problem details][RFC 7807] object. | OPTIONAL |
A server MAY specify a URL for a release using the `url` key.
A client SHOULD locate a release using the value of the `url` key, if one is provided.
Otherwise, the client SHOULD locate a release
by expanding the URI Template `/{scope}/{name}/{version}` on the originating host.
A server SHOULD communicate the unavailability of a package release
using a ["problem details"][RFC 7807] object.
A client SHOULD consider any releases with an associated `problem`
to be unavailable for the purposes of package resolution.
A server SHOULD respond with
a link to the highest precedence published release of the package if one exists,
using a `Link` header field with a `latest-version` relation.
A server SHOULD list releases in order of precedence,
starting with the highest precedence version.
However, a client SHOULD NOT assume
any specific ordering of versions in a response.
A server MAY include a `Link` entry
with the `canonical` relation type
that locates the source repository of the package.
A server MAY include one or more `Link` entries
with the `alternate` relation type
for other source repository locations.
A server MAY paginate results by responding with
a `Link` header field that includes any of the following relations:
| Name | Description |
| ------- | --------------------------------------- |
| `next` | The immediate next page of results. |
| `last` | The last page of results. |
| `first` | The first page of results. |
| `prev` | The immediate previous page of results. |
For example,
the `Link` header field in a response for the third page of paginated results:
```http
Link: <https://packages.example.com/mona/HashMap/5.0.3>; rel="latest-version",
<https://packages.example.com/mona/HashMap?page=1>; rel="first",
<https://packages.example.com/mona/HashMap?page=2>; rel="previous",
<https://packages.example.com/mona/HashMap?page=4>; rel="next",
<https://packages.example.com/mona/HashMap?page=10>; rel="last"
```
A server MAY respond with additional `Link` entries,
such as one with a `payment` relation for sponsoring a package maintainer.
<a name="endpoint-2"></a>
### 4.2. Fetch information about a package release
A client MAY send a `GET` request
for a URI matching the expression `/{scope}/{name}/{version}`
to retrieve information about a release.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+json`,
and MAY append the `.json` extension to the requested URI.
```http
GET /mona/LinkedList/1.1.1 HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+json
```
If a release is found at the requested location,
a server SHOULD respond with a status code of `200` (OK)
and the `Content-Type` header `application/json`.
Otherwise, a server SHOULD respond with a status code of `404` (Not Found).
```http
HTTP/1.1 200 OK
Content-Version: 1
Content-Type: application/json
Content-Length: 720
Link: <https://packages.example.com/mona/LinkedList/1.1.1>; rel="latest-version",
<https://packages.example.com/mona/LinkedList/1.0.0>; rel="predecessor-version"
{
"id": "mona.LinkedList",
"version": "1.1.1",
"resources": [
{
"name": "source-archive",
"type": "application/zip",
"checksum": "a2ac54cf25fbc1ad0028f03f0aa4b96833b83bb05a14e510892bb27dea4dc812",
"signing": {
"signatureBase64Encoded": "l1TdTeIuGdNsO1FQ0ptD64F5nSSOsQ5WzhM6/7KsHRuLHfTsggnyIWr0DxMcBj5F40zfplwntXAgS0ynlqvlFw==",
"signatureFormat": "cms-1.0.0"
}
}
],
"metadata": { ... },
"publishedAt": "2023-02-16T04:00:00.000Z"
}
```
The response body SHOULD contain a JSON object containing the following fields:
| Key | Type | Description | Required |
| ------------- | ------ | ----------------------------------------- | :------: |
| `id` | String | The namespaced package identifier. | ✓ |
| `version` | String | The package release version number. | ✓ |
| `resources` | Array | The resources available for the release. | ✓ |
| `metadata` | Object | Additional information about the release. | ✓ |
| `publishedAt` | String | The [ISO 8601]-formatted datetime string of when the package release was published, as recorded by the registry. See related [`originalPublicationTime`](#appendix-b---package-release-metadata-json-schema) in `metadata`. | |
A server SHOULD respond with a `Link` header containing the following entries:
| Relation | Description |
| --------------------- | ------------------------------------------------------------------------------------ |
| `latest-version` | The highest precedence published release of the package |
| `successor-version` | The next published release of the package ordered by precedence, if one exists |
| `predecessor-version` | The previously published release of the package ordered by precedence, if one exists |
A link with the `latest-version` relation
MAY correspond to the requested release.
#### 4.2.1. Package release resources
Each element in the `resources` array is a JSON object with the following keys:
| Key | Type | Description |
| ---------- | ------- | -------------------------------------------------------------------------- |
| `name` | String | The name of the resource. |
| `type` | String | The content type of the resource. |
| `checksum` | String | A hexadecimal representation of the SHA256 digest for the resource. |
| `signing` | Object | Information about the signature. Required only if the resource is signed. |
The `signing` JSON object contains these keys:
| Key | Type | Description |
| ------------------------ | ------- | ------------------------------------------------- |
| `signatureBase64Encoded` | String | The resource's signature, base64 encoded. |
| `signatureFormat` | String | The signature format. (e.g., `cms-1.0.0`) |
A resource object SHOULD have one of the following combinations of
`name` and `type` values:
| Name | Content Type | Description |
| ------------------ | ----------------- | ---------------------------------- |
| `source-archive` | `application/zip` | An archive of package sources. |
A release MUST NOT have more than a single resource object
with a given combination of `name` and `type` values.
#### 4.2.2. Package release metadata standards
[Appendix B](#appendix-b---package-release-metadata-json-schema)
defines the JSON schema for package release metadata that
gets submitted as part of the ["create a package release"](#endpoint-6)
request. A server MAY allow and/or populate additional metadata by
expanding the schema. The `metadata` key in the
["fetch information about a package release "](#endpoint-2) API response
will hold the user-provided as well as the server populated metadata.
<a name="endpoint-3"></a>
### 4.3. Fetch manifest for a package release
A client MAY send a `GET` request for a URI matching the expression
`/{scope}/{name}/{version}/Package.swift`
to retrieve the package manifest for a release.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+swift`.
```http
GET /mona/LinkedList/1.1.1/Package.swift HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+swift
```
If a release is found at the requested location,
a server SHOULD respond with a status code of `200` (OK)
and the `Content-Type` header `text/x-swift`.
Otherwise, a server SHOULD respond with a status code of `404` (Not Found).
```http
HTTP/1.1 200 OK
Cache-Control: public, immutable
Content-Type: text/x-swift
Content-Disposition: attachment; filename="Package.swift"
Content-Length: 361
Content-Version: 1
Link: <http://packages.example.com/mona/LinkedList/1.1.1/Package.swift?swift-version=4>; rel="alternate"; filename="Package@swift-4.swift"; swift-tools-version="4.0",
<http://packages.example.com/mona/LinkedList/1.1.1/Package.swift?swift-version=4.2>; rel="alternate"; filename="Package@swift-4.2.swift"; swift-tools-version="4.2"
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "LinkedList",
products: [
.library(name: "LinkedList", targets: ["LinkedList"])
],
targets: [
.target(name: "LinkedList"),
.testTarget(name: "LinkedListTests", dependencies: ["LinkedList"]),
],
swiftLanguageVersions: [.v4, .v5]
)
```
A server SHOULD respond with a `Content-Length` header
set to the size of the manifest in bytes.
A server SHOULD respond with a `Content-Disposition` header
set to `attachment` with a `filename` parameter equal to
the name of the manifest file
(for example, "Package.swift").
A server MAY omit the `Content-Version` header
since the response content (i.e., the manifest) SHOULD NOT
change across different API versions.
It is RECOMMENDED for clients and servers to support
caching as described by [RFC 7234].
A server MUST include a `Link` header field
with a value for each version-specific package manifest file
in the release's source archive,
whose filename matches the following regular expression pattern:
```regexp
\APackage@swift-(\d+)(?:\.(\d+))?(?:\.(\d+))?.swift\z
```
Each link value SHOULD have the `alternate` relation type,
a `filename` attribute set to the version-specific package manifest filename
(for example, `Package@swift-4.swift`), and
a `swift-tools-version` attribute set to the [Swift tools version]
specified by the package manifest file
(for example, `4.0` for a manifest beginning with the comment
`// swift-tools-version:4.0`).
#### 4.3.1. swift-version query parameter
A client MAY specify a `swift-version` query parameter
to request a manifest for a particular version of Swift.
```http
GET /mona/LinkedList/1.1.1/Package.swift?swift-version=4.2 HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+swift
```
If the package includes a file named
`Package@swift-{swift-version}.swift`,
the server SHOULD respond with a status code of `200` (OK)
and the content of that file in the response body.
```http
HTTP/1.1 200 OK
Cache-Control: public, immutable
Content-Type: text/x-swift
Content-Disposition: attachment; filename="Package@swift-4.2.swift"
Content-Length: 361
Content-Version: 1
// swift-tools-version:4.2
import PackageDescription
let package = Package(
name: "LinkedList",
products: [
.library(name: "LinkedList", targets: ["LinkedList"])
],
targets: [
.target(name: "LinkedList"),
.testTarget(name: "LinkedListTests", dependencies: ["LinkedList"]),
],
swiftLanguageVersions: [.v3, .v4]
)
```
Otherwise,
the server SHOULD respond with a status code of `303` (See Other)
and redirect to the unqualified `Package.swift` resource.
```http
HTTP/1.1 303 See Other
Content-Version: 1
Location: https://packages.example.com/mona/LinkedList/1.1.1/Package.swift
```
<a name="endpoint-4"></a>
### 4.4. Download source archive
A client MAY send a `GET` request
for a URI matching the expression `/{scope}/{name}/{version}.zip`
to retrieve a release's source archive.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+zip`
and MUST append the `.zip` extension to the requested path.
```http
GET /mona/LinkedList/1.1.1.zip HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+zip
```
If a release is found at the requested location,
a server SHOULD respond with a status code of `200` (OK)
and the `Content-Type` header `application/zip`.
Otherwise, a server SHOULD respond with a status code of `404` (Not Found).
```http
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: public, immutable
Content-Type: application/zip
Content-Disposition: attachment; filename="LinkedList-1.1.1.zip"
Content-Length: 2048
Content-Version: 1
Digest: sha-256=oqxUzyX7wa0AKPA/CqS5aDO4O7BaFOUQiSuyfepNyBI=
Link: <https://mirror-japanwest.example.com/mona-LinkedList-1.1.1.zip>; rel=duplicate; geo=jp; pri=10; type="application/zip"
X-Swift-Package-Signature-Format: cms-1.0.0
X-Swift-Package-Signature: l1TdTeIuGdNsO1FQ0ptD64F5nSSOsQ5WzhM6/7KsHRuLHfTsggnyIWr0DxMcBj5F40zfplwntXAgS0ynlqvlFw==
```
A server MUST respond with a `Content-Length` header
set to the size of the archive in bytes.
A client SHOULD terminate any requests whose response exceeds
the expected content length.
A server MAY respond with a `Digest` header
containing a cryptographic digest of the source archive.
A server SHOULD respond with a `Content-Disposition` header
set to `attachment` with a `filename` parameter equal to the name of the package
followed by a hyphen (`-`), the version number, and file extension
(for example, "LinkedList-1.1.1.zip").
A server MAY omit the `Content-Version` header
since the response content (i.e., the source archive) SHOULD NOT
change across different API versions.
It is RECOMMENDED for clients and servers to support
range requests as described by [RFC 7233]
and caching as described by [RFC 7234].
If a release is signed, a server MUST include
`X-Swift-Package-Signature-Format` and `X-Swift-Package-Signature`
headers in the response.
#### 4.4.1. Integrity verification
A client MUST verify the integrity of a downloaded source archive using
the `checksum` value for the associated `source-archive` resource
in the response to `GET /{scope}/{name}/{version}`,
as described in [4.2.1](#421-package-release-resources).
A client SHOULD also verify the integrity using any values
provided in the `Digest` header of the source archive response
(for using the command
`shasum -b -a 256 LinkedList-1.1.1.zip | cut -f1 | xxd -r -p | base64`).
#### 4.4.2. Download locations
A server MAY specify mirrors or multiple download locations
using `Link` header fields
with a `duplicate` relation,
as described by [RFC 6249].
A client MAY use this information
to determine its preferred strategy for downloading.
A server MAY respond with a status code of `303` (See Other)
to redirect the client to download the source archive from another host.
The client MUST NOT follow redirects that downgrade to an insecure connection.
The client SHOULD limit the number of redirects to prevent a redirect loop.
For example,
a server redirects the client to download from
a content delivery network (CDN) using a signed URL:
```http
HTTP/1.1 303 See Other
Location: https://example.cdn.com/LinkedList-1.1.1.zip?key=XXXXXXXXXXXXXXXXX
```
```http
GET /LinkedList-1.1.1.zip?key=XXXXXXXXXXXXXXXXX HTTP/1.1
Host: example.cdn.com
Accept: application/vnd.swift.registry.v1+zip
```
```http
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: public, immutable
Content-Type: application/zip
Content-Disposition: attachment; filename="LinkedList-1.1.1.zip"
Content-Length: 2048
Content-Version: 1
Digest: sha-256=a2ac54cf25fbc1ad0028f03f0aa4b96833b83bb05a14e510892bb27dea4dc812
```
#### 4.4.3. Signature validation
A client MUST validate the signature of a signed archive
according to the signature format and configuration. Signing
information can alternatively be found in the associated
`source-archive` resource in the response to `GET /{scope}/{name}/{version}`,
as described in [4.2.1](#421-package-release-resources).
<a name="endpoint-5"></a>
### 4.5. Lookup package identifiers registered for a URL
A client MAY send a `GET` request
for a URI matching the expression `/identifiers?url={url}`
to retrieve package identifiers associated with a particular URL.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+json`.
```http
GET /identifiers?url=https://github.com/mona/LinkedList HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1
```
A client MUST provide a URL for the `url` query parameter.
When no `url` parameter is specified,
a server SHOULD respond with a status code of `400` (Bad Request).
If one or more package identifiers are associated with the specified URL,
a server SHOULD respond with a status code of `200` (OK)
and the `Content-Type` header `application/json`.
Otherwise, a server SHOULD respond with a status code of `404` (Not Found).
A server SHOULD respond with a JSON document
containing the package identifiers for the specified URL.
```http
HTTP/1.1 200 OK
Content-Type: application/json
Content-Version: 1
{
"identifiers": [
"mona.LinkedList"
]
}
```
The response body MUST contain an array of package identifier strings
nested at a top-level `identifiers` key.
It is RECOMMENDED for clients and servers to support
caching as described by [RFC 7234].
#### 4.5.1 URL to package identifier mappings
As part of the [package release metadata](#422-package-release-metadata-standards)
JSON object, the `repositoryURLs` array can be used to specify
URLs associated with a package identifier. This is one way
through which a server can obtain URL to package identifier
mappings for this API.
A server MAY choose other mechanism(s) for package authors
to specify these mappings.
A server SHOULD validate the package author's ownership claim
on the corresponding repository.
<a name="endpoint-6"></a>
### 4.6. Create a package release
A client MAY send a `PUT` request
for a URI matching the expression
`/{scope}/{name}/{version}`
to publish a release of a package.
A client MUST provide a body encoded as multipart form data
with the following sections:
| Key | Content-Type | Description | Requirement Level |
| -------------------------- | -------------------------- | ----------------------------------------- | ----------------- |
| `source-archive` | `application/zip` | The source archive of the package. | REQUIRED |
| `source-archive-signature` | `application/octet-stream` | The signature of the source archive. | OPTIONAL |
| `metadata` | `application/json` | Additional information about the release. | OPTIONAL |
| `metadata-signature` | `application/octet-stream` | The signature of the metadata. | OPTIONAL |
A client MUST set a `Content-Type` header with the value
`multipart/form-data`. `boundary` can be any string.
A client MAY use any valid value (e.g., `binary`) for the
`Content-Transfer-Encoding` header.
A client SHOULD set the `Content-Length` header with
the total size of the body in bytes.
A client SHOULD set the `Accept` header with the value
`application/vnd.swift.registry.v1+json`.
A client MUST set a `X-Swift-Package-Signature-Format` header
with the signature format if the source archive is signed.
```http
PUT /mona/LinkedList/1.1.1 HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1+json
Content-Type: multipart/form-data;boundary="boundary"
Content-Length: 336
Expect: 100-continue
X-Swift-Package-Signature-Format: cms-1.0.0
--boundary
Content-Disposition: form-data; name="source-archive"
Content-Type: application/zip
Content-Length: 32
Content-Transfer-Encoding: base64
gHUFBgAAAAAAAAAAAAAAAAAAAAAAAA==
--boundary
Content-Disposition: form-data; name="source-archive-signature"
Content-Type: application/octet-stream
Content-Length: 88
Content-Transfer-Encoding: base64
l1TdTeIuGdNsO1FQ0ptD64F5nSSOsQ5WzhM6/7KsHRuLHfTsggnyIWr0DxMcBj5F40zfplwntXAgS0ynlqvlFw==
--boundary
Content-Disposition: form-data; name="metadata"
Content-Type: application/json
Content-Transfer-Encoding: quoted-printable
Content-Length: 3
{ "repositoryURLs": [] }
--boundary
Content-Disposition: form-data; name="metadata-signature"
Content-Type: application/octet-stream
Content-Length: 88
Content-Transfer-Encoding: base64
M6TdTeIuGdNsO1FQ0ptD64F5nSSOsQ5WzhM6/7KsHRuLHfTsggnyIWr0DxMcBj5F40zfplwntXAgS0ynlqvlFw==
```
A server SHOULD require a client to perform authentication
for any requests to create a package release.
Use of multi-factor authentication is RECOMMENDED.
A client MAY publish releases in any order.
For example,
if a package has existing `1.0.0` and `2.0.0` releases,
a client MAY publish a new `1.0.1` or `1.1.0` release.
Once a release has been published,
any resources associated with that release,
including its source archive,
MUST NOT change.
If a release already exists for a package at the specified version,
the server SHOULD respond with a status code of `409` (Conflict).
```http
HTTP/1.1 409 Conflict
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "a release with version 1.0.0 already exists"
}
```
It is RECOMMENDED that a server institute policies
for publishing new releases of a package
after a scope is transferred to a new owner.
For example,
the next release of an existing package is published with a new major version,
or only after a period of 45 days after transfer.
If the client provides an `Expect` header,
a server SHOULD check that the request can succeed
before responding with a status code of `100 (Continue)`.
A server that doesn't support expectations
SHOULD respond with a status code of `417 (Expectation Failed)`.
In response,
a client MAY remove the `Expect` header and retry the request.
```http
HTTP/1.1 417 (Expectation Failed)
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "expectations aren't supported"
}
```
Support for this endpoint is OPTIONAL.
A server SHOULD indicate that publishing isn't supported
by responding with a status code of `405` (Method Not Allowed).
```http
HTTP/1.1 405 (Method Not Allowed)
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "publishing isn't supported"
}
```
A server MAY respond either synchronously or asynchronously.
For more information,
see [4.6.4](#464-synchronous-and-asynchronous-publication).
#### 4.6.1. Source archive
A client MUST include a multipart section named `source-archive`
containing the source archive for a release.
A client SHOULD set a `Content-Type` header with the value `application/zip`
and a `Content-Length` header with the size of the Zip archive in bytes.
```http
--boundary
Content-Disposition: form-data; name="source-archive"
Content-Type: application/zip
Content-Length: 32
Content-Transfer-Encoding: base64
gHUFBgAAAAAAAAAAAAAAAAAAAAAAAA==
```
A client SHOULD use the `swift package archive-source` tool
to create a source archive for the release.
A server MAY analyze a package to
assess its viability,
perform security testing,
or otherwise evaluate software quality.
A server MAY refuse to publish a package release for any reason
by responding with a status code of `422` (Unprocessable Entity).
```http
HTTP/1.1 422 Unprocessable Entity
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "package doesn't contain a valid manifest (Package.swift) file"
}
```
A server SHOULD use the `swift package compute-checksum` tool
to compute the checksum that's provided in response to
a client's subsequent request to [download the source archive](#endpoint-4)
for the release.
#### 4.6.2. Package release metadata
A client MAY include a multipart section named `metadata`
containing additional information about the release.
A client SHOULD set a `Content-Type` header with the value `application/json`
and a `Content-Length` header with the size of the JSON document in bytes.
The package release metadata MUST be based on the [JSON schema](#appendix-b---package-release-metadata-json-schema),
as discussed in [4.2.2](#422-package-release-metadata-standards).
```http
--boundary
Content-Disposition: form-data; name="metadata"
Content-Type: application/json
Content-Length: 226
Content-Transfer-Encoding: quoted-printable
{
"description": "One thing links to another.",
"repositoryURLs": ["https://github.com/mona/LinkedList"],
"licenseURL": "https://www.apache.org/licenses/LICENSE-2.0",
"author": {
"name": "Mona Lisa Octocat"
}
}
```
A server MAY allow and/or populate additional metadata for a release.
A server MAY make any properties in the [JSON schema](#appendix-b---package-release-metadata-json-schema)
and additional metadata it defines required.
If a client provides an invalid JSON document,
the server SHOULD respond with a status code of
`422` (Unprocessable Entity) or `413` (Payload Too Large)
and MAY communicate validation error details in the response body.
```http
HTTP/1.1 422 Unprocessable Entity
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
{
"detail": "invalid JSON provided for release metadata"
}
```
#### 4.6.3. Synchronous and asynchronous publication
A server MAY respond to a request to publish a new package release
either synchronously or asynchronously.
A client MAY indicate their preference for asynchronous processing
with a `Prefer` header field containing the token `respond-async`
and an optional `wait` preference,
as described by [RFC 7240].
```http
PUT /mona/LinkedList/1.1.1 HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1
Prefer: respond-async, wait=300
```
##### 4.6.3.1. Synchronous publication
If processing is done synchronously,
the server MUST respond with a status code of `201` (Created)
to indicate that the package release was published.
This response SHOULD also contain
a `Location` header with a URL to the new release.
```http
HTTP/1.1 201 Created
Content-Version: 1
Location: https://packages.example.com/github.com/mona/LinkedList/1.1.1
```
A client MAY set a timeout to guarantee a timely response to each request.
##### 4.6.3.2. Asynchronous publication
If processing is done asynchronously,
the server MUST respond with a status code of `202` (Accepted)
to acknowledge that the request is being processed.
This response MUST contain a `Location` header
with a URL that the client can poll for progress updates
and SHOULD contain a `Retry-After` header
with an estimate of when processing is expected to finish.
A server MAY locate the status resource endpoint at a URI of its choosing.
However,
the use of a non-sequential, randomly-generated identifier is RECOMMENDED.
```http
HTTP/1.1 202 Accepted
Content-Version: 1
Location: https://packages.example.com/submissions/90D8CC77-A576-47AE-A531-D6402C4E33BC
Retry-After: 120
```
A client MAY send a `GET` request
to the location provided by the server in response to a publish request
to see the current status of that process.
```http
GET /submissions/90D8CC77-A576-47AE-A531-D6402C4E33BC HTTP/1.1
Host: packages.example.com
Accept: application/vnd.swift.registry.v1
```
If the asynchronous publish request is still processing,
the server SHOULD respond with a status code of `202` (Accepted) and
a `Retry-After` header with an estimate of when processing should finish.
A server MAY include additional details in the response body.
```http
HTTP/1.1 202 Accepted
Content-Version: 1
Content-Type: application/json
Retry-After: 120
{
"status": "Processing (2/3 steps complete)",
"steps": {
{"name": "Validate metadata", "status": "complete"},
{"name": "Verify package manifest", "status": "complete"},
{"name": "Scan for vulnerabilities", "status": "pending"}
}
}
```
If the asynchronous publish request is finished processing successfully,
the server SHOULD respond with a status code of `301` (Moved Permanently)
and a `Location` header with a URL to the package release.
```http
HTTP/1.1 301 Moved Permanently
Content-Version: 1
Location: https://packages.example.com/mona/LinkedList/1.1.1
```
If the asynchronous publish request failed,
the server SHOULD respond with an appropriate client error status code (`4xx`).
```http
HTTP/1.1 400 Bad Request
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
Location: https://packages.example.com/submissions/90D8CC77-A576-47AE-A531-D6402C4E33BC
{
"detail": "invalid package"
}
```
A client MAY send a `DELETE` request
to the location provided by the server in response to a publish request
to cancel that process.
If a request to publish a new package release were to fail,
a server MUST communicate that failure in the same way
if sending an immediate response
as it would if responding to a client polling for status.
If a client makes a request to publish a package release
to a server that is asynchronously processing a request to publish that release,
the server MUST respond with a status code of `409` (Conflict)
```http
HTTP/1.1 409 Conflict
Content-Version: 1
Content-Type: application/problem+json
Content-Language: en
Location: https://packages.example.com/submissions/90D8CC77-A576-47AE-A531-D6402C4E33BC
{
"detail": "already processing a request to publish this package version"
}
```
If a client makes a request to publish a package release
to a server that finished processing a failed request to publish that release,
the server SHOULD try publishing that release again.
A server MAY refuse to fulfill a subsequent request to publish a package release
by responding with a status code of `409` (Conflict).
## 5. Normative References
* [RFC 2119]: Key words for use in RFCs to Indicate Requirement Levels
* [RFC 3230]: Instance Digests in HTTP
* [RFC 3986]: Uniform Resource Identifier (URI): Generic Syntax
* [RFC 3987]: Internationalized Resource Identifiers (IRIs)
* [RFC 5234]: Augmented BNF for Syntax Specifications: ABNF
* [RFC 5843]: Additional Hash Algorithms for HTTP Instance Digests
* [RFC 6249]: Metalink/HTTP: Mirrors and Hashes
* [RFC 6570]: URI Template
* [RFC 7159]: The JavaScript Object Notation (JSON) Data Interchange Format
* [RFC 7230]: Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
* [RFC 7231]: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
* [RFC 7233]: Hypertext Transfer Protocol (HTTP/1.1): Range Requests
* [RFC 7234]: Hypertext Transfer Protocol (HTTP/1.1): Caching
* [RFC 7240]: Prefer Header for HTTP
* [RFC 7578]: Returning Values from Forms: multipart/form-data
* [RFC 7807]: Problem Details for HTTP APIs
* [RFC 8288]: Web Linking
* [SemVer]: Semantic Versioning
## 6. Informative References
* [BCP 13] Media Type Specifications and Registration Procedures
* [RFC 6749]: The OAuth 2.0 Authorization Framework
* [RFC 8446]: The Transport Layer Security (TLS) Protocol Version 1.3
* [RFC 8631]: Link Relation Types for Web Services
* [JSON-LD]: A JSON-based Serialization for Linked Data
* [Schema.org]: A shared vocabulary for structured data.
* [OAS]: OpenAPI Specification
## Appendix A - OpenAPI Document
The following [OpenAPI (v3) specification][OAS] is non-normative,
and is provided for the convenience of
developers interested in building their own pac
gitextract_zj1y_jdi/
├── .devcontainer/
│ ├── devcontainer.json
│ ├── docker-compose.yaml
│ └── init.sh
├── .dir-locals.el
├── .editorconfig
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── BUG_REPORT.yml
│ │ └── FEATURE_REQUEST.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ ├── scripts/
│ │ ├── prebuild.ps1
│ │ └── prebuild.sh
│ └── workflows/
│ ├── automerge.yml
│ └── pull_request.yml
├── .gitignore
├── .license_header_template
├── .licenseignore
├── .mailfilter
├── .mailmap
├── .pep8
├── .swift-version
├── .swiftformat
├── Benchmarks/
│ ├── Benchmarks/
│ │ └── PackageGraphBenchmarks/
│ │ └── PackageGraphBenchmarks.swift
│ ├── Package.swift
│ ├── README.md
│ └── Thresholds/
│ ├── macos-arm64/
│ │ ├── PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
│ │ ├── PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
│ │ └── PackageGraphBenchmarks.SyntheticModulesGraphWithMacros.p90.json
│ └── macosx-arm64/
│ ├── PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json
│ └── PackageGraphBenchmarks.SyntheticModulesGraph.p90.json
├── BuildSupport/
│ └── SwiftSyntax/
│ └── CMakeLists.txt
├── CHANGELOG.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── CONTRIBUTORS.txt
├── Documentation/
│ ├── Design/
│ │ ├── EvolutionIdeas.md
│ │ ├── README.md
│ │ └── SwiftBasedManifestFormat.md
│ ├── PackageRegistry/
│ │ ├── PackageRegistryUsage.md
│ │ ├── Registry.md
│ │ └── registry.openapi.yaml
│ ├── README.md
│ ├── ReleaseNotes/
│ │ ├── 5.3.md
│ │ ├── 5.4.md
│ │ ├── 5.5.md
│ │ ├── 5.6.md
│ │ ├── 5.7.md
│ │ ├── 5.8.md
│ │ ├── 5.9.md
│ │ └── 6.3.md
│ └── libSwiftPM.md
├── Examples/
│ └── package-info/
│ ├── Package.swift
│ ├── README.md
│ └── Sources/
│ └── package-info/
│ └── example.swift
├── Fixtures/
│ ├── BinaryLibraries/
│ │ └── Static/
│ │ └── Package1/
│ │ ├── Package.swift
│ │ ├── Simple.artifactbundle/
│ │ │ ├── Makefile
│ │ │ ├── Package.swift
│ │ │ ├── build.sh
│ │ │ ├── dist/
│ │ │ │ ├── linux/
│ │ │ │ │ ├── libSimple_arm64.a
│ │ │ │ │ └── libSimple_x86_64.a
│ │ │ │ ├── macos/
│ │ │ │ │ ├── libSimple.a
│ │ │ │ │ ├── libSimple_arm64.a
│ │ │ │ │ └── libSimple_x86_64.a
│ │ │ │ └── windows/
│ │ │ │ ├── Simple_arm64.lib
│ │ │ │ └── Simple_x86_64.lib
│ │ │ ├── include/
│ │ │ │ ├── simple.h
│ │ │ │ └── simple.modulemap
│ │ │ ├── info.json
│ │ │ └── simple.c
│ │ └── Sources/
│ │ ├── Example/
│ │ │ └── Example.swift
│ │ └── Wrapper/
│ │ ├── include/
│ │ │ └── wrapper.h
│ │ └── wrapper.c
│ ├── BinaryTargets/
│ │ ├── Inputs/
│ │ │ ├── DynamicLibrary/
│ │ │ │ ├── DynamicLibrary.m
│ │ │ │ └── include/
│ │ │ │ └── DynamicLibrary.h
│ │ │ ├── StaticLibrary/
│ │ │ │ ├── StaticLibrary.m
│ │ │ │ └── include/
│ │ │ │ └── StaticLibrary.h
│ │ │ └── SwiftFramework/
│ │ │ └── SwiftFramework/
│ │ │ ├── Info.plist
│ │ │ ├── SwiftFramework.h
│ │ │ └── SwiftFramework.swift
│ │ └── TestBinary/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CLibrary/
│ │ │ ├── CLibrary.m
│ │ │ └── include/
│ │ │ └── CLibrary.h
│ │ ├── Library/
│ │ │ └── Library.swift
│ │ ├── cexe/
│ │ │ └── main.m
│ │ └── exe/
│ │ └── main.swift
│ ├── CFamilyTargets/
│ │ ├── CDynamicLookup/
│ │ │ ├── Foo.c
│ │ │ ├── Package.swift
│ │ │ └── include/
│ │ │ └── Foo.h
│ │ ├── CLibraryNoIncludeDir/
│ │ │ ├── Cfactorial/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── factorial/
│ │ │ │ ├── factorial.c
│ │ │ │ └── factorial.h
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Client/
│ │ │ └── main.swift
│ │ ├── CLibraryParentSearchPath/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CHeaderInclude/
│ │ │ │ ├── answers.c
│ │ │ │ └── include/
│ │ │ │ └── answers.h
│ │ │ ├── Constants/
│ │ │ │ └── Constants.h
│ │ │ └── HeaderInclude/
│ │ │ └── FinalForm.swift
│ │ ├── CLibrarySources/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── Foo.c
│ │ │ │ └── include/
│ │ │ │ └── Foo.h
│ │ │ └── Tests/
│ │ │ ├── CLibrarySourcesTests/
│ │ │ │ └── foo.swift
│ │ │ └── LinuxMain.swift
│ │ ├── CLibraryWithSpaces/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.c
│ │ │ │ └── include/
│ │ │ │ └── Bar/
│ │ │ │ └── Bar.h
│ │ │ ├── Bar with spaces/
│ │ │ │ ├── Bar.c
│ │ │ │ └── include/
│ │ │ │ └── Bar/
│ │ │ │ └── Bar.h
│ │ │ ├── Baz/
│ │ │ │ └── main.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.c
│ │ │ └── include/
│ │ │ └── Foo/
│ │ │ └── Foo.h
│ │ ├── ModuleMapGenerationCases/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Baz/
│ │ │ │ └── main.swift
│ │ │ ├── CustomModuleMap/
│ │ │ │ ├── CustomModuleMap.c
│ │ │ │ └── include/
│ │ │ │ ├── CustomModuleMap.h
│ │ │ │ └── module.modulemap
│ │ │ ├── FlatInclude/
│ │ │ │ ├── FlatInclude.c
│ │ │ │ └── include/
│ │ │ │ └── FlatIncludeHeader.h
│ │ │ ├── NoIncludeDir/
│ │ │ │ └── Jaz.c
│ │ │ ├── NonModuleDirectoryInclude/
│ │ │ │ ├── Maz.c
│ │ │ │ └── include/
│ │ │ │ └── NonModuleDirectoryInclude/
│ │ │ │ └── Maz.h
│ │ │ ├── UmbrellaDirectoryInclude/
│ │ │ │ ├── Jaz.c
│ │ │ │ └── include/
│ │ │ │ └── Paz.h
│ │ │ ├── UmbrellaHeader/
│ │ │ │ ├── UmbrellaHeader.c
│ │ │ │ └── include/
│ │ │ │ └── UmbrellaHeader/
│ │ │ │ └── UmbrellaHeader.h
│ │ │ └── UmbrellaHeaderFlat/
│ │ │ ├── UmbrellaHeader.c
│ │ │ └── include/
│ │ │ └── UmbrellaHeaderFlat.h
│ │ ├── ObjCmacOSPackage/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── HelloWorldExample.m
│ │ │ │ └── include/
│ │ │ │ └── HelloWorldExample.h
│ │ │ └── Tests/
│ │ │ └── ObjCmacOSPackageTests/
│ │ │ └── HelloWorldTest.m
│ │ └── SwiftCMixed/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CExec/
│ │ │ └── main.c
│ │ ├── SeaExec/
│ │ │ └── main.swift
│ │ └── SeaLib/
│ │ ├── Foo.c
│ │ └── include/
│ │ └── Foo.h
│ ├── Collections/
│ │ ├── GitHub/
│ │ │ ├── contributors.json
│ │ │ ├── languages.json
│ │ │ ├── license.json
│ │ │ ├── metadata.json
│ │ │ ├── readme.json
│ │ │ └── releases.json
│ │ ├── JSON/
│ │ │ ├── good.json
│ │ │ └── good_signed.json
│ │ └── Signing/
│ │ ├── TestIntermediateCA.cer
│ │ ├── TestRootCA.cer
│ │ ├── Test_ec.cer
│ │ ├── Test_ec_key.pem
│ │ ├── Test_rsa.cer
│ │ └── Test_rsa_key.pem
│ ├── Coverage/
│ │ └── Simple/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ └── Simple/
│ │ │ └── Simple.swift
│ │ └── Tests/
│ │ └── SimpleTests/
│ │ └── SimpleTests.swift
│ ├── DependencyResolution/
│ │ ├── External/
│ │ │ ├── Branch/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Foo/
│ │ │ │ └── Foo.swift
│ │ │ ├── CUsingCDep/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ ├── SeaLover/
│ │ │ │ │ │ ├── Sea.c
│ │ │ │ │ │ └── include/
│ │ │ │ │ │ └── Sea.h
│ │ │ │ │ └── SwiftExec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.c
│ │ │ │ ├── Package.swift
│ │ │ │ └── include/
│ │ │ │ └── Foo/
│ │ │ │ └── Foo.h
│ │ │ ├── Complex/
│ │ │ │ ├── FisherYates/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ └── Fisher-Yates_Shuffle.swift
│ │ │ │ ├── PlayingCard/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ ├── PlayingCard.swift
│ │ │ │ │ ├── Rank.swift
│ │ │ │ │ └── Suit.swift
│ │ │ │ ├── app/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ ├── deck-of-playing-cards/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── src/
│ │ │ │ │ └── Deck.swift
│ │ │ │ └── deck-of-playing-cards-local/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ └── Deck.swift
│ │ │ ├── Mirror/
│ │ │ │ ├── App/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Bar.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── BarMirror/
│ │ │ │ │ ├── Bar.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ ├── PackageLookupCaseInsensitive/
│ │ │ │ ├── dep/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Dep/
│ │ │ │ │ └── dep.swift
│ │ │ │ └── pkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── pkg/
│ │ │ │ └── pkg.swift
│ │ │ ├── Simple/
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ └── XCFramework/
│ │ │ ├── Bar.xcframework/
│ │ │ │ └── Info.plist
│ │ │ ├── Foo/
│ │ │ │ └── Foo.swift
│ │ │ └── Package.swift
│ │ └── Internal/
│ │ ├── Complex/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Bar/
│ │ │ │ └── Bar.swift
│ │ │ ├── Baz/
│ │ │ │ └── Baz.swift
│ │ │ ├── Cat/
│ │ │ │ └── Cat.swift
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── main.swift
│ │ │ └── Sound/
│ │ │ └── Sound.swift
│ │ ├── InternalExecutableAsDependency/
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── main.swift
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── main.swift
│ │ │ └── Package.swift
│ │ └── Simple/
│ │ ├── Bar/
│ │ │ └── Bar.swift
│ │ ├── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── main.swift
│ │ └── Package.swift
│ ├── Macros/
│ │ ├── MacroPackage/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── MacroClient/
│ │ │ │ └── client.swift
│ │ │ ├── MacroDef/
│ │ │ │ └── definition.swift
│ │ │ └── MacroImpl/
│ │ │ └── macro.swift
│ │ └── MinimalMacroPackage/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── MacroClient/
│ │ │ └── main.swift
│ │ ├── MacroDef/
│ │ │ └── MacroDef.swift
│ │ └── MacroImpl/
│ │ └── StringifyMacro.swift
│ ├── Metal/
│ │ └── SimpleLibrary/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ ├── MyRenderer/
│ │ │ │ ├── Renderer.swift
│ │ │ │ └── Shaders.metal
│ │ │ └── MySharedTypes/
│ │ │ └── include/
│ │ │ └── SharedTypes.h
│ │ └── Tests/
│ │ └── MyRendererTests/
│ │ └── MyRendererTests.swift
│ ├── Miscellaneous/
│ │ ├── -DSWIFT_PACKAGE/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CLib/
│ │ │ │ ├── foo.c
│ │ │ │ └── include/
│ │ │ │ └── CLib.h
│ │ │ └── SwiftExec/
│ │ │ └── main.swift
│ │ ├── APIDiff/
│ │ │ ├── Bar/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Baz/
│ │ │ │ │ └── Baz.swift
│ │ │ │ └── Qux/
│ │ │ │ └── Qux.swift
│ │ │ ├── BrokenPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── BrokenPkg/
│ │ │ │ │ ├── bestHeaders/
│ │ │ │ │ │ └── header.h
│ │ │ │ │ └── code.m
│ │ │ │ └── Swift2/
│ │ │ │ └── file.swift
│ │ │ ├── CIncludePath/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── CSample/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ ├── CSample.h
│ │ │ │ │ │ └── config.h
│ │ │ │ │ └── vendorsrc/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ └── vendor.h
│ │ │ │ │ └── src/
│ │ │ │ │ └── vendor.c
│ │ │ │ └── Sample/
│ │ │ │ └── Sample.swift
│ │ │ ├── CTargetDep/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ └── Foo/
│ │ │ │ ├── Foo.c
│ │ │ │ └── include/
│ │ │ │ └── Foo.h
│ │ │ ├── Foo/
│ │ │ │ ├── Foo.swift
│ │ │ │ └── Package.swift
│ │ │ ├── NonAPILibraryTargets/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── Bar.swift
│ │ │ │ ├── Baz/
│ │ │ │ │ └── Baz.swift
│ │ │ │ ├── Exec/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── Foo/
│ │ │ │ │ └── Foo.swift
│ │ │ │ └── Qux/
│ │ │ │ └── Qux.swift
│ │ │ └── WithPlugin/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── BuildPlugin/
│ │ │ │ └── BuildToolPlugin.swift
│ │ │ └── Sources/
│ │ │ ├── BuildTool/
│ │ │ │ └── BuildTool.swift
│ │ │ └── TargetLib/
│ │ │ └── TargetLib.swift
│ │ ├── AtMainSupport/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── ClangExecSingleFile/
│ │ │ │ └── NotMain.c
│ │ │ ├── SwiftExecMultiFile/
│ │ │ │ ├── NotMain.swift
│ │ │ │ └── OtherFile.swift
│ │ │ └── SwiftExecSingleFile/
│ │ │ └── NotMain.swift
│ │ ├── CXX17CompilerCrash/
│ │ │ ├── v5_7/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── include/
│ │ │ │ │ └── user_objects.h
│ │ │ │ ├── lodepng/
│ │ │ │ │ ├── include/
│ │ │ │ │ │ └── lodepng.h
│ │ │ │ │ └── lodepng.cpp
│ │ │ │ └── src/
│ │ │ │ └── user_objects.cc
│ │ │ └── v5_8/
│ │ │ ├── Package.swift
│ │ │ ├── include/
│ │ │ │ └── user_objects.h
│ │ │ ├── lodepng/
│ │ │ │ ├── include/
│ │ │ │ │ └── lodepng.h
│ │ │ │ └── lodepng.cpp
│ │ │ └── src/
│ │ │ └── user_objects.cc
│ │ ├── CaseCollision/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Foo/
│ │ │ │ └── Foo.swift
│ │ │ └── footool/
│ │ │ └── main.swift
│ │ ├── CheckTestLibraryEnvironmentVariable/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── CheckTestLibraryEnvironmentVariableTests/
│ │ │ └── CheckTestLibraryEnvironmentVariableTests.swift
│ │ ├── CompileFails/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── DependenciesWarnings/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── app.swift
│ │ │ ├── dep1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── code.swift
│ │ │ └── dep2/
│ │ │ ├── Package.swift
│ │ │ └── code.swift
│ │ ├── DependenciesWarnings2/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── app.swift
│ │ │ ├── dep1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── code.swift
│ │ │ └── dep2/
│ │ │ ├── Package.swift
│ │ │ └── code.swift
│ │ ├── DependencyEdges/
│ │ │ ├── External/
│ │ │ │ ├── dep1/
│ │ │ │ │ ├── Foo.swift
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── dep2/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── main.swift
│ │ │ │ └── root/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── Package.swift
│ │ │ └── Internal/
│ │ │ ├── Bar/
│ │ │ │ └── Bar.swift
│ │ │ ├── Foo/
│ │ │ │ └── main.swift
│ │ │ └── Package.swift
│ │ ├── DifferentProductTargetName/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── DistantFutureDeploymentTarget/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── DoNotFilterLinkerDiagnostics/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── DoNotFilterLinkerDiagnostics/
│ │ │ └── main.swift
│ │ ├── DumpPackage/
│ │ │ ├── PlayingCard/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ ├── PlayingCard.swift
│ │ │ │ ├── Rank.swift
│ │ │ │ └── Suit.swift
│ │ │ └── app/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── DynamicProduct/
│ │ │ ├── exec/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources/
│ │ │ │ │ └── exec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── DynaTests/
│ │ │ │ └── Tests.swift
│ │ │ ├── firstDyna/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ └── Sources/
│ │ │ │ ├── Core/
│ │ │ │ │ ├── Core.c
│ │ │ │ │ └── include/
│ │ │ │ │ └── Core.h
│ │ │ │ └── firstDyna/
│ │ │ │ └── firstDyna.swift
│ │ │ └── secondDyna/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── secondDyna/
│ │ │ └── secondDyna.swift
│ │ ├── EchoExecutable/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── secho/
│ │ │ │ └── main.swift
│ │ │ ├── Tests/
│ │ │ │ └── TestSuite/
│ │ │ │ └── Tests.swift
│ │ │ ├── echo.bat
│ │ │ ├── echo.sh
│ │ │ ├── toolset.json
│ │ │ └── toolset.win32.json
│ │ ├── Edit/
│ │ │ ├── App/
│ │ │ │ ├── Package.swift
│ │ │ │ └── src/
│ │ │ │ └── main.swift
│ │ │ ├── Bar/
│ │ │ │ ├── Bar.swift
│ │ │ │ └── Package.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── EmptyTestsPkg/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── EmptyTestsPkg/
│ │ │ │ └── EmptyTestsPkg.swift
│ │ │ └── Tests/
│ │ │ └── EmptyTestsPkgTests/
│ │ │ └── EmptyTestsTests.swift
│ │ ├── Errors/
│ │ │ └── FatalErrorInSingleXCTest/
│ │ │ └── TypeLibrary/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TypeLibrary/
│ │ │ │ └── TypeLibrary.swift
│ │ │ └── Tests/
│ │ │ └── TypeLibraryTests/
│ │ │ └── TypeLibraryTests.swift
│ │ ├── ExactDependencies/
│ │ │ ├── FooExec/
│ │ │ │ ├── FooExec.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ ├── FooLib1/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── FooLib1/
│ │ │ │ │ └── FooLib1.swift
│ │ │ │ └── cli/
│ │ │ │ └── main.swift
│ │ │ ├── FooLib2/
│ │ │ │ ├── FooLib2.swift
│ │ │ │ └── Package.swift
│ │ │ └── app/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── ExeTest/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Exe/
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── ExeTests/
│ │ │ └── ExeTests.swift
│ │ ├── ExecutableTargetWithTwoProducts/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── FlatPackage/
│ │ │ ├── MyExec.swift
│ │ │ ├── MyTest.swift
│ │ │ ├── Package.swift
│ │ │ └── README.md
│ │ ├── ImportOfMissingDependency/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ ├── B.swift
│ │ │ └── main.swift
│ │ ├── LTO/
│ │ │ └── SwiftAndCTargets/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── cLib/
│ │ │ │ ├── cLib.c
│ │ │ │ └── include/
│ │ │ │ └── cLib.h
│ │ │ ├── exe/
│ │ │ │ └── main.swift
│ │ │ └── swiftLib/
│ │ │ └── swiftLib.swift
│ │ ├── LibraryEvolution/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ └── B.swift
│ │ ├── LibraryEvolutionLinuxXCF/
│ │ │ ├── SwiftFramework/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── SwiftFramework/
│ │ │ │ └── SwiftFramework.swift
│ │ │ └── TestBinary/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── TestBinary/
│ │ │ └── Main.swift
│ │ ├── LocalPackageAsURL/
│ │ │ ├── Bar/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── Foo/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── MissingDependency/
│ │ │ └── Bar/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── MultipleExecutables/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── exec1/
│ │ │ │ └── main.swift
│ │ │ ├── exec2/
│ │ │ │ └── main.swift
│ │ │ └── lib1/
│ │ │ └── lib.swift
│ │ ├── PackageEdit/
│ │ │ ├── bar/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── bar.swift
│ │ │ ├── baz/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── baz.swift
│ │ │ └── foo/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── PackageNameFlag/
│ │ │ ├── appPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── App/
│ │ │ │ │ └── file.swift
│ │ │ │ └── exe/
│ │ │ │ └── main.swift
│ │ │ ├── barPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Bar/
│ │ │ │ │ └── file.swift
│ │ │ │ └── Baz/
│ │ │ │ └── file.swift
│ │ │ └── fooPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Foo/
│ │ │ │ └── file.swift
│ │ │ └── Zoo/
│ │ │ └── file.swift
│ │ ├── PackageWithMalformedLibraryProduct/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── PackageWithMalformedLibraryProduct/
│ │ │ └── main.swift
│ │ ├── PackageWithNonc99NameModules/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A-B/
│ │ │ │ └── ab.swift
│ │ │ ├── B-C/
│ │ │ │ └── bc.swift
│ │ │ └── C D/
│ │ │ └── cd.swift
│ │ ├── PackageWithResource/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── AwesomeResources/
│ │ │ │ ├── AwesomeResource.swift
│ │ │ │ └── hello.txt
│ │ │ └── Tests/
│ │ │ └── AwesomeResourcesTest/
│ │ │ ├── MyTests.swift
│ │ │ └── world.txt
│ │ ├── ParallelTestsPkg/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── ParallelTestsPkg/
│ │ │ │ └── ParallelTestsPkg.swift
│ │ │ └── Tests/
│ │ │ └── ParallelTestsPkgTests/
│ │ │ ├── ParallelTestsFailureTests.swift
│ │ │ └── ParallelTestsTests.swift
│ │ ├── ParseAsLibrary/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── ExecutableTargetOneFileNamedMainMainAttr/
│ │ │ │ └── main.swift
│ │ │ ├── ExecutableTargetOneFileNamedMainNoMainAttr/
│ │ │ │ └── main.swift
│ │ │ ├── ExecutableTargetOneFileNotNamedMainMainAttr/
│ │ │ │ └── othername.swift
│ │ │ ├── ExecutableTargetOneFileNotNamedMainNoMainAttr/
│ │ │ │ └── othername.swift
│ │ │ └── ExecutableTargetTwoFiles/
│ │ │ ├── one.swift
│ │ │ └── two.swift
│ │ ├── ParseableInterfaces/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── A/
│ │ │ │ └── A.swift
│ │ │ └── B/
│ │ │ └── B.swift
│ │ ├── PkgConfig/
│ │ │ ├── CSystemModule/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── module.modulemap
│ │ │ │ └── shim.h
│ │ │ ├── SystemModule/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── SystemModule.c
│ │ │ │ └── include/
│ │ │ │ └── SystemModule.h
│ │ │ ├── SystemModuleUser/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── main.swift
│ │ │ └── SystemModuleUserClang/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.c
│ │ ├── PluginGeneratedResources/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Generator/
│ │ │ │ └── plugin.swift
│ │ │ └── Sources/
│ │ │ └── PluginGeneratedResources/
│ │ │ └── PluginGeneratedResources.swift
│ │ ├── Plugins/
│ │ │ ├── AmbiguousCommands/
│ │ │ │ ├── Dependencies/
│ │ │ │ │ ├── A/
│ │ │ │ │ │ ├── Package.swift
│ │ │ │ │ │ └── Plugins/
│ │ │ │ │ │ └── A.swift
│ │ │ │ │ └── B/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Plugins/
│ │ │ │ │ └── B.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── main.swift
│ │ │ ├── BinaryTargetExePlugin/
│ │ │ │ ├── Dependency/
│ │ │ │ │ └── MyBinaryTargetExeArtifactBundle.artifactbundle/
│ │ │ │ │ ├── info.json
│ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── mytool-macos/
│ │ │ │ │ └── mytool
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyPluginExe/
│ │ │ │ └── main.swift
│ │ │ ├── BinaryToolProductPlugin/
│ │ │ │ ├── Dependency/
│ │ │ │ │ ├── Binaries/
│ │ │ │ │ │ └── MyVendedSourceGenBuildTool.artifactbundle/
│ │ │ │ │ │ ├── info.json
│ │ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ │ └── mytool
│ │ │ │ │ │ └── mytool-macos/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── Package.swift
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ └── main.swift
│ │ │ ├── BuildToolPluginCompilationError/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLibrary/
│ │ │ │ └── library.swift
│ │ │ ├── ClientOfPluginWithInternalExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── RootTarget/
│ │ │ │ └── main.swift
│ │ │ ├── CommandPluginCompilationError/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MyCommandPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyExecutable/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MyLibrary/
│ │ │ │ └── library.swift
│ │ │ ├── CommandPluginTestStub/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── check-testability/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── diagnostics-stub/
│ │ │ │ │ │ └── diagnostics_stub.swift
│ │ │ │ │ ├── plugin-dependencies-stub/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── targetbuild-stub/
│ │ │ │ │ └── targetbuild_stub.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── InternalModule/
│ │ │ │ │ │ └── InternalModule.swift
│ │ │ │ │ ├── placeholder/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── plugintool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── InternalModuleTests/
│ │ │ │ └── InternalModuleTests.swift
│ │ │ ├── ContrivedTestPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyAmbiguouslyNamedCommandPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyLocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── libpcre/
│ │ │ │ ├── module.modulemap
│ │ │ │ └── sdk_libpcre.h
│ │ │ ├── DependentPlugins/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MyPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MyPlugin2/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyClient/
│ │ │ │ │ └── client.swift
│ │ │ │ ├── MyExecutable/
│ │ │ │ │ └── tool.swift
│ │ │ │ └── MyExecutable2/
│ │ │ │ └── tool.swift
│ │ │ ├── IncorrectDependencies/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── MyPlugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyExecutable/
│ │ │ │ │ │ └── MyExecutable.swift
│ │ │ │ │ ├── MyLibrary/
│ │ │ │ │ │ └── Empty.swift
│ │ │ │ │ └── MyPluginExecutable/
│ │ │ │ │ └── MyPluginExecutable.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyExecutableTests/
│ │ │ │ └── MyExecutableTests.swift
│ │ │ ├── InvalidUseOfInternalPluginExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── RootTarget/
│ │ │ │ └── main.swift
│ │ │ ├── LibraryWithLocalBuildToolPluginUsingRemoteTool/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyLocalSourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── MyLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyLibraryTests/
│ │ │ │ └── test.swift
│ │ │ ├── MissingPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MissingPlugin/
│ │ │ │ └── MissingPlugin.swift
│ │ │ ├── MyBinaryToolPlugin/
│ │ │ │ ├── Binaries/
│ │ │ │ │ └── MyVendedSourceGenBuildTool.artifactbundle/
│ │ │ │ │ ├── info.json
│ │ │ │ │ ├── mytool-linux/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ ├── mytool-macos/
│ │ │ │ │ │ └── mytool
│ │ │ │ │ └── mytool-windows/
│ │ │ │ │ └── mytool.bat
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ ├── bar.in
│ │ │ │ └── main.swift
│ │ │ ├── MyBuildToolPluginDependencies/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyLocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MySourceGenBuildToolLib/
│ │ │ │ └── library.swift
│ │ │ ├── MySourceGenClient/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── MyTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MyTests/
│ │ │ │ └── MyTests.swift
│ │ │ ├── MySourceGenPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MySourceGenBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenPrebuildPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginTests/
│ │ │ │ └── MySourceGenPluginTests.swift
│ │ │ ├── MySourceGenPluginNoPreBuildCommands/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginNoPreBuildCommandsTests/
│ │ │ │ ├── MySourceGenPluginNoPreBuildCommandsTests.swift
│ │ │ │ └── lunch.txt
│ │ │ ├── MySourceGenPluginUsingURLBasedAPI/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ ├── MySourceGenBuildToolPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── MySourceGenPrebuildPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── MyLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MyOtherLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── MySourceGenBuildToolLib/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── MySourceGenRuntimeLib/
│ │ │ │ │ └── library.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySourceGenPluginTests/
│ │ │ │ └── MySourceGenPluginTests.swift
│ │ │ ├── PluginCanBeReferencedByProductName/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Exec/
│ │ │ │ │ └── main.swift
│ │ │ │ └── PluginCanBeReferencedByProductName/
│ │ │ │ └── PluginCanBeReferencedByProductName.swift
│ │ │ ├── PluginUsingLocalAndRemoteTool/
│ │ │ │ ├── MyLibrary/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── Sources/
│ │ │ │ │ │ └── MyLibrary/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ └── Tests/
│ │ │ │ │ └── MyLibraryTests/
│ │ │ │ │ └── test.swift
│ │ │ │ ├── MyPlugin/
│ │ │ │ │ ├── Libraries/
│ │ │ │ │ │ └── LocalToolHelperLibrary/
│ │ │ │ │ │ └── library.swift
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── Plugins/
│ │ │ │ │ │ └── MyPlugin/
│ │ │ │ │ │ └── plugin.swift
│ │ │ │ │ └── Tools/
│ │ │ │ │ ├── ImpliedLocalTool/
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ └── LocalTool/
│ │ │ │ │ └── main.swift
│ │ │ │ └── RemoteTool/
│ │ │ │ ├── Libraries/
│ │ │ │ │ └── RemoteToolHelperLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ ├── Package.swift
│ │ │ │ └── Tools/
│ │ │ │ └── RemoteTool/
│ │ │ │ └── main.swift
│ │ │ ├── PluginWithInternalExecutable/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── PluginScriptTarget/
│ │ │ │ │ └── Script.swift
│ │ │ │ └── Sources/
│ │ │ │ └── PluginExecutable/
│ │ │ │ ├── Utilities.swift
│ │ │ │ └── main.swift
│ │ │ ├── PluginsAndSnippets/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── PluginScriptTarget/
│ │ │ │ │ └── Script.swift
│ │ │ │ ├── Snippets/
│ │ │ │ │ ├── ContainsMain.swift
│ │ │ │ │ ├── ImportsProductTarget.swift
│ │ │ │ │ ├── MySnippet.swift
│ │ │ │ │ └── SubDirectory/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLib/
│ │ │ │ └── MyLib.swift
│ │ │ ├── PrebuildDependsExecutableTarget/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── MyClient/
│ │ │ │ │ └── client.swift
│ │ │ │ └── MyExecutable/
│ │ │ │ └── tool.swift
│ │ │ ├── SandboxTesterPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MySourceGenBuildToolPlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ └── Sources/
│ │ │ │ └── MyLocalTool/
│ │ │ │ └── main.swift
│ │ │ ├── SandboxViolatingBuildToolPluginCommands/
│ │ │ │ ├── MyLibrary/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── MyLibrary/
│ │ │ │ │ └── library.swift
│ │ │ │ └── MyPlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Plugins/
│ │ │ │ └── PackageScribblerPlugin/
│ │ │ │ └── plugin.swift
│ │ │ ├── SwiftFilePlugin/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── MyCustomBuildTool/
│ │ │ │ │ └── SwiftToolsBuildPlugin.swift
│ │ │ │ ├── SimpleSwiftScript.swift
│ │ │ │ └── Sources/
│ │ │ │ └── SwiftFilePluginFixture/
│ │ │ │ └── SwiftFilePluginFixture.swift
│ │ │ └── TransitivePluginOnlyDependency/
│ │ │ ├── Dependencies/
│ │ │ │ ├── Library/
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ └── Sources/
│ │ │ │ │ └── Library/
│ │ │ │ │ └── Library.swift
│ │ │ │ └── PluginOnly/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Plugins/
│ │ │ │ └── MyPlugin/
│ │ │ │ └── plugin.swift
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── TransitivePluginOnlyDependency/
│ │ │ └── TransitivePluginOnlyDependency.swift
│ │ ├── RequiresOlderDeploymentTarget/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── RootPackageWithConditionals/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── client/
│ │ │ │ └── client.swift
│ │ │ └── linuxOnly/
│ │ │ └── linuxOnly.swift
│ │ ├── ShowExecutables/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── deck-of-playing-cards/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── ShowTraits/
│ │ │ ├── app/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── deck-of-playing-cards/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── Simple/
│ │ │ ├── Foo.swift
│ │ │ └── Package.swift
│ │ ├── SkipTests/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Example/
│ │ │ │ └── Example.swift
│ │ │ └── Tests/
│ │ │ └── ExampleTests/
│ │ │ ├── MoreTests.swift
│ │ │ └── Tests.swift
│ │ ├── Spaces Fixture/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Module Name 1/
│ │ │ │ └── Foo.swift
│ │ │ └── Module Name 2/
│ │ │ └── main.swift
│ │ ├── SwiftBuild/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── SwiftPMXCTestHelper/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── SwiftPMXCTestHelper.swift
│ │ │ └── Tests/
│ │ │ ├── ObjCTests/
│ │ │ │ └── ObjCTests.m
│ │ │ └── SwiftPMXCTestHelperTests/
│ │ │ └── SwiftPMXCTestHelperTests.swift
│ │ ├── SwiftRun/
│ │ │ ├── Package.swift
│ │ │ └── main.swift
│ │ ├── SystemModules/
│ │ │ ├── CFake/
│ │ │ │ ├── Package.swift
│ │ │ │ └── module.modulemap
│ │ │ └── TestExec/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── TIF/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── TIF/
│ │ │ ├── SomeAlert.swift
│ │ │ ├── SomeAlert.xib
│ │ │ ├── SomeAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── this_is_fine.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── some.txt
│ │ ├── TargetMismatch/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Sample/
│ │ │ └── main.swift
│ │ ├── TargetPackageAccess/
│ │ │ └── libPkg/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── Core/
│ │ │ │ │ └── Core.swift
│ │ │ │ ├── DataManager/
│ │ │ │ │ └── File.swift
│ │ │ │ ├── DataModel/
│ │ │ │ │ └── File.swift
│ │ │ │ ├── ExampleApp/
│ │ │ │ │ └── main.swift
│ │ │ │ └── MainLib/
│ │ │ │ └── Lib.swift
│ │ │ └── Tests/
│ │ │ ├── BlackBoxTests/
│ │ │ │ └── BlackBoxTests.swift
│ │ │ └── MainLibTests/
│ │ │ └── MainLibTests.swift
│ │ ├── TestDiscovery/
│ │ │ ├── Async/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Async/
│ │ │ │ │ └── Async.swift
│ │ │ │ └── Tests/
│ │ │ │ └── AsyncTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Deprecation/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Extensions/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ ├── SwiftTests1.swift
│ │ │ │ ├── SwiftTests2.swift
│ │ │ │ ├── SwiftTests3.swift
│ │ │ │ └── SwiftTests4.swift
│ │ │ ├── IgnoresLinuxMain/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Tests/
│ │ │ │ ├── IgnoresLinuxMainTests/
│ │ │ │ │ └── SomeTest.swift
│ │ │ │ └── LinuxMain.swift
│ │ │ ├── NoTests/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Simple/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Plugins/
│ │ │ │ │ └── SimplePlugin/
│ │ │ │ │ └── plugin.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Simple/
│ │ │ │ │ └── Simple.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SimpleTests/
│ │ │ │ └── SwiftTests.swift
│ │ │ ├── Subclass/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Subclass/
│ │ │ │ │ └── Subclass.swift
│ │ │ │ └── Tests/
│ │ │ │ ├── Module1Tests/
│ │ │ │ │ ├── Tests1.swift
│ │ │ │ │ └── Tests2.swift
│ │ │ │ └── Module2Tests/
│ │ │ │ └── Test1.swift
│ │ │ ├── SwiftTesting/
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Sources/
│ │ │ │ │ └── SwiftTesting/
│ │ │ │ │ └── SwiftTesting.swift
│ │ │ │ └── Tests/
│ │ │ │ └── SwiftTestingTests/
│ │ │ │ └── SwiftTestingTests.swift
│ │ │ └── hello world/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── hello world/
│ │ │ │ └── hello world.swift
│ │ │ └── Tests/
│ │ │ └── hello world tests/
│ │ │ └── hello world tests.swift
│ │ ├── TestMultipleFailureSwiftTesting/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestMultipleFailureSwiftTestingTests/
│ │ │ └── TestMultipleFailureSwiftTestingTests.swift
│ │ ├── TestMultipleFailureXCTest/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestMultipleFailureXCTestTests/
│ │ │ └── TestMultipleFailureXCTestTests.swift
│ │ ├── TestSingleFailureSwiftTesting/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestFailuresSwiftTestingTests/
│ │ │ └── TestFailuresSwiftTestingTests.swift
│ │ ├── TestSingleFailureXCTest/
│ │ │ ├── Package.swift
│ │ │ └── Tests/
│ │ │ └── TestFailuresTests/
│ │ │ └── TestFailuresTests.swift
│ │ ├── TestableAsyncExe/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── TestableAsyncExe1/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableAsyncExe2/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableAsyncExe3/
│ │ │ │ │ └── NonMain.swift
│ │ │ │ └── TestableAsyncExe4/
│ │ │ │ └── NonMain.swift
│ │ │ └── Tests/
│ │ │ └── TestableAsyncExeTests/
│ │ │ └── TestableAsyncExeTests.swift
│ │ ├── TestableExe/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ ├── TestableExe1/
│ │ │ │ │ └── main.swift
│ │ │ │ ├── TestableExe2/
│ │ │ │ │ └── main.swift
│ │ │ │ └── TestableExe3/
│ │ │ │ ├── include/
│ │ │ │ │ └── TestableExe3.h
│ │ │ │ └── main.c
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── TestableExeWithDifferentProductName/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TestableExe/
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── TestableExeWithResources/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── TestableExe/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.swift
│ │ │ └── Tests/
│ │ │ └── TestableExeTests/
│ │ │ └── TestableExeTests.swift
│ │ ├── Unicode/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Sources/
│ │ │ │ ├── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ │ │ └── πשּׁµ𝄞🇺🇳x̱̱̱̱̱̄̄̄̄̄.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄‐tool/
│ │ │ │ └── main.swift
│ │ │ ├── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄Tests/
│ │ │ │ ├── XCTestManifests.swift
│ │ │ │ └── πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄Tests.swift
│ │ │ └── Utilities/
│ │ │ └── SomeOtherPackage/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── SomeOtherPackage/
│ │ │ └── main.swift
│ │ ├── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄/
│ │ │ └── UnicodeDependency‐πשּׁµ𝄞🇺🇳🇮🇱x̱̱̱̱̱̄̄̄̄̄.swift
│ │ ├── UnreachableTargets/
│ │ │ ├── A/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── ATarget/
│ │ │ │ └── main.swift
│ │ │ ├── B/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── BTarget1/
│ │ │ │ │ └── BTarget1.swift
│ │ │ │ └── BTarget2/
│ │ │ │ └── main.swift
│ │ │ └── C/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── CTarget/
│ │ │ └── main.swift
│ │ ├── VersionSpecificManifest/
│ │ │ ├── Foo.swift
│ │ │ ├── Package.swift
│ │ │ └── Package@swift-5.0.swift
│ │ └── WarningWithinFunction/
│ │ ├── Package.swift
│ │ └── app.swift
│ ├── ModuleAliasing/
│ │ ├── DirectDeps1/
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── App/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Utils/
│ │ │ │ └── FileUtils.swift
│ │ │ └── UtilsPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── FileUtils.swift
│ │ ├── DirectDeps2/
│ │ │ ├── Apkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── AApp/
│ │ │ │ │ └── main.swift
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ └── Bpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ ├── NestedDeps1/
│ │ │ ├── APkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── A/
│ │ │ │ └── File.swift
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ ├── BPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── CPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ └── File.swift
│ │ │ ├── XPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ ├── Utils/
│ │ │ │ │ └── File.swift
│ │ │ │ └── X/
│ │ │ │ └── File.swift
│ │ │ └── YPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ └── NestedDeps2/
│ │ ├── Apkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── A/
│ │ │ └── File.swift
│ │ ├── AppPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── App/
│ │ │ └── main.swift
│ │ ├── Bpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ ├── Cpkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Utils/
│ │ │ └── File.swift
│ │ └── Xpkg/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── Utils/
│ │ └── File.swift
│ ├── ModuleMaps/
│ │ ├── Direct/
│ │ │ ├── App/
│ │ │ │ ├── Package.swift
│ │ │ │ └── main.swift
│ │ │ └── CFoo/
│ │ │ ├── C/
│ │ │ │ ├── foo.c
│ │ │ │ └── foo.h
│ │ │ ├── Package.swift
│ │ │ └── module.modulemap
│ │ └── Transitive/
│ │ ├── packageA/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── main.swift
│ │ ├── packageB/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── y/
│ │ │ └── y.swift
│ │ └── packageC/
│ │ ├── .gitignore
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── x/
│ │ └── x.swift
│ ├── PIFBuilder/
│ │ ├── BasicExecutable/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── BasicExecutable/
│ │ │ └── BasicExecutable.swift
│ │ ├── CCPackage/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── CCTarget/
│ │ │ │ ├── include/
│ │ │ │ │ └── test.h
│ │ │ │ └── test.cc
│ │ │ └── executable/
│ │ │ └── executable.swift
│ │ ├── ConditionalBuildSettings/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── ConditionalBuildSettings/
│ │ │ └── ConditionalBuildSettings.swift
│ │ ├── Library/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Library/
│ │ │ │ └── Library.swift
│ │ │ └── Tests/
│ │ │ └── LibraryTests/
│ │ │ └── LibraryTests.swift
│ │ ├── PackageWithSDKSpecialization/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Executable/
│ │ │ │ └── main.swift
│ │ │ └── PackageWithSDKSpecialization/
│ │ │ └── PackageWithSDKSpecialization.swift
│ │ ├── Simple/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Simple/
│ │ │ │ └── Simple.swift
│ │ │ └── Tests/
│ │ │ └── SimpleTests/
│ │ │ └── SimpleTests.swift
│ │ └── UnknownPlatforms/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── UnknownPlatforms/
│ │ └── UnknownPlatforms.swift
│ ├── PartiallyUnusedDependency/
│ │ ├── Dep/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── MyDynamicLibrary/
│ │ │ │ └── Dep.swift
│ │ │ └── MySupportExecutable/
│ │ │ └── exe.swift
│ │ ├── Package.swift
│ │ ├── Plugins/
│ │ │ └── dump-artifacts-plugin.swift
│ │ └── Sources/
│ │ └── MyExecutable/
│ │ └── PartiallyUnusedDependency.swift
│ ├── Resources/
│ │ ├── EmbedInCodeSimple/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── EmbedInCodeSimple/
│ │ │ ├── best.txt
│ │ │ └── main.swift
│ │ ├── FoundationlessClient/
│ │ │ ├── AppPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── App/
│ │ │ │ └── main.swift
│ │ │ ├── UtilsPkg/
│ │ │ │ ├── Package.swift
│ │ │ │ └── Sources/
│ │ │ │ └── Utils/
│ │ │ │ ├── FooUtils.swift
│ │ │ │ └── foo.txt
│ │ │ └── UtilsWithFoundationPkg/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── UtilsWithFoundationPkg/
│ │ │ ├── FooUtils.swift
│ │ │ └── foo.txt
│ │ ├── Localized/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── exe/
│ │ │ ├── Resources/
│ │ │ │ ├── de.lproj/
│ │ │ │ │ └── Localizable.strings
│ │ │ │ ├── es.lproj/
│ │ │ │ │ └── Localizable.strings
│ │ │ │ └── fr.lproj/
│ │ │ │ └── Localizable.strings
│ │ │ └── main.swift
│ │ ├── Moved/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── SeaResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.m
│ │ │ └── SwiftyResource/
│ │ │ ├── foo.txt
│ │ │ └── main.swift
│ │ ├── ResourceRules/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── ResourceRules/
│ │ │ ├── CopiedAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── pixel.imageset/
│ │ │ │ └── Contents.json
│ │ │ ├── ProcessedAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── processedpixel.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── main.swift
│ │ └── Simple/
│ │ ├── Package.swift
│ │ ├── Sources/
│ │ │ ├── CPPResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.mm
│ │ │ ├── ClangResource/
│ │ │ │ ├── Package.m
│ │ │ │ ├── foo.txt
│ │ │ │ └── include/
│ │ │ │ └── Package.h
│ │ │ ├── MixedClangResource/
│ │ │ │ ├── Foo.m
│ │ │ │ ├── bar.c
│ │ │ │ ├── bar.h
│ │ │ │ ├── baz.S
│ │ │ │ ├── foo.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── Foo.h
│ │ │ │ └── qux.cpp
│ │ │ ├── SeaResource/
│ │ │ │ ├── foo.txt
│ │ │ │ └── main.m
│ │ │ └── SwiftyResource/
│ │ │ ├── foo.txt
│ │ │ └── main.swift
│ │ └── Tests/
│ │ └── ClangResourceTests/
│ │ └── ClangResourceTests.m
│ ├── Signing/
│ │ └── Certificates/
│ │ ├── TestIntermediateCA.cer
│ │ ├── TestRootCA.cer
│ │ ├── Test_ec.cer
│ │ ├── Test_ec_key.p8
│ │ ├── Test_ec_key.pem
│ │ ├── Test_ec_self_signed.cer
│ │ ├── Test_ec_self_signed_key.p8
│ │ ├── Test_rsa.cer
│ │ ├── Test_rsa_key.p8
│ │ ├── Test_rsa_key.pem
│ │ ├── Test_rsa_self_signed.cer
│ │ └── Test_rsa_self_signed_key.p8
│ ├── SwiftMigrate/
│ │ ├── ExistentialAnyMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ └── Test.swift
│ │ │ └── Test.swift
│ │ ├── ExistentialAnyWithCommonPluginDependencyMigration/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Plugin/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── CommonLibrary/
│ │ │ │ └── Common.swift
│ │ │ ├── Library/
│ │ │ │ └── Test.swift
│ │ │ └── Tool/
│ │ │ └── tool.swift
│ │ ├── ExistentialAnyWithPluginMigration/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── Plugin/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── Library/
│ │ │ │ └── Test.swift
│ │ │ └── Tool/
│ │ │ └── tool.swift
│ │ ├── InferIsolatedConformancesMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ ├── Test.swift
│ │ │ │ └── Test2.swift
│ │ │ ├── Test.swift
│ │ │ └── Test2.swift
│ │ ├── StrictMemorySafetyMigration/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── Fixed/
│ │ │ │ └── Test.swift
│ │ │ └── Test.swift
│ │ └── UpdateManifest/
│ │ ├── Package.swift
│ │ ├── Package.updated.targets-A-B.swift
│ │ ├── Package.updated.targets-A.swift
│ │ ├── Package.updated.targets-all.swift
│ │ └── Sources/
│ │ ├── A/
│ │ │ └── File.swift
│ │ ├── B/
│ │ │ └── File.swift
│ │ ├── CannotFindSettings/
│ │ │ └── File.swift
│ │ └── CannotFindTarget/
│ │ └── File.swift
│ ├── SwiftSDKs/
│ │ └── Package.swift
│ ├── Traits/
│ │ ├── DisablingEmptyDefaultsExample/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── DisablingEmptyDefaultsExample/
│ │ │ └── Example.swift
│ │ ├── Example/
│ │ │ ├── Package.swift
│ │ │ ├── Sources/
│ │ │ │ └── Example/
│ │ │ │ └── Example.swift
│ │ │ └── Tests/
│ │ │ └── ExampleTests/
│ │ │ └── Tests.swift
│ │ ├── Package1/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package1Library1/
│ │ │ └── Library.swift
│ │ ├── Package10/
│ │ │ ├── Package.swift
│ │ │ ├── Plugins/
│ │ │ │ └── SymbolGraphExtract/
│ │ │ │ └── Plugin.swift
│ │ │ └── Sources/
│ │ │ ├── Package10Library1/
│ │ │ │ └── Library.swift
│ │ │ └── Package10Library2/
│ │ │ └── Library.swift
│ │ ├── Package11/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package11Library1/
│ │ │ └── Library.swift
│ │ ├── Package2/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package2Library1/
│ │ │ └── Library.swift
│ │ ├── Package3/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package3Library1/
│ │ │ └── Library.swift
│ │ ├── Package4/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package4Library1/
│ │ │ └── Library.swift
│ │ ├── Package5/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package5Library1/
│ │ │ └── Library.swift
│ │ ├── Package6/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package6Library1/
│ │ │ └── Library.swift
│ │ ├── Package7/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package7Library1/
│ │ │ └── Library.swift
│ │ ├── Package8/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package6Library1/
│ │ │ └── Library.swift
│ │ ├── Package9/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── Package9Library1/
│ │ │ └── Library.swift
│ │ └── PackageConditionalDeps/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── PackageConditionalDeps/
│ │ └── PackageConditionalDeps.swift
│ ├── ValidLayouts/
│ │ └── SingleModule/
│ │ ├── ExecutableMixed/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ ├── ExecutableC/
│ │ │ │ └── c.c
│ │ │ ├── ExecutableCxx/
│ │ │ │ └── cxx.cpp
│ │ │ └── ExecutableSwift/
│ │ │ └── main.swift
│ │ ├── ExecutableNew/
│ │ │ ├── .gitignore
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ └── Sources/
│ │ │ └── ExecutableNew/
│ │ │ └── main.swift
│ │ └── Library/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── Library/
│ │ └── Foo.swift
│ └── XCBuild/
│ ├── ExecutableProducts/
│ │ ├── Bar/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── BarLib/
│ │ │ │ └── BarLib.swift
│ │ │ ├── bar/
│ │ │ │ └── main.swift
│ │ │ └── cbar/
│ │ │ └── main.c
│ │ └── Foo/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── FooLib/
│ │ │ └── FooLib.swift
│ │ ├── cfoo/
│ │ │ └── main.c
│ │ └── foo/
│ │ └── main.swift
│ ├── Libraries/
│ │ ├── Bar/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ └── BarLib/
│ │ │ └── BarLib.swift
│ │ └── Foo/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ ├── CFooLib/
│ │ │ ├── CFooLib.m
│ │ │ └── include/
│ │ │ └── CFooLib.h
│ │ └── FooLib/
│ │ └── FooLib.swift
│ ├── SystemTargets/
│ │ ├── Foo/
│ │ │ ├── Package.swift
│ │ │ └── Sources/
│ │ │ ├── SystemLib/
│ │ │ │ └── module.modulemap
│ │ │ └── foo/
│ │ │ └── main.swift
│ │ └── Inputs/
│ │ ├── libsys.c
│ │ ├── libsys.h
│ │ └── libsys.pc
│ └── TestProducts/
│ ├── Bar/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── BarLib/
│ │ ├── BarLib.m
│ │ └── include/
│ │ └── BarLib.h
│ └── Foo/
│ ├── Package.swift
│ ├── Sources/
│ │ └── FooLib/
│ │ └── FooLib.swift
│ └── Tests/
│ ├── CFooTests/
│ │ └── tests.m
│ └── FooTests/
│ └── FooTests.swift
├── LICENSE.txt
├── NOTICE.txt
├── Package.swift
├── README.md
├── Sources/
│ ├── AppleProductTypes/
│ │ └── Product.swift
│ ├── Basics/
│ │ ├── Archiver/
│ │ │ ├── Archiver.swift
│ │ │ ├── TarArchiver.swift
│ │ │ ├── UniversalArchiver.swift
│ │ │ └── ZipArchiver.swift
│ │ ├── ArrayHelpers.swift
│ │ ├── AuthorizationProvider.swift
│ │ ├── CMakeLists.txt
│ │ ├── Cancellator.swift
│ │ ├── Collections/
│ │ │ ├── ByteString+Extensions.swift
│ │ │ ├── Dictionary+Extensions.swift
│ │ │ ├── IdentifiableSet.swift
│ │ │ └── String+Extensions.swift
│ │ ├── Concurrency/
│ │ │ ├── AsyncProcess.swift
│ │ │ ├── ConcurrencyHelpers.swift
│ │ │ ├── NSLock+Extensions.swift
│ │ │ ├── SendableBox.swift
│ │ │ ├── ThreadSafeArrayStore.swift
│ │ │ ├── ThreadSafeBox.swift
│ │ │ ├── ThreadSafeKeyValueStore.swift
│ │ │ ├── ThrowingDefer.swift
│ │ │ └── TokenBucket.swift
│ │ ├── DispatchTimeInterval+Extensions.swift
│ │ ├── Environment/
│ │ │ ├── Environment.swift
│ │ │ ├── EnvironmentKey.swift
│ │ │ └── EnvironmentShims.swift
│ │ ├── Errors.swift
│ │ ├── FileSystem/
│ │ │ ├── AbsolutePath.swift
│ │ │ ├── CommonParentDirectory.swift
│ │ │ ├── FileSystem+Extensions.swift
│ │ │ ├── InMemoryFileSystem.swift
│ │ │ ├── NativePathExtensions.swift
│ │ │ ├── RelativePath.swift
│ │ │ ├── TSCAdapters.swift
│ │ │ ├── TemporaryFile.swift
│ │ │ ├── VFSOverlay.swift
│ │ │ └── VirtualFileSystem.swift
│ │ ├── Graph/
│ │ │ ├── AdjacencyMatrix.swift
│ │ │ ├── DirectedGraph.swift
│ │ │ ├── GraphAlgorithms.swift
│ │ │ └── UndirectedGraph.swift
│ │ ├── HTTPClient/
│ │ │ ├── HTTPClient.swift
│ │ │ ├── HTTPClientConfiguration.swift
│ │ │ ├── HTTPClientError.swift
│ │ │ ├── HTTPClientHeaders.swift
│ │ │ ├── HTTPClientRequest.swift
│ │ │ ├── HTTPClientResponse.swift
│ │ │ ├── HTTPMethod.swift
│ │ │ ├── LegacyHTTPClient.swift
│ │ │ ├── LegacyHTTPClientRequest.swift
│ │ │ └── URLSessionHTTPClient.swift
│ │ ├── ImportScanning.swift
│ │ ├── JSON+Extensions.swift
│ │ ├── JSONDecoder+Extensions.swift
│ │ ├── Netrc.swift
│ │ ├── OSSignpost.swift
│ │ ├── Observability.swift
│ │ ├── Process.swift
│ │ ├── ProgressAnimation/
│ │ │ ├── NinjaProgressAnimation.swift
│ │ │ ├── PercentProgressAnimation.swift
│ │ │ ├── ProgressAnimationProtocol.swift
│ │ │ ├── SingleLinePercentProgressAnimation.swift
│ │ │ └── ThrottledProgressAnimation.swift
│ │ ├── SQLite.swift
│ │ ├── SQLiteBackedCache.swift
│ │ ├── Sandbox.swift
│ │ ├── SendableTimeInterval.swift
│ │ ├── Serialization/
│ │ │ └── SerializedJSON.swift
│ │ ├── SourceControlURL.swift
│ │ ├── SwiftVersion.swift
│ │ ├── TestingLibrary.swift
│ │ ├── Triple+Basics.swift
│ │ ├── URL.swift
│ │ ├── Vendor/
│ │ │ ├── README.md
│ │ │ ├── Triple+Platforms.swift
│ │ │ └── Triple.swift
│ │ ├── Version+Extensions.swift
│ │ └── WritableByteStream+Extensions.swift
│ ├── BinarySymbols/
│ │ ├── CMakeLists.txt
│ │ ├── ClangHostDefaultObjectsDetector.swift
│ │ ├── LLVMObjdumpSymbolProvider.swift
│ │ ├── ReferencedSymbols.swift
│ │ └── SymbolProvider.swift
│ ├── Build/
│ │ ├── BuildDescription/
│ │ │ ├── ClangModuleBuildDescription.swift
│ │ │ ├── ModuleBuildDescription.swift
│ │ │ ├── PluginBuildDescription.swift
│ │ │ ├── ProductBuildDescription.swift
│ │ │ ├── ResolvedModule+BuildDescription.swift
│ │ │ └── SwiftModuleBuildDescription.swift
│ │ ├── BuildManifest/
│ │ │ ├── LLBuildManifestBuilder+Clang.swift
│ │ │ ├── LLBuildManifestBuilder+Product.swift
│ │ │ ├── LLBuildManifestBuilder+Resources.swift
│ │ │ ├── LLBuildManifestBuilder+Swift.swift
│ │ │ └── LLBuildManifestBuilder.swift
│ │ ├── BuildOperation.swift
│ │ ├── BuildPlan/
│ │ │ ├── BuildPlan+Clang.swift
│ │ │ ├── BuildPlan+Product.swift
│ │ │ ├── BuildPlan+Swift.swift
│ │ │ ├── BuildPlan+Test.swift
│ │ │ └── BuildPlan.swift
│ │ ├── CMakeLists.txt
│ │ ├── ClangSupport.swift
│ │ ├── LLBuildCommands.swift
│ │ ├── LLBuildDescription.swift
│ │ ├── LLBuildProgressTracker.swift
│ │ ├── SwiftCompilerOutputParser.swift
│ │ └── TestObservation.swift
│ ├── CMakeLists.txt
│ ├── Commands/
│ │ ├── CMakeLists.txt
│ │ ├── CommandWorkspaceDelegate.swift
│ │ ├── PackageCommands/
│ │ │ ├── APIDiff.swift
│ │ │ ├── AddDependency.swift
│ │ │ ├── AddProduct.swift
│ │ │ ├── AddSetting.swift
│ │ │ ├── AddTarget.swift
│ │ │ ├── AddTargetDependency.swift
│ │ │ ├── ArchiveSource.swift
│ │ │ ├── AuditBinaryArtifact.swift
│ │ │ ├── BuildServer.swift
│ │ │ ├── CompletionCommand.swift
│ │ │ ├── ComputeChecksum.swift
│ │ │ ├── Config.swift
│ │ │ ├── Describe.swift
│ │ │ ├── DumpCommands.swift
│ │ │ ├── EditCommands.swift
│ │ │ ├── Format.swift
│ │ │ ├── GenerateSBOM.swift
│ │ │ ├── Init.swift
│ │ │ ├── Install.swift
│ │ │ ├── Learn.swift
│ │ │ ├── Migrate.swift
│ │ │ ├── PluginCommand.swift
│ │ │ ├── ResetCommands.swift
│ │ │ ├── Resolve.swift
│ │ │ ├── ShowDependencies.swift
│ │ │ ├── ShowExecutables.swift
│ │ │ ├── ShowTraits.swift
│ │ │ ├── SwiftPackageCommand.swift
│ │ │ ├── ToolsVersionCommand.swift
│ │ │ └── Update.swift
│ │ ├── README.md
│ │ ├── Snippets/
│ │ │ ├── Card.swift
│ │ │ ├── CardEvent.swift
│ │ │ ├── CardStack.swift
│ │ │ ├── Cards/
│ │ │ │ ├── SnippetCard.swift
│ │ │ │ ├── SnippetGroupCard.swift
│ │ │ │ └── TopCard.swift
│ │ │ └── Colorful.swift
│ │ ├── SwiftBuildCommand.swift
│ │ ├── SwiftRunCommand.swift
│ │ ├── SwiftTestCommand.swift
│ │ └── Utilities/
│ │ ├── APIDigester.swift
│ │ ├── DOTManifestSerializer.swift
│ │ ├── DependenciesSerializer.swift
│ │ ├── DescribedPackage.swift
│ │ ├── MermaidPackageSerializer.swift
│ │ ├── MultiRootSupport.swift
│ │ ├── PlainTextEncoder.swift
│ │ ├── PluginDelegate.swift
│ │ ├── RefactoringSupport.swift
│ │ ├── SymbolGraphExtract.swift
│ │ ├── TestingSupport.swift
│ │ └── XCTEvents.swift
│ ├── CoreCommands/
│ │ ├── BuildSystemSupport.swift
│ │ ├── CMakeLists.txt
│ │ ├── Options.swift
│ │ ├── SwiftCommandObservabilityHandler.swift
│ │ └── SwiftCommandState.swift
│ ├── DriverSupport/
│ │ ├── CMakeLists.txt
│ │ ├── DriverSupportUtils.swift
│ │ └── SPMSwiftDriverExecutor.swift
│ ├── LLBuildManifest/
│ │ ├── CMakeLists.txt
│ │ ├── Command.swift
│ │ ├── LLBuildManifest.swift
│ │ ├── LLBuildManifestWriter.swift
│ │ ├── Node.swift
│ │ ├── Target.swift
│ │ └── Tools.swift
│ ├── PackageCollections/
│ │ ├── API.swift
│ │ ├── CMakeLists.txt
│ │ ├── Model/
│ │ │ ├── CVE.swift
│ │ │ ├── Collection.swift
│ │ │ ├── License.swift
│ │ │ ├── PackageList.swift
│ │ │ ├── PackageTypes.swift
│ │ │ ├── Search.swift
│ │ │ └── TargetListResult.swift
│ │ ├── PackageCollections+CertificatePolicy.swift
│ │ ├── PackageCollections+Configuration.swift
│ │ ├── PackageCollections+Storage.swift
│ │ ├── PackageCollections+Validation.swift
│ │ ├── PackageCollections.swift
│ │ ├── PackageIndex+Configuration.swift
│ │ ├── PackageIndex.swift
│ │ ├── PackageIndexAndCollections.swift
│ │ ├── Providers/
│ │ │ ├── GitHubPackageMetadataProvider.swift
│ │ │ ├── JSONPackageCollectionProvider.swift
│ │ │ ├── PackageCollectionProvider.swift
│ │ │ └── PackageMetadataProvider.swift
│ │ ├── Storage/
│ │ │ ├── FilePackageCollectionsSourcesStorage.swift
│ │ │ ├── PackageCollectionsSourcesStorage.swift
│ │ │ ├── PackageCollectionsStorage.swift
│ │ │ ├── SQLitePackageCollectionsStorage.swift
│ │ │ └── Trie.swift
│ │ └── Utility.swift
│ ├── PackageCollectionsCommand/
│ │ └── PackageCollectionsCommand.swift
│ ├── PackageCollectionsModel/
│ │ ├── CMakeLists.txt
│ │ ├── Formats/
│ │ │ └── v1.md
│ │ ├── PackageCollectionModel+v1.swift
│ │ └── PackageCollectionModel.swift
│ ├── PackageCollectionsSigning/
│ │ ├── CMakeLists.txt
│ │ ├── CertificatePolicy.swift
│ │ ├── PackageCollectionSigning.swift
│ │ ├── Signature.swift
│ │ ├── Utilities/
│ │ │ ├── Base64URL.swift
│ │ │ └── Utilities.swift
│ │ ├── X509Extensions.swift
│ │ └── embedded_resources.swift
│ ├── PackageFingerprint/
│ │ ├── CMakeLists.txt
│ │ ├── FilePackageFingerprintStorage.swift
│ │ ├── Model.swift
│ │ └── PackageFingerprintStorage.swift
│ ├── PackageGraph/
│ │ ├── BoundVersion.swift
│ │ ├── CMakeLists.txt
│ │ ├── DependencyMirrors.swift
│ │ ├── Diagnostics.swift
│ │ ├── GraphLoadingNode.swift
│ │ ├── ModuleAliasTracker.swift
│ │ ├── ModulesGraph+Loading.swift
│ │ ├── ModulesGraph.swift
│ │ ├── PackageContainer.swift
│ │ ├── PackageGraphRoot.swift
│ │ ├── PackageModel+Extensions.swift
│ │ ├── PackageRequirement.swift
│ │ ├── README.md
│ │ ├── Resolution/
│ │ │ ├── DependencyResolutionNode.swift
│ │ │ ├── DependencyResolverBinding.swift
│ │ │ ├── DependencyResolverDelegate.swift
│ │ │ ├── DependencyResolverError.swift
│ │ │ ├── PlatformVersionProvider.swift
│ │ │ ├── PubGrub/
│ │ │ │ ├── Assignment.swift
│ │ │ │ ├── ContainerProvider.swift
│ │ │ │ ├── DiagnosticReportBuilder.swift
│ │ │ │ ├── Incompatibility.swift
│ │ │ │ ├── PartialSolution.swift
│ │ │ │ ├── PubGrubDependencyResolver.swift
│ │ │ │ ├── PubGrubPackageContainer.swift
│ │ │ │ └── Term.swift
│ │ │ ├── ResolvedModule.swift
│ │ │ ├── ResolvedPackage.swift
│ │ │ └── ResolvedProduct.swift
│ │ ├── ResolvedPackagesStore.swift
│ │ ├── Version+Extensions.swift
│ │ └── VersionSetSpecifier.swift
│ ├── PackageLoading/
│ │ ├── CMakeLists.txt
│ │ ├── ContextModel.swift
│ │ ├── Diagnostics.swift
│ │ ├── ManifestJSONParser.swift
│ │ ├── ManifestLoader+Validation.swift
│ │ ├── ManifestLoader.swift
│ │ ├── ManifestSignatureParser.swift
│ │ ├── ModuleMapGenerator.swift
│ │ ├── PackageBuilder.swift
│ │ ├── PkgConfig.swift
│ │ ├── Platform.swift
│ │ ├── README.md
│ │ ├── RegistryReleaseMetadataSerialization.swift
│ │ ├── Target+PkgConfig.swift
│ │ ├── TargetSourcesBuilder.swift
│ │ └── ToolsVersionParser.swift
│ ├── PackageManagerDocs/
│ │ ├── Documentation.docc/
│ │ │ ├── BundlingResources.md
│ │ │ ├── ContinuousIntegration.md
│ │ │ ├── CreatingCLanguageTargets.md
│ │ │ ├── CreatingSwiftPackage.md
│ │ │ ├── Dependencies/
│ │ │ │ ├── AddingDependencies.md
│ │ │ │ ├── AddingSystemLibraryDependency.md
│ │ │ │ ├── EditingDependencyPackage.md
│ │ │ │ ├── ExampleSystemLibraryPkgConfig.md
│ │ │ │ ├── PackageTraits.md
│ │ │ │ └── ResolvingDependencyFailures.md
│ │ │ ├── Documentation.md
│ │ │ ├── GeneratingSBOMs.md
│ │ │ ├── GettingStarted.md
│ │ │ ├── IntroducingPackages.md
│ │ │ ├── ModuleAliasing.md
│ │ │ ├── Package/
│ │ │ │ ├── PackageAddDependency.md
│ │ │ │ ├── PackageAddProduct.md
│ │ │ │ ├── PackageAddSetting.md
│ │ │ │ ├── PackageAddTarget.md
│ │ │ │ ├── PackageAddTargetDependency.md
│ │ │ │ ├── PackageArchiveSource.md
│ │ │ │ ├── PackageClean.md
│ │ │ │ ├── PackageCompletionTool.md
│ │ │ │ ├── PackageComputeChecksum.md
│ │ │ │ ├── PackageConfigGetMirror.md
│ │ │ │ ├── PackageConfigSetMirror.md
│ │ │ │ ├── PackageConfigUnsetMirror.md
│ │ │ │ ├── PackageDescribe.md
│ │ │ │ ├── PackageDiagnoseAPIBreakingChange.md
│ │ │ │ ├── PackageDumpPackage.md
│ │ │ │ ├── PackageDumpSymbolGraph.md
│ │ │ │ ├── PackageEdit.md
│ │ │ │ ├── PackageExperimentalInstall.md
│ │ │ │ ├── PackageExperimentalUninstall.md
│ │ │ │ ├── PackageGenerateSBOM.md
│ │ │ │ ├── PackageInit.md
│ │ │ │ ├── PackageMigrate.md
│ │ │ │ ├── PackagePlugin.md
│ │ │ │ ├── PackagePurgeCache.md
│ │ │ │ ├── PackageReset.md
│ │ │ │ ├── PackageResolve.md
│ │ │ │ ├── PackageShowDependencies.md
│ │ │ │ ├── PackageShowExecutables.md
│ │ │ │ ├── PackageShowTraits.md
│ │ │ │ ├── PackageToolsVersion.md
│ │ │ │ ├── PackageUnedit.md
│ │ │ │ └── PackageUpdate.md
│ │ │ ├── PackageCollections/
│ │ │ │ ├── PackageCollectionAdd.md
│ │ │ │ ├── PackageCollectionDescribe.md
│ │ │ │ ├── PackageCollectionList.md
│ │ │ │ ├── PackageCollectionRefresh.md
│ │ │ │ ├── PackageCollectionRemove.md
│ │ │ │ └── PackageCollectionSearch.md
│ │ │ ├── PackageCollections.md
│ │ │ ├── PackageRegistry/
│ │ │ │ ├── PackageRegistryLogin.md
│ │ │ │ ├── PackageRegistryLogout.md
│ │ │ │ ├── PackageRegistryPublish.md
│ │ │ │ ├── PackageRegistrySet.md
│ │ │ │ └── PackageRegistryUnset.md
│ │ │ ├── PackageSecurity.md
│ │ │ ├── Plugins/
│ │ │ │ ├── EnableBuildPlugin.md
│ │ │ │ ├── EnableCommandPlugin.md
│ │ │ │ ├── WritingBuildToolPlugin.md
│ │ │ │ └── WritingCommandPlugin.md
│ │ │ ├── Plugins.md
│ │ │ ├── RegistryServerSpecification.md
│ │ │ ├── ReleasingPublishingAPackage.md
│ │ │ ├── ResolvingPackageVersions.md
│ │ │ ├── SDK/
│ │ │ │ ├── SDKConfigurationReset.md
│ │ │ │ ├── SDKConfigurationSet.md
│ │ │ │ ├── SDKConfigurationShow.md
│ │ │ │ ├── SDKConfigure.md
│ │ │ │ ├── SDKInstall.md
│ │ │ │ ├── SDKList.md
│ │ │ │ └── SDKRemove.md
│ │ │ ├── SettingSwiftToolsVersion.md
│ │ │ ├── SwiftBuild.md
│ │ │ ├── SwiftBuildPreview.md
│ │ │ ├── SwiftPMAsALibrary.md
│ │ │ ├── SwiftPackageCollectionCommands.md
│ │ │ ├── SwiftPackageCommands.md
│ │ │ ├── SwiftPackageRegistryCommands.md
│ │ │ ├── SwiftRun.md
│ │ │ ├── SwiftSDKCommands.md
│ │ │ ├── SwiftTest.md
│ │ │ ├── SwiftVersionSpecificPackaging.md
│ │ │ ├── UsingBuildConfigurations.md
│ │ │ ├── UsingShellCompletion.md
│ │ │ └── UsingSwiftPackageRegistry.md
│ │ ├── EmptyFile.swift
│ │ └── README.md
│ ├── PackageMetadata/
│ │ └── PackageMetadata.swift
│ ├── PackageModel/
│ │ ├── ArtifactsArchiveMetadata.swift
│ │ ├── BuildConfiguration.swift
│ │ ├── BuildEnvironment.swift
│ │ ├── BuildFlags.swift
│ │ ├── BuildSettings.swift
│ │ ├── CMakeLists.txt
│ │ ├── DependencyMapper.swift
│ │ ├── Diagnostics.swift
│ │ ├── EnabledTrait.swift
│ │ ├── IdentityResolver.swift
│ │ ├── InstalledSwiftPMConfiguration.swift
│ │ ├── Manifest/
│ │ │ ├── Manifest+Traits.swift
│ │ │ ├── Manifest.swift
│ │ │ ├── PackageConditionDescription.swift
│ │ │ ├── PackageDependencyDescription.swift
│ │ │ ├── PlatformDescription.swift
│ │ │ ├── ProductDescription.swift
│ │ │ ├── SystemPackageProviderDescription.swift
│ │ │ ├── TargetBuildSettingDescription.swift
│ │ │ ├── TargetDescription.swift
│ │ │ ├── TraitConfiguration.swift
│ │ │ └── TraitDescription.swift
│ │ ├── ManifestSourceGeneration.swift
│ │ ├── MinimumDeploymentTarget.swift
│ │ ├── Module/
│ │ │ ├── BinaryModule.swift
│ │ │ ├── ClangModule.swift
│ │ │ ├── Module.swift
│ │ │ ├── PluginModule.swift
│ │ │ ├── SwiftModule.swift
│ │ │ └── SystemLibraryModule.swift
│ │ ├── ModuleMapType.swift
│ │ ├── PackageIdentity.swift
│ │ ├── PackageModel.swift
│ │ ├── PackageReference.swift
│ │ ├── Platform.swift
│ │ ├── PlatformRegistry.swift
│ │ ├── PrebuiltLibrary.swift
│ │ ├── Product.swift
│ │ ├── README.md
│ │ ├── Registry.swift
│ │ ├── RegistryReleaseMetadata.swift
│ │ ├── Resource.swift
│ │ ├── Sanitizers.swift
│ │ ├── Snippets/
│ │ │ ├── Model/
│ │ │ │ ├── Snippet.swift
│ │ │ │ └── SnippetGroup.swift
│ │ │ └── Parsing/
│ │ │ └── PlainTextSnippetExtractor.swift
│ │ ├── Sources.swift
│ │ ├── SupportedLanguageExtension.swift
│ │ ├── SwiftLanguageVersion.swift
│ │ ├── SwiftSDKs/
│ │ │ ├── SwiftSDK.swift
│ │ │ ├── SwiftSDKBundle.swift
│ │ │ ├── SwiftSDKBundleStore.swift
│ │ │ └── SwiftSDKConfigurationStore.swift
│ │ ├── Toolchain+SupportedFeatures.swift
│ │ ├── Toolchain.swift
│ │ ├── ToolchainConfiguration.swift
│ │ ├── ToolsVersion.swift
│ │ ├── ToolsVersionSpecificationGeneration.swift
│ │ ├── Toolset.swift
│ │ ├── UserToolchain.swift
│ │ └── WindowsToolchainInfo.swift
│ ├── PackageRegistry/
│ │ ├── CMakeLists.txt
│ │ ├── ChecksumTOFU.swift
│ │ ├── RegistryClient.swift
│ │ ├── RegistryConfiguration.swift
│ │ ├── RegistryDownloadsManager.swift
│ │ ├── SignatureValidation.swift
│ │ └── SigningEntityTOFU.swift
│ ├── PackageRegistryCommand/
│ │ ├── CMakeLists.txt
│ │ ├── PackageRegistryCommand+Auth.swift
│ │ ├── PackageRegistryCommand+Publish.swift
│ │ └── PackageRegistryCommand.swift
│ ├── PackageSigning/
│ │ ├── CMakeLists.txt
│ │ ├── CertificateStores.swift
│ │ ├── SignatureProvider.swift
│ │ ├── SigningEntity/
│ │ │ ├── FilePackageSigningEntityStorage.swift
│ │ │ ├── PackageSigningEntityStorage.swift
│ │ │ └── SigningEntity.swift
│ │ ├── SigningIdentity.swift
│ │ ├── VerifierPolicies.swift
│ │ ├── X509Extensions.swift
│ │ └── embedded_resources.swift
│ ├── QueryEngine/
│ │ ├── CMakeLists.txt
│ │ ├── CacheKey.swift
│ │ ├── FileCacheRecord.swift
│ │ ├── Query.swift
│ │ └── QueryEngine.swift
│ ├── Runtimes/
│ │ ├── CMakeLists.txt
│ │ ├── CompilerPluginSupport/
│ │ │ ├── CMakeLists.txt
│ │ │ └── TargetExtensions.swift
│ │ ├── PackageDescription/
│ │ │ ├── BuildSettings.swift
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Context.swift
│ │ │ ├── LanguageStandardSettings.swift
│ │ │ ├── PackageDependency.swift
│ │ │ ├── PackageDependencyTrait.swift
│ │ │ ├── PackageDescription.docc/
│ │ │ │ ├── Curation/
│ │ │ │ │ ├── BuildConfiguration.md
│ │ │ │ │ ├── BuildSettingCondition.md
│ │ │ │ │ ├── CLanguageStandard.md
│ │ │ │ │ ├── CSetting.md
│ │ │ │ │ ├── CXXLanguageStandard.md
│ │ │ │ │ ├── CXXSetting.md
│ │ │ │ │ ├── Dependency-Trait.md
│ │ │ │ │ ├── Dependency.md
│ │ │ │ │ ├── Extensions/
│ │ │ │ │ │ ├── CLanguageStandard-hash.md
│ │ │ │ │ │ ├── CLanguageStandard-hashValue.md
│ │ │ │ │ │ ├── CLanguageStandard-notEqual.md
│ │ │ │ │ │ ├── CXXLanguageStandard-hash.md
│ │ │ │ │ │ ├── CXXLanguageStandard-hashValue.md
│ │ │ │ │ │ ├── CXXLanguageStandard-notEqual.md
│ │ │ │ │ │ ├── LanguageTag-hash.md
│ │ │ │ │ │ ├── LanguageTag-hashValue.md
│ │ │ │ │ │ ├── LanguageTag-initRawValue.md
│ │ │ │ │ │ ├── LanguageTag-notEqual.md
│ │ │ │ │ │ ├── LanguageTag-rawValue.md
│ │ │ │ │ │ ├── Library-LibraryType-hash.md
│ │ │ │ │ │ ├── Library-LibraryType-hashValue.md
│ │ │ │ │ │ ├── Library-LibraryType-initRawValue.md
│ │ │ │ │ │ ├── Library-LibraryType-notEqual.md
│ │ │ │ │ │ ├── Library-LibraryType.md
│ │ │ │ │ │ ├── Product-Executable.md
│ │ │ │ │ │ ├── Resource-Localization-hash.md
│ │ │ │ │ │ ├── Resource-Localization-hashValue.md
│ │ │ │ │ │ ├── Resource-Localization-notEqual.md
│ │ │ │ │ │ ├── Target-TargetType-hash.md
│ │ │ │ │ │ ├── Target-TargetType-hashValue.md
│ │ │ │ │ │ └── Target-TargetType-notEqual.md
│ │ │ │ │ ├── LanguageTag.md
│ │ │ │ │ ├── Library.md
│ │ │ │ │ ├── LinkerSetting.md
│ │ │ │ │ ├── Package.md
│ │ │ │ │ ├── Platform-notEqual.md
│ │ │ │ │ ├── Platform.md
│ │ │ │ │ ├── Plugin.md
│ │ │ │ │ ├── PluginCapability.md
│ │ │ │ │ ├── PluginCommandIntent.md
│ │ │ │ │ ├── PluginPermission.md
│ │ │ │ │ ├── PluginUsage.md
│ │ │ │ │ ├── Product.md
│ │ │ │ │ ├── Resource-Localization.md
│ │ │ │ │ ├── Resource.md
│ │ │ │ │ ├── SupportedPlatforms-notEqual.md
│ │ │ │ │ ├── SupportedPlatforms.md
│ │ │ │ │ ├── SwiftLanguageMode.md
│ │ │ │ │ ├── SwiftSetting.md
│ │ │ │ │ ├── SystemPackageProvider.md
│ │ │ │ │ ├── Target-Dependency.md
│ │ │ │ │ ├── Target-TargetDependencyCondition.md
│ │ │ │ │ ├── Target-TargetType.md
│ │ │ │ │ ├── Target.md
│ │ │ │ │ ├── Trait.md
│ │ │ │ │ └── Version.md
│ │ │ │ ├── Info.plist
│ │ │ │ └── PackageDescription.md
│ │ │ ├── PackageDescription.swift
│ │ │ ├── PackageDescriptionSerialization.swift
│ │ │ ├── PackageDescriptionSerializationConversion.swift
│ │ │ ├── PackageRequirement.swift
│ │ │ ├── Product.swift
│ │ │ ├── Resource.swift
│ │ │ ├── SupportedPlatforms.swift
│ │ │ ├── Target.swift
│ │ │ ├── Trait.swift
│ │ │ ├── Version+StringLiteralConvertible.swift
│ │ │ ├── Version.swift
│ │ │ └── WarningLevel.swift
│ │ ├── PackagePlugin/
│ │ │ ├── ArgumentExtractor.swift
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Command.swift
│ │ │ ├── Context.swift
│ │ │ ├── Diagnostics.swift
│ │ │ ├── Documentation.docc/
│ │ │ │ ├── Curation/
│ │ │ │ │ ├── ArgumentExtractor.md
│ │ │ │ │ ├── BinaryArtifactTarget.md
│ │ │ │ │ ├── BuildToolPlugin.md
│ │ │ │ │ ├── ClangSourceModuleTarget.md
│ │ │ │ │ ├── Command.md
│ │ │ │ │ ├── CommandPlugin.md
│ │ │ │ │ ├── Diagnostics.md
│ │ │ │ │ ├── ExecutableProduct.md
│ │ │ │ │ ├── File.md
│ │ │ │ │ ├── FileList.md
│ │ │ │ │ ├── FileType.md
│ │ │ │ │ ├── LibraryProduct.md
│ │ │ │ │ ├── LibraryProduct_Kind.md
│ │ │ │ │ ├── ModuleKind.md
│ │ │ │ │ ├── Package.md
│ │ │ │ │ ├── PackageDependency.md
│ │ │ │ │ ├── PackageManager.md
│ │ │ │ │ ├── PackageManagerProxyError.md
│ │ │ │ │ ├── PackageManager_BuildConfiguration.md
│ │ │ │ │ ├── PackageManager_BuildLogVerbosity.md
│ │ │ │ │ ├── PackageManager_BuildParameters.md
│ │ │ │ │ ├── PackageManager_BuildResult.md
│ │ │ │ │ ├── PackageManager_BuildResult_BuiltArtifact.md
│ │ │ │ │ ├── PackageManager_BuildSubset.md
│ │ │ │ │ ├── PackageManager_SymbolGraphOptions.md
│ │ │ │ │ ├── PackageManager_SymbolGraphOptions_AccessLevel.md
│ │ │ │ │ ├── PackageManager_SymbolGraphResult.md
│ │ │ │ │ ├── PackageManager_TestParameters.md
│ │ │ │ │ ├── PackageManager_TestResult.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase_Test.md
│ │ │ │ │ ├── PackageManager_TestResult_TestTarget_TestCase_Test_Result.md
│ │ │ │ │ ├── PackageManager_TestSubset.md
│ │ │ │ │ ├── PackageOrigin.md
│ │ │ │ │ ├── Path.md
│ │ │ │ │ ├── PathList.md
│ │ │ │ │ ├── Plugin.md
│ │ │ │ │ ├── PluginContext.md
│ │ │ │ │ ├── PluginContextError.md
│ │ │ │ │ ├── PluginDeserializationError.md
│ │ │ │ │ ├── Product.md
│ │ │ │ │ ├── SourceModuleTarget.md
│ │ │ │ │ ├── SwiftSourceModuleTarget.md
│ │ │ │ │ ├── SystemLibraryTarget.md
│ │ │ │ │ ├── Target.md
│ │ │ │ │ ├── TargetDependency.md
│ │ │ │ │ └── ToolsVersion.md
│ │ │ │ ├── Documentation.md
│ │ │ │ └── Info.plist
│ │ │ ├── Errors.swift
│ │ │ ├── PackageManagerProxy.swift
│ │ │ ├── PackageModel.swift
│ │ │ ├── Path.swift
│ │ │ ├── Plugin.swift
│ │ │ ├── PluginContextDeserializer.swift
│ │ │ ├── PluginMessages.swift
│ │ │ ├── Protocols.swift
│ │ │ └── Utilities.swift
│ │ └── cmake/
│ │ └── modules/
│ │ ├── EmitSwiftInterface.cmake
│ │ ├── InstallSwiftInterface.cmake
│ │ └── PlatformInfo.cmake
│ ├── SBOMModel/
│ │ ├── CMakeLists.txt
│ │ ├── Converter/
│ │ │ ├── CycloneDXConverter.swift
│ │ │ └── SPDXConverter.swift
│ │ ├── Core/
│ │ │ ├── SBOMCommit.swift
│ │ │ ├── SBOMComponent.swift
│ │ │ ├── SBOMDependencies.swift
│ │ │ ├── SBOMDocument.swift
│ │ │ ├── SBOMIdentifier.swift
│ │ │ ├── SBOMLicense.swift
│ │ │ ├── SBOMMetadata.swift
│ │ │ ├── SBOMOriginator.swift
│ │ │ ├── SBOMPerson.swift
│ │ │ ├── SBOMRegistryEntry.swift
│ │ │ ├── SBOMRelationship.swift
│ │ │ ├── SBOMSpec.swift
│ │ │ ├── SBOMTool.swift
│ │ │ └── SBOMVersionRegistry.swift
│ │ ├── CycloneDX/
│ │ │ ├── CycloneDXComponent.swift
│ │ │ ├── CycloneDXConstants.swift
│ │ │ ├── CycloneDXDependency.swift
│ │ │ ├── CycloneDXDocument.swift
│ │ │ ├── CycloneDXExternalReference.swift
│ │ │ ├── CycloneDXLicense.swift
│ │ │ ├── CycloneDXMetadata.swift
│ │ │ ├── CycloneDXPedigree.swift
│ │ │ ├── CycloneDXProperty.swift
│ │ │ └── Resources/
│ │ │ └── cyclonedx-1.7.schema.json
│ │ ├── Encoder/
│ │ │ └── SBOMEncoder.swift
│ │ ├── Extractor/
│ │ │ ├── DependencySourceStrategy.swift
│ │ │ ├── PURL.swift
│ │ │ ├── SBOMCache.swift
│ │ │ ├── SBOMDependenciesExtractor.swift
│ │ │ ├── SBOMExtractor.swift
│ │ │ ├── SBOMFilterStrategy.swift
│ │ │ └── SBOMGraphsConverter.swift
│ │ ├── README.md
│ │ ├── SBOMCreator.swift
│ │ ├── SBOMError.swift
│ │ ├── SBOMInput.swift
│ │ ├── SPDX/
│ │ │ ├── Resources/
│ │ │ │ └── spdx-3.0.1.schema.json
│ │ │ ├── SPDXAgent.swift
│ │ │ ├── SPDXConstants.swift
│ │ │ ├── SPDXCreationInfo.swift
│ │ │ ├── SPDXDocument.swift
│ │ │ ├── SPDXExternalIdentifier.swift
│ │ │ ├── SPDXGraph.swift
│ │ │ ├── SPDXLicenseExpression.swift
│ │ │ ├── SPDXObject.swift
│ │ │ ├── SPDXPackage.swift
│ │ │ ├── SPDXRelationship.swift
│ │ │ ├── SPDXSBOM.swift
│ │ │ └── SPDXType.swift
│ │ └── Validator/
│ │ ├── CycloneDXValidator.swift
│ │ ├── SBOMValidator.swift
│ │ ├── SBOMValidatorProtocol.swift
│ │ └── SPDXValidator.swift
│ ├── SPMBuildCore/
│ │ ├── BinaryTarget+Extensions.swift
│ │ ├── BuildParameters/
│ │ │ ├── BuildParameters+APIDigester.swift
│ │ │ ├── BuildParameters+Debugging.swift
│ │ │ ├── BuildParameters+Driver.swift
│ │ │ ├── BuildParameters+Linking.swift
│ │ │ ├── BuildParameters+Output.swift
│ │ │ ├── BuildParameters+Testing.swift
│ │ │ └── BuildParameters.swift
│ │ ├── BuildSystem/
│ │ │ ├── BuildSystem.swift
│ │ │ ├── BuildSystemCommand.swift
│ │ │ ├── BuildSystemDelegate.swift
│ │ │ └── DiagnosticsCapturingBuildSystemDelegate.swift
│ │ ├── BuiltTestProduct.swift
│ │ ├── CMakeLists.txt
│ │ ├── CommandPluginResult.swift
│ │ ├── ConfigurableEnvVar.swift
│ │ ├── MainAttrDetection.swift
│ │ ├── Plugins/
│ │ │ ├── DefaultPluginScriptRunner.swift
│ │ │ ├── PluginContextSerializer.swift
│ │ │ ├── PluginInvocation.swift
│ │ │ └── PluginScriptRunner.swift
│ │ ├── ResolvedPackage+Extensions.swift
│ │ ├── Triple+Extensions.swift
│ │ ├── WarningControlFlags.swift
│ │ ├── XCFrameworkMetadata.swift
│ │ └── XcodeProjectRepresentation.swift
│ ├── SPMLLBuild/
│ │ ├── CMakeLists.txt
│ │ └── llbuild.swift
│ ├── SPMSQLite3/
│ │ ├── CMakeLists.txt
│ │ ├── module.modulemap
│ │ └── sqlite.h
│ ├── SourceControl/
│ │ ├── CMakeLists.txt
│ │ ├── GitRepository.swift
│ │ ├── Repository.swift
│ │ └── RepositoryManager.swift
│ ├── SourceKitLSPAPI/
│ │ ├── BuildDescription.swift
│ │ ├── CMakeLists.txt
│ │ └── PluginTargetBuildDescription.swift
│ ├── SwiftBuildSupport/
│ │ ├── BuildSystem.swift
│ │ ├── CMakeLists.txt
│ │ ├── Diagnostics+Extensions.swift
│ │ ├── DotPIFSerializer.swift
│ │ ├── PIF.swift
│ │ ├── PIFBuilder.swift
│ │ ├── PackagePIFBuilder+Helpers.swift
│ │ ├── PackagePIFBuilder+Plugins.swift
│ │ ├── PackagePIFBuilder.swift
│ │ ├── PackagePIFProjectBuilder+Modules.swift
│ │ ├── PackagePIFProjectBuilder+Products.swift
│ │ ├── PackagePIFProjectBuilder.swift
│ │ ├── PluginConfiguration.swift
│ │ ├── README.md
│ │ ├── SwiftBuildSystem.swift
│ │ └── SwiftBuildSystemMessageHandler.swift
│ ├── SwiftFixIt/
│ │ ├── CMakeLists.txt
│ │ └── SwiftFixIt.swift
│ ├── SwiftPMBuildServer/
│ │ ├── CMakeLists.txt
│ │ ├── DisableSigpipe.swift
│ │ └── SwiftPMBuildServer.swift
│ ├── SwiftSDKCommand/
│ │ ├── CMakeLists.txt
│ │ ├── Configuration/
│ │ │ ├── ConfigurationSubcommand.swift
│ │ │ ├── DeprecatedSwiftSDKConfigurationCommand.swift
│ │ │ ├── ResetConfiguration.swift
│ │ │ ├── SetConfiguration.swift
│ │ │ └── ShowConfiguration.swift
│ │ ├── ConfigureSwiftSDK.swift
│ │ ├── InstallSwiftSDK.swift
│ │ ├── ListSwiftSDKs.swift
│ │ ├── README.md
│ │ ├── RemoveSwiftSDK.swift
│ │ ├── SwiftSDKCommand.swift
│ │ └── SwiftSDKSubcommand.swift
│ ├── Workspace/
│ │ ├── CMakeLists.txt
│ │ ├── CheckoutState.swift
│ │ ├── Diagnostics.swift
│ │ ├── InitPackage.swift
│ │ ├── LoadableResult.swift
│ │ ├── ManagedArtifact.swift
│ │ ├── ManagedDependency.swift
│ │ ├── ManagedPrebuilt.swift
│ │ ├── ManifestSigning/
│ │ │ ├── Base64URL.swift
│ │ │ ├── CertificatePolicy.swift
│ │ │ ├── ManifestSigning.swift
│ │ │ ├── Signature.swift
│ │ │ ├── Utilities.swift
│ │ │ ├── X509Extensions.swift
│ │ │ └── embedded_resources.swift
│ │ ├── PackageContainer/
│ │ │ ├── FileSystemPackageContainer.swift
│ │ │ ├── RegistryPackageContainer.swift
│ │ │ └── SourceControlPackageContainer.swift
│ │ ├── ResolvedFileWatcher.swift
│ │ ├── ResolverPrecomputationProvider.swift
│ │ ├── ToolsVersionSpecificationRewriter.swift
│ │ ├── Workspace+BinaryArtifacts.swift
│ │ ├── Workspace+Configuration.swift
│ │ ├── Workspace+Delegation.swift
│ │ ├── Workspace+Dependencies.swift
│ │ ├── Workspace+Editing.swift
│ │ ├── Workspace+Manifests.swift
│ │ ├── Workspace+PackageContainer.swift
│ │ ├── Workspace+Prebuilts.swift
│ │ ├── Workspace+Registry.swift
│ │ ├── Workspace+ResolvedPackages.swift
│ │ ├── Workspace+Signing.swift
│ │ ├── Workspace+SourceControl.swift
│ │ ├── Workspace+State.swift
│ │ ├── Workspace+Traits.swift
│ │ └── Workspace.swift
│ ├── XCBuildSupport/
│ │ ├── CMakeLists.txt
│ │ ├── PIF.swift
│ │ ├── PIFBuilder.swift
│ │ ├── XCBuildDelegate.swift
│ │ ├── XCBuildMessage.swift
│ │ ├── XCBuildOutputParser.swift
│ │ └── XcodeBuildSystem.swift
│ ├── _AsyncFileSystem/
│ │ ├── AsyncFileSystem.swift
│ │ ├── CMakeLists.txt
│ │ ├── ConcurrencySupport.swift
│ │ ├── MockFileSystem.swift
│ │ ├── OSFileSystem.swift
│ │ ├── OpenReadableFile.swift
│ │ ├── OpenWritableFile.swift
│ │ ├── ReadableFileStream.swift
│ │ └── WritableStream.swift
│ ├── _IntegrationTestSupport/
│ │ ├── Filesystem.swift
│ │ └── Helpers.swift
│ ├── _InternalBuildTestSupport/
│ │ ├── MockBuildTestHelper.swift
│ │ └── PIFTester.swift
│ ├── _InternalTestSupport/
│ │ ├── BuildConfiguration+Helpers.swift
│ │ ├── BuildSystemProvider+Configuration.swift
│ │ ├── BuildSystemProvider+Supported.swift
│ │ ├── CombinationsWithRepetition.swift
│ │ ├── Commands.swift
│ │ ├── FileSystemHelpers.swift
│ │ ├── GitRepositoryExtensions.swift
│ │ ├── InMemoryGitRepository.swift
│ │ ├── ManifestExtensions.swift
│ │ ├── MockArchiver.swift
│ │ ├── MockBuildTestHelper.swift
│ │ ├── MockDependency.swift
│ │ ├── MockDependencyGraph.swift
│ │ ├── MockHTTPClient.swift
│ │ ├── MockHashAlgorithm.swift
│ │ ├── MockManifestLoader.swift
│ │ ├── MockPackage.swift
│ │ ├── MockPackageContainer.swift
│ │ ├── MockPackageFingerprintStorage.swift
│ │ ├── MockPackageGraphs.swift
│ │ ├── MockPackageSigningEntityStorage.swift
│ │ ├── MockProduct.swift
│ │ ├── MockRegistry.swift
│ │ ├── MockTarget.swift
│ │ ├── MockWorkspace.swift
│ │ ├── Observability.swift
│ │ ├── PackageDependencyDescriptionExtensions.swift
│ │ ├── PackageGraphTester.swift
│ │ ├── PackageGraphTesterXCTest.swift
│ │ ├── ProcessInfo+hostutils.swift
│ │ ├── ResolvedModule+Mock.swift
│ │ ├── SwiftPMProduct.swift
│ │ ├── SwiftTesting+Data.swift
│ │ ├── SwiftTesting+Helpers.swift
│ │ ├── SwiftTesting+Tags.swift
│ │ ├── SwiftTesting+TraitArgumentData.swift
│ │ ├── SwiftTesting+TraitConditional.swift
│ │ ├── SwiftTesting+Traits.swift
│ │ ├── SwiftTesting+TraitsBug.swift
│ │ ├── Toolchain.swift
│ │ ├── XCTAssertHelpers.swift
│ │ └── misc.swift
│ ├── dummy-swiftc/
│ │ └── main.swift
│ ├── swift-bootstrap/
│ │ ├── CMakeLists.txt
│ │ └── main.swift
│ ├── swift-build/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-build-prebuilts/
│ │ ├── BuildPrebuilts.swift
│ │ └── build.sh
│ ├── swift-experimental-sdk/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-package/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-package-collection/
│ │ └── Entrypoint.swift
│ ├── swift-package-manager/
│ │ └── SwiftPM.swift
│ ├── swift-package-registry/
│ │ └── runner.swift
│ ├── swift-run/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-sdk/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swift-test/
│ │ ├── CMakeLists.txt
│ │ └── Entrypoint.swift
│ ├── swiftpm-testing-helper/
│ │ └── Entrypoint.swift
│ └── tsan_utils/
│ ├── CMakeLists.txt
│ ├── include/
│ │ ├── module.modulemap
│ │ └── tsan_utils.h
│ └── tsan_utils.c
├── Tests/
│ ├── BasicsTests/
│ │ ├── Archiver/
│ │ │ ├── TarArchiverTests.swift
│ │ │ ├── UniversalArchiverTests.swift
│ │ │ └── ZipArchiverTests.swift
│ │ ├── ArrayHelpersTests.swift
│ │ ├── AsyncProcessTests.swift
│ │ ├── AuthorizationProviderTests.swift
│ │ ├── ByteStringExtensionsTests.swift
│ │ ├── CancellatorTests.swift
│ │ ├── ConcurrencyHelpersTests.swift
│ │ ├── DictionaryTest.swift
│ │ ├── DispatchTimeTests.swift
│ │ ├── Environment/
│ │ │ ├── EnvironmentKeyTests.swift
│ │ │ └── EnvironmentTests.swift
│ │ ├── FileSystem/
│ │ │ ├── CommonParentDirectoryTests.swift
│ │ │ ├── FileSystemTests.swift
│ │ │ ├── InMemoryFilesSystemTests.swift
│ │ │ ├── PathShimTests.swift
│ │ │ ├── PathTests.swift
│ │ │ ├── TemporaryFileTests.swift
│ │ │ └── VFSTests.swift
│ │ ├── Graph/
│ │ │ ├── AdjacencyMatrixTests.swift
│ │ │ ├── DirectedGraphTests.swift
│ │ │ └── UndirectedGraphTests.swift
│ │ ├── HTTPClientTests.swift
│ │ ├── LegacyHTTPClientTests.swift
│ │ ├── NetrcTests.swift
│ │ ├── ObservabilitySystemTests.swift
│ │ ├── ProcessInfoTests.swift
│ │ ├── ProgressAnimationTests.swift
│ │ ├── SQLiteBackedCacheTests.swift
│ │ ├── SandboxTests.swift
│ │ ├── Serialization/
│ │ │ └── SerializedJSONTests.swift
│ │ ├── StringExtensionsTests.swift
│ │ ├── TripleTests.swift
│ │ ├── URLSessionHTTPClientTests.swift
│ │ └── processInputs/
│ │ ├── deadlock-if-blocking-io
│ │ ├── deadlock-if-blocking-io.bat
│ │ ├── echo
│ │ ├── echo.bat
│ │ ├── exit4
│ │ ├── exit4.bat
│ │ ├── in-to-out
│ │ ├── in-to-out.bat
│ │ ├── long-stdout-stderr
│ │ ├── long-stdout-stderr.bat
│ │ ├── simple-stdout-stderr
│ │ └── simple-stdout-stderr.bat
│ ├── BinarySymbolsTests/
│ │ └── LLVMObjdumpSymbolProviderTests.swift
│ ├── BuildMetalTests/
│ │ └── BuildMetalTests.swift
│ ├── BuildTests/
│ │ ├── BuildOperationTests.swift
│ │ ├── BuildPlanTests.swift
│ │ ├── BuildPlanTraversalTests.swift
│ │ ├── BuildSystemDelegateTests.swift
│ │ ├── CGenPluginsBuildPlanTests.swift
│ │ ├── ClangTargetBuildDescriptionTests.swift
│ │ ├── CrossCompilationBuildPlanTests.swift
│ │ ├── IncrementalBuildTests.swift
│ │ ├── LLBuildManifestBuilderTests.swift
│ │ ├── ModuleAliasingBuildTests.swift
│ │ ├── PluginInvocationTests.swift
│ │ ├── PluginsBuildPlanTests.swift
│ │ ├── PrebuiltsBuildPlanTests.swift
│ │ ├── PrepareForIndexTests.swift
│ │ ├── ProductBuildDescriptionTests.swift
│ │ ├── SwiftCompilerOutputParserTests.swift
│ │ └── WindowsBuildPlanTests.swift
│ ├── CommandsTests/
│ │ ├── APIDiffTests.swift
│ │ ├── BuildCommandTests.swift
│ │ ├── CoverageTests.swift
│ │ ├── MermaidPackageSerializerTests.swift
│ │ ├── MultiRootSupportTests.swift
│ │ ├── PackageCommandTests.swift
│ │ ├── PackageRegistryCommandTests.swift
│ │ ├── RunCommandTests.swift
│ │ ├── Sanitizer+ExtensionsTests.swift
│ │ ├── SwiftCommandStateTests.swift
│ │ ├── SwiftSDKCommandTests.swift
│ │ └── TestCommandTests.swift
│ ├── ExtraTests/
│ │ ├── .gitignore
│ │ ├── Package.swift
│ │ ├── README.md
│ │ └── Tests/
│ │ ├── ExtraTests/
│ │ │ └── FSWatchTests.swift
│ │ └── LinuxMain.swift
│ ├── FunctionalPerformanceTests/
│ │ └── BuildPerfTests.swift
│ ├── FunctionalTests/
│ │ ├── CFamilyTargetTests.swift
│ │ ├── DependencyResolutionTests.swift
│ │ ├── LibraryEvolutionXCFLinuxTests.swift
│ │ ├── MacroTests.swift
│ │ ├── MiscellaneousTests.swift
│ │ ├── ModuleAliasingFixtureTests.swift
│ │ ├── ModuleMapTests.swift
│ │ ├── PluginTests.swift
│ │ ├── ResourcesTests.swift
│ │ ├── StaticBinaryLibrary.swift
│ │ ├── TaskBacktracesTests.swift
│ │ ├── TestDiscoveryTests.swift
│ │ ├── ToolsVersionTests.swift
│ │ ├── TraitTests.swift
│ │ └── VersionSpecificTests.swift
│ ├── IntegrationTests/
│ │ ├── BasicTests.swift
│ │ ├── SwiftPMTests.swift
│ │ └── XCBuildTests.swift
│ ├── LLBuildManifestTests/
│ │ └── LLBuildManifestTests.swift
│ ├── PackageCollectionsModelTests/
│ │ └── PackageCollectionModelTests.swift
│ ├── PackageCollectionsSigningTests/
│ │ ├── CertificatePolicyTests.swift
│ │ ├── PackageCollectionSigningTests.swift
│ │ ├── SignatureTests.swift
│ │ └── Utilities.swift
│ ├── PackageCollectionsTests/
│ │ ├── GitHubPackageMetadataProviderTests.swift
│ │ ├── JSONPackageCollectionProviderTests.swift
│ │ ├── PackageCollectionSourceCertificatePolicyTests.swift
│ │ ├── PackageCollectionValidationTests.swift
│ │ ├── PackageCollectionsModelTests.swift
│ │ ├── PackageCollectionsSourcesStorageTest.swift
│ │ ├── PackageCollectionsStorageTests.swift
│ │ ├── PackageCollectionsTests.swift
│ │ ├── PackageIndexAndCollectionsTests.swift
│ │ ├── PackageIndexConfigurationTests.swift
│ │ ├── PackageIndexTests.swift
│ │ ├── TrieTests.swift
│ │ ├── Utility.swift
│ │ └── ValidationMessageTests.swift
│ ├── PackageDescriptionTests/
│ │ └── VersionTests.swift
│ ├── PackageFingerprintTests/
│ │ └── FilePackageFingerprintStorageTests.swift
│ ├── PackageGraphPerformanceTests/
│ │ ├── DependencyResolverPerfTests.swift
│ │ ├── Inputs/
│ │ │ ├── PerfectHTTPServer.json
│ │ │ ├── SourceKitten.json
│ │ │ ├── ZewoHTTPServer.json
│ │ │ └── kitura.json
│ │ └── PackageGraphPerfTests.swift
│ ├── PackageGraphTests/
│ │ ├── CrossCompilationPackageGraphTests.swift
│ │ ├── DependencyResolverTests.swift
│ │ ├── ModulesGraphTests+Traits.swift
│ │ ├── ModulesGraphTests.swift
│ │ ├── PubGrubTests.swift
│ │ ├── ResolvedTargetTests.swift
│ │ ├── TopologicalSortTests.swift
│ │ └── VersionSetSpecifierTests.swift
│ ├── PackageLoadingTests/
│ │ ├── Inputs/
│ │ │ ├── Bar.pc
│ │ │ ├── Dependency.pc
│ │ │ ├── Dependent.pc
│ │ │ ├── Foo.pc
│ │ │ ├── Framework.pc
│ │ │ ├── package-deps-manifest.swift
│ │ │ ├── target-deps-manifest.swift
│ │ │ └── trivial-manifest.swift
│ │ ├── ManifestLoaderCacheTests.swift
│ │ ├── ManifestSignatureParserTests.swift
│ │ ├── ModuleMapGenerationTests.swift
│ │ ├── PDAppleProductLoadingTests.swift
│ │ ├── PDLoadingTests.swift
│ │ ├── PD_4_0_LoadingTests.swift
│ │ ├── PD_4_2_LoadingTests.swift
│ │ ├── PD_5_0_LoadingTests.swift
│ │ ├── PD_5_2_LoadingTests.swift
│ │ ├── PD_5_3_LoadingTests.swift
│ │ ├── PD_5_4_LoadingTests.swift
│ │ ├── PD_5_5_LoadingTests.swift
│ │ ├── PD_5_6_LoadingTests.swift
│ │ ├── PD_5_7_LoadingTests.swift
│ │ ├── PD_5_9_LoadingTests.swift
│ │ ├── PD_6_0_LoadingTests.swift
│ │ ├── PD_6_2_LoadingTests.swift
│ │ ├── PD_Next_LoadingTests.swift
│ │ ├── PackageBuilderTests.swift
│ │ ├── PkgConfigAllowlistTests.swift
│ │ ├── PkgConfigParserTests.swift
│ │ ├── PkgConfigTests.swift
│ │ ├── TargetSourcesBuilderTests.swift
│ │ ├── ToolsVersionParserTests.swift
│ │ ├── TraitLoadingTests.swift
│ │ └── pkgconfigInputs/
│ │ ├── case_insensitive.pc
│ │ ├── deps_variable.pc
│ │ ├── double_sysroot.pc
│ │ ├── dummy_dependency.pc
│ │ ├── empty_cflags.pc
│ │ ├── escaped_spaces.pc
│ │ ├── failure_case.pc
│ │ ├── freetype2.pc
│ │ ├── gobject-2.0.pc
│ │ ├── gtk+-3.0.pc
│ │ ├── harfbuzz.pc
│ │ ├── libffi.pc
│ │ ├── not_double_sysroot.pc
│ │ └── quotes_failure.pc
│ ├── PackageModelTests/
│ │ ├── CanonicalPackageLocationTests.swift
│ │ ├── EnabledTraitTests.swift
│ │ ├── InstalledSwiftPMConfigurationTests.swift
│ │ ├── ManifestTests.swift
│ │ ├── MinimumDeploymentTargetTests.swift
│ │ ├── PackageIdentityNameTests.swift
│ │ ├── PackageIdentityParser.swift
│ │ ├── PackageIdentityScopeTests.swift
│ │ ├── PackageModelTests.swift
│ │ ├── SnippetTests.swift
│ │ ├── SwiftLanguageVersionTests.swift
│ │ ├── SwiftSDKBundleTests.swift
│ │ ├── SwiftSDKTests.swift
│ │ ├── ToolsVersionTests.swift
│ │ └── ToolsetTests.swift
│ ├── PackagePluginAPITests/
│ │ ├── ArgumentExtractorTests.swift
│ │ └── PathTests.swift
│ ├── PackageRegistryTests/
│ │ ├── PackageSigningEntityTOFUTests.swift
│ │ ├── PackageVersionChecksumTOFUTests.swift
│ │ ├── RegistryClientTests.swift
│ │ ├── RegistryConfigurationTests.swift
│ │ ├── RegistryDownloadsManagerTests.swift
│ │ └── SignatureValidationTests.swift
│ ├── PackageSigningTests/
│ │ ├── FilePackageSigningEntityStorageTests.swift
│ │ ├── SigningEntityTests.swift
│ │ ├── SigningIdentityTests.swift
│ │ ├── SigningTests.swift
│ │ └── Utilities.swift
│ ├── QueryEngineTests/
│ │ └── QueryEngineTests.swift
│ ├── SBOMModelTests/
│ │ ├── CycloneDXConverterTests.swift
│ │ ├── PURLTests.swift
│ │ ├── SBOMEncoderTests.swift
│ │ ├── SBOMExtractCategoryTests.swift
│ │ ├── SBOMExtractComponentsTests.swift
│ │ ├── SBOMExtractDependenciesTests.swift
│ │ ├── SBOMExtractMetadataTests.swift
│ │ ├── SBOMExtractPrimaryComponentTests.swift
│ │ ├── SBOMExtractScopeTests.swift
│ │ ├── SBOMExtractTests.swift
│ │ ├── SBOMFilterStrategyTests.swift
│ │ ├── SBOMGetSpecTests.swift
│ │ ├── SBOMGraphsConverterTests.swift
│ │ ├── SBOMTestDependencyGraphHelpers.swift
│ │ ├── SBOMTestDependencyGraphSPM.swift
│ │ ├── SBOMTestDependencyGraphSimple.swift
│ │ ├── SBOMTestDependencyGraphSimpleDifferent.swift
│ │ ├── SBOMTestDependencyGraphSwiftly.swift
│ │ ├── SBOMTestError.swift
│ │ ├── SBOMTestModulesGraphConditional.swift
│ │ ├── SBOMTestModulesGraphHelpers.swift
│ │ ├── SBOMTestModulesGraphSPM.swift
│ │ ├── SBOMTestModulesGraphSimple.swift
│ │ ├── SBOMTestModulesGraphSwiftly.swift
│ │ ├── SBOMTestRepo.swift
│ │ ├── SBOMTestStore.swift
│ │ ├── SBOMTestTraits.swift
│ │ ├── SBOMValidationTests.swift
│ │ ├── SPDXConverterTests.swift
│ │ ├── SPMFixtures/
│ │ │ ├── SBOMSPMBuildToolingPackages.swift
│ │ │ ├── SBOMSPMDocumentationPackages.swift
│ │ │ ├── SBOMSPMFoundationPackages.swift
│ │ │ ├── SBOMSPMRootPackageAssembly.swift
│ │ │ ├── SBOMSPMRootPackageCommand.swift
│ │ │ ├── SBOMSPMRootPackageCore.swift
│ │ │ ├── SBOMSPMRootPackageExecutable.swift
│ │ │ ├── SBOMSPMSecurityPackages.swift
│ │ │ ├── SBOMSPMSwiftBuildPackage.swift
│ │ │ └── SBOMSPMSwiftSyntaxPackage.swift
│ │ ├── SwiftlyFixtures/
│ │ │ ├── SBOMSwiftlyCollectionsPackages.swift
│ │ │ ├── SBOMSwiftlyFoundationPackages.swift
│ │ │ ├── SBOMSwiftlyNIOPackages.swift
│ │ │ ├── SBOMSwiftlyOpenAPIPackages.swift
│ │ │ ├── SBOMSwiftlyRootPackage.swift
│ │ │ ├── SBOMSwiftlySecurityPackages.swift
│ │ │ └── SBOMSwiftlyUtilityPackages.swift
│ │ └── testfiles/
│ │ ├── invalid-cyclonedx-1-missing-fields.json
│ │ ├── invalid-cyclonedx-1-small.json
│ │ ├── invalid-cyclonedx-1.7-uppercase-uuid.json
│ │ ├── invalid-cyclonedx-1.7-wrong-bomformat.json
│ │ ├── invalid-spdx-3-small.json
│ │ ├── invalid-spdx-3.0.1-no-iri.json
│ │ ├── invalid-spdx-3.0.1-spm.json
│ │ ├── invalid-spdx-3.0.1-wrong-relationshiptype.json
│ │ ├── valid-cyclonedx-1.7-empty-comps.json
│ │ ├── valid-cyclonedx-1.7-minimal.json
│ │ ├── valid-cyclonedx-1.7-spm.json
│ │ ├── valid-cyclonedx-1.7-unicode.json
│ │ ├── valid-cyclonedx-1.7-versions.json
│ │ └── valid-spdx-3.0.1-spm.json
│ ├── SPMBuildCoreTests/
│ │ ├── ArtifactsArchiveMetadataTests.swift
│ │ ├── BuildParametersTests.swift
│ │ ├── MainAttrDetectionTests.swift
│ │ └── XCFrameworkMetadataTests.swift
│ ├── SourceControlTests/
│ │ ├── GitRepositoryProviderTests.swift
│ │ ├── GitRepositoryTests.swift
│ │ ├── InMemoryGitRepositoryTests.swift
│ │ ├── Inputs/
│ │ │ └── TestRepo.tgz
│ │ └── RepositoryManagerTests.swift
│ ├── SourceKitLSPAPITests/
│ │ └── SourceKitLSPAPITests.swift
│ ├── SwiftBuildSupportTests/
│ │ ├── CGenPIFTests.swift
│ │ ├── PIFBuilderTests.swift
│ │ ├── PackagePIFBuilderHelpersTests.swift
│ │ ├── PrebuiltsPIFTests.swift
│ │ ├── ProductTests.swift
│ │ ├── SwiftBuildSystemMessageHandlerTests.swift
│ │ └── SwiftBuildSystemTests.swift
│ ├── SwiftFixItTests/
│ │ ├── BasicTests.swift
│ │ ├── CategoryTests.swift
│ │ ├── FilteringTests.swift
│ │ └── Utilities.swift
│ ├── SwiftPMBuildServerTests/
│ │ └── BuildServerTests.swift
│ ├── WorkspaceTests/
│ │ ├── AuthorizationProviderTests.swift
│ │ ├── InitTests.swift
│ │ ├── ManifestSourceGenerationTests.swift
│ │ ├── MirrorsConfigurationTests.swift
│ │ ├── PrebuiltsTests.swift
│ │ ├── RegistryPackageContainerTests.swift
│ │ ├── ResolvedPackagesStoreTests.swift
│ │ ├── SourceControlPackageContainerTests.swift
│ │ ├── ToolsVersionSpecificationGenerationTests.swift
│ │ ├── ToolsVersionSpecificationRewriterTests.swift
│ │ ├── WorkspaceStateTests.swift
│ │ ├── WorkspaceTests+Traits.swift
│ │ └── WorkspaceTests.swift
│ ├── XCBuildSupportTests/
│ │ ├── Inputs/
│ │ │ └── Foo.pc
│ │ ├── PIFBuilderTests.swift
│ │ └── PIFTests.swift
│ ├── _AsyncFileSystemTests/
│ │ └── AsyncFileSystemTests.swift
│ └── _InternalTestSupportTests/
│ ├── FileSystemHelpersTests.swift
│ ├── MiscTests.swift
│ └── XCTAssertHelpersTests.swift
├── Utilities/
│ ├── Certificates/
│ │ ├── Intermediates/
│ │ │ ├── AppleWWDRCAG2.cer
│ │ │ ├── AppleWWDRCAG3.cer
│ │ │ ├── AppleWWDRCAG4.cer
│ │ │ ├── AppleWWDRCAG5.cer
│ │ │ ├── AppleWWDRCAG6.cer
│ │ │ ├── AppleWWDRCAG7.cer
│ │ │ └── AppleWWDRCAG8.cer
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Roots/
│ │ │ ├── AppleComputerRootCertificate.cer
│ │ │ ├── AppleIncRootCertificate.cer
│ │ │ ├── AppleRootCA-G2.cer
│ │ │ └── AppleRootCA-G3.cer
│ │ ├── empty.swift
│ │ └── generate.sh
│ ├── Docker/
│ │ ├── Dockerfile
│ │ ├── docker-compose.1604.53.yaml
│ │ ├── docker-compose.1804.53.yaml
│ │ ├── docker-compose.2004.54.yaml
│ │ ├── docker-compose.2004.55.yaml
│ │ ├── docker-compose.2004.56.yaml
│ │ ├── docker-compose.2004.57.yaml
│ │ ├── docker-compose.2004.main.yaml
│ │ ├── docker-compose.2204.58.yaml
│ │ ├── docker-compose.2204.59.yaml
│ │ └── docker-compose.yaml
│ ├── InstalledSwiftPMConfiguration/
│ │ ├── Package.swift
│ │ └── Sources/
│ │ └── exec.swift
│ ├── README.md
│ ├── SwiftPM+SwiftBuild.xcworkspace/
│ │ └── contents.xcworkspacedata
│ ├── bootstrap
│ ├── build-using-self
│ ├── config.json
│ ├── generate_contributors_list.sh
│ ├── helpers.py
│ ├── new-bootstrap
│ ├── soundness.sh
│ └── test-toolchain
├── cmake/
│ └── modules/
│ ├── CMakeLists.txt
│ └── FindLLBuild.cmake
├── swiftbuild_specific_issues.md
├── withKnownIssue_tests_report.md
└── xcode/
└── SwiftPM-Package.xctestplan
SYMBOL INDEX (84 symbols across 40 files)
FILE: Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/simple.c
function foo (line 1) | int foo(void) { return 42; }
FILE: Fixtures/BinaryLibraries/Static/Package1/Sources/Wrapper/wrapper.c
function bar (line 3) | int bar(void) { return foo(); }
FILE: Fixtures/CFamilyTargets/CDynamicLookup/Foo.c
function foo (line 3) | int foo() {
FILE: Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Cfactorial/Sources/factorial/factorial.c
function factorial (line 3) | long factorial(int n) {
FILE: Fixtures/CFamilyTargets/CLibraryParentSearchPath/Sources/CHeaderInclude/answers.c
function getAnswer (line 5) | int getAnswer(void) {
FILE: Fixtures/CFamilyTargets/CLibrarySources/Sources/Foo.c
function foo (line 3) | int foo() {
FILE: Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar with spaces/Bar.c
function bar (line 1) | int bar() {
FILE: Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar/Bar.c
function bar (line 4) | int bar() {
FILE: Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Foo/Foo.c
function foo (line 3) | int foo() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/CustomModuleMap/CustomModuleMap.c
function qux (line 3) | int qux() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/FlatInclude/FlatInclude.c
function bar (line 3) | int bar() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/NoIncludeDir/Jaz.c
function noDir (line 2) | int noDir() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/NonModuleDirectoryInclude/Maz.c
function maz (line 3) | int maz() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaDirectoryInclude/Jaz.c
function jaz (line 3) | int jaz() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeader/UmbrellaHeader.c
function foo (line 3) | int foo() {
FILE: Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeaderFlat/UmbrellaHeader.c
function umbrellaHeaderFlat (line 3) | int umbrellaHeaderFlat() {
FILE: Fixtures/CFamilyTargets/SwiftCMixed/Sources/CExec/main.c
function main (line 4) | int main() {
FILE: Fixtures/CFamilyTargets/SwiftCMixed/Sources/SeaLib/Foo.c
function foo (line 1) | int foo(int a) {
FILE: Fixtures/DependencyResolution/External/CUsingCDep/Bar/Sources/SeaLover/Sea.c
function cool (line 3) | void cool() {
FILE: Fixtures/DependencyResolution/External/CUsingCDep/Foo/Foo.c
function foo (line 1) | void foo() {
FILE: Fixtures/Metal/SimpleLibrary/Sources/MySharedTypes/include/SharedTypes.h
type AAPLVertex (line 8) | typedef struct {
FILE: Fixtures/Miscellaneous/-DSWIFT_PACKAGE/Sources/CLib/foo.c
function foo (line 3) | void foo(void) { }
FILE: Fixtures/Miscellaneous/APIDiff/CIncludePath/Sources/CSample/vendorsrc/src/vendor.c
function vendor__func (line 3) | int vendor__func(int n)
FILE: Fixtures/Miscellaneous/APIDiff/CTargetDep/Sources/Foo/Foo.c
function foo (line 3) | int foo() {
FILE: Fixtures/Miscellaneous/AtMainSupport/Sources/ClangExecSingleFile/NotMain.c
function main (line 3) | int main() {
FILE: Fixtures/Miscellaneous/CXX17CompilerCrash/v5_7/include/user_objects.h
type mjtBuiltin (line 58) | typedef enum _mjtBuiltin {
type mjtMark (line 67) | typedef enum _mjtMark {
function class (line 76) | class mjCError {
function class (line 90) | class mjCAlternative {
function class (line 109) | class mjCBase {
function class (line 129) | class mjCBody : public mjCBase {
FILE: Fixtures/Miscellaneous/CXX17CompilerCrash/v5_7/lodepng/include/lodepng.h
type LodePNGColorType (line 99) | typedef enum LodePNGColorType {
function namespace (line 229) | namespace lodepng {
type LodePNGDecompressSettings (line 291) | typedef struct LodePNGDecompressSettings LodePNGDecompressSettings;
type LodePNGDecompressSettings (line 292) | struct LodePNGDecompressSettings {
type LodePNGCompressSettings (line 328) | typedef struct LodePNGCompressSettings LodePNGCompressSettings;
type LodePNGCompressSettings (line 329) | struct LodePNGCompressSettings /*deflate = compress*/ {
type LodePNGColorMode (line 362) | typedef struct LodePNGColorMode {
type LodePNGTime (line 442) | typedef struct LodePNGTime {
type LodePNGInfo (line 453) | typedef struct LodePNGInfo {
type LodePNGDecoderSettings (line 665) | typedef struct LodePNGDecoderSettings {
type LodePNGFilterStrategy (line 702) | typedef enum LodePNGFilterStrategy {
type LodePNGColorStats (line 727) | typedef struct LodePNGColorStats {
type LodePNGEncoderSettings (line 753) | typedef struct LodePNGEncoderSettings {
type LodePNGState (line 789) | typedef struct LodePNGState {
function namespace (line 1025) | namespace lodepng {
FILE: Fixtures/Miscellaneous/CXX17CompilerCrash/v5_8/include/user_objects.h
type mjtBuiltin (line 58) | typedef enum _mjtBuiltin {
type mjtMark (line 67) | typedef enum _mjtMark {
function class (line 76) | class mjCError {
function class (line 90) | class mjCAlternative {
function class (line 109) | class mjCBase {
function class (line 129) | class mjCBody : public mjCBase {
FILE: Fixtures/Miscellaneous/CXX17CompilerCrash/v5_8/lodepng/include/lodepng.h
type LodePNGColorType (line 99) | typedef enum LodePNGColorType {
function namespace (line 229) | namespace lodepng {
type LodePNGDecompressSettings (line 291) | typedef struct LodePNGDecompressSettings LodePNGDecompressSettings;
type LodePNGDecompressSettings (line 292) | struct LodePNGDecompressSettings {
type LodePNGCompressSettings (line 328) | typedef struct LodePNGCompressSettings LodePNGCompressSettings;
type LodePNGCompressSettings (line 329) | struct LodePNGCompressSettings /*deflate = compress*/ {
type LodePNGColorMode (line 362) | typedef struct LodePNGColorMode {
type LodePNGTime (line 442) | typedef struct LodePNGTime {
type LodePNGInfo (line 453) | typedef struct LodePNGInfo {
type LodePNGDecoderSettings (line 665) | typedef struct LodePNGDecoderSettings {
type LodePNGFilterStrategy (line 702) | typedef enum LodePNGFilterStrategy {
type LodePNGColorStats (line 727) | typedef struct LodePNGColorStats {
type LodePNGEncoderSettings (line 753) | typedef struct LodePNGEncoderSettings {
type LodePNGState (line 789) | typedef struct LodePNGState {
function namespace (line 1025) | namespace lodepng {
FILE: Fixtures/Miscellaneous/LTO/SwiftAndCTargets/Sources/cLib/cLib.c
function cPrint (line 5) | void cPrint(int value) {
FILE: Fixtures/Miscellaneous/PkgConfig/SystemModule/Sources/SystemModule.c
function foo (line 1) | int foo() {
FILE: Fixtures/Miscellaneous/PkgConfig/SystemModuleUserClang/Sources/main.c
function main (line 4) | int main() {
FILE: Fixtures/Miscellaneous/TestableExe/Sources/TestableExe3/main.c
function main (line 8) | int main() {
FILE: Fixtures/ModuleMaps/Direct/CFoo/C/foo.c
function foo (line 1) | int foo() {
FILE: Fixtures/ValidLayouts/SingleModule/ExecutableMixed/Sources/ExecutableC/c.c
function main (line 1) | int main() {
FILE: Fixtures/ValidLayouts/SingleModule/ExecutableMixed/Sources/ExecutableCxx/cxx.cpp
function main (line 1) | int main() {
FILE: Fixtures/XCBuild/ExecutableProducts/Bar/Sources/cbar/main.c
function main (line 3) | int main(void) {
FILE: Fixtures/XCBuild/ExecutableProducts/Foo/Sources/cfoo/main.c
function main (line 3) | int main(void) {
FILE: Sources/tsan_utils/tsan_utils.c
function is_tsan_enabled (line 15) | bool is_tsan_enabled() {
FILE: Utilities/helpers.py
function change_directory (line 25) | def change_directory(directory: pathlib.Path) -> t.Iterator[pathlib.Path]:
class Configuration (line 38) | class Configuration(str, enum.Enum):
method __str__ (line 42) | def __str__(self) -> str:
function symlink_force (line 46) | def symlink_force(source, destination):
function mkdir_p (line 55) | def mkdir_p(path):
function call (line 65) | def call(cmd, cwd=None, verbose=False):
function call_output (line 95) | def call_output(cmd, cwd=None, stderr=False, verbose=False):
Copy disabled (too large)
Download .json
Condensed preview — 2183 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,814K chars).
[
{
"path": ".devcontainer/devcontainer.json",
"chars": 1104,
"preview": "{\n \"name\": \"Swift Nightly Main\",\n \"dockerComposeFile\": \"docker-compose.yaml\",\n \"service\": \"devcontainer\",\n \""
},
{
"path": ".devcontainer/docker-compose.yaml",
"chars": 444,
"preview": "services:\n devcontainer:\n # Use your desired image or Dockerfile here\n image: \"swiftlang/swift:nightly-main\"\n "
},
{
"path": ".devcontainer/init.sh",
"chars": 1010,
"preview": "#!/bin/bash\n##===----------------------------------------------------------------------===##\n##\n## This source file is p"
},
{
"path": ".dir-locals.el",
"chars": 216,
"preview": ";;; Directory Local Variables -*- no-byte-compile: t -*-\n;;; For more information see (info \"(emacs) Director"
},
{
"path": ".editorconfig",
"chars": 223,
"preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntrim_"
},
{
"path": ".github/CODEOWNERS",
"chars": 1398,
"preview": "# This file is a list of the people responsible for ensuring that patches for a\n# particular part of Swift are reviewed,"
},
{
"path": ".github/ISSUE_TEMPLATE/BUG_REPORT.yml",
"chars": 1644,
"preview": "name: Bug Report\ndescription: Something isn't working as expected\nlabels: [bug]\nbody:\n - type: checkboxes\n id: cat-p"
},
{
"path": ".github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml",
"chars": 922,
"preview": "name: Feature Request\ndescription: A suggestion for a new feature\nlabels: [enhancement]\nbody:\n - type: textarea\n att"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 287,
"preview": "_[One line description of your change]_\n\n### Motivation:\n\n_[Explain here the context, and why you're making that change."
},
{
"path": ".github/dependabot.yml",
"chars": 118,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"github-actions\"\n directory: \"/\"\n schedule:\n interval: \"weekly\"\n"
},
{
"path": ".github/scripts/prebuild.ps1",
"chars": 1770,
"preview": "##===----------------------------------------------------------------------===##\n##\n## This source file is part of the S"
},
{
"path": ".github/scripts/prebuild.sh",
"chars": 3133,
"preview": "#!/bin/bash\n##===----------------------------------------------------------------------===##\n##\n## This source file is p"
},
{
"path": ".github/workflows/automerge.yml",
"chars": 1114,
"preview": "name: Create PR to merge main into release branch\n# In the first period after branching the release branch,\n# we typical"
},
{
"path": ".github/workflows/pull_request.yml",
"chars": 5922,
"preview": "name: Pull request\n\npermissions:\n contents: read\n\non:\n pull_request:\n types: [opened, reopened, synchronize]\n\nconcu"
},
{
"path": ".gitignore",
"chars": 378,
"preview": ".build\n.test\n.index-build\n.devcontainer/.env\nDerivedData\n/.previous-build\nxcuserdata\n.DS_Store\n*~\n\\#*\n.\\#*\n.*.sw[nop]\n*."
},
{
"path": ".license_header_template",
"chars": 507,
"preview": "@@===----------------------------------------------------------------------===@@\n@@\n@@ This source file is part of the S"
},
{
"path": ".licenseignore",
"chars": 400,
"preview": "**/*.mlmodel\n**/*.pbxproj\n**/*.png\n**/*.xcworkspacedata\n**/Package.swift\n.dir-locals.el\n.editorconfig\n.swift-version\n.sw"
},
{
"path": ".mailfilter",
"chars": 372,
"preview": "# This is a list of `shasum` hashed email addresses which are filtered from CONTRIBUTORS.txt, typically for privacy.\n# L"
},
{
"path": ".mailmap",
"chars": 6278,
"preview": "Alex Blewitt <alblue@apple.com> <alblue@apple.com>\nAlex Blewitt <alblue@apple.com> <alex.blewitt@gmail.com>\nAlex Hoppen "
},
{
"path": ".pep8",
"chars": 56,
"preview": "[flake8]\nfilename = *.py,bootstrap\nmax-line-length = 80\n"
},
{
"path": ".swift-version",
"chars": 5,
"preview": "6.2.3"
},
{
"path": ".swiftformat",
"chars": 1006,
"preview": "## File options\n\n--swiftversion 5.9\n--exclude .build\n\n## Formatting options\n\n# Configure the placement of an extension's"
},
{
"path": "Benchmarks/Benchmarks/PackageGraphBenchmarks/PackageGraphBenchmarks.swift",
"chars": 7172,
"preview": "//===----------------------------------------------------------------------===//\n//\n// This source file is part of the S"
},
{
"path": "Benchmarks/Package.swift",
"chars": 1279,
"preview": "// swift-tools-version: 5.7\n//===----------------------------------------------------------------------===//\n//\n// This "
},
{
"path": "Benchmarks/README.md",
"chars": 1231,
"preview": "# SwiftPM Benchmarks\n\nBenchmarks currently use [ordo-one/package-benchmark](https://github.com/ordo-one/package-benchmar"
},
{
"path": "Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json",
"chars": 53,
"preview": "{\n \"mallocCountTotal\" : 11255,\n \"syscalls\" : 1497\n}"
},
{
"path": "Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SyntheticModulesGraph.p90.json",
"chars": 50,
"preview": "{\n \"mallocCountTotal\" : 15679,\n \"syscalls\" : 0\n}"
},
{
"path": "Benchmarks/Thresholds/macos-arm64/PackageGraphBenchmarks.SyntheticModulesGraphWithMacros.p90.json",
"chars": 49,
"preview": "{\n \"mallocCountTotal\" : 7743,\n \"syscalls\" : 0\n}"
},
{
"path": "Benchmarks/Thresholds/macosx-arm64/PackageGraphBenchmarks.SwiftPMWorkspaceModulesGraph.p90.json",
"chars": 53,
"preview": "{\n \"mallocCountTotal\" : 10775,\n \"syscalls\" : 1508\n}"
},
{
"path": "Benchmarks/Thresholds/macosx-arm64/PackageGraphBenchmarks.SyntheticModulesGraph.p90.json",
"chars": 49,
"preview": "{\n \"mallocCountTotal\" : 2427,\n \"syscalls\" : 0\n}"
},
{
"path": "BuildSupport/SwiftSyntax/CMakeLists.txt",
"chars": 529,
"preview": "include(FetchContent)\n\nfind_package(SwiftSyntax CONFIG GLOBAL)\nif(NOT SwiftSyntax_FOUND)\n set(SWIFT_SYNTAX_INSTALL_TARG"
},
{
"path": "CHANGELOG.md",
"chars": 24165,
"preview": "Note: This is in reverse chronological order, so newer entries are added to the top.\n\nSwift Next\n-----------\n\nSwift 6.2\n"
},
{
"path": "CMakeLists.txt",
"chars": 2194,
"preview": "# This source file is part of the Swift open source project\n#\n# Copyright (c) 2014 - 2021 Apple Inc. and the Swift proje"
},
{
"path": "CONTRIBUTING.md",
"chars": 20191,
"preview": "# Contributing to Swift Package Manager\n\nThere are several types of contributions one can make. Bug fixes, documentation"
},
{
"path": "CONTRIBUTORS.txt",
"chars": 17177,
"preview": "For the purpose of tracking copyright, this is the list of individuals and\norganizations who have contributed to Swift P"
},
{
"path": "Documentation/Design/EvolutionIdeas.md",
"chars": 8082,
"preview": "# Swift Package Manager Ideas\n\nThis is a list of some evolution ideas for the package manager. Once the details\nof an id"
},
{
"path": "Documentation/Design/README.md",
"chars": 451,
"preview": "# Swift Package Manager Design Docs\n\nSwift Package Manager design is done in open source, and governed by Swift Evolutio"
},
{
"path": "Documentation/Design/SwiftBasedManifestFormat.md",
"chars": 12716,
"preview": "# Swift-based Manifest Format\n\n> **PLEASE NOTE** This document represents the initial proposal for Swift Package Manager"
},
{
"path": "Documentation/PackageRegistry/PackageRegistryUsage.md",
"chars": 25565,
"preview": "# Package Registry Usage\n\n## Table of Contents\n\n * [Getting Started](#getting-started)\n + [Configuring a registry](#"
},
{
"path": "Documentation/PackageRegistry/Registry.md",
"chars": 54680,
"preview": "# Swift Package Registry Service Specification\n\n- [1. Notations](#1-notations)\n- [2. Definitions](#2-definitions)\n- [3. "
},
{
"path": "Documentation/PackageRegistry/registry.openapi.yaml",
"chars": 25051,
"preview": "openapi: 3.0.3\ninfo:\n title: Swift Package Registry API\n description: API for managing Swift package releases and inte"
},
{
"path": "Documentation/README.md",
"chars": 674,
"preview": "# Swift Package Manager\n\nThe documentation previously included here has primarily been migrated into DocC format, and is"
},
{
"path": "Documentation/ReleaseNotes/5.3.md",
"chars": 2570,
"preview": "# SwiftPM 5.3 Release Notes\n\nSwiftPM brings several new features in version 5.3, all of which are opt-in based on the to"
},
{
"path": "Documentation/ReleaseNotes/5.4.md",
"chars": 2348,
"preview": "# SwiftPM 5.4 Release Notes\n\nSwiftPM 5.4 includes several improvements, all of which are opt-in based on specifying a to"
},
{
"path": "Documentation/ReleaseNotes/5.5.md",
"chars": 2382,
"preview": "# SwiftPM 5.5 Release Notes\n\n### Package Collections\n\nYou can now use package collections to discover, manage, and publi"
},
{
"path": "Documentation/ReleaseNotes/5.6.md",
"chars": 3966,
"preview": "# SwiftPM 5.6 Release Notes\n\n### Package Plugins\n\n[SE-0303](https://github.com/swiftlang/swift-evolution/blob/main/propo"
},
{
"path": "Documentation/ReleaseNotes/5.7.md",
"chars": 1826,
"preview": "# SwiftPM 5.7 Release Notes\n\n### Package Plugins\n\n[SE-0303: Build tool plugins](https://github.com/swiftlang/swift-evolu"
},
{
"path": "Documentation/ReleaseNotes/5.8.md",
"chars": 2338,
"preview": "# SwiftPM 5.8 Release Notes\n\n## Package manifest changes\n\nSwiftPM targets can now specify the upcoming language features"
},
{
"path": "Documentation/ReleaseNotes/5.9.md",
"chars": 2022,
"preview": "# SwiftPM 5.9 Release Notes\n\n## Cross compilation\n\nSwiftPM now supports cross compilation based on the Swift SDK bundle "
},
{
"path": "Documentation/ReleaseNotes/6.3.md",
"chars": 3278,
"preview": "# SwiftPM 6.3 Release Notes\n\n## SwiftBuild: Preview of Next-Generation Build System\n\nSwiftBuild is being developed to re"
},
{
"path": "Documentation/libSwiftPM.md",
"chars": 915,
"preview": "# libSwiftPM - SwiftPM as a Library\n\n**NOTE: The libSwiftPM API is currently _unstable_ and may change at any time.**\n\nS"
},
{
"path": "Examples/package-info/Package.swift",
"chars": 718,
"preview": "// swift-tools-version:5.7\n\nimport PackageDescription\n\nlet package = Package(\n name: \"package-info\",\n platforms: ["
},
{
"path": "Examples/package-info/README.md",
"chars": 59,
"preview": "# package-info\n\nSample package built on top of libSwiftPM.\n"
},
{
"path": "Examples/package-info/Sources/package-info/example.swift",
"chars": 2388,
"preview": "//===----------------------------------------------------------------------===//\n//\n// This source file is part of the S"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Package.swift",
"chars": 513,
"preview": "// swift-tools-version: 6.0\n\nimport PackageDescription\n\nlet package = Package(\n name: \"Package1\",\n targets: [\n "
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/Makefile",
"chars": 2944,
"preview": "SRC_FILES := $(wildcard *.c)\n\n# Define architectures and platforms\nARCHS := x86_64 arm64\nPLATFORMS := macos linux\n\n# Def"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/Package.swift",
"chars": 293,
"preview": "// swift-tools-version: 6.0\n\nimport PackageDescription\n\nlet package = Package(\n name: \"Simple\",\n products: [\n "
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/build.sh",
"chars": 346,
"preview": "#!/bin/bash\n\n# currently only used for Windows\n\nrm -fr .build\nswift build --arch arm64 -c release\nswift build --arch x86"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/include/simple.h",
"chars": 15,
"preview": "int foo(void);\n"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/include/simple.modulemap",
"chars": 48,
"preview": "module Simple {\n header \"simple.h\"\n export *\n}"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/info.json",
"chars": 2029,
"preview": "{\n \"schemaVersion\": \"1.0\",\n \"artifacts\": {\n \"simple\": {\n \"type\": \"staticLibrary\",\n \"v"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Simple.artifactbundle/simple.c",
"chars": 29,
"preview": "int foo(void) { return 42; }\n"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Sources/Example/Example.swift",
"chars": 127,
"preview": "import Simple\nimport Wrapper\n\n@main\nstruct Example {\n static func main() {\n print(foo())\n print(bar())\n"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Sources/Wrapper/include/wrapper.h",
"chars": 15,
"preview": "int bar(void);\n"
},
{
"path": "Fixtures/BinaryLibraries/Static/Package1/Sources/Wrapper/wrapper.c",
"chars": 53,
"preview": "#include \"simple.h\"\n\nint bar(void) { return foo(); }\n"
},
{
"path": "Fixtures/BinaryTargets/Inputs/DynamicLibrary/DynamicLibrary.m",
"chars": 387,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2020 Apple Inc. and the Swift project "
},
{
"path": "Fixtures/BinaryTargets/Inputs/DynamicLibrary/include/DynamicLibrary.h",
"chars": 400,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2020 Apple Inc. and the Swift project "
},
{
"path": "Fixtures/BinaryTargets/Inputs/StaticLibrary/StaticLibrary.m",
"chars": 385,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2020 Apple Inc. and the Swift project "
},
{
"path": "Fixtures/BinaryTargets/Inputs/StaticLibrary/include/StaticLibrary.h",
"chars": 399,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2020 Apple Inc. and the Swift project "
},
{
"path": "Fixtures/BinaryTargets/Inputs/SwiftFramework/SwiftFramework/Info.plist",
"chars": 857,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Fixtures/BinaryTargets/Inputs/SwiftFramework/SwiftFramework/SwiftFramework.h",
"chars": 539,
"preview": "//\n// SwiftFramework.h\n// SwiftFramework\n//\n// Created by David Hart on 17.02.20.\n// Copyright © 2020 David Hart. Al"
},
{
"path": "Fixtures/BinaryTargets/Inputs/SwiftFramework/SwiftFramework/SwiftFramework.swift",
"chars": 220,
"preview": "//\n// SwiftFramework.swift\n// SwiftFramework\n//\n// Created by David Hart on 17.02.20.\n// Copyright © 2020 David Hart"
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Package.swift",
"chars": 669,
"preview": "// swift-tools-version:5.3\n\nimport PackageDescription\n\nlet package = Package(\n name: \"TestBinary\",\n dependencies: "
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Sources/CLibrary/CLibrary.m",
"chars": 206,
"preview": "#import \"CLibrary.h\"\n\n@implementation CLibrary\n\n- (instancetype)init {\n self = [super init];\n _staticLibrary = [St"
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Sources/CLibrary/include/CLibrary.h",
"chars": 216,
"preview": "#import <StaticLibrary.h>\n#import <DynamicLibrary.h>\n\n@interface CLibrary: NSObject\n\n@property (nonatomic, readonly) Sta"
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Sources/Library/Library.swift",
"chars": 120,
"preview": "import SwiftFramework\n\npublic struct Library {\n public let framework = SwiftFramework()\n\n public init() {\n }\n}\n"
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Sources/cexe/main.m",
"chars": 119,
"preview": "#import <CLibrary.h>\n\nint main(int argc, const char* argv[]) {\n\tprintf(\"%s\", [CLibrary new].description.UTF8String);\n}\n"
},
{
"path": "Fixtures/BinaryTargets/TestBinary/Sources/exe/main.swift",
"chars": 79,
"preview": "import SwiftFramework\nimport Library\n\nprint(SwiftFramework())\nprint(Library())\n"
},
{
"path": "Fixtures/CFamilyTargets/CDynamicLookup/Foo.c",
"chars": 98,
"preview": "#include \"Foo.h\"\n\nint foo() {\n bar();\n int a = 5;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CDynamicLookup/Package.swift",
"chars": 181,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"CDynamicLookup\",\n targets: [\n"
},
{
"path": "Fixtures/CFamilyTargets/CDynamicLookup/include/Foo.h",
"chars": 23,
"preview": "void bar();\nint foo();\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Cfactorial/Package.swift",
"chars": 953,
"preview": "// swift-tools-version:5.5\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Cfactorial/Sources/factorial/factorial.c",
"chars": 149,
"preview": "//#include \"include/factorial.h\"\n#include \"factorial.h\"\nlong factorial(int n) {\n if (n == 0 || n == 1) return 1;\n "
},
{
"path": "Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Cfactorial/Sources/factorial/factorial.h",
"chars": 110,
"preview": "#ifndef factorial_h\n#define factorial_h\n\n#include <stdio.h>\n\nlong factorial(int n);\n\n#endif /* factorial_h */\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Package.swift",
"chars": 736,
"preview": "// swift-tools-version:5.5\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryNoIncludeDir/Sources/Client/main.swift",
"chars": 62,
"preview": "import Cfactorial\n\nprint(factorial(5))\nprint(\"Hello, world!\")\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/.gitignore",
"chars": 165,
"preview": ".DS_Store\n/.build\n/Packages\n/*.xcodeproj\nxcuserdata/\nDerivedData/\n.swiftpm/config/registries.json\n.swiftpm/xcode/package"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/Package.swift",
"chars": 792,
"preview": "// swift-tools-version: 5.5\n\nimport PackageDescription\n\nlet package = Package(\n name: \"CLibraryParentSearchPath\",\n "
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/Sources/CHeaderInclude/answers.c",
"chars": 93,
"preview": "\n#include \"answers.h\"\n#include \"Constants.h\"\n\nint getAnswer(void) {\n return kTheAnswer;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/Sources/CHeaderInclude/include/answers.h",
"chars": 90,
"preview": "\n#ifndef answers_h\n#define answers_h\n\nextern int getAnswer(void);\n\n#endif /* answers_h */\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/Sources/Constants/Constants.h",
"chars": 102,
"preview": "\n#ifndef Constants_h\n#define Constants_h\n\nstatic const int kTheAnswer = 42;\n\n#endif /* Constants_h */\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryParentSearchPath/Sources/HeaderInclude/FinalForm.swift",
"chars": 80,
"preview": "\nimport CHeaderInclude\n\nenum Answer {\n var value: Int { Int(getAnswer()) }\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibrarySources/Package.swift",
"chars": 188,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"CLibrarySources\",\n targets: ["
},
{
"path": "Fixtures/CFamilyTargets/CLibrarySources/Sources/Foo.c",
"chars": 87,
"preview": "#include \"Foo.h\"\n\nint foo() {\n int a = 5;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibrarySources/Sources/include/Foo.h",
"chars": 11,
"preview": "int foo();\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibrarySources/Tests/CLibrarySourcesTests/foo.swift",
"chars": 0,
"preview": ""
},
{
"path": "Fixtures/CFamilyTargets/CLibrarySources/Tests/LinuxMain.swift",
"chars": 0,
"preview": ""
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Package.swift",
"chars": 353,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"CLibraryWithSpaces\",\n targets"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar/Bar.c",
"chars": 116,
"preview": "#include \"Bar/Bar.h\"\n#include \"Foo/Foo.h\"\n\nint bar() {\n int a = foo();\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar/include/Bar/Bar.h",
"chars": 11,
"preview": "int bar();\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar with spaces/Bar.c",
"chars": 28,
"preview": "int bar() {\n return 5;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Bar with spaces/include/Bar/Bar.h",
"chars": 11,
"preview": "int bar();\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Baz/main.swift",
"chars": 51,
"preview": "import Foo\nimport Bar\n\nlet _ = foo()\nlet _ = bar()\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Foo/Foo.c",
"chars": 91,
"preview": "#include \"Foo/Foo.h\"\n\nint foo() {\n int a = 5;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/CLibraryWithSpaces/Sources/Foo/include/Foo/Foo.h",
"chars": 11,
"preview": "int foo();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Package.swift",
"chars": 907,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"ModuleMapGenerationCases\",\n t"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/Baz/main.swift",
"chars": 208,
"preview": "import CustomModuleMap\nimport UmbrellaDirectoryInclude\nimport FlatInclude\nimport UmbrellaHeader\nimport UmbrellaHeaderFla"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/CustomModuleMap/CustomModuleMap.c",
"chars": 99,
"preview": "#include \"CustomModuleMap.h\"\n\nint qux() {\n int a = 6;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/CustomModuleMap/include/CustomModuleMap.h",
"chars": 11,
"preview": "int qux();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/CustomModuleMap/include/module.modulemap",
"chars": 72,
"preview": "module CustomModuleMap {\n header \"CustomModuleMap.h\"\n\n export *\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/FlatInclude/FlatInclude.c",
"chars": 101,
"preview": "#include \"FlatIncludeHeader.h\"\n\nint bar() {\n int a = 6;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/FlatInclude/include/FlatIncludeHeader.h",
"chars": 11,
"preview": "int bar();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/NoIncludeDir/Jaz.c",
"chars": 72,
"preview": "\nint noDir() {\n int a = 6;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/NonModuleDirectoryInclude/Maz.c",
"chars": 113,
"preview": "#include \"NonModuleDirectoryInclude/Maz.h\"\n\nint maz() {\n int a = 6;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/NonModuleDirectoryInclude/include/NonModuleDirectoryInclude/Maz.h",
"chars": 11,
"preview": "int jaz();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaDirectoryInclude/Jaz.c",
"chars": 87,
"preview": "#include \"Paz.h\"\n\nint jaz() {\n int a = 6;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaDirectoryInclude/include/Paz.h",
"chars": 11,
"preview": "int jaz();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeader/UmbrellaHeader.c",
"chars": 113,
"preview": "#include \"UmbrellaHeader/UmbrellaHeader.h\"\n\nint foo() {\n int a = 5;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeader/include/UmbrellaHeader/UmbrellaHeader.h",
"chars": 11,
"preview": "int foo();\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeaderFlat/UmbrellaHeader.c",
"chars": 117,
"preview": "#include \"UmbrellaHeaderFlat.h\"\n\nint umbrellaHeaderFlat() {\n int a = 5;\n int b = a;\n a = b;\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/ModuleMapGenerationCases/Sources/UmbrellaHeaderFlat/include/UmbrellaHeaderFlat.h",
"chars": 26,
"preview": "int umbrellaHeaderFlat();\n"
},
{
"path": "Fixtures/CFamilyTargets/ObjCmacOSPackage/Package.swift",
"chars": 278,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"ObjCmacOSPackage\",\n targets: "
},
{
"path": "Fixtures/CFamilyTargets/ObjCmacOSPackage/Sources/HelloWorldExample.m",
"chars": 235,
"preview": "#import <Foundation/Foundation.h>\n#import \"HelloWorldExample.h\"\n\n@implementation HelloWorld\n- (NSString *)hello:(NSStrin"
},
{
"path": "Fixtures/CFamilyTargets/ObjCmacOSPackage/Sources/include/HelloWorldExample.h",
"chars": 113,
"preview": "#import <Foundation/Foundation.h>\n\n@interface HelloWorld : NSObject\n\n- (NSString *)hello:(NSString *)name;\n\n@end\n"
},
{
"path": "Fixtures/CFamilyTargets/ObjCmacOSPackage/Tests/ObjCmacOSPackageTests/HelloWorldTest.m",
"chars": 792,
"preview": "#import <XCTest/XCTest.h>\n\n# import \"HelloWorldExample.h\"\n\n@interface HelloWorldTest : XCTestCase\n\n@end\n\n@implementation"
},
{
"path": "Fixtures/CFamilyTargets/SwiftCMixed/Package.swift",
"chars": 294,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"SwiftCMixed\",\n targets: [\n "
},
{
"path": "Fixtures/CFamilyTargets/SwiftCMixed/Sources/CExec/main.c",
"chars": 91,
"preview": "#include \"Foo.h\"\n#include<stdio.h>\n\nint main() {\n printf(\"%d\", foo(5));\n return 0;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/SwiftCMixed/Sources/SeaExec/main.swift",
"chars": 49,
"preview": "import SeaLib\n\nlet a = foo(5)\nprint(\"a = \\(a)\")\n\n"
},
{
"path": "Fixtures/CFamilyTargets/SwiftCMixed/Sources/SeaLib/Foo.c",
"chars": 33,
"preview": "int foo(int a) {\n return a;\n}\n"
},
{
"path": "Fixtures/CFamilyTargets/SwiftCMixed/Sources/SeaLib/include/Foo.h",
"chars": 16,
"preview": "int foo(int a);\n"
},
{
"path": "Fixtures/Collections/GitHub/contributors.json",
"chars": 1020,
"preview": "[\n {\n \"login\": \"octocat\",\n \"id\": 1,\n \"node_id\": \"MDQ6VXNlcjE=\",\n \"avatar_url\": \"https://github.com/images/e"
},
{
"path": "Fixtures/Collections/GitHub/languages.json",
"chars": 56,
"preview": "{\n \"Swift\": 3836385,\n \"Shell\": 96027,\n \"C\": 87433,\n}\n"
},
{
"path": "Fixtures/Collections/GitHub/license.json",
"chars": 2465,
"preview": "{\n \"name\": \"LICENSE\",\n \"path\": \"LICENSE\",\n \"sha\": \"401c59dcc4570b954dd6d345e76199e1f4e76266\",\n \"size\": 1077,\n \"url\""
},
{
"path": "Fixtures/Collections/GitHub/metadata.json",
"chars": 19184,
"preview": "{\n \"id\": 1296269,\n \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n \"name\": \"Hello-World\",\n \"full_name\": \"octocat/Hello-W"
},
{
"path": "Fixtures/Collections/GitHub/readme.json",
"chars": 840,
"preview": "{\n \"type\": \"file\",\n \"encoding\": \"base64\",\n \"size\": 5362,\n \"name\": \"README.md\",\n \"path\": \"README.md\",\n \"content\": \""
},
{
"path": "Fixtures/Collections/GitHub/releases.json",
"chars": 7142,
"preview": "[\n {\n \"url\": \"https://api.github.com/repos/octocat/Hello-World/releases/1\",\n \"html_url\": \"https://github.com/octo"
},
{
"path": "Fixtures/Collections/JSON/good.json",
"chars": 3807,
"preview": "{\n \"name\": \"Sample Package Collection\",\n \"overview\": \"This is a sample package collection listing made-up packages.\",\n"
},
{
"path": "Fixtures/Collections/JSON/good_signed.json",
"chars": 4019,
"preview": "{\n \"name\": \"Sample Package Collection\",\n \"overview\": \"This is a sample package collection listing made-up packages.\",\n"
},
{
"path": "Fixtures/Collections/Signing/Test_ec_key.pem",
"chars": 227,
"preview": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFyZDwhGj2Q6ZchEt6DIQSptRk9yKPo60JH5x4u3p4YmoAoGCCqGSM49\nAwEHoUQDQgAEHg58TCXScU6z"
},
{
"path": "Fixtures/Collections/Signing/Test_rsa_key.pem",
"chars": 1675,
"preview": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAk1a/7/deGbDnbe9K8/LzN7fkx4D0kzCHIBlCuSylKOJKiPQ5\nMHH13IXAKJYbudkufYdbACT"
},
{
"path": "Fixtures/Coverage/Simple/Package.swift",
"chars": 797,
"preview": "// swift-tools-version: 6.2\n// The swift-tools-version declares the minimum version of Swift required to build this pack"
},
{
"path": "Fixtures/Coverage/Simple/Sources/Simple/Simple.swift",
"chars": 209,
"preview": "// The Swift Programming Language\n// https://docs.swift.org/swift-book\n\npublic func greet(name: String = \"world\") -> Str"
},
{
"path": "Fixtures/Coverage/Simple/Tests/SimpleTests/SimpleTests.swift",
"chars": 408,
"preview": "import Testing\nimport XCTest\n@testable import Simple\n\n@Test(\n arguments: [\n \"Bob\",\n \"Alice\",\n \"\""
},
{
"path": "Fixtures/DependencyResolution/External/Branch/Bar/Package.swift",
"chars": 939,
"preview": "// swift-tools-version:5.5\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
},
{
"path": "Fixtures/DependencyResolution/External/Branch/Bar/Sources/Bar/Bar.swift",
"chars": 58,
"preview": "import Foo\n\nstruct Bar {\n var text = \"Hello, World!\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Branch/Foo/Package.swift",
"chars": 893,
"preview": "// swift-tools-version:5.5\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
},
{
"path": "Fixtures/DependencyResolution/External/Branch/Foo/Sources/Foo/Foo.swift",
"chars": 46,
"preview": "struct Foo {\n var text = \"Hello, World!\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Bar/Package.swift",
"chars": 311,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Bar\",\n dependencies: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Bar/Sources/SeaLover/Sea.c",
"chars": 48,
"preview": "#include <Foo/Foo.h>\n\nvoid cool() {\n foo();\n}"
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Bar/Sources/SeaLover/include/Sea.h",
"chars": 0,
"preview": ""
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Bar/Sources/SwiftExec/main.swift",
"chars": 18,
"preview": "import Foo\n\nfoo()\n"
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Foo/Foo.c",
"chars": 20,
"preview": "void foo() {\n \n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Foo/Package.swift",
"chars": 231,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Foo\",\n products: [\n .l"
},
{
"path": "Fixtures/DependencyResolution/External/CUsingCDep/Foo/include/Foo/Foo.h",
"chars": 12,
"preview": "void foo();\n"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/FisherYates/Package.swift",
"chars": 264,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"FisherYates\",\n products: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/Complex/FisherYates/src/Fisher-Yates_Shuffle.swift",
"chars": 715,
"preview": "\npublic extension Collection {\n func shuffle() -> [Iterator.Element] {\n var array = Array(self)\n array."
},
{
"path": "Fixtures/DependencyResolution/External/Complex/PlayingCard/Package.swift",
"chars": 264,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"PlayingCard\",\n products: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/Complex/PlayingCard/src/PlayingCard.swift",
"chars": 546,
"preview": "public struct PlayingCard: Equatable {\n let rank: Rank\n let suit: Suit\n\n public init(rank: Rank, suit: Suit) {\n"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/PlayingCard/src/Rank.swift",
"chars": 750,
"preview": "public enum Rank : Int {\n case Ace = 1\n case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten\n case Jack, Q"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/PlayingCard/src/Suit.swift",
"chars": 697,
"preview": "public enum Suit: String {\n case Spades, Hearts, Diamonds, Clubs\n}\n\n// MARK: - Comparable\n\nextension Suit: Comparable"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/app/Package.swift",
"chars": 445,
"preview": "// swift-tools-version:5.0\nimport PackageDescription\n\nlet package = Package(\n name: \"Dealer\",\n platforms: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/Complex/app/main.swift",
"chars": 644,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2014 - 2017 Apple Inc. and the Swift p"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards/Package.swift",
"chars": 514,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"DeckOfPlayingCards\",\n product"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards/src/Deck.swift",
"chars": 1377,
"preview": "/*\n This source file is part of the Swift.org open source project\n\n Copyright (c) 2014 - 2017 Apple Inc. and the Swift p"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards-local/Package.swift",
"chars": 485,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"DeckOfPlayingCards\",\n product"
},
{
"path": "Fixtures/DependencyResolution/External/Complex/deck-of-playing-cards-local/src/Deck.swift",
"chars": 0,
"preview": ""
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/App/Package.swift",
"chars": 415,
"preview": "// swift-tools-version:5.3\n\nimport PackageDescription\n\nlet package = Package(\n name: \"App\",\n dependencies: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/App/main.swift",
"chars": 46,
"preview": "import Foo\nimport Bar\n\npublic func main() {\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/Bar/Bar.swift",
"chars": 24,
"preview": "public func hello() {\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/Bar/Package.swift",
"chars": 231,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Bar\",\n products: [\n .l"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/BarMirror/Bar.swift",
"chars": 24,
"preview": "public func hello() {\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/BarMirror/Package.swift",
"chars": 231,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Bar\",\n products: [\n .l"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/Foo/Foo.swift",
"chars": 24,
"preview": "public func hello() {\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Mirror/Foo/Package.swift",
"chars": 231,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Foo\",\n products: [\n .l"
},
{
"path": "Fixtures/DependencyResolution/External/PackageLookupCaseInsensitive/dep/Package.swift",
"chars": 220,
"preview": "// swift-tools-version:5.0\n\nimport PackageDescription\n\nlet package = Package(\n name: \"Dep\",\n products: [\n .library("
},
{
"path": "Fixtures/DependencyResolution/External/PackageLookupCaseInsensitive/dep/Sources/Dep/dep.swift",
"chars": 100,
"preview": "public struct dep {\n public private(set) var text = \"Hello, World!\"\n\n public init() {\n }\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/PackageLookupCaseInsensitive/pkg/Package.swift",
"chars": 323,
"preview": "// swift-tools-version:5.4\n\nimport PackageDescription\n\nlet package = Package(\n name: \"pkg\",\n products: [\n .library("
},
{
"path": "Fixtures/DependencyResolution/External/PackageLookupCaseInsensitive/pkg/Sources/pkg/pkg.swift",
"chars": 100,
"preview": "public struct pkg {\n public private(set) var text = \"Hello, World!\"\n\n public init() {\n }\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Simple/Bar/Package.swift",
"chars": 257,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Bar\",\n dependencies: [\n "
},
{
"path": "Fixtures/DependencyResolution/External/Simple/Bar/main.swift",
"chars": 18,
"preview": "import Foo\n\nfoo()\n"
},
{
"path": "Fixtures/DependencyResolution/External/Simple/Foo/Foo.swift",
"chars": 28,
"preview": "public func foo() {\n\t{}()\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/Simple/Foo/Package.swift",
"chars": 231,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Foo\",\n products: [\n .l"
},
{
"path": "Fixtures/DependencyResolution/External/XCFramework/Bar.xcframework/Info.plist",
"chars": 774,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Fixtures/DependencyResolution/External/XCFramework/Foo/Foo.swift",
"chars": 28,
"preview": "public func foo() {\n\t{}()\n}\n"
},
{
"path": "Fixtures/DependencyResolution/External/XCFramework/Package.swift",
"chars": 304,
"preview": "// swift-tools-version:5.3\n\nimport PackageDescription\n\nlet package = Package(\n name: \"Foo\",\n products: [\n ."
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Package.swift",
"chars": 383,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Foo\",\n targets: [\n .ta"
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Bar/Bar.swift",
"chars": 124,
"preview": "import Baz\nimport Cat\n\npublic class Bar {\n public init()\n {}\n\n public let baz = Baz()\n public let cat = Cat("
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Baz/Baz.swift",
"chars": 75,
"preview": "public class Baz {\n public let value = \"Baz\"\n public init()\n {}\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Cat/Cat.swift",
"chars": 91,
"preview": "import Sound\n\npublic class Cat {\n public let sound = Sound()\n public init()\n {}\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Foo/Foo.swift",
"chars": 116,
"preview": "import Bar\n\nfunc foo() -> String {\n let bar = Bar()\n return bar.cat.sound.description + \" \" + bar.baz.value\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Foo/main.swift",
"chars": 119,
"preview": "print(foo())\n\n// TODO copy this fixture and make one that should not compile due to the dependency not being specified\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Complex/Sources/Sound/Sound.swift",
"chars": 140,
"preview": "public class Sound: CustomStringConvertible {\n public init()\n {}\n\n public var description: String {\n ret"
},
{
"path": "Fixtures/DependencyResolution/Internal/InternalExecutableAsDependency/Bar/Bar.swift",
"chars": 72,
"preview": "public struct Bar {\n public init() {}\n public let value = \"Bar\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/InternalExecutableAsDependency/Bar/main.swift",
"chars": 0,
"preview": ""
},
{
"path": "Fixtures/DependencyResolution/Internal/InternalExecutableAsDependency/Foo/Foo.swift",
"chars": 36,
"preview": "class Foo {\n let value = \"Foo\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/InternalExecutableAsDependency/Foo/main.swift",
"chars": 50,
"preview": "import Bar\n\nprint(Foo().value)\nprint(Bar().value)\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/InternalExecutableAsDependency/Package.swift",
"chars": 229,
"preview": "// swift-tools-version:4.2\nimport PackageDescription\n\nlet package = Package(\n name: \"Simple\",\n targets: [\n "
},
{
"path": "Fixtures/DependencyResolution/Internal/Simple/Bar/Bar.swift",
"chars": 72,
"preview": "public struct Bar {\n public init() {}\n public let value = \"Bar\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Simple/Foo/Foo.swift",
"chars": 36,
"preview": "class Foo {\n let value = \"Foo\"\n}\n"
},
{
"path": "Fixtures/DependencyResolution/Internal/Simple/Foo/main.swift",
"chars": 50,
"preview": "import Bar\n\nprint(Foo().value)\nprint(Bar().value)\n"
}
]
// ... and 1983 more files (download for full content)
About this extraction
This page contains the full source code of the swiftlang/swift-package-manager GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2183 files (15.2 MB), approximately 4.1M tokens, and a symbol index with 84 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.