-
Notifications
You must be signed in to change notification settings - Fork 273
Fix z3 installation on PR CI jobs #5983
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
Fix z3 installation on PR CI jobs #5983
Conversation
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 have a couple of remarks:
- This PR claims to be upgrading z3 on windows, but it also makes a number of other changes, such as probing for z3 version on mac and ubuntu jobs? Is this on purpose? If that's the case, can the PR be renamed to accurately reflect scope of changes, or submit the changes as another PR?
- One of the CI jobs is failing because it's probing for
z3
when it's not installed.
@@ -287,7 +287,7 @@ jobs: | |||
submodules: recursive | |||
- name: Fetch dependencies | |||
run: | | |||
choco install winflexbison3 strawberryperl | |||
choco install winflexbison3 strawberryperl z3 |
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.
Should this commit be dropped?
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 commit exists, so that I am not doing both adding and updating in subsequent commits.
Codecov Report
@@ Coverage Diff @@
## develop #5983 +/- ##
===========================================
+ Coverage 75.04% 75.12% +0.07%
===========================================
Files 1433 1435 +2
Lines 155817 156301 +484
===========================================
+ Hits 116932 117416 +484
Misses 38885 38885
Continue to review full report at Codecov.
|
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.
A couple of bookkeeping changes:
- The PR comment claims "latest version", which may be true today but will not be in future. Since the PR explicitly sets the version to 4.8.10 can we make that clear? (Specially since we could probably also use something like https://github.com/Z3Prover/z3/releases/latest for the true latest.)
- Several places claim to "Check z3 version", but I think they only display the version, there does not appear to be a "check" that this is correct?
After discussion with Fotis, I am going to change this PR to fix Z3 installation across all jobs and add a test. Please wait for me to push the extra changes, before reviewing. |
I think this should now be fixed.
It is useful as is for confirming that Z3 is installed, in the path and logging the version. We could in theory check that the information printed is what we expect. But I think the changes are useful as is, without adding more functionality. I'll re-word the message a little, in order to try and make this clear. |
This was previously missing, which would cause any tests which needed Z3 to fail this job.
Because the `choco` installation of `z3` seems to be broken/outdated. Using `Invoke-WebRequest` instead of `choco` allows us to pin the version installed and to get a version which includes the `z3.exe`, not just `z3.dll`. Using `nuget` was also considered, so that we were still using a package manager. But the up to date `nuget` package was missing the `.exe` file. `wget` is supposed to be aliased to `Invoke-WebRequest` in powershell. However `Invoke-WebRequest` is used rather than `wget` as `wget` does not seem to work for windows github actions jobs.
This was previously missing, which would cause any tests which needed Z3 to fail this job.
5ea7a5a
to
4c6f240
Compare
For confirmation of version and that installation is successfull. This supports easier debugging for both the github actions `.yaml` and for future test failures. As a bonus we get fast failing CI jobs if the dependency isn't installed properly, because it fails at this step rather than during testing. This z3 version check is done as a separate step because adding to `$env:GITHUB_PATH` doesn't take effect the path until the next step.
4c6f240
to
7dc7632
Compare
This confirms that Z3 is present and working in CI, as well as that cbmc's support for Z3 is not entirely broken.
7dc7632
to
037ec0b
Compare
@TGWDB Your comments should now be addressed. Please re-review when you have a minute. |
Not a blocker if we don't have broken tests right now, but we might soon run into cases where a regression test might pass on Windows & Mac but failing on Ubuntu 18.04 or 20.04 because they're running older versions of Z3 (4.4.1 and 4.8.7 respectively). Would it be possible to @tautschnig is listed as the maintainer of the |
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.
LGTM
@SaswatPadhi Now that this is merged, you should be able to re-base and merge #5904 |
Includes updating z3 to 4.8.10 for Windows CI jobs. So that the version, which is currently most recently released is available for use in Windows regression tests. Z3 installation was previously broken, due to the chocolatey package being out of date / broken and due to the installation being missing from various jobs.