This directory contains the quint
CLI providing powerful tools for working
with the Quint specification language.
-
Node.js >= 18: Use your package manager or download nodejs.
-
Java Development Kit >= 17, if you are going to use
quint verify
. We recommend version 17 of the Eclipse Temurin or Zulu builds of OpenJDK.
Install the latest published version from npm:
npm i @informalsystems/quint -g
Check the quint manual.
-
Make sure that you have installed npm. This is usually done with your OS-specific package manager.
-
Clone the repository and cd into the
quint
tool's subdirectorygit clone git@github.com:informalsystems/quint.git cd quint/quint
-
Install dependencies:
npm install
-
Compile
quint
:npm run compile
-
To run CLI, install the package locally:
npm link
-
You can run CLI by typing:
quint
Additionally, if you want to compile the vscode plugin:
-
Install yalc for local package management:
npm install yalc -g
-
Publish the package locally with yalc:
yalc publish
Extend the code in src.
Write unit tests in test, add test data to testFixture. To run the tests and check code coverage, run the following commands:
-
Compile and test the parser:
npm run compile && npm run test
-
Check code coverage with tests:
npm run coverage
npm run update-fixtures
All development dependencies should be tracked in the package.json
and
package-lock.json
. These will be installed when you run npm install
on
this project (unless you have explicitly told
npm to use
production settings).
To add a new dependency for integration tests or other development purposes run
npm install <dep> --save-dev
-
Update tests in cli-tests.md.
-
Run integration tests:
npm run compile && npm link && npm run integration
We maintain a set of integration tests against the latest release of Apalache. These tests are meant to catch any breaking changes requiring updates to Apalache's support for quint.
Generally, you should not have to run these tests locally, leaving the validation to our CI. But should you need to run these tests locally, you can do so with
npm run apalache-integration
It is required that you have a Java version meeting Apalache's minimum requirements.
We use the antlr4ts
parser generator to compile the BNF like notation specified
in ./src/generated/Quint.g4 into a typescript lexer and
parser. To regenerate the parser and lexer, run
npm run antlr