Search code examples
swift-package-manager

How do I use the same package branch in all dependencies?


We get an error when resolving our swift package:

error: packageC is required using two different revision-based requirements (feature1 and development), which is not supported

Our dependency tree looks like:

 Package A
   ├ Package B
   │   └ Package C
   └ Package C

In the Package.swift manifest of PackageA we have a dependency to PackageC's branch feature1.

In the Package.swift manifest of PackageB we also have a dependency to PackageC. But this time to branch development.

The Question:

Is there a way to have all PackageC's use the specified branch in specified in PackageA's manifest? (Besides manually specifying it in all the dependencies manifests)


Solution

  • I got around the problem by setting environment variables that all the manifest reads their required branch names from.

    ProcessInfo.processInfo.environment["package_branch"]