-
Notifications
You must be signed in to change notification settings - Fork 302
Use the new SwiftPM API to load the build plan #1973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use the new SwiftPM API to load the build plan #1973
Conversation
3e7ca95
to
0c4c75c
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
Will need to update this to only build plugins when background indexing is enabled so that we don’t conflict with the regular build directory. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice 😍
0c4c75c
to
1d65ff0
Compare
1d65ff0
to
95e49b5
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
swiftlang/swift-package-manager#8286 @swift-ci please test Windows platform |
95e49b5
to
54a1e02
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
swiftlang/swift-package-manager#8286 @swift-ci please test Windows platform |
61b34fb
to
d762363
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
swiftlang/swift-package-manager#8286 @swift-ci please test Windows platform |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Looks good to me
d762363
to
f142b5c
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
f142b5c
to
5f25d6a
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
We previously skipped building/running tool plugins here, which meant that the compiler arguments for a target also missed any generated sources. Use the new `BuildDescription.load` API from SwiftPM to address this. Resolves rdar://102242345.
This *shouldn't* be needed, but allows running plugins to be skipped if there's any unexpected interactions with background indexing.
5f25d6a
to
a534385
Compare
swiftlang/swift-package-manager#8286 @swift-ci please test |
swiftlang/swift-package-manager#8286 @swift-ci please test Windows platform |
Since we re-index source files if the build server sends us a `buildTarget/didChange` notification, we no longer need to wait for an up-to-date build graph when a file is modified. This resolves an issue that causes a `Scheduling tasks` progress to appear in the status bar whenever a file in the project is changed. Before swiftlang#1973, this happened fairly frequently during the initial indexing when a header file was written into the build directory. After that PR the `Scheduling Indexing` status appears a lot more frequently, namely every time the index’s database is modified, which happens quite all the time during indexing...
Since we re-index source files if the build server sends us a `buildTarget/didChange` notification, we no longer need to wait for an up-to-date build graph when a file is modified. This resolves an issue that causes a `Scheduling tasks` progress to appear in the status bar whenever a file in the project is changed. Before swiftlang#1973, this happened fairly frequently during the initial indexing when a header file was written into the build directory. After that PR the `Scheduling Indexing` status appears a lot more frequently, namely every time the index’s database is modified, which happens quite all the time during indexing...
Since we re-index source files if the build server sends us a `buildTarget/didChange` notification, we no longer need to wait for an up-to-date build graph when a file is modified. This resolves an issue that causes a `Scheduling tasks` progress to appear in the status bar whenever a file in the project is changed. Before swiftlang#1973, this happened fairly frequently during the initial indexing when a header file was written into the build directory. After that PR the `Scheduling Indexing` status appears a lot more frequently, namely every time the index’s database is modified, which happens quite all the time during indexing...
… currently happening - **Issue**: Since swiftlang#1973, we are watching for all changes in SourceKit-LSP. This means that we get notified every time the index database is changed. Each of these modifications triggers a new task that waits for build system updates to determine if the modified file needs to be re-indexed. While this task finishes very quickly, it still causes `Scheduling indexing` to replace the `Indexing x / y` in the index status during initial indexing, which looks very noisy. - **Explanation**: To avoid this flickering, only show `Scheduling indexing` in the index status if we aren’t already indexing any files - **Scope**: Index progress status - **Original PR**: This is a significantly reduced version of swiftlang#2051 - **Risk**: Low, this only changes the precedence of status messages in the indexing status - **Testing**: Manually verified that we don’t see `Scheduling indexing` appear during initial indexing of a package - **Reviewer**: @bnbarham
Since we re-index source files if the build server sends us a `buildTarget/didChange` notification, we no longer need to wait for an up-to-date build graph when a file is modified. This resolves an issue that causes a `Scheduling tasks` progress to appear in the status bar whenever a file in the project is changed. Before swiftlang#1973, this happened fairly frequently during the initial indexing when a header file was written into the build directory. After that PR the `Scheduling Indexing` status appears a lot more frequently, namely every time the index’s database is modified, which happens quite all the time during indexing...
Since we re-index source files if the build server sends us a `buildTarget/didChange` notification, we no longer need to wait for an up-to-date build graph when a file is modified. This resolves an issue that causes a `Scheduling tasks` progress to appear in the status bar whenever a file in the project is changed. Before swiftlang#1973, this happened fairly frequently during the initial indexing when a header file was written into the build directory. After that PR the `Scheduling Indexing` status appears a lot more frequently, namely every time the index’s database is modified, which happens quite all the time during indexing...
We previously skipped building/running tool plugins here, which meant that the compiler arguments for a target also missed any generated sources. Use the new
BuildDescription.load
API from SwiftPM to address this.Fixes #665
Resolves rdar://102242345.
Resolves rdar://144557689.