-
Notifications
You must be signed in to change notification settings - Fork 201
update package deps for custom project root #1412
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
Merged
Merged
Changes from 1 commit
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
We actually want to keep this at 1.1.0 instead of
main
since these versions should match what we use for building the toolchain. When building the swift toolchain, the build script builds against swift-syntax and swift-foundation-icu's main branch, but it builds against a tag of swift-collections since that package is developed outside of the toolchain and tagged every so often. When building a toolchain, this JSON file determines what is checked out: https://github.com/swiftlang/swift/blob/3bacfa7fb974e89ad7278f727ccd54a6643b87b6/utils/update_checkout/update-checkout-config.json#L142 (i.e. it determines what branch/tag is checked out and then specified viaSWIFTCI_USE_LOCAL_DEPS
when running in CI) so ideally these dependencies (for local package development outside of the toolchain) will use the same-ish dependenciesThere 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.
@jmschonfeld Ahh… interesting! I can change this back. Is the idea to keep this version here and the version from
update-checkout-config.json
bound together manually? We don't have any easy way to keep that version defined in just one place and then queried dynamically?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.
Does this all then imply that we don't currently have a
Foundation
CI job that builds against themain
commit onSwift-Collections
? If in theory a bad commit did land onCollections
that broke something inFoundation
we might not know about it untilCollections
pushes a new version tag?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.
Yes unfortunately these versions need to be kept in sync manually.
update-checkout-config.json
is considered the source of truth as it defines what refs of each project are checked out when building a toolchain. We also provide the dependencies in our SwiftPM and CMake manifests as conveniences to quickly check out / build dependencies locally without building the entire toolchain. Unfortunately there aren't any mechanisms today (and it would not be possible to build one for the SwiftPM manifest at least) that could read the dependency information from an external source. While this is a manual process, these versions are not typically updated frequently and the maintenance burden has been minimal so far.And you're correct that if an issue landed on main of swift-collections that broke something in Foundation we may not find it until qualifying a new swift-collections tag. This is the case for many of the open source packages that are used by the toolchain. Foundation (being a public component of the toolchain) is always built in tangent with the toolchain but many other packages like swift-collections, swift-algorithms, swift-argument-parser, etc. all use stable tags instead of the unstable main branch when building in the toolchain.
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.
@jmschonfeld That all makes sense. Thanks!