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

Node.js CI

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.