This repository was archived by the owner on Aug 30, 2025. It is now read-only.
🚀 SimpleEnvs v2.0.0-beta.2 Pre-Release
Pre-release
Pre-release
🚀 SimpleEnvs v2.0.0-beta.2 Release Notes
Release Date: June 18, 2025
Version: 2.0.0-beta.2
API Version: Updated
🎯 Overview
This beta release introduces significant architectural improvements with a focus on async/sync flexibility, enhanced memory management, and streamlined testing. We've completely rethought our approach to secure environment loading while maintaining backward compatibility.
✨ What's New
🔄 Async/Sync Architecture Overhaul
- Dual Loading APIs: Introduced both
load_secure_asyncand synchronousload_securefor maximum flexibility - Smart Event Loop Management: Improved handling of async contexts and thread execution
- Simplified API: Removed unnecessary
asyncio.rundependencies for better usability
🧪 Enhanced Test Suite Quality
- Streamlined Testing: Refined from 53 comprehensive tests to 16 essential core security validations
- 100% Success Rate: All tests now accurately reflect SimpleEnvs' actual behavior
- Improved Test Accuracy: Tests align closely with actual SimpleEnvs behaviors
- Better Error Type Validation: Corrected understanding of error handling patterns
🛡️ Advanced Memory Management
- Force Cleanup: Added
force_delete_all_loadersfor improved loader cleanup - Timeout Handling: Enhanced secure loader with proper timeout management
- Thread Safety: Better thread execution for secure environment loading
🚨 Breaking Changes
API Method Changes
load_secure: Now synchronous by default (previously async)- New Async Methods: Added
load_secure_asyncandload_dotenv_secure_asyncfor async use cases
Migration Path
# Before (v2.0.0-beta.1)
await loader.load_secure()
# After (v2.0.0-beta.2) - Choose your approach:
# Option 1: Synchronous (recommended for most cases)
loader.load_secure()
# Option 2: Asynchronous (for async contexts)
await loader.load_secure_async()🏗️ Technical Improvements
Async/Sync Flexibility
# Synchronous - Simple and Fast
from simpleenvs import load_dotenv_secure
load_dotenv_secure() # No await needed!
# Asynchronous - For async workflows
from simpleenvs import load_dotenv_secure_async
await load_dotenv_secure_async() # Full async supportEnhanced Event Loop Management
- Smart Detection: Automatically handles existing event loops
- Thread Execution: Fallback to thread-based execution when needed
- Cleanup Logic: Improved event loop cleanup and management
Memory Management
- Force Cleanup:
force_delete_all_loaders()for complete cleanup - Timeout Handling: Proper timeout management for secure operations
- Resource Management: Enhanced memory isolation and cleanup
🔧 Infrastructure Updates
CI/CD Enhancements
- Branch Tracking: Extended GitHub Actions to track all
dev/*branches - Coverage Updates: Adjusted coverage exclusions for benchmark and vulnerability files
- Workflow Permissions: Enhanced CI workflow permissions
Benchmarking Improvements
- Async Benchmarks: Added benchmarking for new async secure loading APIs
- Performance Metrics: Enhanced performance measurement tools
📊 Performance Metrics
Loading Performance
- Sync Loading: Optimized for immediate use cases
- Async Loading: Full async support without blocking
- Memory Efficiency: Improved memory management in secure mode
Security Validation
- 16 Core Tests: Essential security validations
- 100% Success Rate: All tests passing with accurate expectations
- Real Behavior Focus: Tests reflect actual library behavior
🔍 Architecture Evolution
From Async-Only to Flexible
# v2.0.0-beta.1: Async only
await load_secure()
# v2.0.0-beta.2: Choose your style
load_secure() # Sync - simple & fast
await load_secure_async() # Async - full controlEvent Loop Handling
- Smart Detection: Handles existing event loops gracefully
- Thread Fallback: Uses thread execution when event loop conflicts
- Clean Shutdown: Proper cleanup without stopping user's event loops
🐛 Bug Fixes
- Debug Output: Removed debug statements from secure.py
- Event Loop Conflicts: Fixed issues with existing event loops
- Memory Leaks: Improved loader cleanup and memory management
- Test Accuracy: Fixed test expectations to match real behavior
- Thread Safety: Enhanced thread-safe operations
🛠️ Migration Guide
If You Used Async Loading
# Before
await loader.load_secure()
# After - Choose one:
loader.load_secure() # Recommended: Sync
await loader.load_secure_async() # Alternative: AsyncIf You Used Sync Loading
# Before and After - No changes needed!
loader.load_secure() # Still works, now even better!📈 Detailed Commit History
refactor: replace `asyncio.run` with synchronous implementation for `load_secure`
update: extend GitHub Actions workflows to track all `dev/*` branches
feat: introduce async secure environment variable loading
refactor: replace async environment loading with sync execution
refactor: improve secure environment loading and memory management
refactor: improve async handling for secure env loading
Refactor: Remove debug output from secure.py
chore: bump version to 2.0.0-beta.2 and update API version
docs: add spacing in README for improved readability
refactor: streamline and enhance test suite for SimpleEnvs
🔮 What's Next
v2.0.0-beta.3 Preview
- Performance Optimization: Further async/sync performance tuning
- Cross-Platform Testing: Enhanced Windows/macOS support
- Advanced Security: Additional enterprise security features
Stable v2.0.0 Goals
- API Stabilization: Final API polish based on beta feedback
- Production Validation: Real-world usage feedback integration
- Documentation Complete: Full migration guides and examples
🤝 Contributing
We've made significant architectural improvements! If you're contributing:
- Async/Sync Awareness: Consider both usage patterns
- Memory Management: Focus on proper cleanup
- Real-World Testing: Test both sync and async scenarios
📦 Installation
# Install the beta
pip install simpleenvs-python==2.0.0b2
# Or upgrade from previous version
pip install --upgrade simpleenvs-python==2.0.0b2⚠️ Important Notes
- Breaking Change:
load_secureis now synchronous by default - Migration: Use
load_secure_asyncif you need async behavior - Backward Compatibility: All other APIs remain unchanged
- Performance: Sync loading is now faster and more reliable
💝 Acknowledgments
Special thanks to our collaborative research that led to both the async/sync architecture breakthrough and the testing philosophy evolution - proving that thoughtful design and accurate testing create better software!
Happy Coding! 🐍✨
What's Changed
- chore: Configure Renovate by @renovate in #2
- chore(deps): update dependency sphinx-rtd-theme to v3 by @renovate in #9
- chore(deps): update dependency myst-parser to v4 by @renovate in #7
- chore(deps): update dependency sphinx to v8 by @renovate in #8
- chore(deps): update dependency python to 3.13 by @renovate in #3
- chore(deps): update actions/setup-python action to v5 by @renovate in #4
- chore(deps): update dependency python to 3.13 by @renovate in #10
- chore(deps): update dependency python to 3.13 by @renovate in #11
- chore(deps): update dependency python to 3.13 by @renovate in #12
- SimpleEnvs v2.0.0-beta.1 Pre-release by @vmintf in #13
- chore(deps): update actions/setup-python action to v5 by @renovate in #16
- chore(deps): update actions/checkout action to v4 by @renovate in #15
- chore(deps): update dependency python to 3.13 by @renovate in #14
- 🚀 Release v2.0.0-beta.2: Async/Sync Architecture & Enhanced Testing by @vmintf in #20
New Contributors
Full Changelog: v1.1.3...v2.0.0-beta.2