What happened to the async branch?

i was depending on commit hash 7566a6a7c279cd6e73ac35ca96a9260de7441f36, which is apparently not available to the SPM anymore.

error: could not find the commit 7566a6a7c279cd6e73ac35ca96a9260de7441f36 in https://github.com/apple/swift-argument-parser
error: ExitCode(rawValue: 1)

the newer commits for some reason do not contain the async API anymore, even though they are still in the async branch (?). what happened?

error: protocol 'AsyncMain' does not exist in module 'ArgumentParser'
import protocol ArgumentParser.AsyncMain

We are working on getting the async branch into main properly. It's likely that a force push to that branch is what caused the commit you reference to be missing.

Some of the types involved have changed, see Support an `async` entry point for commands by natecook1000 · Pull Request #404 · apple/swift-argument-parser · GitHub

If you're targeting swift 5.6 or newer you will not have to use AsyncMain which has also been renamed to AsyncMainProtocol.

3 Likes

It can be a good idea to maintain your own fork of dependencies for this reason. If you have a machine with the commit you were using you can always tag it and push it to your own fork to avoid destabilizing things.

1 Like