Release 0.9.2 (#233)
This commit is contained in:
parent
842be6dde2
commit
4fc63f535a
28
CHANGELOG.md
28
CHANGELOG.md
@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.9.2] - 2025-07-08
|
||||
|
||||
# MFLUX v0.9.2 Release Notes
|
||||
|
||||
### 🏗️ Build System Improvements
|
||||
|
||||
- **Updated build backend**: Migrated from setuptools to modern `uv build` backend for faster and more reliable package builds
|
||||
- **Enhanced artifact exclusion**: Optimized distribution packages by excluding documentation assets (~27MB) and example images (~5MB) from published packages
|
||||
- **New `make build` command**: Added development build command for testing distribution packages and validating sizes
|
||||
|
||||
### 🗃️ Offline Resilience
|
||||
|
||||
- **Local-first behavior**: Implemented cache-first downloading to improve resilience when HuggingFace Hub or network connectivity is unavailable
|
||||
- **Graceful fallback**: System automatically uses cached model files when available, falling back to downloads only when necessary
|
||||
- **Improved reliability**: Enhanced model loading reliability in environments with unstable internet connections
|
||||
|
||||
### 🔧 Developer Experience
|
||||
|
||||
- **Release script improvements**: Enhanced release automation with better error handling and duplicate version detection
|
||||
- **Build system fixes**: Fixed minor typos in Makefile that could cause build issues
|
||||
|
||||
## Contributors
|
||||
|
||||
- **Anthony Wu (@anthonywu)**: Build system modernization, offline resilience implementation
|
||||
- **Filip Strand (@filipstrand)**: Release automation improvements, build fixes
|
||||
|
||||
---
|
||||
|
||||
## [0.9.1] - 2025-07-04
|
||||
|
||||
# MFLUX v0.9.1 Release Notes
|
||||
|
||||
3
Makefile
3
Makefile
@ -99,7 +99,7 @@ test: ensure-pytest
|
||||
|
||||
|
||||
# Run uv build and check dist sizes for optimized user installs
|
||||
.PHONE: build
|
||||
.PHONY: build
|
||||
build:
|
||||
rm -rf dist/mflux-*
|
||||
# fresh build
|
||||
@ -130,5 +130,6 @@ help:
|
||||
@echo " make format - Run ruff code formatter"
|
||||
@echo " make check - Run linters auto fixes *and* style formatter via pre-commit hook"
|
||||
@echo " make test - Run tests"
|
||||
@echo " make build - Build distribution packages and check sizes"
|
||||
@echo " make clean - Remove the virtual environment"
|
||||
@echo " make help - Show this help message"
|
||||
|
||||
@ -219,11 +219,20 @@ class ReleaseManager:
|
||||
env["TWINE_USERNAME"] = "__token__"
|
||||
env["TWINE_PASSWORD"] = pypi_token
|
||||
|
||||
self.run_command(
|
||||
[sys.executable, "-m", "twine", "upload", "dist/*", "--verbose"],
|
||||
"Publishing to PyPI",
|
||||
env=env,
|
||||
)
|
||||
try:
|
||||
self.run_command(
|
||||
[sys.executable, "-m", "twine", "upload", "dist/*", "--verbose"],
|
||||
"Publishing to PyPI",
|
||||
env=env,
|
||||
)
|
||||
except Exception as e:
|
||||
if "already been used" in str(e) or "filename has already been used" in str(e):
|
||||
print(f"⚠️ Version {version} already exists on PyPI (detected during upload)")
|
||||
print(" This can happen due to race conditions or previous partial uploads")
|
||||
print(" The release process will continue, but PyPI publishing was skipped")
|
||||
return
|
||||
else:
|
||||
raise
|
||||
|
||||
def version_exists_on_pypi(self, version: str, test_pypi: bool = False) -> bool:
|
||||
"""Return True if *version* of this package is already published on (Test)PyPI."""
|
||||
@ -310,6 +319,11 @@ class ReleaseManager:
|
||||
self.build_package()
|
||||
self.verify_package()
|
||||
|
||||
# Check if version already exists on PyPI before attempting to publish
|
||||
if self.version_exists_on_pypi(version, test_pypi=False):
|
||||
print(f"⚠️ Version {version} already exists on PyPI, skipping all PyPI publishing")
|
||||
return
|
||||
|
||||
# Only publish to PyPI if this is a new release (both git tag and GitHub release were created)
|
||||
if not skip_github_release and not git_tag_exists:
|
||||
print("📦 Publishing to PyPI (new release)...")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user