microsoft/openvmm

Public

mirrored fromhttps://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
191dd827d047f7a93c67878632576e56ce03c041

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Guide/src/dev_guide/dev_tools.md

30lines · modecode

1# Dev Tools / Utilities
2
3While most tasks in the OpenVMM repo can be accomplished directly via standard
4Rust tooling (i.e: `cargo run`, `cargo build`), there are many dev tasks that
5don't neatly fall under the `cargo` umbrella. e.g:
6
7- running code formatters / linters
8- orchestrating multi-stage, multi-component OpenHCL builds
9- running different kinds of test suites
10- building/downloading test images for VMM testing
11- setting up git hooks
12- etc...
13
14The following chapter discusses some of the various dev-facing tools / utilities
15you may encounter and/or find useful when working on OpenVMM.
16
17## Rust-based Tooling
18
19As with many projects, OpenVMM initially took the simple approach of spinning up
20ad-hoc Bash/Python scripts, and hand-written YAML workflow automation.
21
22This worked for a while... but as the project continued to grow, our once small
23and focused set of scripts evolved into a mass of interconnected dependencies,
24magic strings, and global variables!
25
26To pay down mounting tech debt, and to foster a culture where all devs are
27empowered to contribute and maintain OpenVMM's project tooling, we have adopted
28a policy of migrating as much core tooling away from loosely-typed languages
29(like Bash, Python, and hand-written Workflow YAML), and towards new
30strongly-typed Rust-based tooling.
31