Skip to content

Improve project layout #719

@celinval

Description

@celinval

Requested change: Create a cargo workspace for RMC that is not dependent on RUSTC workspace.

Use case: This will allow us to verify that we no longer depend on any of the bootstrap script functionality to keep RMC infrastructure. This will also allow us to define which rust toolchain to use for all RMC packages and tools.

Is this a breaking change? No

The final layout proposed for this issue is:

.
├── Cargo.lock
├── Cargo.toml
├── rust-toolchain.toml
├── rustfmt.toml
├── README.md
├── ...    // Other files such as .gitignore, .github/*`
├── src/   // Kani source code split into crates per component.
│ ├── cargo-kani/ // Kani entry point for standalone kani and cargo-kani.
│ │ ├── Cargo.toml
│ │ ├── src/
│ │ └── ...
│ ├── kani_driver/
│ │ ├── Cargo.toml
│ │ ├── src
│ │ └── ...
│ ├── kani_compiler/
│ │ ├── Cargo.toml
│ │ ├── src
│ │ └── ...
│ ├── kani_report/
│ │ ├── Cargo.toml
│ │ ├── src
│ │ └── ...
│ └── ...
├── docs/
│ ├── book.toml
│ ├── src/
│ ├── SUMMARY.md
│ └── ...
├── library/
│ ├── kani/
│ └── kani-macros/
├── scripts/
│ ├── setup/
│ ├── regression.sh
│ └── ...
├── tests/  // End to end tests that are executed via compiletest
│ ├── expected/
│ ├── cargo-kani/
│ └── kani/
└── tools/
   ├── compiletest/
   └── bookrunner/

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions