python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'Windows PowerShell:
py -3.13 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e '.[dev]'python scripts/quality.pyEquivalent commands:
ruff check src tests
ruff format --check src tests
mypy src
pytest --cov=firexcore_mailvault --cov-report=term-missing
python -m build- Protocol adapters do not own archive persistence.
- Provider profiles do not parse procurement facts.
- Canonical objects are immutable.
- Raw EML is authoritative.
- RFC Message-ID is evidence, not the sole message key.
- Mailbox occurrence remains separate from canonical message.
- No IMAP mutation command may be introduced.
- Credentials must never enter persistent state.
- All schema changes require migrations or explicit compatibility handling, tests and data-model documentation.
- Fixtures must be synthetic and sanitized.
Provider tests should cover:
- capability parsing;
- archive-root selection;
- stable provider message identity;
- stable thread identity;
- label mapping;
- provider query translation;
- fallback behavior when extensions are absent.
Run the targeted Windows-path, interruption, resume, progress and snapshot tests:
python -m pytest `
tests\test_view_exporter.py `
tests\test_unicode_safety.py `
-qThe view exporter tests cover bounded deterministic filenames, short atomic temporary names, durable source-row checkpoints, resume, source-fingerprint invalidation, transactional publication, up-to-date no-op behavior, and exact pointer totals.
See Resumable navigation views.
Before tagging:
python scripts/quality.py
python scripts/release_check.pyThe release check verifies package metadata, version consistency, clean repository exclusions, expected documentation and build artifacts.