-
Notifications
You must be signed in to change notification settings - Fork 274
Update Release Process script and add Installation Instructions to the Release Page #5517
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
Update Release Process script and add Installation Instructions to the Release Page #5517
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.
LGTM.
Codecov Report
@@ Coverage Diff @@
## develop #5517 +/- ##
===========================================
+ Coverage 67.56% 68.40% +0.83%
===========================================
Files 1187 1187
Lines 98090 98090
===========================================
+ Hits 66279 67102 +823
+ Misses 31811 30988 -823
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
* For Linux, install the `.deb` package with | ||
`sudo apt install $CBMC_TAG-Linux.deb` on Debian-like systems | ||
* For macOS, install with `brew install cbmc` or upgrade with | ||
`brew upgrade cbmc` |
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.
Would it be useful to have a link to readme installation part in here? Something like:
For additional installation instructions please visit: https://github.com/diffblue/cbmc/blob/develop/README.md#installing
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.
@piotr-grabalski these instructions should be self contained. If they need to make reference to our README that is a defect.
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.
looks OK!
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.
Some changes required, some questions
* For Linux, install the `.deb` package with | ||
`sudo apt install $CBMC_TAG-Linux.deb` on Debian-like systems | ||
* For macOS, install with `brew install cbmc` or upgrade with | ||
`brew upgrade cbmc` |
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.
👎 Please be a bit more elaborate here. In particular, this needs the note on Windows requiring the Visual Studio redistributable (see readme) and different names for the ubuntu 18 and ubuntu 20 packages. This would read better if it was presented with section headers instead of a bulleted list.
Again, I’d ask you to refer to https://github.com/markrtuttle/cbmc/releases/tag/cbmc-5.15.0-github-actions for this.
(Except the note about depending on gcc, as we do in fact declare this dependency in our debian files)
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.
What you're seeing is not the final version of it, and the final version more accurately conforms to the presentation in the link given - this version is from yesterday.
README.md
Outdated
with `root` privileges, with `x.y` being substituted for the version | ||
you are attempting to install. | ||
*NOTE*: This is only available on distributions that are using debian's | ||
packaging tools. |
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.
👎 The debian packages are distro specific (due to link constraints against libc/libc++ and package dependency names), this needs to be noted here. We have two separate packages for Ubuntu 18.04 and Ubuntu 20.04, they shouldn’t be used anywhere else.
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.
Okay... I was unaware of any link constraints we have, can you expand on this? At least libc
ABI should be stable, and I would go on a limb and say that libc++
should be stable enough for our needs as well - why is it not?
But noted in any case, I'll update the documentation.
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.
@NlightNFotis libc/libc++ ABI is stable, but not backwards compatible. You can link binaries linked against libc against newer versions of libc, but not older ones.
- name: Create release | ||
uses: actions/create-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.DB_CI_CPROVER_ACCESS_TOKEN }} | ||
CBMC_TAG: ${{ github.ref }} |
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.
Earlier one we had this problem that this is a 3 part slash separated thing. Is that not a concern anymore?
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 doesn't reflect the changed code yet.
Also this adds a new expected release process that replaces the previous one. This needs to be documented somewhere. |
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 once @hannes-steffenhagen-diffblue 's comments have been addressed.
@martin-cs All of Hannes' comments have been worked on, and where on my todo before - it's just that you can't see the progress, because I'm playing around with another branch on my fork to make it easier to test the release process. I'm working on fixing one last thing, then I will clean this up and it should be good to go. |
1ce2de7
to
4401b34
Compare
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.
Mostly looks good, just a couple of minor things to tweak if possible.
Remove scheduling from regular release script (because any update to the files requires a signoff by a code owner, which is infeasible) and add installation instructions to release body.
4401b34
to
b86bf12
Compare
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 - Thanks for documenting both the process, and the decision making behind it really well!
package maintenance policy of the distribution is, or | ||
2. Install CBMC through the `.deb` package built by each release, available | ||
on the [releases](https://github.com/diffblue/cbmc/releases) page. To | ||
do that, download the `.deb` package and run `apt install cbmc-x.y.deb` |
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.
Nit: more stable version of this is dpkg -i
, but if apt install
also works I guess it works.
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 think apt
is always preferable, as it's a higher level tool and can do dependency management better than dpkg
.
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.
Thanks for keeping up with my nagging, I think this is pretty good now!
This PR adds Linux installation instructions to the top-level
README.md
file, and adds some installation instructions to the release page when a new release is happening.