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/),
|
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).
|
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
|
## [0.9.1] - 2025-07-04
|
||||||
|
|
||||||
# MFLUX v0.9.1 Release Notes
|
# 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
|
# Run uv build and check dist sizes for optimized user installs
|
||||||
.PHONE: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
rm -rf dist/mflux-*
|
rm -rf dist/mflux-*
|
||||||
# fresh build
|
# fresh build
|
||||||
@ -130,5 +130,6 @@ help:
|
|||||||
@echo " make format - Run ruff code formatter"
|
@echo " make format - Run ruff code formatter"
|
||||||
@echo " make check - Run linters auto fixes *and* style formatter via pre-commit hook"
|
@echo " make check - Run linters auto fixes *and* style formatter via pre-commit hook"
|
||||||
@echo " make test - Run tests"
|
@echo " make test - Run tests"
|
||||||
|
@echo " make build - Build distribution packages and check sizes"
|
||||||
@echo " make clean - Remove the virtual environment"
|
@echo " make clean - Remove the virtual environment"
|
||||||
@echo " make help - Show this help message"
|
@echo " make help - Show this help message"
|
||||||
|
|||||||
@ -219,11 +219,20 @@ class ReleaseManager:
|
|||||||
env["TWINE_USERNAME"] = "__token__"
|
env["TWINE_USERNAME"] = "__token__"
|
||||||
env["TWINE_PASSWORD"] = pypi_token
|
env["TWINE_PASSWORD"] = pypi_token
|
||||||
|
|
||||||
self.run_command(
|
try:
|
||||||
[sys.executable, "-m", "twine", "upload", "dist/*", "--verbose"],
|
self.run_command(
|
||||||
"Publishing to PyPI",
|
[sys.executable, "-m", "twine", "upload", "dist/*", "--verbose"],
|
||||||
env=env,
|
"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:
|
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."""
|
"""Return True if *version* of this package is already published on (Test)PyPI."""
|
||||||
@ -310,6 +319,11 @@ class ReleaseManager:
|
|||||||
self.build_package()
|
self.build_package()
|
||||||
self.verify_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)
|
# 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:
|
if not skip_github_release and not git_tag_exists:
|
||||||
print("📦 Publishing to PyPI (new release)...")
|
print("📦 Publishing to PyPI (new release)...")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user