Skip to content

Commit 42db26d

Browse files
authored
Merge pull request #13 from TexasCoding:TexasCoding/issue12
TexasCoding/issue12
2 parents ad7bbbb + 6a8d4c9 commit 42db26d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+17780
-17222
lines changed

CHANGELOG.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
- Old implementations are removed when improved
1414
- Clean, modern code architecture is prioritized
1515

16+
## [2.0.0] - 2025-01-30
17+
18+
### Breaking Changes
19+
- **🚀 Complete Async Migration**: Entire SDK migrated from synchronous to asynchronous architecture
20+
- All public methods now require `await` keyword
21+
- Clients must use `async with` for proper resource management
22+
- No backward compatibility - clean async-only implementation
23+
- Aligns with CLAUDE.md directive for "No Backward Compatibility" during development
24+
25+
### Added
26+
- **✨ AsyncProjectX Client**: New async-first client implementation
27+
- HTTP/2 support via httpx for improved performance
28+
- Concurrent API operations with proper connection pooling
29+
- Non-blocking I/O for all operations
30+
- Async context manager support for resource cleanup
31+
32+
- **📦 Dependencies**: Added modern async libraries
33+
- `httpx[http2]>=0.27.0` for async HTTP with HTTP/2 support
34+
- `pytest-asyncio>=0.23.0` for async testing
35+
- `aioresponses>=0.7.6` for mocking async HTTP
36+
37+
### Changed
38+
- **🔄 Migration Pattern**: From sync to async
39+
```python
40+
# Old (Sync)
41+
client = ProjectX(api_key, username)
42+
client.authenticate()
43+
positions = client.get_positions()
44+
45+
# New (Async)
46+
async with AsyncProjectX.from_env() as client:
47+
await client.authenticate()
48+
positions = await client.get_positions()
49+
```
50+
51+
### Performance Improvements
52+
- **⚡ Concurrent Operations**: Multiple API calls can now execute simultaneously
53+
- **🚄 HTTP/2 Support**: Reduced connection overhead and improved throughput
54+
- **🔄 Non-blocking WebSocket**: Real-time data processing without blocking other operations
55+
56+
### Migration Notes
57+
- This is a complete breaking change - all code using the SDK must be updated
58+
- See `tests/test_async_client.py` for usage examples
59+
- Phase 2-5 of async migration still pending (managers, real-time, etc.)
60+
1661
## [1.1.4] - 2025-01-30
1762

1863
### Fixed

0 commit comments

Comments
 (0)