Open darrenge opened 7 years ago
Some more details on how we would like to proceed... first of all, the reason we're doing this is because many improvements lurk in the nightly version of z3, and now that we have very good CI, we can confidently update z3 without being afraid of breaking the universe.
The process would be as follows (in order):
z3-hash-platform.{zip,tar.gz}
everest
script track the z3 hash that we want, and make it capable of downloading, unzipping, and adding z3
to the PATH for all platforms, via the everest pull
command -- sub-steps: probably a z3_version
file in the everest
repository (under version control), a z3
subfolder in everest
where we unzip the binaries, and a check in the everest
script that the z3
binary we have matches what is in the z3_version
fileeverest check
to do the right thingcron
, perhaps?), to run everest pull
weekly, so that the windows environment of the build machine can get the latest z3 version updated all the timeeverest
should put z3
in the same PATH all the time (so that we don't have to update the Windows machine's system PATH all the time)project-everest/everest
build job, and it would fetch the latest z3 binary from https://github.com/Z3Prover/bin, and run ./everest pull
, then replace the existing z3
with the latest one, then ./everest verify
, and if everything works out, refresh z3_version
, commit and pushgit clone git@github.com:FStarLang/binaries
cd binaries
git rm *.zip
for platform in $z3_platforms; do
wget https://github.com/Z3Prover/bin/raw/master/nightly/z3-$Z3_VERSION_HASH-$platform.zip
git add z3-$Z3_VERSION_HASH-$platform.zip
done
git commit -a --amend -m "Replacing z3 binaries with new good ones"
git push -f origin master
Note the use of git push -f
which overrides the existing commit with a fresh one, hence guaranteeing that we don't keep every single z3 version we ever checked in in the repository's history.
Happy to provide any further answers on the process... it's a long one but fortunately we can break it down in many smaller sub-steps!
Cheers,
Jonathan
Request for @nikswamy
Z3 is being worked on daily and they have their own CI / nightly binary push. It would be great if we could get Z3 updated to the latest and greatest every time everest is being updated.
This would affect the environment of the test machine so it would affect non FStar people so @nikswamy is doing due diligence with the other teams to get their take before we modify any scripts.