Skip to content

fix(ci): resolve beta release workflow failures #107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
May 31, 2025

Conversation

sidmohan0
Copy link
Contributor

@sidmohan0 sidmohan0 commented May 31, 2025

🚨 CRITICAL BUG FIX

Beta workflow was accidentally publishing STABLE releases to PyPI instead of beta releases!

Root Cause Analysis

  • βœ… Workflow correctly generated version: 4.2.0b3
  • βœ… Created proper GitHub release: v4.2.0b3 (Pre-release)
  • ❌ Published to PyPI: datafog-4.2.0 (STABLE VERSION)

Problem: setup.py had hardcoded version = '4.2.0' that overrode the beta version during package build.

Fixes Applied

  1. setup.py Version Management

    • Changed hardcoded version to read from datafog/__about__.py
    • Now uses single source of truth for version across codebase
  2. Workflow Cleanup

    • Removed unnecessary sed command for setup.py
    • Simplified git operations (only track __about__.py)
  3. Changelog Script Arguments

    • Added --beta and --output flag support
    • Resolves open BETA_CHANGELOG.md: no such file or directory
  4. Beta Version Auto-Increment

    • Added git fetch --tags for complete tag history
    • Intelligent increment: v4.2.0b1 β†’ v4.2.0b2 β†’ v4.2.0b3

Impact

  • BEFORE: Beta workflow published stable 4.2.0 to PyPI (❌)
  • AFTER: Beta workflow will publish proper 4.2.0b4 to PyPI (βœ…)

Validation

βœ… Local testing confirms setup.py now reads beta versions correctly
βœ… Version detection logic works: finds next available beta number
βœ… Changelog generation works with --beta --output BETA_CHANGELOG.md

This is a critical fix to prevent accidental stable releases.

sidmohan0 and others added 8 commits May 30, 2025 19:31
…e test

The --benchmark-skip flag is not a valid pytest argument, causing 'error:
unrecognized arguments' in beta-release workflow. Replaced with simple
performance test that doesn't require pytest-benchmark plugin.

Changes:
- Remove invalid --benchmark-skip flag
- Use simple_performance_test.py for performance validation
- Maintains performance verification without plugin dependencies
- Runs with optimal performance settings (4 threads, no memory debugging)

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Since 4.2.0 has not been publicly released yet, creating 4.2.0b1 beta
instead of jumping to 4.3.0b1. This allows proper beta testing of the
current 4.2.0 feature set before the official release.

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Improvements to beta-release workflow:

1. Fixed version logic: Create beta of current version (4.2.0b1) instead of
   auto-incrementing minor version (4.3.0b1) for unreleased versions

2. Updated token usage: Use GH_PAT instead of GITHUB_TOKEN to resolve
   permission issues with git operations

3. Better versioning strategy:
   - 4.2.0 (unreleased) β†’ 4.2.0b1 (current approach)
   - 4.2.0b1 β†’ 4.2.0b2 (future increments)
   - Only increment minor version after official release

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Improvements to beta-release workflow:

1. Fixed version logic: Create beta of current version (4.2.0b1) instead of
   auto-incrementing minor version (4.3.0b1) for unreleased versions

2. Updated token usage: Use GH_PAT instead of GITHUB_TOKEN to resolve
   permission issues with git operations

3. Better versioning strategy:
   - 4.2.0 (unreleased) β†’ 4.2.0b1 (current approach)
   - 4.2.0b1 β†’ 4.2.0b2 (future increments)
   - Only increment minor version after official release

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Fetch all tags before determining next beta version
- Loop through beta numbers to find next available version (e.g., b1 β†’ b2 β†’ b3)
- Prevents 'tag already exists' errors when v4.2.0b1 exists
- Ensures automatic increment to v4.2.0b2, v4.2.0b3, etc.

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@sidmohan0 sidmohan0 merged commit d10e8e2 into dev May 31, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant