Skip to content

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

Closed
franciscofabian wants to merge 5 commits into
mainfrom
DFM-4544
Closed

DFM-4544: Migrate to SDLC standards (UV + sdlc@3 + codeartifact@3)#56
franciscofabian wants to merge 5 commits into
mainfrom
DFM-4544

Conversation

@franciscofabian
Copy link
Copy Markdown
Collaborator

@franciscofabian franciscofabian commented May 1, 2026

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, uv-lock auto-update
  • ruff config moved from pyproject.toml → standalone ruff.toml (per ADR-4)
  • .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

  • 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 May 1, 2026 06:19
@vf-github
Copy link
Copy Markdown
Collaborator

vf-github commented May 1, 2026

Coverage Report

Metric Value Threshold Status
Diff Coverage (changed lines) 100% 80% ✅ Pass
Branch Coverage 0.5%
Line Coverage 13.0%

Compare branch: origin/main
Full report: CircleCI Artifacts

Changed file coverage
File Coverage Missing
- parqueryd/__init__.py 100% -

Per review on parquery PR #46: Python packages don't need
release-candidate or release-branch indirection. Every merge to main
publishes a full timestamp-versioned package + GitHub release,
mirroring the odin-shared-package pattern.

---
jira: DFM-4544
@franciscofabian franciscofabian deleted the DFM-4544 branch May 1, 2026 12:10
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