Repo scaffolding & tooling + CI (#3) - #16
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
requires-python>=3.12, core deps,[dependency-groups] dev, ruff (line-length 100, E/F/I), pytest markersunit/integrationwith--strict-markers, mypy config, and thecode-search-index = "indexer.job:main"entry point.install/test/test-integration/lint/fmt/fmt-check/requirements/clean/help(self-documenting). No deploy/migrate targets (owned by Alembic setup + revision 0001 + migrate.py (three-principal grants) #5/DABs infra: databricks.yml + postgres_projects/postgres_roles + secret scope #6)..github/workflows/ci.yml) — lint + unit on push/PR; an integration job with apgvector/pgvector:pg16service running aCREATE EXTENSION pg_trgmsmoke step (the migrate-local parity path for later issues).app/andindexer/packages (+ anindexer.job:mainstub replaced by Indexing job: tarball fetch + parse + tree-sitter symbols + mark-and-sweep #7),scripts/,tests/unit,tests/integrationwith a placeholder unit test..gitignore;uv.lockcommitted.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.lockresolves 68 packages on CPython 3.12.8.Notes
psqlsmoke step, notpytest -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)..gitignorewas not already populated (it contained only.omc/); this PR rewrites it to the full set.