swiftlang/swift-package-manager

[SR-4385] Enable SPM to describe which packages are edited

Open

#5057 opened on Mar 28, 2017

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Swift (10,145 stars) (1,462 forks)batch import
enhancementgood first issue

Description

Previous ID SR-4385
Radar None
Original Reporter djones6 (JIRA User)
Type New Feature
Votes 0
Component/s Package Manager
Labels New Feature, StarterBug
Assignee None
Priority Medium

md5: cd414a7c57207ae4a22460897a82f609

Issue Description:

As of Swift 3.1, if I put a package into editable mode, the source for that package ends up in Packages/ and so it is easy to see which packages are currently considered 'edited'.

However, this isn't so easy when combined with the --build-path option. For example:

swift package --build-path=build1 fetch
swift package --build-path=build1 edit <package> --revision master
swift package --build-path=build2 fetch

...results in build1 using the source in Packages/<package> but build2 does not.

The existing command show-dependencies gives clues as to which packages are being edited - in the example above, a package would be shown as <package>.git@unspecified in build1 but a tagged version in build 2.

It would be useful to have a way to definitively list which sources are being used to build a given build directory.

This is particularly the case as of SE-0149 because a package could be linked to source elsewhere via --path. For convenience, a symlink is placed in Packages/ but if multiple builds used a different path for the same dependency, the link would only reflect the state of one of those builds.

Contributor guide