-
Notifications
You must be signed in to change notification settings - Fork 6
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
Switch to manifest mode #80
Conversation
.github/workflows/build.yml
Outdated
- name: Create buildenv archive | ||
run: ./vcpkg export --vcpkg-root=${{ matrix.vcpkg_path }} --x-all-installed --zip --output=${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }} | ||
working-directory: ${{ matrix.vcpkg_path }} | ||
#- name: Create buildenv archive |
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.
For a first step of transition it might be good to generate the old style buildenv zip.
Is it correct, that we could keep the scripts in mixxx/tools unchanged, if we leave this section active?
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, currently the zip is created manually below, because export did not work in Manifest Mode.
I think this is now supported. We need to test.
I see:
This is not possible from PR. We need to configer vcpkg to not try it. |
d835ff5
to
37ceb14
Compare
We can enable the normal export command once this reaches our repository: |
da5bf30
to
2c37d95
Compare
2c37d95
to
853484e
Compare
This is merged upstream now |
853484e
to
1ae90e5
Compare
ddd93ec
to
c2d335b
Compare
The directory/file structure in the generated .zip file looks now good! |
8548231
to
1987896
Compare
1987896
to
05710c7
Compare
fa890ed
to
6049323
Compare
Caching with down and upload is slower than a fresh download
5a0b5c6
to
1529e6f
Compare
Now are all prereqesites merged and we can merge this. During testing, I have created a script that is able to clear the packages from GitHub. You can do it with the GUI only with a security check that requires to type each package name. That is teditlitios. |
Since we upload the packages from mixxxdj/vcpkg, the script to delete them should be also located here. |
Into the root here? You need to have write access to this repro to upload and delete packages. PRs only get read access. Team members also would have the force to upload packages from a PR. But they can also upload packages via any other probably more hidden route. |
I'm not sure what deleting means for the workflow. What happens, if others build Mixxx using these packages an you run this script? |
These packages are only used for caching purpose. If we delete them, they are regenerated. The mixxx repro has its own cache. We may consider in future to integrate the vcpkg run into the Mixxx repository. Than mixxx will also regenerate missing packages. But for now I prefere to keep both independent for less hassle during development. |
I just build Mixxx 2.5 under Windows 11 with the buildenv mixxx-deps-2.5-x64-windows-6edd9a3.zip from this PR, as x64_off and x64_portable. Both compiled and run as before! |
With manifest mode, vcpkg now defaults to
The CMake toolchain from vcpkg still defaults if(DEFINED _VCPKG_INSTALLED_DIR)
if(NOT EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
# Fail early if this part of CMAKE_PREFIX_PATH does not exist
# else the library lookups below will fail with misleading error messages
message(STATUS "VCPKG_TARGET_TRIPLET dir not found: ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} "
"Make sure the VCPKG build environment is installed and contains the build for the selected triplet.")
FATAL_ERROR_MISSING_ENV()
else()
message(STATUS "Using VCPKG_TARGET_TRIPLET: ${VCPKG_TARGET_TRIPLET}")
endif()
endif() ...breaks down and a user that built the dependencies in a manual vcpkg env will get the error:
I see two options here:
This probably only affects users who wish to build their own vcpkg environments, since the exported buildenv still contains the Footnotes
|
This is a prove of concept PR for the vcpkg manifest mode.
Advantages: