# =============================================================================

# Relata — .gitignore
# =============================================================================
# Layered by tool. Keep entries grouped and alphabetised within groups.
# Anything generated, machine-specific, or secret stays out of git.
# Spec corpus (SPECS.md, DECISIONS.md, etc.), source code, and CI config stay IN.
# =============================================================================

# -----------------------------------------------------------------------------
# Rust / Cargo
# -----------------------------------------------------------------------------
/target/
**/target/
**/*.rs.bk
Cargo.lock.bak

# Cargo.lock IS committed for binaries (relata-cli) and applications, but the
# workspace publishes only binaries today. If a publishable library is added
# later, narrow this rule per ADR.
# (Cargo.lock is intentionally NOT ignored.)

# Cargo registry / git caches that some tools dump locally
.cargo/registry/
.cargo/git/

# Coverage and profiling output
*.profraw
*.profdata
coverage/
tarpaulin-report.html
cobertura.xml
lcov.info
flamegraph.svg
perf.data
perf.data.old
samply.json
*.cargo-ok
CLAUDE.md
# Criterion benchmark output (large; regenerate locally)
**/criterion/

# rust-analyzer / IDE incrementals
rust-analyzer-*.log

# -----------------------------------------------------------------------------
# Build artefacts (engine binaries, signed bundles, release outputs)
# -----------------------------------------------------------------------------
/dist/
/build/
/release/
*.dSYM/
*.pdb

# Air-gap install bundles (large; not source of truth)
/airgap-bundle/
*.airgap.tar
*.airgap.tar.zst

# -----------------------------------------------------------------------------
# Generated docs (mdbook, rustdoc) — sources are committed, output is not
# -----------------------------------------------------------------------------
/docs/book/
/target/doc/

# -----------------------------------------------------------------------------
# Conformance corpus (M0.5) and benchmark data
# -----------------------------------------------------------------------------
# Sample-data generators are committed under relata-conformance/<pack>/generators/
# Generated fixtures (Parquet, CSV, JSON) are large and reproducible — ignore them.
/relata-conformance/*/fixtures/generated/
/relata-conformance/*/snapshots/
**/conformance-results-*.json
**/BENCHMARKS-RESULTS.local.md
**/BENCHMARKS-CONFORMANCE.local.md

# Legacy roadmap state mirror (M0.1.E). GitHub Issues/Milestones are current.
/roadmap_state.json

# -----------------------------------------------------------------------------
# Secrets, credentials, KMS material — NEVER commit
# -----------------------------------------------------------------------------
.env
.env.*
!.env.example
*.pem
*.key
*.p12
*.pfx
*.crt
*.cer
*.csr
!relata-conformance/**/*.pem.example
!relata-conformance/**/*.key.example
secrets/
credentials.json
**/kms-cache/
**/hsm-session-*

# AWS / GCP / Azure / Cloudflare local credentials
.aws/credentials
.aws/config
gcloud/
.azure/
.cloudflare/
.config/rclone/

# TUF / Sigstore local material (ADR-058)
# Root metadata and Rekor pins are committed under docs/security/;
# session keys, cosign keys, and rekor signing material are NOT.
*.cosign.key
*.cosign.pub
!cosign.pub.example
# License files generated by the License Manager (test / demo artefacts)
*.lic
/tuf-staging/
/tuf-private/

# -----------------------------------------------------------------------------
# Object-store local emulators (MinIO, fake-s3) used in dev
# -----------------------------------------------------------------------------
/minio-data/
/.minio.sys/
/fake-s3/
/localstack/

# Kafka / Redpanda local data
/kafka-data/
/redpanda-data/

# etcd / FoundationDB local data (writer-lease fallback for M4.A.3)
/etcd-data/
/fdb-data/
/fdb.cluster

# -----------------------------------------------------------------------------
# Tracing / profiling artefacts
# -----------------------------------------------------------------------------
/traces/
*.svg.tmp
chrome-trace-*.json
otel-traces-*.json
*.heap-profile

# -----------------------------------------------------------------------------
# SDKs (sdks/python, sdks/typescript, sdks/go) — language-local artefacts
# -----------------------------------------------------------------------------
# Python (uv + pyo3)
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyd
.venv/
venv/
.env-py/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.pdm-build/
.pdm-python
dist-py/
build-py/
*.egg-info/
*.whl
uv.lock.bak

# Maturin / pyo3 build output
sdks/python/target/
sdks/python/*.so
sdks/python/*.dylib

# TypeScript / Node
node_modules/
dist-ts/
.npm/
.pnp.*
.yarn/
.parcel-cache/
*.tsbuildinfo
.next/
.turbo/

# Go
sdks/go/bin/
sdks/go/pkg/
sdks/go/vendor/

# -----------------------------------------------------------------------------
# Editor / IDE
# -----------------------------------------------------------------------------
.vscode/
!.vscode/extensions.json
!.vscode/settings.shared.json
.idea/
*.iml
*.swp
*.swo
*~
.*.swp
.*.swo
.zed/
.nvim/
.code-workspace

# -----------------------------------------------------------------------------
# OS noise
# -----------------------------------------------------------------------------
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Desktop.ini
$RECYCLE.BIN/

# -----------------------------------------------------------------------------
# CI / test scratch
# -----------------------------------------------------------------------------
/tmp/
/.tmp/
/scratch/
/.scratch/
*.log
!CHANGELOG*.md
test-output/
junit*.xml

# -----------------------------------------------------------------------------
# Simulation output — all generated; not part of the shipped artefact
# -----------------------------------------------------------------------------
simulation-output/
landing/simulation-output/

# -----------------------------------------------------------------------------
# AI/editor session state (chat-tool scratch — never commit)
# -----------------------------------------------------------------------------
.vibekit/
.claude/
.cursor/
.aider*
.aider/
.windsurf/

# -----------------------------------------------------------------------------
# Local overrides (last-resort escape hatch; document in PR if used)
# -----------------------------------------------------------------------------
*.local
*.local.*
.local/
LOCAL.md
NOTES.local.md
data/
docs/src/usecases/screenshots/

# Local Relata runtime state (CLI store, WAL, local data) — never commit
.relata/
