There is only the package hax-engine
, that includes a binary and a
number of libraries.
We have no particular release procedure for the engine: we don't plan on publishing it to opam.
This repository is divided into several crates, some to be published,
some not. All crates should start with the hax-
prefix, but
cargo-hax
which is the entrypoint to the cargo hax
subcommand.
Here is the list of the crates in this repository (excluding tests
and examples
):
hax-test-harness
(doesn't need to be published)
hax-frontend-exporter-options
(frontend/exporter/options
)hax-adt-into
(frontend/exporter/adt-into
)hax-frontend-exporter
(frontend/exporter
)hax-types
(hax-types
)hax-subcommands
(binaries) (cli/subcommands
)cargo-hax
hax-export-json-schemas
hax-pretty-print-diagnostics
hax-driver
We publish the following crates that are helper libraries to be used for hax code:
hax-lib-macros-types
hax-lib-macros
hax-lib
The crate listed below are used only by the OCaml build of the
engine. Those should not be published on crate.io
.
cargo-hax-engine-names
cargo-hax-engine-names-extract
- Bump the version number with
cargo release LEVEL --no-publish --no-tag --execute
(cargo release --help
for more details onLEVEL
). This will bump the version of every Rust crate, but also the version inengine/dune-project
. This will also regenerateengine/hax-engine.opam
. Note this will not publish the crate. - PR the change
- when the PR is merged in main, checkout
main
and runcargo release --execute
Note: for now, we are not publishing to Opam. Instead, let's just advertise the following for installation:
opam pin hax-engine https://github.com/hacspec/hax.git#the-release-tag
opam install hax-engine