Skip to content

Conversation

@danielfromearth
Copy link
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

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
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
Copy link
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
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

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
Copy link
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

@danielfromearth
Copy link
Collaborator Author

pre-commit.ci autofix

@danielfromearth
Copy link
Collaborator Author

@ank1m, look good to you for merging?

@ank1m
Copy link
Collaborator

ank1m commented Jan 14, 2026

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

@danielfromearth
Copy link
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.

4 participants