Skip to content

Repo scaffolding & tooling + CI (#3) - #16

Merged
IceRhymers merged 2 commits into
masterfrom
issue/3-scaffolding
Jul 17, 2026
Merged

Repo scaffolding & tooling + CI (#3)#16
IceRhymers merged 2 commits into
masterfrom
issue/3-scaffolding

Conversation

@IceRhymers

Copy link
Copy Markdown
Owner

Closes #3.

Stands up the Python project skeleton, tooling, and CI so every later issue drops into a consistent structure. Mirrors the user's repo conventions (uc-catalog-mcp / databricks-agent-token-budgets).

What's here

Local verification (all green)

make install · make lint (ruff + ruff format + mypy) · make test (1 passed) · uv run code-search-index · make help — all exit 0. uv.lock resolves 68 packages on CPython 3.12.8.

Notes

  • The integration job runs a bare psql smoke step, not pytest -m integration (matches the issue's acceptance wording, avoids a no-tests-collected failure, and keeps DB-connection code within Lakebase connectivity layer (db/client.py, db/models.py) #4's scope).
  • Correction to the issue text: .gitignore was not already populated (it contained only .omc/); this PR rewrites it to the full set.

Stand up the Python project skeleton, tooling, and CI so later issues
drop into a consistent structure. Mirrors uc-catalog-mcp / token-budgets
conventions.

- pyproject.toml: uv + setuptools, py>=3.12, core deps, dev group,
  ruff (line-length 100, E/F/I), pytest markers unit/integration with
  --strict-markers, mypy config, code-search-index entry point.
- Makefile: install/test/test-integration/lint/fmt/fmt-check/
  requirements/clean/help (self-documenting).
- CI: lint + unit on push/PR; integration job with a pgvector/pgvector:pg16
  service running a CREATE EXTENSION pg_trgm smoke step.
- Empty app/ and indexer/ packages (+ indexer.job:main stub), scripts/,
  tests/unit, tests/integration with a placeholder unit test.
- Full .gitignore; uv.lock committed.

Co-authored-by: Isaac
The local uv resolver pins the internal Databricks PyPI proxy
(pypi-proxy.dev.databricks.com) as its default index, so a locally
generated uv.lock embeds proxy URLs that public GitHub Actions runners
cannot reach (uv sync times out). Public pypi.org is not reachable from
the dev machine, so a portable lock cannot be produced here.

For now, untrack uv.lock and let CI resolve fresh against public PyPI
(the repo carries no uv.toml, so uv defaults to pypi.org). Revisit
committing a portable lock once one can be generated with public PyPI
access.

Co-authored-by: Isaac
@IceRhymers
IceRhymers marked this pull request as ready for review July 17, 2026 20:42
@IceRhymers
IceRhymers merged commit 4225ba5 into master Jul 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repo scaffolding & tooling + CI

2 participants