The Swift Package Index Blog
SubscribeSwitching to ephemeral macOS build runners
We recently transitioned our Mac build machines that power our compatibility and documentation build system from a manually configured and maintained collection of Mac mini machines to a new Orka cluster from MacStadium. It provides complete isolation for builds, and a more efficient use of our build machines.
Customising the DocC documentation theme
Does Swift Package Index support DocC’s support for custom themes? Of course we do! Find out how, and see a great example of a package that’s taking advantage of this feature.
Support for Swift 5.10
The march of Swift's progress continues, the same is true for the Swift Package Index! We're delighted to announce that compatibility results for Swift 5.10 are available on every package page!
Highlighting package funding links
Are services like GitHub Sponsors, Open Collective, Patreon, and Ko-fi the best way to fund open-source software development? They may not be a perfect solution, but they are the best “one size fits all” solution we have, so let’s highlight them.
Revealing and explaining package scores
When you search the Swift Package Index, the order in which the search results are displayed is determined by a combination of the relevance of text in the package name and description, and an internal score based on various metrics. Today, we’re adding a feature to make those scores public and transparent.
Supporting visionOS
We’ve added support for visionOS to our compatibility testing, showing it on the package pages and build badges.
Supporting Swift 5.9 Betas
How could we improve on adding support for a new Swift version after just one week of it being available? We could add support for Swift 5.9 one week after the release of the first beta version!
Validating Swift Package Index Manifest Files
Swift Package Index Manifest files are YAML files that configure how the package index processes your package. With our online validator you can now confirm the format is correct without having to wait for reprocessing.
Supporting Swift 5.8
Last Thursday, Apple released Swift 5.8, and today we are delighted to announce that the Swift Package Index already has full support for parsing and processing Swift packages using Xcode 14.3 and Swift 5.8 across all our supported platforms.
Welcoming Apple as a supporter of the Swift Package Index
As we approach our third anniversary working on the Swift Package Index, we are thrilled to announce that Apple is adding their public and financial support to the project.
Recognising Package Authors
The Swift Package Index now recognises primary contributors to open-source Swift packages by including author information alongside package metadata. Thank you to everyone who contributes to open-source Swift software!
Externally hosted package documentation
Using auto-hosted documentation remains the easiest way to get your package’s documentation available on the web, but we now also support documentation for projects that have more complex requirements or well-established documentation that already lives on the web.
Versioned DocC Documentation
We rolled out auto-generating DocC documentation exactly two months ago, and now we’re rolling out phase two. Versioned documentation!
Searching for plugins?
With Swift 5.6, Xcode and the Swift Package Manager gained a new product type, plugins, and we’re delighted to announce we now have support for filtering search results by whether or not they include a plugin.
We need your help to fund this project
As an open-source project without the backing of a big company, we need your help to keep this project going.
Auto-generating, Auto-hosting, and Auto-updating DocC Documentation
DocC is Apple’s recommended way to provide documentation for your packages, and launching today, the Swift Package Index can generate, host, and update package documentation for any package in the index!
Two years of the Swift Package Index
It’s been exactly two years since the first commit of the Swift Package Index! More than 950 pull requests and 5,000 commits later, we now index and compatibility test over 4,500 packages!
We support Ukraine
Russia’s invasion of Ukraine is appalling and we support Ukraine.
Keeping up with dependency changes
How often do you update your package dependencies, and when you do, do you check what’s new or changed? We have a new tool that can help!
Improvements to package search
Recently, we’ve been focusing our attention on improving search here on the Swift Package Index, and it’s time to let you all know what we’ve implemented!
M1 Pro and M1 Max Xcode Build and Test Benchmarks
We’ve run real-world performance benchmarks with the new M1 MacBook Pro machines against M1 and Intel machines.
Package Dependencies - Step One
In pursuit of helping you make better decisions about the packages you depend on, we’re taking a step towards exposing dependency information for all packages!
Launching Swift Package Collections
What are package collections? JSON descriptions of Swift package metadata. What does the Swift Package Index have in droves? Metadata about Swift packages! As soon as we heard about package collections in Swift 5.5, we knew we had to support it.
What’s Next? - May 2021
Authors, keywords, dependencies, a home page redesign, package collections, and more! Will we ever get all of this done? We’re going to try!
Progress Report - May 2021
Three months ago, we published a list of areas that we wanted to focus on next. We’re just about to update that list for the next few months, but before we do that, let’s check-in quickly with how well we stayed on track since February!
Using the SPI Playgrounds app to file better bug reports
If you’ve been wondering why we created the SPI Playgrounds app, read on for a story where we used a playground to file a better bug report in the Vapor project.
How the Swift Package Index project got started because of a button
How did the Swift Package Index project get started, and why does a button feature so prominently in the story? Read on to find out.
Launching the Swift Package Index Playgrounds app for macOS
Try out any Swift package in Xcode with just a couple of clicks. It’s the launch of the first native app from the Swift Package Index!
Hosting the Swift Package Index
Making any open-source project sustainable for the long term is challenging in many ways, but with the Swift Package Index we also need significant hardware resources to keep it available.
What’s Next? - February 2021
It’s been about seven months since we launched the Swift Package Index and we’ve been hard at work implementing a few major updates. Are we done? No, we are not!
Inline README Files!
Where’s the most important source of information for deciding whether a package is suitable for your needs? It’s in the README file!
Keeping Up To Date with Swift Packages
How do you keep up with new releases of the packages you use? How do you discover new packages? It’s a tough challenge to keep up to date with everything that the community releases, so we have some announcements today that can help you stay informed!
The Swift Package Index Metadata File – First Steps
The Swift Package Index gathers most of the metadata about a package from external sources. The package manifest, the git repository, and GitHub. But, there are some things we need to know that are specific to the Swift Package Index. Learn how to take advantage of the extra settings available to your package.
Funding the Future of the Swift Package Index
Many open-source projects are just code and don’t need constant attention. The Swift Package Index is a little different, so we are opening up GitHub sponors for the project. We’d love your support.
Building 3,238 Swift Packages for Apple Silicon
As part of the Swift Package Index build system, we have processed what must be the most extensive test of Apple Silicon compatibility outside of Apple. Here’s what we found.
Launching Language and Platform Package Compatibility
We decided that one of the most important pieces of information we could provide on a package metadata page was what versions of Swift, and what platforms it was compatible with. Building that feature turned out to be quite an epic journey.
Say Hello to the Swift Package Index Blog
It’s always hard to know when to ship v1 of a project. Which features get included? Are there things that can wait? It’s a balancing act. You’re excited to show the world what you built, but is it good enough?