From f0b753a273ba0edec6cb65d2935964c88f4e1740 Mon Sep 17 00:00:00 2001 From: "const.koutsakis@aurecongroup.com" Date: Sun, 26 Apr 2026 20:07:25 +1000 Subject: [PATCH] chore: .gitignore, .editorconfig, .dockerignore (#5) Port .gitignore from Teller (Python-template patterns with anchored /lib/, /dist/, /build/ so frontend subtrees aren't swallowed). Strip Teller-specific lines. Add .editorconfig (LF, UTF-8, 4-space Python, 2-space JS/TS/YAML/Markdown). Add .dockerignore excluding .git/, .github/, .claude/, tests/, docs/, eval/, node_modules/ from the build context. Closes #5 Co-Authored-By: Claude Opus 4.7 (1M context) --- .dockerignore | 52 +++++++++++++++++++++++++ .editorconfig | 28 +++++++++++++ .gitignore | 106 +++++++++++++++++++++++++------------------------- 3 files changed, 134 insertions(+), 52 deletions(-) create mode 100644 .dockerignore create mode 100644 .editorconfig diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d48c57f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,52 @@ +# Version control +.git/ +.gitignore +.gitattributes + +# CI / repo policy (not needed inside the image) +.github/ + +# Dev tooling +.claude/ +.vscode/ +.idea/ +.editorconfig +.pre-commit-config.yaml +justfile + +# Python build / cache artefacts +__pycache__/ +*.py[cod] +*.egg-info/ +.eggs/ +.mypy_cache/ +.pytest_cache/ +.ruff_cache/ +.coverage +.coverage.* +htmlcov/ +coverage.xml + +# Virtualenvs +.venv/ +venv/ +env/ +ENV/ + +# Node (built into the frontend stage; not needed in the python stage) +node_modules/ +frontend/dist/ +frontend/.vite/ + +# Tests / docs / eval — not part of the runtime image +tests/ +docs/ +eval/ + +# Local env files +.env +.envrc + +# OS +.DS_Store +Thumbs.db diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..4827659 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,28 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space + +[*.py] +indent_size = 4 + +[*.{js,jsx,ts,tsx,json,jsonc,html,css,scss,svg,xml}] +indent_size = 2 + +[*.{yml,yaml,toml}] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false +indent_size = 2 + +[Makefile] +indent_style = tab + +[justfile] +indent_style = space +indent_size = 4 diff --git a/.gitignore b/.gitignore index 83972fa..1c8bc4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,13 @@ +# Claude Code agent hooks +.claude/settings.local.json +.claude/bash-log.txt +.claude/worktrees/ + +# Node / Frontend +node_modules/ +frontend/dist/ +frontend/.vite/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[codz] @@ -7,28 +17,31 @@ __pycache__/ *.so # Distribution / packaging +# Anchored to repo root with leading `/` — these are Python build artefacts +# that should never appear at the top level. Without anchoring, `lib/` matched +# `frontend/src/lib/` too and silently ignored any new file under it. .Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ +/build/ +/develop-eggs/ +/dist/ +/downloads/ +/eggs/ +/.eggs/ +/lib/ +/lib64/ +/parts/ +/sdist/ +/var/ +/wheels/ +/share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec @@ -92,34 +105,34 @@ ipython_config.py # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. -# Pipfile.lock +#Pipfile.lock # UV # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. -# uv.lock +#uv.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -# poetry.lock -# poetry.toml +#poetry.lock +#poetry.toml # pdm # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python. # https://pdm-project.org/en/latest/usage/project/#working-with-version-control -# pdm.lock -# pdm.toml +#pdm.lock +#pdm.toml .pdm-python .pdm-build/ # pixi # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control. -# pixi.lock +#pixi.lock # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one # in the .venv directory. It is recommended not to include this directory in version control. .pixi @@ -131,19 +144,6 @@ __pypackages__/ celerybeat-schedule celerybeat.pid -# Redis -*.rdb -*.aof -*.pid - -# RabbitMQ -mnesia/ -rabbitmq/ -rabbitmq-data/ - -# ActiveMQ -activemq-data/ - # SageMath parsed files *.sage.py @@ -182,26 +182,24 @@ dmypy.json cython_debug/ # PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -# .idea/ +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ # Abstra -# Abstra is an AI-powered process automation framework. -# Ignore directories containing user credentials, local state, and settings. -# Learn more at https://abstra.io/docs +# Abstra is an AI-powered process automation framework. +# Ignore directories containing user credentials, local state, and settings. +# Learn more at https://abstra.io/docs .abstra/ # Visual Studio Code -# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore -# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore -# and can be added to the global gitignore or merged into this file. However, if you prefer, -# you could uncomment the following to ignore the entire vscode folder +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +# and can be added to the global gitignore or merged into this file. However, if you prefer, +# you could uncomment the following to ignore the entire vscode folder # .vscode/ -# Temporary file for partial code execution -tempCodeRunnerFile.py # Ruff stuff: .ruff_cache/ @@ -209,10 +207,14 @@ tempCodeRunnerFile.py # PyPI configuration file .pypirc +# Cursor +# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to +# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data +# refer to https://docs.cursor.com/context/ignore-files +.cursorignore +.cursorindexingignore + # Marimo marimo/_static/ marimo/_lsp/ __marimo__/ - -# Streamlit -.streamlit/secrets.toml