Update swift-5.0-branch?

I depend on SPM package in my project. I depend on swift-5.0-branch. Also, I still use Swift 4.2 and Swift 5.0 at the same time for different SPM tools I develop. swift-5.0-branch happened to build with both Swift versions.

After merging a9367490 I can no longer build my products because swift-llbuild dependency now lacks Swift 4.2 package file. That happens because SPM depends on master branch of swift-llbuild.

I wonder if you could push a fix to swift-5.0-branch of SPM so it could still be buildable for older Swift versions like it was before. I could open a PR, but I wonder what swift-llbuild commit should be used, I guess dependency should be declared as .revision("")?

cc @ddunbar , @Aciid

3 Likes

It looks like without the latest commit in swift-llbuild SPM target builds in Swift 4.2 environment.

I've also tried to use swift-llbuild's swift-5.0-branch, but build fails for some not very obvious reason. That's strange though, I expected a SPM's swift-5.0-branch + llbuild's swift-5.0-branch to work together without any issues.

Branches are in flux by definition. Is there a reason you cannot depend on a semantic version? 0.4.0 is the latest. If you can’t, then depending on specific revisions yourself is probably wiser, and I would probably use the swift-X.X-RELEASE tags as starting points when you are trying to find working revisions.

Whatever version I'd depend on, SPM will still refer to master branch of llbuild, that would still break my flow. The issue is that SPM does not have a fixed version for its dependency, so changes inside llbuild might break projects that depend on it transitively.

The semantic versions of SwiftPM do rely in turn on semantic versions of LLBuild.

Only evolving branches of SwiftPM depend on evolving branches of LLBuild.

1 Like

Thanks for pointing to this, I appreciate your help.

Anyway, even 0.4.0 is not usable with Swift 4.2 toolchain.

'llbuild' /...../.build/checkouts/swift-llbuild.git--4550182610071526611: 
error: could not find source files for target(s): llvmDemangle; 
use the 'path' property in the Swift 4 manifest to set a custom target path
'SwiftPM' /...../.build/checkouts/swift-package-manager.git--1970998161319157756: 
error: product dependency 'llbuildSwift' not found

If I switch to // swift-tools-version:5.0 toolchain, it works.

You shouldn't be using SwiftPM's Swift 5 branch with the Swift 4.2 toolchain.

Terms of Service

Privacy Policy

Cookie Policy