Skip to content

[vcpkg-cmake-validate,vcpkg-maintainer-options] New ports#22258

Closed
dg0yt wants to merge 29 commits intomicrosoft:masterfrom
dg0yt:vcpkg-cmake-validate
Closed

[vcpkg-cmake-validate,vcpkg-maintainer-options] New ports#22258
dg0yt wants to merge 29 commits intomicrosoft:masterfrom
dg0yt:vcpkg-cmake-validate

Conversation

@dg0yt
Copy link
Copy Markdown
Contributor

@dg0yt dg0yt commented Dec 30, 2021

  • What does your PR fix?

    This PR is a variation of [vcpkg_cmake_config_test] Add function to test the exported cmake configurations #15173 (CC @JackBoosY) which also covers

    • testing Find modules
    • testing with older cmake versions
    • user control over which tests are run

    It would eventually replace the cmake-user port.

    This PR adds a vcpkg-maintainer-options port which can be used to control expensive tests through vcpkg install commands. It intentionally avoids a hard (ABI-affecting) dependency on certain parameters of the testing environment (active tests, minimum cmake versions).

    As test cases, this PR updates openssl and curl wrappers to work with CMake 3.4, and to support curl components.

  • Which triplets are supported/not supported? Have you updated the CI baseline?

    all, no

  • Does your PR follow the maintainer guide?

    yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

    I am still working on this PR, but it is ready for feedback. yes

@JackBoosY JackBoosY self-assigned this Dec 30, 2021
@JackBoosY JackBoosY added the category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed label Dec 30, 2021
@JackBoosY
Copy link
Copy Markdown
Contributor

Can I draft this PR until it's ready for review?

@dg0yt dg0yt marked this pull request as draft December 31, 2021 07:20
@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Dec 31, 2021

Can I draft this PR until it's ready for review?

It was meant to be a draft.

@dg0yt dg0yt force-pushed the vcpkg-cmake-validate branch from 89853a9 to d6b670c Compare December 31, 2021 18:13
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1085a57da0725c19e19586025438e8c16f34c890 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 31ade38..6387f62 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -1702,7 +1702,7 @@
     },
     "curl": {
       "baseline": "7.80.0",
-      "port-version": 0
+      "port-version": 1
     },
     "curlpp": {
       "baseline": "2018-06-15",
@@ -5034,7 +5034,7 @@
     },
     "openssl": {
       "baseline": "1.1.1l",
-      "port-version": 4
+      "port-version": 5
     },
     "openssl-unix": {
       "baseline": "1.1.1h",
@@ -7140,6 +7140,10 @@
       "baseline": "2021-12-28",
       "port-version": 0
     },
+    "vcpkg-cmake-validate": {
+      "baseline": "2021-12-02",
+      "port-version": 0
+    },
     "vcpkg-gfortran": {
       "baseline": "3",
       "port-version": 1
@@ -7148,6 +7152,10 @@
       "baseline": "2021-11-16",
       "port-version": 0
     },
+    "vcpkg-maintainer-options": {
+      "baseline": "2021-12-29",
+      "port-version": 0
+    },
     "vcpkg-pkgconfig-get-modules": {
       "baseline": "2021-04-02",
       "port-version": 1
diff --git a/versions/c-/curl.json b/versions/c-/curl.json
index a73767c..09e1e78 100644
--- a/versions/c-/curl.json
+++ b/versions/c-/curl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "da35490368ff0d8e12aa8f385c053fd3e5221e1c",
+      "version": "7.80.0",
+      "port-version": 1
+    },
     {
       "git-tree": "8e13da05c975cb6f5bed6cf3b8054a817a00b45d",
       "version": "7.80.0",
diff --git a/versions/o-/openssl.json b/versions/o-/openssl.json
index a7dd4f8..d3566e5 100644
--- a/versions/o-/openssl.json
+++ b/versions/o-/openssl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "178eddd136a9e2ffe94d1cff3d7ed7a0a58a4bb6",
+      "version-string": "1.1.1l",
+      "port-version": 5
+    },
     {
       "git-tree": "d25384246619019a1e44f018546cdfcaf1800174",
       "version-string": "1.1.1l",

@dg0yt dg0yt force-pushed the vcpkg-cmake-validate branch 2 times, most recently from 759d0d5 to db1fc5a Compare January 2, 2022 09:44
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1085a57da0725c19e19586025438e8c16f34c890 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 31ade38..6387f62 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -1702,7 +1702,7 @@
     },
     "curl": {
       "baseline": "7.80.0",
-      "port-version": 0
+      "port-version": 1
     },
     "curlpp": {
       "baseline": "2018-06-15",
@@ -5034,7 +5034,7 @@
     },
     "openssl": {
       "baseline": "1.1.1l",
-      "port-version": 4
+      "port-version": 5
     },
     "openssl-unix": {
       "baseline": "1.1.1h",
@@ -7140,6 +7140,10 @@
       "baseline": "2021-12-28",
       "port-version": 0
     },
+    "vcpkg-cmake-validate": {
+      "baseline": "2021-12-02",
+      "port-version": 0
+    },
     "vcpkg-gfortran": {
       "baseline": "3",
       "port-version": 1
@@ -7148,6 +7152,10 @@
       "baseline": "2021-11-16",
       "port-version": 0
     },
+    "vcpkg-maintainer-options": {
+      "baseline": "2021-12-29",
+      "port-version": 0
+    },
     "vcpkg-pkgconfig-get-modules": {
       "baseline": "2021-04-02",
       "port-version": 1
diff --git a/versions/c-/curl.json b/versions/c-/curl.json
index a73767c..c15fe7c 100644
--- a/versions/c-/curl.json
+++ b/versions/c-/curl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "8d41292fb66c7e4a4c1fe61886d7bd30b1a49f4d",
+      "version": "7.80.0",
+      "port-version": 1
+    },
     {
       "git-tree": "8e13da05c975cb6f5bed6cf3b8054a817a00b45d",
       "version": "7.80.0",
diff --git a/versions/o-/openssl.json b/versions/o-/openssl.json
index a7dd4f8..62fbb93 100644
--- a/versions/o-/openssl.json
+++ b/versions/o-/openssl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "1580f7f42dd99b73bfce23cead602ebaa492e8d1",
+      "version-string": "1.1.1l",
+      "port-version": 5
+    },
     {
       "git-tree": "d25384246619019a1e44f018546cdfcaf1800174",
       "version-string": "1.1.1l",

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1085a57da0725c19e19586025438e8c16f34c890 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 31ade38..6387f62 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -1702,7 +1702,7 @@
     },
     "curl": {
       "baseline": "7.80.0",
-      "port-version": 0
+      "port-version": 1
     },
     "curlpp": {
       "baseline": "2018-06-15",
@@ -5034,7 +5034,7 @@
     },
     "openssl": {
       "baseline": "1.1.1l",
-      "port-version": 4
+      "port-version": 5
     },
     "openssl-unix": {
       "baseline": "1.1.1h",
@@ -7140,6 +7140,10 @@
       "baseline": "2021-12-28",
       "port-version": 0
     },
+    "vcpkg-cmake-validate": {
+      "baseline": "2021-12-02",
+      "port-version": 0
+    },
     "vcpkg-gfortran": {
       "baseline": "3",
       "port-version": 1
@@ -7148,6 +7152,10 @@
       "baseline": "2021-11-16",
       "port-version": 0
     },
+    "vcpkg-maintainer-options": {
+      "baseline": "2021-12-29",
+      "port-version": 0
+    },
     "vcpkg-pkgconfig-get-modules": {
       "baseline": "2021-04-02",
       "port-version": 1
diff --git a/versions/c-/curl.json b/versions/c-/curl.json
index a73767c..17d3f20 100644
--- a/versions/c-/curl.json
+++ b/versions/c-/curl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "f1a78a5dfdf00b48b0fbc23e360a9aca7aa74de2",
+      "version": "7.80.0",
+      "port-version": 1
+    },
     {
       "git-tree": "8e13da05c975cb6f5bed6cf3b8054a817a00b45d",
       "version": "7.80.0",
diff --git a/versions/o-/openssl.json b/versions/o-/openssl.json
index a7dd4f8..872c527 100644
--- a/versions/o-/openssl.json
+++ b/versions/o-/openssl.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "059bb4b4a8077e03d1d3d3fedd4bbe159b59ae20",
+      "version-string": "1.1.1l",
+      "port-version": 5
+    },
     {
       "git-tree": "d25384246619019a1e44f018546cdfcaf1800174",
       "version-string": "1.1.1l",

@dg0yt dg0yt force-pushed the vcpkg-cmake-validate branch 4 times, most recently from 3a4d8fe to 24855d1 Compare January 9, 2022 10:22
@dg0yt dg0yt force-pushed the vcpkg-cmake-validate branch from 24855d1 to 6bd2667 Compare January 9, 2022 10:37
@dg0yt dg0yt changed the title [vcpkg-cmake-validate] New port (WIP) [vcpkg-cmake-validate,vcpkg-maintainer-options] New ports Jan 9, 2022
@dg0yt dg0yt marked this pull request as ready for review January 9, 2022 11:33
@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jan 9, 2022

I would really like to use this now for every port I update.

@dg0yt dg0yt force-pushed the vcpkg-cmake-validate branch from c902928 to 9e208fc Compare February 6, 2022 10:06
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for fontconfig but no changes to version or port version.
-- Version: 2.13.94#5
-- Old SHA: 2f32046747209c234e60dc297b48d5bdc7ee4494
-- New SHA: d1a4dec7c64cc70a279af594ac53e9497cec3482
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 7e7dad5fe20cdc085731343e0e197a7ae655555b -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/f-/fontconfig.json b/versions/f-/fontconfig.json
index c0f06ce..c5d5a8d 100644
--- a/versions/f-/fontconfig.json
+++ b/versions/f-/fontconfig.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "d1a4dec7c64cc70a279af594ac53e9497cec3482",
+      "git-tree": "2f32046747209c234e60dc297b48d5bdc7ee4494",
       "version": "2.13.94",
       "port-version": 5
     },

You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/bzip2/vcpkg.json
  • ports/fontconfig/vcpkg.json
  • ports/freetype/vcpkg.json
  • ports/vcpkg-cmake-validate/vcpkg.json
  • ports/vcpkg-maintainer-options/vcpkg.json

Valid values for the license field are listed at https://spdx.org/licenses/

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 14, 2022

PING @BillyONeal @ras0219-msft @strega-nil-ms

I really don't want to submit more PRs without tested usage so help define at least the interface.

@BillyONeal
Copy link
Copy Markdown
Member

# 3. Fully emulate the toolchain file for the just-built package (just adding it to CMAKE_PREFIX_PATH is not enough).

I touch one of the dragons here, loading vcpkg-cmake-wrapper.cmake directly from the staging directory (packages) instead of calling find_package through the vcpkg toolchain. This implementation won't work if more than one wrapper from the tested port is need to resolve a find_package call. A robust implementation needs adjustments in vcpkg.cmake to make the staged package testable. And this topic might touch all variables where vcpkg.cmake adds paths.

Last we looked at this I think we were still worried about this issue. Because this has been added and removed before we are nervous about opening this can of worms.

===================

Looking again if the interface is really "if this other port is installed first then additional checks happen" then that makes install path dependent which I don't think is OK. We can hook up an additional tool parameter akin to our prohibit-backcompat-features stuff if necessary, pretty cheaply. I would like people who understand those dragons to be happy before dropping everything to unblock you on that though.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 16, 2022

Looking again if the interface is really "if this other port is installed first then additional checks happen" then that makes install path dependent which I don't think is OK.

In general I do agree. However, the check is not a fixup. It has no side-effect on the package content and dependencies. It just adds extra conditions for the build result to be accepted.

In particular, given expected frequent usage, I would very much like to decouple the testing facility from the package ABI hash, to not trigger mandatory world rebuilds from check improvements. This may need more work, and it could use a different interface, completely avoiding the port dependency.

Because this has been added and removed before we are nervous about opening this can of worms.

The current can of worms is that package quality is a lottery. No option to force validation of cmake or pkg-config usage. No option to run the tests provided by the packages themselves. There is vcpkg's whole-universe CI, but this isn't a sufficient substitute for valdiating the usage contract of individual packages. The wrappers may break without notice when a CMake update brings an updated Find module.

@BillyONeal
Copy link
Copy Markdown
Member

In general I do agree. However, the check is not a fixup. It has no side-effect on the package content and dependencies. It just adds extra conditions for the build result to be accepted.

Sure, neither does --prohibit-backcompat-features.

In particular, given expected frequent usage, I would very much like to decouple the testing facility from the package ABI hash, to not trigger mandatory world rebuilds from check improvements. This may need more work, and it could use a different interface, completely avoiding the port dependency.

Right, the interface I'm arguing for is a command line parameter.

The current can of worms is that package quality is a lottery. No option to force validation of cmake or pkg-config usage. No option to run the tests provided by the packages themselves. There is vcpkg's whole-universe CI, but this isn't a sufficient substitute for valdiating the usage contract of individual packages. The wrappers may break without notice when a CMake update brings an updated Find module.

Yes, I agree that the lack of testing situation is a problem.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 16, 2022

Right, the interface I'm arguing for is a command line parameter.

The downside of a parameter, apart from requiring changes in the tool, is that I would have to add it permanently. Unless I missed a configuration file which is always read.

FTR I could also use find_package(vcpkg-cmake-validate 1) \n if(vcpkg-cmake-validate_FOUND) to discover if a particular test is enabled and a compatible version is available.

@BillyONeal
Copy link
Copy Markdown
Member

Right, the interface I'm arguing for is a command line parameter.

The downside of a parameter, apart from requiring changes in the tool, is that I would have to add it permanently. Unless I missed a configuration file which is always read.

We could give it an environment variable?

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 16, 2022

We could give it an environment variable?

Okay, I could add it to my .profile.
It would probably work well also for CI. (Even with extra parameters added to an existing AZP pipeline.)

@JackBoosY
Copy link
Copy Markdown
Contributor

We do need to add these test functions to ensure the correctness of the port, but the extra time cost should not be borne by the user.
My suggestion is to only enable it in our pipeline tests with --editable mode.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 17, 2022

We do need to add these test functions to ensure the correctness of the port, but the extra time cost should not be borne by the user.

Everybody agrees, and nobody proposes something different.

My suggestion is to only enable it in our pipeline tests with --editable mode.

--editable has a different meaning. It affects only the current package. It doesn't work for vcpkg ci.

@JackBoosY
Copy link
Copy Markdown
Contributor

--editable has a different meaning. It affects only the current package. It doesn't work for vcpkg ci.

I mean both of them, we may need to add an extra cmake flag in vcpkg-tool to enable those tests, such as VCPKG_ENABLE_TESTS.
The reason for needing to support --editable is that we can test the port while doing port development or repair work, so we only need to target the current port.

@BillyONeal
Copy link
Copy Markdown
Member

BillyONeal commented Feb 17, 2022

@ras0219 @ras0219-msft indicates that if we're going to make this optional that it is likely a good idea to separate this from portfile.cmake entirely so that we can more easily run this as a post-build check, for example after a binary cache restore. (And also to create space in the future where we would probably want to be in the business of running ports' unit tests themselves where reasonable)

@vicroms Is taking point to make sure you have the feedback you need otherwise regarding our hesitancy due to history with vcpkg_test_cmake.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Feb 19, 2022

to make sure you have the feedback you need otherwise regarding our hesitancy due to history with vcpkg_test_cmake.

I feel like there is still a gap between rejecting this PR and defining the interface of what could be submitted as the next PR with a reasonable chance of acceptance.

So let me give you some options.

The key aspect is the entry point for port usage tests. Some ideas:

  • porttest.cmake file
    To be run in script mode, similar but independent of portfile.cmake.
    May easily build multiple child projects via "maintainer functions".
    May easily use an alternative version of CMake for some tests.
    May run either on a staged or on an installed port.
  • porttest\CMakelists.txt file
    To be run in with the vcpkg toolchain on an installed port. (With some extra hooks, it might also work on a staged port.)
    May need to use ExternalProject to decouple multiple tests or alternative CMake versions.
    May use support functions via include or find_package.
    Alternative CMake versions could be deduced from the cmake_minimum_required statement.
  • porttest directory hosting multiple scripts or subdirs.

FTR regular post-build checks run on the staged port (in packages but not in installed). IIUC The package artifact (for caching) is created after the post-build checks, and the package is installed after that. So it is difficult to use the same check as a post-build gate and after installation from a cached artifact.

Another aspect mentioned in the comments is running ports' unit tests. This must happen while building the package, from portfile.cmake. Some ideas:

  • A script mode variable, e.g. VCPKG_ENABLE_TESTING (similar to CMake's ENABLE_TESTING).
  • A special feature, e.g. tests (similar to the special feature core).

@BillyONeal
Copy link
Copy Markdown
Member

I feel like there is still a gap between rejecting this PR and defining the interface of what could be submitted as the next PR with a reasonable chance of acceptance.

Right, the bits @vicroms is on the hook to verify is making sure how the actual validation works works; after that's OK we can relatively easily hook it up to any interface.

No desire to "reject" the PR.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Apr 5, 2022

I will merge master ASAP.

making sure how the actual validation works

Does the validation work? It verifies some working cases, but we cannot prove that it detects all broken cases.
What I can say is that I permanently detect broken ports which would have been easily detected.

Ideally, the tests would run after installation to installed. This would avoid some complications, and it would better reflect the user's scenario. However, all current checks, and the upload of the binary artifact, seem to take place before this step.

@JackBoosY
Copy link
Copy Markdown
Contributor

Can you please merge to master first?

@vicroms
Copy link
Copy Markdown
Member

vicroms commented Jul 16, 2022

Ideally, the tests would run after installation to installed. This would avoid some complications, and it would better reflect the user's scenario. However, all current checks, and the upload of the binary artifact, seem to take place before this step.

This is the same conclusion the team has reached. We would like to change CI to insert the CMake validation step after everything is laid out in installed/ and before uploading to the binary cache.

@JackBoosY JackBoosY added the depends:different-pr This PR or Issue depends on a PR which has been filed label Jul 29, 2022
@JackBoosY JackBoosY assigned LilyWangLL and unassigned JackBoosY Oct 14, 2022
@Thomas1664
Copy link
Copy Markdown
Contributor

I really like this PR but I think there are a few issues that have not been discussed yet:

Feel free to correct me if any of my points is wrong.

  • Do we have enough CI budget for these tests, i.e. how long do they take?
  • Maintenance overhead: We have to manually keep track of installed headers/ symbols/ targets that might change during port updates
    • We have to proactively touch a port in order to find bugs which is hard given that there are ~ 2K ports. It would be easier if we had a tool that automatically scans all ports for bugs. In contrast, with this approach we only observe a bug after actively searching for them, i. e. using vcpkg_cmake_validate.
  • It is inefficient to test only one symbol at a time
    • However, this might be required to make sure there is no interference between individual tests
    • It is well known that extensive check symbol executions slow down configure time
    • Ideally, we would test all symbols of a port in one go or even multiple ports in one go
  • Do we really need to perform a compilation in order to test vcpkg_cmake_wrapper and find_package()?
    • Isn't the configure step enough to tell that a package is found? We could observe the variables that find_package sets if it finds a package?
    • Is it possible to tell by analysing the installed CMake config/ vcpkg_cmake_wrapper that everything is set up correctly?
  • Is it possible to detect weither a package comes from somewhere else than vcpkg?

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Dec 26, 2022

@Thomas1664 I can't correct you if you ask questions. Regarding the magic bug scanning tool: vcpkg even fails to derive quality usage hints.

I'm not worried by CI time. I'm worried about how many ports turn out to be unusable despite hundreds of CI runs, and no way to protect my voluntary work (read: my time!) against regressions.

I would prefer to have half the number of ports but twice the quality. Cross-platform.

@Thomas1664
Copy link
Copy Markdown
Contributor

Thomas1664 commented Dec 26, 2022

Regarding the magic bug scanning tool: vcpkg even fails to derive quality usage hints.

I'm worried about how many ports turn out to be unusable despite hundreds of CI runs, and no way to protect my voluntary work (read: my time!) against regressions.

You could put them on CI baseline if there are too many regressions.

The problem with this approach is that it doesn't scale well because you have to explicitly add tests and I'm afraid only a few people actually would use this. Like there are many ports that use vcpkg_configure_cmake although this function is deprecated for more than a year.

I think it would be easier to implement this check inside the vcpkg-tool via C++ and automate which symbols/ headers are used for testing. The only tricky part would be to find symbols to use for testing. The tool nm (installed by default on Linux) can help with this. With nm we can get the symbol table of a .a/ .lib/.so/.dll/.dylib file: nm libbz2.a --demangle --defined-only.

@BillyONeal
Copy link
Copy Markdown
Member

The problem with this approach is that it doesn't scale well because you have to explicitly add tests

We have code review for this.

@BillyONeal
Copy link
Copy Markdown
Member

Checking up on this again because it was tagged requires vcpkg-team-review:

  • We remain interested in some way for ports to test the things tested here.
  • The problem that the installation happens after portfile.cmake finishes running and therefore portfile.cmake can't see the actually installed state and as a result can't truly test this remains.
  • We are considering adding features like this to the tool in the future, and when we do so we will come back to this PR to make sure the use cases it intends to test are fixed.

@BillyONeal BillyONeal removed the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Jan 19, 2023
@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jan 21, 2023

FWIW I added CI test ports to cover critical port and feature configurations, after installation. As long as this isn't blocked, I can arrange with that state.

@dg0yt dg0yt closed this Jan 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed depends:different-pr This PR or Issue depends on a PR which has been filed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants