Projects and files¶
A project is a folder. Everything the editors make is a text file in it, in JSON, so a project goes under version control, diffs and merges like source code, and moves between the three forms of the editors as it is.
| File | What it is |
|---|---|
name.requirements.json |
A requirements table: its signals and its rows |
name/ID.intrepyd.json |
The circuit of a requirement, in a folder named after its table |
name.intrepyd.json |
A circuit, with its stimuli and its verification and test settings |
name.mcdc.json |
The MC/DC tests of a circuit, next to it, with the date and the versions they were generated with |
name-report.html |
A requirements report, with its tables and tests as CSV in a folder beside it |
The circuits of a table's requirements are made when they are first needed (opened, tested or reported); each row says where its circuit is.
The editors write their files deterministically (blocks by id, wires sorted, coordinates rounded), so a change shows as a small diff. Fields they do not know are kept. The formats are in File formats.
In each form¶
The project is your workspace. The Intrepid side bar, from its icon in the Activity Bar, has two views:
- Requirements: the tables of the workspace, and under each its requirements, with the state of their MC/DC tests (✓ 3/3, 2/3, out of date, no tests) and of their circuit when something is wrong with it (formula to fix, edited by hand). A click on a table opens it, on a requirement its circuit; ▶ on hover generates the tests;
- Circuits: the circuits that belong to no table.
Any *.intrepyd.json opens in the circuit editor, any
*.requirements.json in the table.
The project is the folder given to intrepid-studio. The side bar has
the requirements, the circuits of no table, and the files. The editors
write each change to the folder a moment after it; a file changed from
outside (another editor, a git pull) is taken in, unless it is being
edited and not saved yet, which the studio says.
The Project menu makes new tables and circuits, opens a program or a Lustre model as a circuit, uploads files, downloads the project as a zip, writes the requirements report, and adds the example.
The project lives in your browser. The Project menu uploads files (a zip of a project too) and downloads the project as a zip: download it before leaving, and to carry it to the extension or the studio.