-
Notifications
You must be signed in to change notification settings - Fork 14
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
Decouple kani
version from kani-github-action
version
#45
Decouple kani
version from kani-github-action
version
#45
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.
Can you please document in the README.md
the inputs the action takes and highlight that if the user doesn't provide the version, the action will install the latest?
Can you also please add tests that give an invalid version and a check that running the action without a version will install the latest version available on crates.io?
Update: I've updated documentation with the features and a test for when an invalid version is passed (like 0.47.0 for example). I've also added checks for the version number to ensure that the latest version is installed by default. But I could not automate parsing the error message that appears when an invalid version is passed in subsequent steps. |
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.
Everything looks good, but I would prefer if we can test things a bit better. I'm OK with a follow up PR as long as you manually inspected that the scenarios below work. Thus, I'm approving this one.
Here are the scenarios that I believe should be tested:
- The default version works and (preferably, check that it is the latest)
- You could try to run cargo install a second time and make sure the version does not change
- You could use jq to process the output from crates.io index: https://index.crates.io/ka/ni/kani-verifier
- A specific version works and it matches the requested version
- An invalid version triggers an error
- You can use the
outcome
field of the step context. - Note that
continue-on-error
will continue no matter what, including if the step succeeds.
- You can use the
BTW, I would be OK with testing the installation script separately or test it via github workflow. I prefer the latter though.
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 good! Thanks @jaisnan! @adpaco-aws do you mind doing a pass on nice the documentation that Jai added please?
One more thing, should we push this to a branch named v1?
…action into use-kani-latest-by-default
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.
Documentation looks good to me.
Still think it's a good idea to link mentions of the PropProof feature to our documentation, otherwise they can be confusing.
Description of changes:
This PR updates the action to add the parameter for
kani-version
which defaults to the value latest.The default value latest uses the latest version of
Kani
that is uploaded oncrates.io
unless a specific version is provided by the user, in which case that specific version ofKani
will be used in the CI.Documentation changes rendered here.
The changes were tested in a local setting and a test project here:
Resolves: #46
Call-outs:
This would update the action to pull in the latest version by default. Users who don't provide a value for the kani-version parameter would have to set it to pin the
kani
version that they want to use.Testing:
kani-version
parameter, and ran the feature branch of the action on a test github project.Test for using "latest" by default. Related kani-action here.
Test for using pinned kani version. Related kani-action here.
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.