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
rauhul
(Rauhul Varma)
2
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
dabrahams
(Dave Abrahams)
3
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