Repo and Runtime Invariants
Purpose
This page is the compact source of truth for the invariants that should be assumed before running or extending FEMIC from this checkout.
Quick Contract
Seam |
Contract |
|---|---|
Canonical repo root |
Use the active checkout root as the canonical repository root for commands, patches, and file references. Prefer repo-relative examples in published docs rather than machine-specific absolute paths. |
Stale path mentions |
Treat unexpected stale workspace paths in session or editor metadata as stale context only. Do not use them for execution; use the active checkout root instead. |
Python environment |
Use a repo-local |
Submodules |
Initialize submodules before relying on bundled example instances or the public-data mirror. |
Annex-backed public data |
|
External data root |
Export |
Preflight |
Run |
External runtime boundaries |
BatchTIPSY and Patchworks remain external/proprietary runtime seams; FEMIC documents and validates those boundaries but does not replace those tools. |
Fresh-Clone Baseline
Linux/macOS:
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
git submodule update --init --recursive
git annex version
datalad --version
git -C external/femic-public-data annex enableremote arbutus-s3
datalad get -r external/femic-public-data/data
export FEMIC_EXTERNAL_DATA_ROOT=$PWD/external/femic-public-data/data
femic prep validate-case --instance-root external/femic-k3z-instance --run-config config/run_profile.k3z.yaml
femic prep geospatial-preflight
Windows PowerShell:
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
git submodule update --init --recursive
git annex version
.venv\Scripts\datalad.exe --version
git -C external/femic-public-data annex enableremote arbutus-s3
.venv\Scripts\datalad.exe get -r external/femic-public-data/data
$env:FEMIC_EXTERNAL_DATA_ROOT="$PWD\external\femic-public-data\data"
femic prep validate-case --instance-root external/femic-k3z-instance --run-config config/run_profile.k3z.yaml
femic prep geospatial-preflight
Do Not Assume
Do not treat symlinked annex pointers as usable data files before
datalad getcompletes.Do not assume a passing
femic prep geospatial-preflightresult proves the active annex-backedFADM_TSA.gdbcheckout is readable on Windows;femic prep validate-caseis the case-aware check for that seam.Do not assume quoted values in a local Arbutus env file are harmless; for the documented Windows auth-file workflow, quoted
KEY=VALUElines are an input bug, not an accepted variant.Do not assume proprietary runtimes are vendored into the repo.
Do not assume a Windows-only helper is available on Linux, or vice versa.
Do not assume the current working directory is the intended instance root if
--instance-rootorFEMIC_INSTANCE_ROOThas been supplied.