-
Notifications
You must be signed in to change notification settings - Fork 22
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
CI: Fix vcpkg Windows and Linux builds #77
Conversation
Looks like Windows may not be installing packages in the way we expect in manifest mode. Presumably we didn't hit this before was because we were using a vcpkg cache created from before enabling manifest mode. |
And now our linux wheels are failing because they get assigned an incorrect filename: The only things that changed for linux was enabling manifest mode for vcpkg, which should not have affected wheel names. Madness! |
Looking at the manylinux images, the most recent change (pypa/manylinux#1308) updated some dependencies, which also included an update of You fixed this for now by pinning to a previous manylinux docker build? |
Actually, cibuildwheel still installs setuptools in a build environment itself, so I don't fully understand how that is influenced by the docker image .. But in any case, comparing the logs of the succeeded build of a week ago, the failing build in this PR, and then the last one that succeeded again in this PR, a noticeable difference is that the failing one is installing setuptools 62.0.0, while the working builds are using 61.1.0. |
I tested locally to build pyogrio (but without using the docker image) and both setuptools 61.1 and 62.0 work fine and correctly find the version. So the setuptools change in version is probably unrelated, and it's still something else that changed in the docker image that triggered this. |
So for the Windows side, I didn't comment about that yet, but I pushed a small commit just to test the hypothesis that it were the way of using It seems to have worked. Maybe we should also specify the default "shell"? Because on Windows that should be supposed to be powershell and not bash, and actually according to the docs we would then need to use |
Thanks for testing that locally, and for trying another test with unquoted variable. Since that used a pre-existing cache with vcpkg stuff installed in the default location, we needed to test that again without a cache. Which unfortunately looks like it didn't work because |
Ah, so the reason it seemed to work is because it did install GDAL (but in some other location), and then the |
Yes, I think that is indeed the cause, the
Before #69, we actually never used an env variable inside a |
With powershel syntax it seems to work! Out of curiosity, I also pushed a commit to see if it would work with using bash shell on windows |
Actually, we should probably also have changes the cache key for every test? |
I can't tell if this worked? Looks like
Yeah, we probably should just disable cache when we are testing build locations. Once those are stable, we can re-enable it. Will disable now and try again without failing |
@@ -86,8 +89,14 @@ jobs: | |||
include: | |||
- os: "macos-10.15" | |||
triplet: "x64-osx-dynamic" | |||
vcpkg_cache: "/Users/runner/.cache/vcpkg/archives" |
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.
I added the asset paths with hardcoded links because they didn't work properly when using the $VCPKG_INSTALLATION_ROOT
form, but I don't see a big downside to having them hardcoded regardless.
@@ -57,6 +57,7 @@ jobs: | |||
uses: docker/setup-buildx-action@v1 | |||
with: | |||
install: true | |||
buildkitd-flags: --debug |
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.
This and BUILDKIT_PROGRESS
were added in attempt to get the Docker build to emit more logs during build, so we can see what vcpkg packages get installed. I'm not sure if both are needed, but didn't want to invest the build time in trying to game these.
All builds are passing again! Partly due to my ignorance and partly due to long feedback loops, the programmer time per line of code ratio on this one is really out of wack. A few takeaways:
|
Since the cache did work in the past, I suppose those paths have been working somehow? |
No description provided.