diff --git a/src/mflux/release/pypi_publisher.py b/src/mflux/release/pypi_publisher.py index df5f454..18cb99f 100644 --- a/src/mflux/release/pypi_publisher.py +++ b/src/mflux/release/pypi_publisher.py @@ -126,7 +126,12 @@ class PyPIPublisher: comment="Automated release via mflux-release-script", ) - dist_files = list(Path("dist").glob("*")) + # Only select valid distribution files (.whl and .tar.gz) + dist_files = [] + dist_dir = Path("dist") + dist_files.extend(dist_dir.glob("*.whl")) + dist_files.extend(dist_dir.glob("*.tar.gz")) + if not dist_files: raise ValueError("No distribution files found in dist/") diff --git a/src/mflux/release/release_manager.py b/src/mflux/release/release_manager.py index 95f836c..89229bd 100644 --- a/src/mflux/release/release_manager.py +++ b/src/mflux/release/release_manager.py @@ -37,21 +37,21 @@ class ReleaseManager: if ReleaseManager._is_release_complete(git_tag_exists, github_release_exists): return - # 4. Create git tag if needed - if not git_tag_exists: - GitOperations.create_and_push_tag(tag_name, version) - - # 5. Create GitHub release if needed - if not github_release_exists: - release_notes = ChangelogParser.extract_release_notes_from_changelog(version) - GitHubAPI.create_github_release(github_token, github_repo, tag_name, version, release_notes) - - # 6. Handle PyPI publishing + # 4. Handle PyPI publishing FIRST (before creating git artifacts) if ReleaseManager._should_publish_to_pypi(git_tag_exists, github_release_exists, package_name, version): PyPIPublisher.build_and_verify_package() PyPIPublisher.publish_to_test_pypi(test_pypi_token, package_name, version) PyPIPublisher.publish_to_pypi(pypi_token, package_name, version) + # 5. Create git tag if needed + if not git_tag_exists: + GitOperations.create_and_push_tag(tag_name, version) + + # 6. Create GitHub release if needed + if not github_release_exists: + release_notes = ChangelogParser.extract_release_notes_from_changelog(version) + GitHubAPI.create_github_release(github_token, github_repo, tag_name, version, release_notes) + print(f"🎉 Release process completed successfully for version {version}!") @staticmethod