# REQ.UNIVERSAL: All professional GitHub project repositories MUST include .gitignore.
# WHY: Prevent committing generated artifacts, local state, secrets, and OS-specific files.
# ALT: Repository may customize ignores, but MUST preserve universal safety rules.
# CUSTOM: Logs may be temporarily committed for verification; keep ignored for production and security.

# === Universal (all projects, all languages) ===

# WHY: Logs are useful during debugging and verification.
# ALT: Uncomment temporarily if logs must be inspected or validated.
# *.log
# logs/
PRIVATE_NOTES.md

# WHY: Temporary and swap files are machine-local noise and create meaningless diffs.
*.swo
*.swp
*.tmp
*~

# === VS Code (special case) ===

# WHY: Ignore editor state while allowing a shared baseline configuration.
.vscode/*

# WHY: Commit baseline configuration files for consistent development experience.
!.vscode/extensions.json
!.vscode/settings.json
# ALT: Commit .vscode/tasks.json only if tasks are essential to the workflow.

# === OS-specific files (macOS / Windows) ===

# WHY: OS-generated metadata files should never be tracked.
.AppleDouble
.DS_Store
.LSOverride
Icon\r
._*
.Spotlight-V100/
.Trashes
desktop.ini
ehthumbs.db
Thumbs.db

# === Editors / IDEs (non-VS Code) ===

# WHY: IDE metadata is machine-local and should not be tracked.
*.code-workspace
.idea/

# === Environment variables and secrets ===

# WHY: Never commit credentials or environment-specific configuration.
.env
.env.*
*.env

# === Documentation build output ===

# WHY: Static site build output is generated.
site/

# === Generic caches ===

# WHY: Generic caches are machine-local and should not be tracked.
.cache/

# === Go ===

# WHY: Go build outputs are generated artifacts.
*.exe
*.out
*.test

# WHY: Go workspace files are developer-environment specific.
go.work
go.work.sum

# === Node / JavaScript ===

# WHY: Dependencies and tool logs are generated and should not be tracked.
node_modules/
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*

# === Python ===

# WHY: Virtual environments are machine-local and reproducible.
.venv/
venv/

# WHY: Python version when using scm
src/datafun_toolkit/_version.py

# WHY: Python bytecode is generated.
__pycache__/
*.pyc
*.pyd
*.pyo

# WHY: Build and packaging artifacts are generated.
.eggs/
build/
dist/
*.egg
*.egg-info/
*.whl

# WHY: Tooling caches should not be tracked.
.coverage
.coverage.*
.mypy_cache/
.pytest_cache/
.pytype/
.ruff_cache/
.tox/

# WHY: Notebook checkpoint state is generated.
.ipynb_checkpoints/

# === Rust ===

# WHY: Rust build output is generated.
target/
