[DependencyResolver] Use `merging` for constraint container update. - This fixes some subtlety in the previous code about which merge operations
could perform partial update on the container, some call sites relied
critically on one container not doing that.
- Instead, switch both containers to only expose a `merging` method which
provides a new result. This is somewhat less efficient with the current
implementations, but should go out in the was...
[DependencyResolver] Clean up constraint set subscripting of unassigned identifiers. - Conceptually these just map to a constraint of .any, which simplifies the
clients.
[Xcodeproj] Add a Plist enumAlso, moves Build settings to use this new type respecting proper
quoting rules.
- <rdar://problem/28039632> SR-1754: Spaces should be escaped in
HEADER_SEARCH_PATHS
[PackageBuilder] Error on invalid manifest configError out when pkgconfig and providers are used by non
system module packages.
- SR-2533
- <rdar://problem/28118479> SR-2533 Error out when pkgconfig and
providers are used by non system module packages
[Utility] Priortize pkgconfig env variableThe env variable should be searched first because of possible overrides.
- <rdar://problem/28100608> pkg-config environment variable should be
considered first for search paths
Improve the error message that's shown when trying to access a package by a local path URL that doesn't refer to a repository.rdar://problem/28039345
https://bugs.swift.org/browse/SR-2261
[PackageBuilder] Fix test target ref in manifest for external packagesThis was caused due to test targets not being constructed when a package
acts as a dependency.
<rdar://problem/28038874> SR-2353: Test dependencies block a package
for being used downstream
Check for loose source files in the `Tests` directory (it's a package layout validation error).https://bugs.swift.org/browse/SR-2270
rdar://problem/28039111
[Xcodeproj] Add search path to ClangModule's own include dir- SR-2526
- <rdar://problem/28074850> SR-2526 [xcodeproj] Add "include" dir to C
target's header search paths
Fix a bug in the recent Xcode project generation changes that caused filenames containing certain characters (such as parentheses) to produce broken Xcode project files.This should -really- not be a responsibility of the client; there should be API to write
out these these plist entries with proper quoting etc. But that's a diff for another day.
[Commands] Add temporary Workspace support for creating a `Packages` subdir. - This is just to maintain compatibility with the existing behavior while
using the new resolver/workspace infrastructure -- among other things this
allows us to flip the switch without requiring a simultaneous change to the
tests which depend on this behavior.
[Commands] Add experimental --enable-new-resolver flag. - This is functional for many packages, but doesn't yet pass all of our tests
nor is it near ready to becoming the default.
[Commands] Add Workspace support for cloning missing checkouts. - There are a lot of FIXMEs left here, but this is a start which gets close to
having a useful end-to-end Workspace based replacement for our current
workflows.
[Commands] Add initial Workspace support for loading a package graph. - This is the basic "load and fetch-if-necessary" operation used by all command
line tools.
- This doesn't yet support interacting with the dependency resolver to fetch
packages which aren't checked out yet.
- This is also showing a need for some more testing infrastructure around being
able to test mock package graphs...
[PackageGraph] Change loader to take pre-loaded manifests. - I think I have realized it is more appropriate for the loader to be decouple
from the thing responsible for loading what is effectively the manifest
graph.
- This leaves PackageGraphLoader with a relatively thin set of
responsibilities, but I think it is appropriate to still have it to decouple
the _loading_ process from the fully formed graph data structure.