Skip to content

Commit 96c19c3

Browse files
committed
docs: update all documentation to v3.0.2
- Updated README.md with v3.0.2 features and bug fixes - Added comprehensive v3.0.2 section to CHANGELOG.md - Updated CLAUDE.md to reflect current version - Updated SECURITY.md supported versions (3.0.x is now supported) - Updated all example files to reference SDK v3.0.2 - Version bump in pyproject.toml, __init__.py, and docs/conf.py Key changes documented: - Order lifecycle tracking fixes - Order template instrument lookup fixes - Comprehensive cleanup functionality - Asyncio concurrency improvements
1 parent 06c2c4f commit 96c19c3

16 files changed

+73
-33
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ 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+
## [3.0.2] - 2025-08-08
17+
18+
### Fixed
19+
- **🐛 Order Lifecycle Tracking**: Fixed critical issues in order lifecycle tracking example
20+
- Corrected asyncio.wait() usage by creating tasks instead of passing coroutines
21+
- Fixed instrument lookup - recognized that suite.instrument is already an Instrument object
22+
- Fixed Order field references (use `type` not `orderType`)
23+
- Fixed Position field references (use `size` not `netQuantity`)
24+
- Fixed cancel_order return type handling (returns bool not object)
25+
26+
- **🔧 Order Templates**: Fixed instrument lookup issues
27+
- Removed unnecessary async calls to get_instrument()
28+
- suite.instrument is already resolved after TradingSuite initialization
29+
30+
### Added
31+
- **🧹 Cleanup Functionality**: Comprehensive cleanup for demos and examples
32+
- Automatic cancellation of all open orders at demo completion
33+
- Automatic closing of all open positions
34+
- Cleanup runs in finally block to ensure execution even on errors
35+
- Prevents accumulation of test orders when running examples repeatedly
36+
37+
### Improved
38+
- **📚 Documentation**: Updated all documentation to reflect v3.0.2
39+
- Updated version references throughout
40+
- Added clear documentation of breaking changes
41+
- Improved migration guide clarity
42+
1643
## [3.0.1] - 2025-08-08
1744

1845
### Added

CLAUDE.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44

5-
## Project Status: v3.0.1 - Production-Ready Async Architecture
5+
## Project Status: v3.0.2 - Production-Ready Async Architecture
66

77
**IMPORTANT**: This project uses a fully asynchronous architecture. All APIs are async-only, optimized for high-performance futures trading.
88

@@ -74,7 +74,7 @@ uv run python -m build # Alternative build command
7474

7575
## Project Architecture
7676

77-
### Core Components (v3.0.1 - Multi-file Packages)
77+
### Core Components (v3.0.2 - Multi-file Packages)
7878

7979
**ProjectX Client (`src/project_x_py/client/`)**
8080
- Main async API client for TopStepX ProjectX Gateway
@@ -278,6 +278,12 @@ async with ProjectX.from_env() as client:
278278

279279
## Recent Changes
280280

281+
### v3.0.2 - Bug Fixes and Improvements
282+
- **Order Lifecycle Tracking**: Fixed asyncio concurrency and field reference issues
283+
- **Order Templates**: Fixed instrument lookup to use cached object
284+
- **Cleanup Functionality**: Added comprehensive order/position cleanup
285+
- **Documentation**: Updated all docs to reflect current version
286+
281287
### v3.0.1 - Production Ready
282288
- **Performance Optimizations**: Enhanced connection pooling and caching
283289
- **Event Bus System**: Unified event handling across all components

README.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,25 @@ A **high-performance async Python SDK** for the [ProjectX Trading Platform](http
2121

2222
This Python SDK acts as a bridge between your trading strategies and the ProjectX platform, handling all the complex API interactions, data processing, and real-time connectivity.
2323

24-
## 🚀 v3.0.1 - TradingSuite Architecture
24+
## 🚀 v3.0.2 - Production-Ready Trading Suite
2525

26-
**Latest Update (v3.0.1)**: Complete architectural upgrade with TradingSuite for simplified SDK usage, feature flags, and unified event handling.
26+
**Latest Update (v3.0.2)**: Bug fixes and improvements to order lifecycle tracking, comprehensive cleanup functionality, and enhanced error handling.
2727

28-
### What's New in v3.0.1
28+
### What's New in v3.0.2
29+
30+
- **Fixed Order Lifecycle Tracking**: Corrected asyncio concurrency issues and field references
31+
- **Automatic Cleanup**: Added comprehensive cleanup for orders and positions in examples
32+
- **Bug Fixes**: Fixed instrument lookup in order templates and improved error handling
33+
34+
### Key Features from v3.0.1
2935

3036
- **TradingSuite Class**: New unified entry point for simplified SDK usage
3137
- **One-line Initialization**: TradingSuite.create() handles all setup
3238
- **Feature Flags**: Easy enabling of optional components like orderbook and risk manager
3339
- **Context Manager Support**: Automatic cleanup with async with statements
3440
- **Unified Event Handling**: Built-in EventBus for all components
3541

36-
**BREAKING CHANGE**: Version 3.0.1 replaces factory functions with TradingSuite. See migration guide below.
42+
**BREAKING CHANGE**: Version 3.0+ replaces factory functions with TradingSuite. See migration guide below.
3743

3844
### Why Async?
3945

@@ -43,15 +49,15 @@ This Python SDK acts as a bridge between your trading strategies and the Project
4349
- **WebSocket Native**: Perfect for real-time trading applications
4450
- **Modern Python**: Leverages Python 3.12+ async features
4551

46-
### Migration to v3.0.1
52+
### Migration to v3.0+
4753

48-
If you're upgrading from v2.x or v3.0.0, key changes include TradingSuite replacing factories:
54+
If you're upgrading from v2.x, key changes include TradingSuite replacing factories:
4955

5056
```python
51-
# Old (v2.x/v3.0.0)
57+
# Old (v2.x)
5258
suite = await create_initialized_trading_suite(\"MNQ\", client)
5359

54-
# New (v3.0.1)
60+
# New (v3.0+)
5561
suite = await TradingSuite.create(\"MNQ\")
5662
```
5763

@@ -120,7 +126,7 @@ if __name__ == \"__main__\":
120126
asyncio.run(main())
121127
```
122128

123-
### Trading Suite (NEW in v3.0.1)
129+
### Trading Suite (NEW in v3.0+)
124130

125131
The easiest way to get started with a complete trading setup:
126132

SECURITY.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ We currently provide security updates for the following versions:
1010

1111
| Version | Supported |
1212
| ------- | ------------------ |
13-
| 2.0.x | :white_check_mark: |
13+
| 3.0.x | :white_check_mark: |
14+
| 2.0.x | :x: |
1415
| 1.x.x | :x: |
1516

16-
Note: Version 2.0.0 was a complete rewrite with an async-only architecture, and all previous synchronous APIs were removed.
17+
Note: Version 3.0.0 introduced the TradingSuite architecture, replacing all factory functions. Version 2.0.0 was a complete rewrite with an async-only architecture.
1718

1819
## Reporting a Vulnerability
1920

docs/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
project = "project-x-py"
2424
copyright = "2025, Jeff West"
2525
author = "Jeff West"
26-
release = "3.0.1"
27-
version = "3.0.1"
26+
release = "3.0.2"
27+
version = "3.0.2"
2828

2929
# -- General configuration ---------------------------------------------------
3030

examples/10_unified_event_system.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"""
33
Example 10: Unified Event System with EventBus
44
5-
This example demonstrates the new unified event system in ProjectX SDK v3.0.0.
5+
This example demonstrates the new unified event system in ProjectX SDK v3.0.2.
66
Instead of registering callbacks with individual components, all events flow
77
through a single EventBus accessible via the TradingSuite.
88

examples/11_simplified_data_access.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Example: Simplified Data Access with v3.0.0
44
55
This example demonstrates the new convenience methods for accessing market data
6-
in the ProjectX SDK v3.0.0. These methods provide a cleaner, more intuitive API
6+
in the ProjectX SDK v3.0.2. These methods provide a cleaner, more intuitive API
77
for common data access patterns.
88
99
Key improvements:
@@ -15,7 +15,7 @@
1515
- is_data_ready() - Check if enough data is loaded
1616
- get_bars_since() - Get data since a specific time
1717
18-
Author: SDK v3.0.0 Examples
18+
Author: SDK v3.0.2 Examples
1919
"""
2020

2121
import asyncio
@@ -171,6 +171,6 @@ async def main() -> None:
171171

172172

173173
if __name__ == "__main__":
174-
print("ProjectX SDK v3.0.0 - Simplified Data Access")
174+
print("ProjectX SDK v3.0.2 - Simplified Data Access")
175175
print("=" * 50)
176176
asyncio.run(main())

examples/12_simplified_multi_timeframe.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
99
Compare this with 06_multi_timeframe_strategy.py to see the improvements!
1010
11-
Author: SDK v3.0.0 Examples
11+
Author: SDK v3.0.2 Examples
1212
"""
1313

1414
import asyncio
@@ -294,6 +294,6 @@ async def main() -> None:
294294

295295

296296
if __name__ == "__main__":
297-
print("ProjectX SDK v3.0.0 - Simplified Multi-Timeframe Strategy")
297+
print("ProjectX SDK v3.0.2 - Simplified Multi-Timeframe Strategy")
298298
print("=" * 60)
299299
asyncio.run(main())

examples/13_enhanced_models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- Position: is_long, is_short, direction, symbol, signed_size, unrealized_pnl()
1010
- Order: is_open, is_filled, is_buy, is_sell, side_str, type_str, status_str, filled_percent
1111
12-
Author: SDK v3.0.0 Examples
12+
Author: SDK v3.0.2 Examples
1313
"""
1414

1515
import asyncio
@@ -261,6 +261,6 @@ async def main():
261261

262262

263263
if __name__ == "__main__":
264-
print("ProjectX SDK v3.0.0 - Enhanced Models Demo")
264+
print("ProjectX SDK v3.0.2 - Enhanced Models Demo")
265265
print("=" * 50)
266266
asyncio.run(main())

examples/14_phase4_comprehensive_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- Enhanced model properties
88
- Cleaner strategy implementation
99
10-
Author: SDK v3.0.0 Testing
10+
Author: SDK v3.0.2 Testing
1111
"""
1212

1313
import asyncio
@@ -326,7 +326,7 @@ async def demonstrate_phase4_improvements() -> None:
326326
async with await TradingSuite.create(
327327
"MNQ", timeframes=["1min", "5min", "15min"], initial_days=2
328328
) as suite:
329-
print("ProjectX SDK v3.0.0 - Phase 4 Comprehensive Test")
329+
print("ProjectX SDK v3.0.2 - Phase 4 Comprehensive Test")
330330
print("=" * 60)
331331

332332
strategy = CleanTradingStrategy(suite)

0 commit comments

Comments
 (0)