Skip to content

Commit 111d227

Browse files
TexasCodingclaude
andcommitted
chore(docs): update documentation for v1.1.3 release
- Add prominent development phase warnings across all documentation - Update README with breaking changes notice and v1.1.3 features - Document contract selection fix and interactive demo in CHANGELOG - Add development guidelines to CLAUDE.md for clean code priority - Update version numbers to 1.1.3 across all files - Add warning to Sphinx docs about potential API changes BREAKING CHANGE: This release establishes that backward compatibility is not maintained during the development phase. Old implementations will be removed when improved. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent a0caba0 commit 111d227

File tree

8 files changed

+106
-23
lines changed

8 files changed

+106
-23
lines changed

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,42 @@ All notable changes to the ProjectX Python client will be documented in this fil
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## ⚠️ Development Phase Notice
9+
10+
**IMPORTANT**: This project is under active development. During this phase:
11+
- Breaking changes may be introduced without deprecation warnings
12+
- Backward compatibility is not maintained
13+
- Old implementations are removed when improved
14+
- Clean, modern code architecture is prioritized
15+
16+
## [1.1.3] - 2025-01-29
17+
18+
### Fixed
19+
- **🔧 Contract Selection**: Fixed `_select_best_contract` method to properly handle futures contract naming patterns
20+
- Extracts base symbols by removing month/year suffixes using regex (e.g., NQU5 → NQ, MGCH25 → MGC)
21+
- Handles both single-digit (U5) and double-digit (H25) year codes correctly
22+
- Prevents incorrect matches (searching "NQ" no longer returns "MNQ" contracts)
23+
- Prioritizes exact base symbol matches over symbolId suffix matching
24+
25+
### Added
26+
- **🎮 Interactive Instrument Demo**: New example script for testing instrument search functionality
27+
- `examples/09_get_check_available_instruments.py` - Interactive command-line tool
28+
- Shows the difference between `search_instruments()` (all matches) and `get_instrument()` (best match)
29+
- Visual indicators for active contracts (★) and detailed contract information
30+
- Includes common symbols table and help command
31+
- Continuous search loop for testing multiple symbols
32+
33+
### Enhanced
34+
- **🧪 Test Coverage**: Added comprehensive test suite for contract selection logic
35+
- Tests for exact base symbol matching with various contract patterns
36+
- Tests for handling different year code formats
37+
- Tests for selection priority order (active vs inactive)
38+
- Tests for edge cases (empty lists, no exact matches)
39+
- **📚 Documentation**: Updated README with development phase warnings
40+
- Added prominent development status warning
41+
- Noted that breaking changes may occur without backward compatibility
42+
- Updated changelog format to highlight the development phase
43+
844
## [1.1.2] - 2025-01-28
945

1046
### Enhanced

CLAUDE.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@
22

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

5+
## Development Phase Guidelines
6+
7+
**IMPORTANT**: This project is in active development. When making changes:
8+
9+
1. **No Backward Compatibility**: Do not maintain old implementations for compatibility
10+
2. **Clean Code Priority**: Always refactor to the cleanest, most modern approach
11+
3. **Remove Legacy Code**: Delete old logic when implementing improvements
12+
4. **Breaking Changes Allowed**: Make breaking changes freely to improve architecture
13+
5. **Modern Patterns**: Use the latest Python patterns and best practices
14+
6. **Simplify Aggressively**: Remove complexity rather than adding compatibility layers
15+
16+
Example approach:
17+
- ❌ DON'T: Keep old method signatures with deprecation warnings
18+
- ✅ DO: Replace methods entirely with better implementations
19+
- ❌ DON'T: Add compatibility shims or adapters
20+
- ✅ DO: Update all callers to use new patterns
21+
522
## Development Commands
623

724
### Package Management (UV)
@@ -160,4 +177,18 @@ data_manager.get_memory_stats() # Real-time data memory
160177
- `max_depth_entries = 1000` (OrderBook depth per side)
161178
- `max_bars_per_timeframe = 1000` (Real-time data per timeframe)
162179
- `tick_buffer_size = 1000` (Tick data buffer)
163-
- `cache_max_size = 100` (Indicator cache entries)
180+
- `cache_max_size = 100` (Indicator cache entries)
181+
182+
## Recent Changes (v1.1.3)
183+
184+
### Contract Selection Fix
185+
The `_select_best_contract` method now properly handles futures contract naming:
186+
- Uses regex to extract base symbols by removing month/year suffixes
187+
- Handles both single-digit (U5) and double-digit (H25) year codes
188+
- Pattern: `^(.+?)([FGHJKMNQUVXZ]\d{1,2})$` where letters are futures month codes
189+
190+
### Interactive Demo
191+
Added `examples/09_get_check_available_instruments.py`:
192+
- Interactive command-line tool for testing instrument search
193+
- Shows difference between `search_instruments()` and `get_instrument()`
194+
- Includes visual indicators and continuous search loop

README.md

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ A **high-performance Python SDK** for the [ProjectX Trading Platform](https://ww
2020

2121
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.
2222

23-
## 📊 SDK Status
23+
## ⚠️ Development Status
2424

25-
**Current Version**: v1.1.2 (Documentation Accuracy & Enhanced Project Structure)
25+
**IMPORTANT**: This project is under active development. New updates may introduce breaking changes without backward compatibility. During this development phase, we prioritize clean, modern code architecture over maintaining legacy implementations.
26+
27+
**Current Version**: v1.1.3 (Contract Selection & Interactive Demo)
2628

2729
**Production Ready SDK Components**:
2830
- Complete ProjectX Gateway API integration with connection pooling
@@ -35,6 +37,8 @@ This Python SDK acts as a bridge between your trading strategies and the Project
3537
- **NEW**: Sub-second response times for cached operations
3638
- **NEW**: Complete TA-Lib overlap indicators (17 total) with full compatibility
3739
- **NEW**: Enhanced indicator discovery and documentation
40+
- **NEW**: Improved futures contract selection with proper suffix handling
41+
- **NEW**: Interactive instrument search demo for testing functionality
3842

3943
🚀 **Performance Highlights**:
4044
- **Connection pooling** reduces API overhead by 50-70%
@@ -427,6 +431,7 @@ The `examples/` directory contains comprehensive demonstrations:
427431
- **`05_orderbook_analysis.py`** - Level 2 market depth analysis
428432
- **`06_multi_timeframe_strategy.py`** - Multi-timeframe trading strategies
429433
- **`07_technical_indicators.py`** - Complete technical analysis showcase
434+
- **`09_get_check_available_instruments.py`** - Interactive instrument search demo
430435

431436
### Example Trading Application Built with the SDK
432437
```python
@@ -606,23 +611,31 @@ We welcome contributions! Please follow these guidelines:
606611

607612
## 📝 Changelog
608613

609-
### Version 1.1.2 (Latest)
610-
**📊 Documentation Accuracy & Enhanced Project Structure**
611-
-**Documentation Alignment**: Updated all documentation to match actual codebase
612-
-**Version Consistency**: Corrected version references throughout project
613-
-**Example Organization**: Updated example file references to match actual structure
614-
-**Project Status Accuracy**: Aligned roadmap and feature status with reality
615-
-**Build on Previous**: Includes all features from v1.0.12:
616-
- **Order-Position Sync**: Automatic synchronization between orders and positions
617-
- **Position Order Tracking**: Orders automatically tracked and associated with positions
618-
- **Comprehensive Test Suite**: 230+ tests covering all major functionality
619-
- **Enhanced Indicators**: 55+ indicators across all categories
614+
### Version 1.1.3 (Latest) - 2025-01-29
615+
**🔧 Contract Selection & Interactive Tools**
616+
617+
**Breaking Changes:**
618+
- ⚠️ **Development Phase**: API changes may occur without deprecation warnings
619+
- ⚠️ **No Backward Compatibility**: Old implementations are removed when improved
620+
621+
**Bug Fixes:**
622+
-**Fixed Contract Selection**: `get_instrument()` now correctly handles futures contract naming patterns
623+
- Properly extracts base symbols by removing month/year suffixes (e.g., NQU5 → NQ, MGCH25 → MGC)
624+
- Prevents incorrect matches (searching "NQ" no longer returns "MNQ" contracts)
625+
- Handles both single-digit (U5) and double-digit (H25) year codes
620626

621627
**New Features:**
622-
- **Bracket Order Integration**: Full lifecycle tracking for entry, stop, and target orders
623-
- **Position Close Handling**: Related orders automatically cancelled when positions close
624-
- **Integration Tests**: End-to-end workflow testing
625-
- **Risk Management Tests**: Comprehensive risk control validation
628+
- **Interactive Instrument Demo**: New example script for testing instrument search functionality
629+
- `examples/09_get_check_available_instruments.py` - Interactive command-line tool
630+
- Shows difference between `search_instruments()` and `get_instrument()` methods
631+
- Visual indicators for active contracts and detailed contract information
632+
633+
**Improvements:**
634+
- **Test Coverage**: Added comprehensive tests for contract selection logic
635+
- **Documentation**: Updated with development phase warnings and breaking change notices
636+
637+
**Includes all features from v1.0.12:**
638+
- Order-Position Sync, Position Order Tracking, 230+ tests, 55+ indicators
626639

627640
### Version 1.0.2-1.0.11
628641
**🚀 Performance & Reliability**

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 = "1.1.2"
27-
version = "1.1.2"
26+
release = "1.1.3"
27+
version = "1.1.3"
2828

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

docs/index.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ project-x-py Documentation
1919

2020
**project-x-py** is a professional Python SDK for the `ProjectX Trading Platform <https://www.projectx.com/>`_ Gateway API. This library enables developers to build sophisticated trading strategies and applications by providing comprehensive access to futures trading operations, real-time market data, Level 2 orderbook analysis, and a complete technical analysis suite with 55+ TA-Lib compatible indicators.
2121

22+
.. warning::
23+
**Development Phase**: This project is under active development. New updates may introduce breaking changes without backward compatibility. During this development phase, we prioritize clean, modern code architecture over maintaining legacy implementations.
24+
2225
.. note::
2326
**Important**: This is a **client library/SDK**, not a trading strategy. It provides the tools and infrastructure to help developers create their own trading strategies that integrate with the ProjectX platform.
2427

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "project-x-py"
3-
version = "1.1.2"
3+
version = "1.1.3"
44
description = "High-performance Python SDK for futures trading with real-time WebSocket data, technical indicators, order management, and market depth analysis"
55
readme = "README.md"
66
license = { text = "MIT" }

src/project_x_py/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
from typing import Any, Optional
2525

26-
__version__ = "1.1.2"
26+
__version__ = "1.1.3"
2727
__author__ = "TexasCoding"
2828

2929
# Core client classes

src/project_x_py/indicators/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
)
135135

136136
# Version info
137-
__version__ = "1.1.2"
137+
__version__ = "1.1.3"
138138
__author__ = "TexasCoding"
139139

140140

0 commit comments

Comments
 (0)