project-everest / everest-ci

CI scripts for project everest
3 stars 8 forks source link

Add ability to get updated Z3 build for Everest Nightly #85

Open darrenge opened 7 years ago

darrenge commented 7 years ago

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.

msprotz commented 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):

git 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