Skip to content

DFM-4544: Migrate to SDLC standards (UV + sdlc@3 + codeartifact@3)#55

Closed
franciscofabian wants to merge 2 commits into
masterfrom
DFM-4544
Closed

DFM-4544: Migrate to SDLC standards (UV + sdlc@3 + codeartifact@3)#55
franciscofabian wants to merge 2 commits into
masterfrom
DFM-4544

Conversation

@franciscofabian
Copy link
Copy Markdown
Collaborator

Summary

  • Convert setup.py / setup.cfg (and the partial pyproject.toml) to a full PEP 621 pyproject.toml
  • Pin parquery==2.0.6 (setup.py had 2.0.6, the partial pyproject had stale 2.0.2)
  • Drop direct pyarrow dep (pulled transitively via parquery)
  • Drop codacy-coverage from the test group (replaced by sdlc/run-tests-with-coverage)
  • Add uv.lock (65 packages resolved against CodeArtifact private index)
  • __version__ now resolved via importlib.metadata (drops the PRE_RELEASE_VERSION env-var fallback)
  • CircleCI: sdlc@3 + codeartifact@3 orbs; full SDLC flow:
    • featuretest → approval → publish-dev (X.Y.Z.devN)
    • master/maintestpublish-rc (X.Y.ZrcN) → approval → create-release-branch
    • release/* → testpublish-release (X.Y.TIMESTAMP) + create-git-release
  • sdlc/run-tests-with-coverage preserves the existing test exclusions (test_move_parquet.py, test_simple_rpc.py) via extra-pytest-args, sets PARQUERYD_DATA_DIR=/tmp/parquet/ before running
  • ADR-4 pre-commit hooks: ruff, bandit, branch-name validator, uv-lock auto-update
  • ruff config moved from pyproject.toml → standalone ruff.toml (per ADR-4)
  • .github/workflows: validate.yml (PR validation) + pr-jira-footer.yml
  • .coveragerc, Makefile (kebab-case targets + default help target)

Verification

  • uv lock resolves cleanly (65 packages)
  • uv build produces wheel + sdist
  • circleci config validate passes
  • make help prints the target list

Notes

  • ARM64 testing was dropped. The previous config ran py311-x86 (with coverage) and py311-arm64 (smoke test) in parallel. The SDLC sdlc/python executor is amd64-only. If cross-arch validation is needed, we can add a sidecar job using cimg/python:3.11 on arm.medium.
  • parqueryd is a public repo. The validate.yml GitHub Action calls visualfabriq/.github/.github/workflows/validate-pr.yml@main, which is a private reusable workflow — public repos can't currently consume it (same situation as parquery PR Py3.11 #45). Either delete validate.yml or open up access on the .github repo. CircleCI's sdlc/validate-commit-format covers commit-format validation regardless.
  • GitHub repo settings (squash-only, PR_TITLE / PR_BODY for the squash commit, branch protection on master) need to be set manually via Settings → General if not already done.
  • The first dev/rc version on master will be 2.0.2rc1 (latest published is 2.0.1, no timestamp). After the first publish-release on a release branch publishes a timestamp version, subsequent rc/dev versions will inherit the timestamp.

Test plan

  • CircleCI: test job runs and passes on this PR (the two known-flaky tests are still ignored)
  • On merge to master: publish-rc publishes 2.0.2rc1 to CodeArtifact
  • Manual approval triggers create-release-branch
  • On release branch: publish-release publishes the timestamped final + GH release with assets

jira: DFM-4544

- Convert setup.py/setup.cfg + partial pyproject.toml to PEP 621 pyproject.toml
- Pin parquery==2.0.6 (matched setup.py; pyproject had stale 2.0.2)
- Drop pyarrow direct dep (pulled transitively via parquery)
- Drop codacy-coverage from test deps
- Add uv.lock with CodeArtifact private index
- __version__ via importlib.metadata
- CircleCI: sdlc@3 + codeartifact@3, run-tests-with-coverage with
  --ignore for test_move_parquet.py + test_simple_rpc.py,
  PARQUERYD_DATA_DIR=/tmp/parquet/ env setup,
  publish-rc on master/main, approval-gated create-release-branch,
  publish-release on release/*, opt-in publish-dev on feature branches
- Pre-commit hooks (ADR-4): ruff, bandit, branch-name, uv-lock
- ruff config moved from pyproject.toml to standalone ruff.toml
- .github/workflows: validate-pr + pr-jira-footer
- .coveragerc, Makefile (kebab-case, help target)
@franciscofabian franciscofabian requested a review from a team as a code owner April 30, 2026 14:55
@vf-github
Copy link
Copy Markdown
Collaborator

Coverage Report

Metric Value Threshold Status
Diff Coverage (changed lines) N/A 80%
Branch Coverage 0.5%
Line Coverage 13.0%

Compare branch: origin/main
Full report: CircleCI Artifacts

@franciscofabian franciscofabian deleted the branch master May 1, 2026 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants