# =============================================================================
# METAR → IWXXM monorepo — apps/, packages/, vendor/
# =============================================================================

# --- Secrets & local operator env (never commit) ---
.env
.env.*
!.env.example
prod.env
.envrc

# Per-workspace env overrides (apps/* and packages/*)
apps/**/.env
apps/**/.env.*
!apps/**/.env.example
packages/**/.env
packages/**/.env.*
!packages/**/.env.example

# Legacy env paths (pre-migration; remove after cutover)
backend/.env
auth/.env
frontend/.env

# --- Python (uv workspace: apps/backend, packages/*) ---
__pycache__/
*.py[codz]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.manifest
*.spec
pip-log.txt
pip-delete-this-directory.txt
__pypackages__/
*.sage.py
.venv/
venv/
env/
ENV/
env.bak/
venv.bak/
.pdm-python
.pdm-build/
.pixi

# --- Node / pnpm workspace (apps/*, packages/*) ---
**/node_modules/
.pnp
.pnp.js
.pnpm-store/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.eslintcache
*.tsbuildinfo

# --- Build & bundle outputs ---
**/dist/
**/dist-ssr/
**/build/
**/.vite/
**/.turbo/
**/.next/
**/.nuxt/
**/.output/
**/.svelte-kit/

# --- Test & coverage ---
.tox/
.nox/
.coverage
.coverage.*
.coverage-baseline.json
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
htmlcov/
htmlcov_ann/
cover/
.hypothesis/
.pytest_cache/
.nyc_output
**/coverage/

# Playwright (apps/e2e and legacy frontend/)
**/test-results/
**/playwright-report/
**/blob-report/
**/.playwright/
**/playwright/.cache/

# --- Typecheck & lint caches ---
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
.ruff_cache/
cython_debug/

# --- IDE & OS ---
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
Thumbs.db

# --- Docs site builds ---
docs/_build/
/site

# --- Local tooling binaries / artifacts ---
.tools/
.local/

# --- Cursor (local indexing prefs only; .cursorignore is tracked) ---
.cursorindexingignore

# --- Misc generated ---
*.log
*.db
*.local
local_settings.py
db.sqlite3
db.sqlite3-journal
instance/
.webassets-cache
.scrapy
.ipynb_checkpoints
profile_default/
ipython_config.py
celerybeat-schedule
celerybeat.pid
.abstra/
.pypirc
marimo/_static/
marimo/_lsp/
__marimo__/

# --- Legacy submodule / pre-migration paths (remove after M7 cutover) ---
# Vendor snapshots live under vendor/schemas/ once migrated (tracked, not ignored).
GIFTs/.venv/
GIFTs/.gifts/
GIFTs/build/
GIFTs/dist/
GIFTs/data/
GIFTs/.coverage
GIFTs/.pytest_cache/
GIFTs/.mypy_cache/
GIFTs/sfstns.db
GIFTs/driver.py
GIFTs/wiki/

# --- Rust / maturin (tac2iwxxm / iwxxm-validate PyO3) ---
packages/tac2iwxxm/rust/target/
packages/iwxxm-validate/rust/target/

# E10-34 — synced runtime schema subset (generated; MANIFEST.json is tracked)
packages/iwxxm-validate/src/iwxxm_validate/schemas/iwxxm/
packages/iwxxm-validate/src/iwxxm_validate/schemas/iwxxm-us/
packages/iwxxm-validate/src/iwxxm_validate/schemas/LAST_SYNC.json

# ADR-027 — xsdata pydantic trees are committed (T3.7); ignore only bytecode
packages/shared/src/metar_shared/iwxxm_xsd/**/__pycache__/

