About the Swift Package Manager
The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
A package consists of Swift source files and a manifest file. The manifest file, called Package.swift, defines the package’s name and its contents using the PackageDescription
module.
Swift Package Registry
The Swift Package Registry is a collection of Swift Packages. Since the GitHub Swift Package Registry is not currently released and the IBM Swift Package Catalog is has been killed, the Swift Package Registry fills the current gap for easier searching and discoverability of Swift Packages.
Technical
This GitHub App is a Node.js application built with Probot. It parses all Swift packages using Docker. You can help contribue to this project by visiting the GitHub page. Issues and pull requests are welcomed!
Only public repositories are supported. When adding packages manually, a personal access token is used to fetch information about the package.
Docker is used to help validate packages. Just parsing Package.swift is not always enough. It is also an additional check for Swift version compatability.
You can access the Swift Package Registry via swiftpackageregistry.com (main site), swift-packages.com, swiftpkg.dev, SVVlFT.com, and swiftdependencies.com.
Development
Setup
Install dependencies
npm install
Setup .env. You can use .env.exmaple as a base.
Run the bot
npm start
GitHub Action
ncc build -o action action.js
For locally testing Swift Package Collections you will need to be using TLS/SSL. This can be achieved with the https-localhost
npm package and manually modifying probot to use that over it's regular express web server.
Contributing
If you have suggestions for how Swift Package Registry could be improved, or want to report a bug, open an issue! We'd love all and any contributions.
For more, check out the Contributing Guide.