Hey everyone! 👋 Welcome to the twenty-fifth issue of the iOS CI Newsletter. Hope you've had a great couple of weeks!
What a couple of weeks these have been if you're a Swift developer! We got a new version of iOS and Swift, a new release of Xcode and brand-new devices too. I bought myself an iOS 15 Pro and an Apple Watch Ultra 2, which were delivered on Friday and I am loving them so far!
In terms of what I have been working on, Hidde and I have been busy getting a vastly improved and redesigned version of NowPlaying ready for release. We're hoping to have it out at some point in October with some great new features such as interactive widgets, better airdrop support and hopefully App Clips to better share songs with friends.
📬 I'll keep you all up to date on how the new version is coming along, but in the meantime, let's get into this week's newsletter!
To celebrate this release, I wrote an article on how to set up Swift on a Linux CI/CD machine on GitHub Actions using swiftly.
After I tooted about my article on how to set up Swift on Linux last week, Matt Massicotte replied with a link to his Swift Package template, which I hadn't come across before.
The template, which is open-source and available on GitHub, is a great starting point for making new Swift packages. It includes several useful features, such as a setting to enable complete concurrency checking, a YAML file with configuration for adding the new package to the Swift Package Index, and a GitHub Actions workflow for running tests on CI/CD for both Apple and Linux platforms.
Together with the release of iOS 17, Apple announced last week that Swift 5.9 is now out too!
Along with some great improvements to the language, Swift 5.9 also includes some new game-changing features for tooling and CI/CD, such as the new accessibility audits in Xcode 15 and the new network request permissions for Swift Package plugins.
Node 16 has now reached its end of life and, as a consequence, GitHub has started its deprecation process for GitHub actions.
If you're using GitHub Actions that use Node under the hood, such as actions/checkout or actions/upload-artifact, you'll start seeing warnings in your logs. To silence them, you'll need to update to the latest version of these actions (v4), which are now available and use Node 20.
If you have a bunch of workflows you need to update, I would recommend reading this article by Marco Eidinger as it includes a handy script to automate the process that you can update to use version 4 instead of 3.
A session that caught my eye and I am looking forward to is Apple @ AWS—CI/CD developer environments on EC2 Mac by Dave Siederer, a Senior Specialist Solutions Architect for EC2 Mac at AWS. There has been a recent trend of companies moving their CI/CD systems to EC2 Macs, and I'm looking forward to hearing more about the benefits and experiences of doing so.
The Swift Forums are a great place to keep up to date with the latest developments in the Swift community. This week, Stuart Montgomery, a software engineer working on the XCTest team at Apple, shared a new macro-based open-source Swift testing library.
I haven't tried it yet, but the code snippets in the post look very interesting and I'm looking forward to giving it a go.