This repository keeps source code, deterministic test fixtures, generated runtime data, and historical research artifacts in separate areas. The goal is to make day-to-day development reproducible while still preserving research outputs that are useful for comparison.
| Path | Classification | Ownership |
|---|---|---|
src/ |
Source | Runtime packages, server/client code, protocol code, and checked-in model tooling. |
tests/ |
Fixture and test source | Small deterministic fixtures required by automated tests. |
docs/ |
Source | Maintained documentation. |
scripts/ |
Source | Analysis, simulation, example, and maintenance commands. |
data/models/ |
External/runtime metadata | Model timing metadata and offloading metadata. Keep only small deterministic metadata that is required by tests or examples. |
data/results/ |
Generated output | Simulation runs, evaluations, plots, reports, and generated CSV/JSON outputs. Ignored by default for new files. |
data/runtime_inputs/ |
Generated output | Request images or other transient runtime inputs captured while the server is running. |
logs/ |
Generated output | Runtime logs and profiling outputs. |
reports/ |
Generated output | Local and CI reports such as JUnit XML or coverage artifacts. |
archive/ |
Research archive | Historical source snapshots or migration reference material that should not be imported by runtime code. |
analisi test/, grafici*/, simulated_results/ |
Research archive | Historical experiment snapshots. New experiment output should go under data/results/ unless deliberately archived. |
mini_dataset/, datasets/, sciot-fomo-models-export/ |
External artifact | Dataset/model exports. Prefer external storage for large artifacts and keep only tiny deterministic fixtures in Git. |
New code should use these directories:
- Model/offloading metadata:
data/models/ - Evaluation CSV files:
data/results/evaluations/ - Simulation runs:
data/results/simulation_<timestamp>/ - Runtime request inputs:
data/runtime_inputs/ - Logs and profiler data:
logs/ - Test/coverage reports:
reports/
The server centralizes these paths in server.commons.RuntimePaths. The default
root is data/, and these environment variables can redirect outputs:
SCIOT_OUTPUT_DIRSCIOT_MODEL_METADATA_DIRSCIOT_RESULTS_DIRSCIOT_LOG_DIRSCIOT_RUNTIME_INPUT_DIR
Use overrides for CI runs, Docker volumes, and one-off experiments instead of hard-coding script-specific output paths.
Existing historical research folders remain in place to avoid a disruptive
repository shuffle. Treat them as read-only archives. When touching those
outputs, either migrate the result to data/results/ or move the historical
snapshot to external storage as part of a dedicated cleanup change.
New generated outputs are ignored by default unless intentionally promoted to a
small deterministic fixture. If an artifact is needed by tests, place it under
tests/fixtures/ or tests/test_samples/ and document why it is stable.
To remove local generated data without deleting source files:
rm -rf logs reports data/results data/runtime_inputs .pytest_cache htmlcov .coverageThen regenerate only the artifacts needed for your current experiment or test run.
scripts/check_repository_artifacts.py --changed rejects newly added files that
match common generated-output patterns or exceed the default size limit. This
keeps accidental logs, profiler dumps, datasets, and generated simulation
results out of new pull requests while allowing the current historical archive
to be migrated separately.