-
Notifications
You must be signed in to change notification settings - Fork 0
Release v1.0.0: Blend Initial Release #2
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
Conversation
- Rename library from AsyncNet to Blend to resolve GitHub naming conflict - Update Package.swift with new package name and target names - Rename Sources/AsyncNet/ to Sources/Blend/ - Rename Tests/AsyncNetTests/ to Tests/BlendTests/ - Update all import statements from AsyncNet to Blend - Update documentation and comments throughout codebase - Update CI workflow and copilot instructions - All 79 tests pass with new module name - Maintains full API compatibility with preserved public interfaces
- Add Swift 6 language mode enforcement details - Update documentation section with enhanced README - Add GitHub setup guide reference - Include current status update with recent improvements - Confirm production readiness with 79 passing tests
- Remove unnecessary OSLog conditional compilation since all supported platforms (iOS 18+ and macOS 15+) have OSLog - Replace print-based fallback with direct blendLogger usage in all examples - Remove helper functions (logInfo, logError, etc.) and use blendLogger directly - Update all example apps: ErrorHandling, BasicNetworking, AdvancedNetworking, ImageOperations - Simplify NetworkUtilities.swift to use OSLog directly without conditional compilation - Remove SwiftLog dependency as it's no longer needed - Clean up ~50+ print statements across all examples with proper structured logging - Improve performance by eliminating function call indirection - Maintain consistent logging patterns across the entire codebase This change provides cleaner, more performant logging with direct OSLog integration while maintaining the same API surface for consumers.
- Update README.md with final v1.0.0 documentation - Fix SwiftUI extensions for production readiness - Update SwiftUI upload tests for consistency - All 79 tests passing with strict concurrency compliance - Ready for v1.0.0 release merge to main Closes release preparation for Blend v1.0.0
- Add uploadImage(onProgress:) overload to AsyncImageModel - Add uploadImage(onProgress:) overload to AsyncNetImageView - Maintain backward compatibility with existing APIs - Support progress callbacks during multipart/base64 uploads - Update documentation with progress tracking examples - All 79 tests still passing with strict concurrency Addresses API design concern about losing progress tracking when migrating from callback-based to async/await pattern
- Remove unnecessary Task nesting in performUploadWithTimeout - Maintain proper main actor isolation for AsyncImageModel calls - Keep Task wrapper for timeout racing mechanism - All 79 tests still passing with strict concurrency compliance Addresses unnecessary Task nesting while preserving proper actor isolation and timeout functionality
- Remove unnecessary Task nesting in SwiftUIUploadBasicTests.swift - Fix type consistency in task groups across upload test files - Correct logic error in SwiftUIUploadErrorTests.swift by moving model state assertions outside catch block - Ensure all 79 tests pass with strict concurrency compliance
…ntation - Add progress callback support to ImageService upload methods - Implement progress tracking in AsyncImageModel and AsyncNetImageView - Update README.md with comprehensive examples for both async/await and callback approaches - Maintain Swift 6 strict concurrency compliance - All 79 tests passing
- Add comprehensive examples for both simple and progress-tracking upload methods - Clarify when to use each upload variant - Include practical code examples showing async/await and callback patterns - Improve developer experience with clear usage guidance
- Fix AsyncImageModel upload documentation to show correct examples for simple vs progress-tracking variants - Update Logger subsystem from 'asyncnet' to 'blend' branding in NetworkUtilities - Replace 'let _' with '_' in SwiftUIUploadErrorTests for better code clarity - Fix link reference in docs/README.md to point to main README.md - All 79 tests still passing
- Fix link reference from (README.md#quick-start) to (../README.md#quick-start) - Ensure link points to main README.md file in repository root
- Add progress callback validation to ensure values are within 0.0 to 1.0 range - Replace print() statements with blendLogger for consistent logging - Add conditional compilation for OSLog availability with fallback logger - Improve cross-platform compatibility and logging consistency - All 79 tests still passing
- Update UploadType enum documentation to reflect correct size thresholds - Change from incorrect 1MB references to accurate 10MB encoded (~7.5MB raw) - Aligns documentation with actual UploadConfiguration.streamThreshold implementation
- Cache BlendConfig reference at AsyncImageModel actor boundary to minimize cross-actor calls in error handling paths - Fix timeout task cancellation handling in test helpers to comply with Swift 6 concurrency guidelines - Restructure async error handling in SwiftUI upload error tests for proper MainActor isolation and explicit error state verification - Update documentation to reflect accurate size thresholds and thread safety patterns - Ensure all changes maintain strict concurrency compliance and performance optimization
- Change #expect(true) to #expect(Bool(true)) to silence compiler warnings - Maintains test functionality while eliminating informational warnings - Improves code quality and reduces noise in test output
- Add trailing comma to last element in MockScript array for consistency - Include progress constants refactoring from ImageService+Upload.swift - Maintains consistent code style and improves maintainability
… API clarity - Add threading safety warnings to progress callback documentation - Enhance logger documentation with privacy warnings and production safety guidelines - Clarify size thresholds as configurable defaults in upload type documentation - Improve API clarity with detailed parameter descriptions and usage examples
- Update SwiftUI extensions with comprehensive @mainactor examples - Remove all legacy DispatchQueue references from documentation - Make logger subsystem configurable to avoid namespace conflicts - Fix timeout implementation race conditions with proper cleanup - Add concrete UI update examples for both SwiftUI and UIKit - Focus exclusively on modern concurrency patterns throughout
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR merges all development work for Blend v1.0.0 initial release, representing a complete transformation from AsyncNet to Blend. The release includes comprehensive renaming across the entire codebase, updated Swift 6 compliance, cross-platform support improvements, and extensive documentation and examples.
Key changes:
- Complete codebase rebrand from AsyncNet to Blend with updated naming conventions
- Enhanced SwiftUI integration with progress tracking for image uploads
- Comprehensive documentation structure with API reference and examples
- 79 comprehensive tests with full cross-platform validation
Reviewed Changes
Copilot reviewed 78 out of 107 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| docs/README.md | New comprehensive documentation index with feature overview and platform requirements |
| docs/API_REFERENCE.md | Complete API documentation covering all protocols, services, and SwiftUI components |
| Tests/BlendTests/ | Renamed test suite with updated imports and comprehensive SwiftUI upload test coverage |
| Sources/Blend/ | Complete source code rebrand with enhanced progress tracking and configuration updates |
| Package.swift | Updated package name and Swift 6 language mode enforcement |
| README.md | Comprehensive project documentation with updated branding and enhanced examples |
| Examples/ | Complete example suite demonstrating networking, image operations, and SwiftUI integration |
- Correct UploadType documentation to reference configuration.streamThreshold - Previously incorrectly referenced BlendConfig.maxUploadSize - Now accurately reflects actual implementation where streamThreshold controls upload type selection
This PR merges all development work for Blend v1.0.0 initial release.
Changes Included
Core Features
Testing & Validation
Documentation & Infrastructure
Repository Changes
Release Status
This PR prepares the codebase for the v1.0.0 release. All development and testing phases are complete, with only final release preparation remaining.
Breaking Changes
None (initial release)
Testing