Skip to content

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

Merged
franciscofabian merged 13 commits into
mainfrom
DFM-4544
May 13, 2026
Merged

DFM-4544: Migrate to SDLC standards (UV + sdlc@3 + codeartifact@3)#46
franciscofabian merged 13 commits into
mainfrom
DFM-4544

Conversation

@franciscofabian
Copy link
Copy Markdown
Collaborator

@franciscofabian franciscofabian commented May 1, 2026

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, uv-lock auto-update
  • .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

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 May 1, 2026 06:22
@codacy-production
Copy link
Copy Markdown
Contributor

codacy-production Bot commented May 1, 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.

Comment thread .circleci/config.yml Outdated
- /release\/.*/

# Main: publish RC + approval-gated release-branch creation
- publish-rc:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is correct. Everything merged to main is a full released version. Release branches are only needed if we want to hotfix something for a specific release. But in that case we also want to build a real version not a release candidate.

Per review on 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
Re-add create-release-branch as an opt-in feature-branch approval gate;
publish-package now runs on both main and release/* (full timestamp
release + GitHub release on either). Mirrors the vf_initialize_data
final shape.

---
jira: DFM-4544
@franciscofabian franciscofabian requested a review from ffinkbe May 13, 2026 08:19
@franciscofabian franciscofabian merged commit e0e2a78 into main May 13, 2026
2 of 4 checks passed
@franciscofabian franciscofabian deleted the DFM-4544 branch May 13, 2026 13:54
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.

3 participants