Skip to content

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

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

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

Conversation

@franciscofabian
Copy link
Copy Markdown
Collaborator

Summary

  • Convert setup.py / setup.cfg to PEP 621 pyproject.toml (preserves the [build-system].requires pin on pyarrow>=22.0.0 and the performance / dataframes / all optional-dependency groups)
  • Add uv.lock (22 packages resolved against CodeArtifact private index) — also removed uv.lock from .gitignore
  • __version__ now resolved via importlib.metadata
  • 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
  • ADR-4 pre-commit hooks: ruff, bandit, branch-name validator, uv-lock auto-update
  • .github/workflows: validate.yml (PR validation) + pr-jira-footer.yml
  • .coveragerc, ruff.toml, Makefile (kebab-case targets + default help target)

Verification

  • uv lock resolves cleanly (22 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 (private ECR image). I went with the standard SDLC pattern for now; if cross-arch validation is needed we can add a sidecar job using cimg/python:3.11 on arm.medium. Flag during review if you want it back.
  • 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.

Test plan

  • CircleCI: test job runs and passes on this PR
  • On merge to master: publish-rc publishes 2.0.8rc1 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 to PEP 621 pyproject.toml
- Add uv.lock with CodeArtifact private index (remove from .gitignore)
- __version__ via importlib.metadata
- CircleCI: sdlc@3 + codeartifact@3, run-tests-with-coverage,
  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
- .github/workflows: validate-pr + pr-jira-footer
- .coveragerc, ruff.toml, Makefile (kebab-case targets, help target)
@franciscofabian franciscofabian requested a review from a team as a code owner April 30, 2026 14:12
@codacy-production
Copy link
Copy Markdown
Contributor

codacy-production Bot commented Apr 30, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@franciscofabian franciscofabian deleted the branch master May 1, 2026 06:20
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.

1 participant