Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 2.8 KB

File metadata and controls

38 lines (29 loc) · 2.8 KB

Autorelease

conjure-verification

Behaviour aims to satisfy RFC 004: Consistent wire-format test cases, but there are a few differences.

This project has two main components:

Development

The gradle build (java) and cargo build (rust) are indepndent of one another. Gradle is responsible for generating the Conjure definitions and Java test cases, and cargo is responsible for running the rust tests. Gradle needs a minimum of Java 17 to build.

  • Run ./gradlew build to generate the Conjure definitions and Java test cases.

  • Install rustup using instructions on https://rustup.rs . Choose any modern version of rust when prompted.

  • The Rust toolchain is pinned in rust-toolchain.toml; rustup will automatically download and use it (including the rustfmt and clippy components) for any cargo command run in this repo. Note that you must be using a rustup supplied version of cargo to use this bootstrapping feature. If cargo was installed using something like brew, or is very old, then this bootstrapping will be ignored.

  • Build the Rust workspace and run the test suite:

    cargo build --workspace
    cargo test --workspace
    

    If any errors occur, try running ./gradlew build first — the server tests read the generated test cases from verification-server-api/build.

    A few conjure-verification-http-client tests need external setup: google requires internet access, and google_http_proxy and google_https_proxy are #[ignore]d because they require a local TLS proxy (run them with cargo test -- --ignored).

  • If inspecting/editing code, install the rust plugin for the IDE of your choice.

    • IntelliJ has superior code completion and can get the type of arbitrary expressions (using the Rust plugin), but make sure to tick "Use cargo check to analyze code" - slower, but otherwise IntelliJ won't show most errors inline
    • for VSCode, install the rust-analyzer extension and CodeLLDB for debuggingA
  • For vibecoding, direct the agent to read this README in lieu of an AGENTS.md file.

License

This project is made available under the Apache 2.0 License.