Skip to content

Commit 8364c00

Browse files
committed
update documentation
1 parent cf7d58c commit 8364c00

File tree

10 files changed

+266
-77
lines changed

10 files changed

+266
-77
lines changed

.cursorrules

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,51 @@
22

33
This file provides guidance to Cursor AI when working with code in this repository.
44

5-
## Project Status: v3.0.1 - Production-Ready Async Architecture
5+
## Project Status: v3.1.1 - Stable Production Release
66

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

99
## Development Phase Guidelines
1010

11-
**IMPORTANT**: This project is in active development. When making changes:
11+
**IMPORTANT**: This project has reached stable production status. When making changes:
1212

13-
1. **No Backward Compatibility**: Do not maintain old implementations for compatibility
14-
2. **Clean Code Priority**: Always refactor to the cleanest, most modern approach
15-
3. **Remove Legacy Code**: Delete old logic when implementing improvements
16-
4. **Breaking Changes Allowed**: Make breaking changes freely to improve architecture
17-
5. **Modern Patterns**: Use the latest Python patterns and best practices
18-
6. **Simplify Aggressively**: Remove complexity rather than adding compatibility layers
13+
1. **Maintain Backward Compatibility**: Keep existing APIs functional with deprecation warnings
14+
2. **Deprecation Policy**: Mark deprecated features with warnings, remove after 2 minor versions
15+
3. **Semantic Versioning**: Follow semver strictly (MAJOR.MINOR.PATCH)
16+
4. **Migration Paths**: Provide clear migration guides for breaking changes
17+
5. **Modern Patterns**: Use the latest Python patterns while maintaining compatibility
18+
6. **Gradual Refactoring**: Improve code quality without breaking existing interfaces
1919
7. **Async-First**: All new code must use async/await patterns
2020

2121
Example approach:
22-
- ❌ DON'T: Keep old method signatures with deprecation warnings
23-
- ✅ DO: Replace methods entirely with better implementations
24-
- ❌ DON'T: Add compatibility shims or adapters
25-
- ✅ DO: Update all callers to use new patterns
26-
- ❌ DON'T: Create synchronous wrappers for async methods
27-
- ✅ DO: Use async/await throughout the entire call stack
22+
- ✅ DO: Keep old method signatures with deprecation warnings
23+
- ✅ DO: Provide new improved APIs alongside old ones
24+
- ✅ DO: Add compatibility shims when necessary
25+
- ✅ DO: Document migration paths clearly
26+
- ❌ DON'T: Break existing APIs without major version bump
27+
- ❌ DON'T: Remove deprecated features without proper notice period
28+
29+
### Deprecation Process
30+
1. Mark as deprecated with `warnings.warn()` and `@deprecated` decorator
31+
2. Document replacement in deprecation message
32+
3. Keep deprecated feature for at least 2 minor versions
33+
4. Remove only in major version releases (4.0.0, 5.0.0, etc.)
34+
35+
Example:
36+
```python
37+
import warnings
38+
from typing import deprecated
39+
40+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
41+
def old_method(self):
42+
warnings.warn(
43+
"old_method() is deprecated, use new_method() instead. "
44+
"Will be removed in v4.0.0",
45+
DeprecationWarning,
46+
stacklevel=2
47+
)
48+
return self.new_method()
49+
```
2850

2951
## Development Commands
3052

AGENTS.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,39 @@
11
# Repository Guidelines
22

3+
## Project Status: v3.1.1 - Stable Production Release
4+
5+
**IMPORTANT**: This project has reached stable production status. When making changes:
6+
7+
1. **Maintain Backward Compatibility**: Keep existing APIs functional with deprecation warnings
8+
2. **Deprecation Policy**: Mark deprecated features with warnings, remove after 2 minor versions
9+
3. **Semantic Versioning**: Follow semver strictly (MAJOR.MINOR.PATCH)
10+
4. **Migration Paths**: Provide clear migration guides for breaking changes
11+
5. **Modern Patterns**: Use the latest Python patterns while maintaining compatibility
12+
6. **Gradual Refactoring**: Improve code quality without breaking existing interfaces
13+
7. **Async-First**: All new code must use async/await patterns
14+
15+
### Deprecation Process
16+
- Mark as deprecated with `warnings.warn()` and `@deprecated` decorator
17+
- Document replacement in deprecation message
18+
- Keep deprecated feature for at least 2 minor versions
19+
- Remove only in major version releases (4.0.0, 5.0.0, etc.)
20+
21+
Example:
22+
```python
23+
import warnings
24+
from typing import deprecated
25+
26+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
27+
def old_method(self):
28+
warnings.warn(
29+
"old_method() is deprecated, use new_method() instead. "
30+
"Will be removed in v4.0.0",
31+
DeprecationWarning,
32+
stacklevel=2
33+
)
34+
return self.new_method()
35+
```
36+
337
## Project Structure & Module Organization
438
- Source: `src/project_x_py/` (core SDK: client, realtime, orderbook, indicators, utils, etc.).
539
- Tests: `tests/` (pytest; async tests supported).

CHANGELOG.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,25 @@ 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
8+
## 📦 Stable Production Release Notice
99

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
10+
**IMPORTANT**: As of v3.1.1, this project has reached stable production status:
11+
- Backward compatibility is now maintained between minor versions
12+
- Deprecation warnings will be provided for at least 2 minor versions before removal
13+
- Breaking changes will only occur in major version releases (4.0.0, 5.0.0, etc.)
14+
- Migration guides will be provided for all breaking changes
15+
- Semantic versioning (MAJOR.MINOR.PATCH) is strictly followed
1516

1617
## [3.1.1] - 2025-08-10
1718

19+
### Changed
20+
- **📦 MAJOR POLICY CHANGE**: Project has reached stable production status
21+
- Now maintaining backward compatibility between minor versions
22+
- Deprecation warnings will be provided for at least 2 minor versions
23+
- Breaking changes only in major releases (4.0.0+)
24+
- Updated all AI assistant documentation files (CLAUDE.md, GROK.md, GEMINI.md, AGENTS.md, .cursorrules)
25+
- Updated CONTRIBUTING.md with backward compatibility guidelines
26+
1827
### Fixed
1928
- **🐛 Test Suite Compatibility**: Fixed all failing tests for optimized cache implementation
2029
- Updated test references from old cache variables (`_instrument_cache`) to new optimized ones (`_opt_instrument_cache`)

CLAUDE.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,51 @@
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.2 - Production-Ready Async Architecture
5+
## Project Status: v3.1.1 - Stable Production Release
66

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

99
## Development Phase Guidelines
1010

11-
**IMPORTANT**: This project is in active development. When making changes:
11+
**IMPORTANT**: This project has reached stable production status. When making changes:
1212

13-
1. **No Backward Compatibility**: Do not maintain old implementations for compatibility
14-
2. **Clean Code Priority**: Always refactor to the cleanest, most modern approach
15-
3. **Remove Legacy Code**: Delete old logic when implementing improvements
16-
4. **Breaking Changes Allowed**: Make breaking changes freely to improve architecture
17-
5. **Modern Patterns**: Use the latest Python patterns and best practices
18-
6. **Simplify Aggressively**: Remove complexity rather than adding compatibility layers
13+
1. **Maintain Backward Compatibility**: Keep existing APIs functional with deprecation warnings
14+
2. **Deprecation Policy**: Mark deprecated features with warnings, remove after 2 minor versions
15+
3. **Semantic Versioning**: Follow semver strictly (MAJOR.MINOR.PATCH)
16+
4. **Migration Paths**: Provide clear migration guides for breaking changes
17+
5. **Modern Patterns**: Use the latest Python patterns while maintaining compatibility
18+
6. **Gradual Refactoring**: Improve code quality without breaking existing interfaces
1919
7. **Async-First**: All new code must use async/await patterns
2020

2121
Example approach:
22-
- ❌ DON'T: Keep old method signatures with deprecation warnings
23-
- ✅ DO: Replace methods entirely with better implementations
24-
- ❌ DON'T: Add compatibility shims or adapters
25-
- ✅ DO: Update all callers to use new patterns
26-
- ❌ DON'T: Create synchronous wrappers for async methods
27-
- ✅ DO: Use async/await throughout the entire call stack
22+
- ✅ DO: Keep old method signatures with deprecation warnings
23+
- ✅ DO: Provide new improved APIs alongside old ones
24+
- ✅ DO: Add compatibility shims when necessary
25+
- ✅ DO: Document migration paths clearly
26+
- ❌ DON'T: Break existing APIs without major version bump
27+
- ❌ DON'T: Remove deprecated features without proper notice period
28+
29+
### Deprecation Process
30+
1. Mark as deprecated with `warnings.warn()` and `@deprecated` decorator
31+
2. Document replacement in deprecation message
32+
3. Keep deprecated feature for at least 2 minor versions
33+
4. Remove only in major version releases (4.0.0, 5.0.0, etc.)
34+
35+
Example:
36+
```python
37+
import warnings
38+
from typing import deprecated
39+
40+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
41+
def old_method(self):
42+
warnings.warn(
43+
"old_method() is deprecated, use new_method() instead. "
44+
"Will be removed in v4.0.0",
45+
DeprecationWarning,
46+
stacklevel=2
47+
)
48+
return self.new_method()
49+
```
2850

2951
## Development Commands
3052

CONTRIBUTING.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,44 @@ Good documentation is essential for this project:
207207

208208
## Architecture Guidelines
209209

210+
### Backward Compatibility Policy (v3.1.1+)
211+
212+
**IMPORTANT**: This project maintains strict backward compatibility:
213+
214+
1. **API Stability**: Public APIs must remain stable between minor versions
215+
2. **Deprecation Process**:
216+
- Add deprecation warnings using `warnings.warn()` and `@deprecated` decorator
217+
- Document the replacement in the deprecation message
218+
- Keep deprecated features for at least 2 minor versions
219+
- Only remove in major version releases (4.0.0, 5.0.0, etc.)
220+
221+
3. **Adding Deprecation Warnings**:
222+
```python
223+
import warnings
224+
from typing import deprecated
225+
226+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
227+
def old_method(self):
228+
warnings.warn(
229+
"old_method() is deprecated, use new_method() instead. "
230+
"Will be removed in v4.0.0",
231+
DeprecationWarning,
232+
stacklevel=2
233+
)
234+
return self.new_method()
235+
```
236+
237+
4. **Introducing New Features**:
238+
- Add new methods/classes alongside existing ones
239+
- Provide migration guides in docstrings
240+
- Update examples to use new patterns
241+
- Keep old patterns working with deprecation warnings
242+
243+
5. **Version Numbering** (Semantic Versioning):
244+
- PATCH (x.x.N): Bug fixes only, no API changes
245+
- MINOR (x.N.x): New features, deprecations allowed, no breaking changes
246+
- MAJOR (N.x.x): Breaking changes allowed, remove deprecated features
247+
210248
### Project Structure
211249

212250
The SDK uses a modular architecture where large components are split into multi-file packages:

GEMINI.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,51 @@
22

33
This file provides guidance to Google's Gemini models when working with code in this repository.
44

5-
## Project Status: v3.0.1 - Production-Ready Async Architecture
5+
## Project Status: v3.1.1 - Stable Production Release
66

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

99
## Development Phase Guidelines
1010

11-
**IMPORTANT**: This project is in active development. When making changes:
11+
**IMPORTANT**: This project has reached stable production status. When making changes:
1212

13-
1. **No Backward Compatibility**: Do not maintain old implementations for compatibility
14-
2. **Clean Code Priority**: Always refactor to the cleanest, most modern approach
15-
3. **Remove Legacy Code**: Delete old logic when implementing improvements
16-
4. **Breaking Changes Allowed**: Make breaking changes freely to improve architecture
17-
5. **Modern Patterns**: Use the latest Python patterns and best practices
18-
6. **Simplify Aggressively**: Remove complexity rather than adding compatibility layers
13+
1. **Maintain Backward Compatibility**: Keep existing APIs functional with deprecation warnings
14+
2. **Deprecation Policy**: Mark deprecated features with warnings, remove after 2 minor versions
15+
3. **Semantic Versioning**: Follow semver strictly (MAJOR.MINOR.PATCH)
16+
4. **Migration Paths**: Provide clear migration guides for breaking changes
17+
5. **Modern Patterns**: Use the latest Python patterns while maintaining compatibility
18+
6. **Gradual Refactoring**: Improve code quality without breaking existing interfaces
1919
7. **Async-First**: All new code must use async/await patterns
2020

2121
Example approach:
22-
- ❌ DON'T: Keep old method signatures with deprecation warnings
23-
- ✅ DO: Replace methods entirely with better implementations
24-
- ❌ DON'T: Add compatibility shims or adapters
25-
- ✅ DO: Update all callers to use new patterns
26-
- ❌ DON'T: Create synchronous wrappers for async methods
27-
- ✅ DO: Use async/await throughout the entire call stack
22+
- ✅ DO: Keep old method signatures with deprecation warnings
23+
- ✅ DO: Provide new improved APIs alongside old ones
24+
- ✅ DO: Add compatibility shims when necessary
25+
- ✅ DO: Document migration paths clearly
26+
- ❌ DON'T: Break existing APIs without major version bump
27+
- ❌ DON'T: Remove deprecated features without proper notice period
28+
29+
### Deprecation Process
30+
1. Mark as deprecated with `warnings.warn()` and `@deprecated` decorator
31+
2. Document replacement in deprecation message
32+
3. Keep deprecated feature for at least 2 minor versions
33+
4. Remove only in major version releases (4.0.0, 5.0.0, etc.)
34+
35+
Example:
36+
```python
37+
import warnings
38+
from typing import deprecated
39+
40+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
41+
def old_method(self):
42+
warnings.warn(
43+
"old_method() is deprecated, use new_method() instead. "
44+
"Will be removed in v4.0.0",
45+
DeprecationWarning,
46+
stacklevel=2
47+
)
48+
return self.new_method()
49+
```
2850

2951
## Development Commands
3052

.grok/GROK.md renamed to GROK.md

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,51 @@ This is a Python SDK/client library for the ProjectX Trading Platform Gateway AP
77

88
**Note**: Focus on toolkit development, not on creating trading strategies.
99

10-
## Project Status: v2.0.4 - Async Architecture
10+
## Project Status: v3.1.1 - Stable Production Release
1111

12-
**IMPORTANT**: This project has migrated to a fully asynchronous architecture as of v2.0.0. All APIs are now async-only with no backward compatibility to synchronous versions.
12+
**IMPORTANT**: This project uses a fully asynchronous architecture. All APIs are async-only, optimized for high-performance futures trading.
1313

1414
## Development Phase Guidelines
1515

16-
**IMPORTANT**: This project is in active development. When making changes:
16+
**IMPORTANT**: This project has reached stable production status. When making changes:
1717

18-
1. **No Backward Compatibility**: Do not maintain old implementations for compatibility
19-
2. **Clean Code Priority**: Always refactor to the cleanest, most modern approach
20-
3. **Remove Legacy Code**: Delete old logic when implementing improvements
21-
4. **Breaking Changes Allowed**: Make breaking changes freely to improve architecture
22-
5. **Modern Patterns**: Use the latest Python patterns and best practices
23-
6. **Simplify Aggressively**: Remove complexity rather than adding compatibility layers
18+
1. **Maintain Backward Compatibility**: Keep existing APIs functional with deprecation warnings
19+
2. **Deprecation Policy**: Mark deprecated features with warnings, remove after 2 minor versions
20+
3. **Semantic Versioning**: Follow semver strictly (MAJOR.MINOR.PATCH)
21+
4. **Migration Paths**: Provide clear migration guides for breaking changes
22+
5. **Modern Patterns**: Use the latest Python patterns while maintaining compatibility
23+
6. **Gradual Refactoring**: Improve code quality without breaking existing interfaces
2424
7. **Async-First**: All new code must use async/await patterns
2525

2626
Example approach:
27-
- ❌ DON'T: Keep old method signatures with deprecation warnings
28-
- ✅ DO: Replace methods entirely with better implementations
29-
- ❌ DON'T: Add compatibility shims or adapters
30-
- ✅ DO: Update all callers to use new patterns
31-
- ❌ DON'T: Create synchronous wrappers for async methods
32-
- ✅ DO: Use async/await throughout the entire call stack
27+
- ✅ DO: Keep old method signatures with deprecation warnings
28+
- ✅ DO: Provide new improved APIs alongside old ones
29+
- ✅ DO: Add compatibility shims when necessary
30+
- ✅ DO: Document migration paths clearly
31+
- ❌ DON'T: Break existing APIs without major version bump
32+
- ❌ DON'T: Remove deprecated features without proper notice period
33+
34+
### Deprecation Process
35+
1. Mark as deprecated with `warnings.warn()` and `@deprecated` decorator
36+
2. Document replacement in deprecation message
37+
3. Keep deprecated feature for at least 2 minor versions
38+
4. Remove only in major version releases (4.0.0, 5.0.0, etc.)
39+
40+
Example:
41+
```python
42+
import warnings
43+
from typing import deprecated
44+
45+
@deprecated("Use new_method() instead. Will be removed in v4.0.0")
46+
def old_method(self):
47+
warnings.warn(
48+
"old_method() is deprecated, use new_method() instead. "
49+
"Will be removed in v4.0.0",
50+
DeprecationWarning,
51+
stacklevel=2
52+
)
53+
return self.new_method()
54+
```
3355

3456
## Tool Usage Guidelines
3557
As Grok CLI, you have access to tools like view_file, create_file, str_replace_editor, bash, search, and todo lists. Use them efficiently for tasks.

0 commit comments

Comments
 (0)