Skip to content

Implement uv dependency management and versioning with bump-my-version#321

Merged
danielfromearth merged 15 commits intodevelopfrom
feat/issue-295-uv-instead-of-poetry
Jan 14, 2026
Merged

Implement uv dependency management and versioning with bump-my-version#321
danielfromearth merged 15 commits intodevelopfrom
feat/issue-295-uv-instead-of-poetry

Conversation

@danielfromearth
Copy link
Copy Markdown
Collaborator

@danielfromearth danielfromearth commented Dec 11, 2025

Overview

Replace poetry-based dependency and version management with uv and bump-my-version, and restructure GitHub Actions CI/CD workflows for improved automation and deployment processes.

GitHub Issue: #295, #302, #317

Description

Dependency & Version Management Migration

  • Replace Poetry with uv for faster dependency management
  • Integrate bump-my-version for automated semantic versioning
  • Update pyproject.toml configuration and remove poetry.lock

CI/CD Workflow Restructuring

New Workflows:

  • pr-checks.yml - PR validation with security scanning, linting, type checking, unit tests, and CHANGELOG validation
  • publish.yml - Automated PyPI publishing and Docker builds on GitHub releases
  • auto-bump-develop.yml - Auto-bumps develop to next minor version when release branch is created
  • pull-request-received.yml - Handles external fork PRs (unit tests only, no secrets)
  • docker-build.yml, unit-tests.yml, integration-tests.yml - Reusable workflow components

Enhanced version-and-build.yml:

  • Only bumps versions on PR merges (checks for "Merge pull request" pattern)
  • Supports venue-based deployments (dev, sit, uat, ops)
  • Publishes to Test PyPI for release branches
  • Builds Docker images for develop/release branches

Removed: build-pipeline.yml, release-created.yml, pull_request.yml

Version Bumping & Publishing Strategy

Version Bumping:

  • Develop: Auto-increment alpha on PR merge (1.11.0a4 → 1.11.0a5)
  • Release: Alpha → RC1 on creation, increment RC on subsequent merges
  • Main: Strip pre-release (1.11.0rc3 → 1.11.0)

Publishing:

  • Release branches → Test PyPI + Docker (uat tag)
  • GitHub releases → Production PyPI + Docker (ops, latest, version tags)
  • Develop branch → Docker only (sit tag)

Documentation & Scripts

New Documentation:

  • CI-CD-README.md - Comprehensive developer guide with workflows, branching strategy, and troubleshooting
  • CI_CD_ARCHITECTURE_DIAGRAM.md - Mermaid diagrams showing complete CI/CD architecture
  • HOW_TO_RELEASE.md - Updated release process with auto-bump details

Scripts: version_bump.sh, verify_tag.sh, create-netrc

Configuration: Updated Dependabot grouping and PR template checklist

Local test steps

Test suite passes with uv, version bumping scripts validated, linting and type checks pass

PR Acceptance Checklist

  • Unit tests added/updated and passing
  • Integration testing completed (CI/CD workflows validated)
  • CHANGELOG.md updated
  • Documentation updated (extensive CI/CD documentation added)
  • Breaking changes documented (migration from poetry to uv)

📚 Documentation preview 📚: https://stitchee--321.org.readthedocs.build/en/321/

…version

Replace poetry-based dependency and version management:
- Add uv documentation
- Remove poetry references
- Add new version-and-build.yml workflow
- Remove old build-pipeline.yml and release-created.yml workflows
- Add bump_develop_after_release.sh script for collision prevention
- Create versioning documentation for Git Flow process
- Update pyproject.toml for uv and bump-my-version configuration
- Update README with uv guidance and versioning information
@danielfromearth danielfromearth changed the title feat: implement uv dependency management and versioning with bump-my-… Implement uv dependency management and versioning with bump-my-version Dec 11, 2025
@danielfromearth danielfromearth added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file automation CI, CD, or other automation labels Dec 11, 2025
@danielfromearth danielfromearth marked this pull request as ready for review December 19, 2025 17:23
@danielfromearth danielfromearth marked this pull request as draft December 30, 2025 17:32
danielfromearth and others added 2 commits December 30, 2025 15:58
Simplified branch patterns for pull requests.
- Restructure GitHub Actions workflows for better organization and efficiency
  - Add dedicated PR validation workflow (pr-checks.yml) with security scanning, linting, type checks, and CHANGELOG validation
  - Create reusable workflows for unit tests, integration tests, and Docker builds
  - Add publish workflow for release automation to PyPI
  - Implement auto-bump workflow for version management after release branch creation
  - Modify pull request workflows for both internal and external contributors

- Enhance version bumping strategy
  - Only bump versions on PR merges, not direct pushes
  - Add scripts for automated version management (version_bump.sh, verify_tag.sh)
  - Separate version bumping from build/publish steps

- Improve testing workflows
  - Rename and consolidate test workflows (unit-tests.yml, integration-tests.yml)
  - Add timeout configurations and dependency caching
  - Use frozen dependencies for reproducible builds

- Add comprehensive documentation
  - Create CI-CD-README.md with detailed workflow explanations
  - Add CI_CD_ARCHITECTURE_DIAGRAM.md with Mermaid diagrams
  - Update HOW_TO_RELEASE.md with additional info about release process

- Publishing improvements
  - Separate publishing to Test PyPI (release branches) and production PyPI (releases)
  - Add Docker image building for different environments (sit, uat, ops)
  - Implement venue-based deployments

- Configuration updates
  - Update dependabot configuration with better grouping and labeling
  - Enhance PR template with additional checklist items
  - Remove poetry.lock (migrated to uv)
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Jan 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.63%. Comparing base (7774820) to head (5132276).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #321   +/-   ##
========================================
  Coverage    90.63%   90.63%           
========================================
  Files            9        9           
  Lines          470      470           
========================================
  Hits           426      426           
  Misses          44       44           
Flag Coverage Δ
integration ?
unittests 90.63% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

danielfromearth and others added 4 commits January 2, 2026 17:03
Merge VERSIONING.md into CI-CD-README.md and streamline docs/README.md
to eliminate confusion from having three overlapping documentation files.
@danielfromearth danielfromearth self-assigned this Jan 5, 2026
@danielfromearth danielfromearth marked this pull request as ready for review January 5, 2026 15:32
Comment thread .github/workflows/auto-bump-develop.yml Outdated
Comment thread .github/workflows/publish.yml Outdated
Comment thread pyproject.toml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

no sure if it's case sensitive or not? CODECOV_TOKEN is lowercase in line 10

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I'm pretty sure this is fine, i.e., they are not case sensitive

Comment thread .github/workflows/publish.yml Outdated
Comment thread .github/workflows/publish.yml Outdated
Comment thread scripts/version_bump.sh Outdated
Comment thread HOW_TO_RELEASE.md Outdated
Comment thread Dockerfile Outdated
Comment thread .readthedocs.yaml Outdated
Comment thread .github/workflows/auto-bump-develop.yml Outdated
Comment thread .github/workflows/publish.yml Outdated
Comment thread .github/workflows/publish.yml Outdated
Comment thread .github/workflows/publish.yml Outdated
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I'm pretty sure this is fine, i.e., they are not case sensitive

Comment thread .readthedocs.yaml Outdated
Comment thread Dockerfile Outdated
Comment thread HOW_TO_RELEASE.md Outdated
Comment thread pyproject.toml Outdated
Comment thread pyproject.toml
@danielfromearth
Copy link
Copy Markdown
Collaborator Author

pre-commit.ci autofix

@danielfromearth
Copy link
Copy Markdown
Collaborator Author

@ank1m, look good to you for merging?

@ank1m
Copy link
Copy Markdown
Collaborator

ank1m commented Jan 14, 2026

@danielfromearth Do you know why snyk fails? Otherwise looks good to merge!

@danielfromearth
Copy link
Copy Markdown
Collaborator Author

Okay, merging!

@danielfromearth danielfromearth merged commit d013097 into develop Jan 14, 2026
9 of 11 checks passed
@danielfromearth danielfromearth deleted the feat/issue-295-uv-instead-of-poetry branch January 14, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation CI, CD, or other automation dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants