Files
foxhunt/tests/e2e/Cargo.toml
jgrusewski 845e77a8b0 fix(ci): Fix GitLab CI YAML syntax and PPOConfig compilation errors
Two critical fixes for successful pipeline execution:

1. GitLab CI YAML Syntax Fix (.gitlab-ci.yml:84-86)
   - Wrapped echo commands containing colons in single quotes
   - Root cause: YAML parser interprets `"text: value"` as key-value pairs
   - Solution: Single quotes force literal string interpretation
   - Impact: Enables Docker build pipeline execution

2. Trading Service Compilation Fix (trading_service/src/services/enhanced_ml.rs:1328-1348)
   - Added missing early stopping fields to PPOConfig initialization
   - Fields: early_stopping_enabled, early_stopping_patience, early_stopping_min_delta, early_stopping_min_epochs
   - Values: Disabled by default for paper trading (early_stopping_enabled: false)
   - Impact: Resolves pre-push hook compilation error

Technical Details:
- YAML Issue: Colons followed by spaces trigger mapping syntax parsing
- Single quotes preserve shell variable expansion while forcing literal YAML strings
- Early stopping config matches PPOConfig struct updates from Wave D
- Default values: patience=5, min_delta=0.001, min_epochs=10

Validated:
-  YAML syntax validated with PyYAML
-  trading_service compilation successful (cargo check)
-  Ready for GitLab CI/CD pipeline execution

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 00:20:00 +01:00

151 lines
3.2 KiB
TOML

[package]
name = "foxhunt_e2e"
version = "0.1.0"
edition = "2021"
[dependencies]
# Core async runtime
tokio = { version = "1.0", features = ["full"] }
tokio-test = "0.4"
tokio-stream = "0.1"
# gRPC and protobuf
tonic = { version = "0.14", features = ["transport", "tls-ring", "tls-webpki-roots"] }
tonic-prost = "0.14"
prost = "0.14"
prost-types = "0.14"
# Database
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "chrono", "uuid", "json", "bigdecimal"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Error handling
anyhow = "1.0"
thiserror = "1.0"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Time and UUID
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.0", features = ["v4", "serde"] }
# JWT authentication
jsonwebtoken = "9.3"
# Environment variables
dotenvy = "0.15"
# Numerical
rust_decimal = { version = "1.32", features = ["serde-float"] }
bigdecimal = "0.4"
# Utilities
futures = "0.3"
rand = "0.8"
# HTTP client
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
# CLI
clap = { version = "4.0", features = ["derive"] }
# Testing
assert_matches = "1.5"
# Benchmarking
criterion = { version = "0.5", features = ["async_tokio", "html_reports"] }
hdrhistogram = "7.5"
# Local dependencies
trading_engine = { path = "../../trading_engine" }
data = { path = "../../data" }
ml = { path = "../../ml" }
ml_training_service = { path = "../../services/ml_training_service" }
risk = { path = "../../risk" }
config = { path = "../../config" }
common = { path = "../../common" }
# DBN data parsing
dbn = "0.22"
# Candle for ML
candle-core = { git = "https://github.com/huggingface/candle", rev = "671de1db" }
[build-dependencies]
tonic-prost-build = "0.14"
[[test]]
name = "full_trading_flow_e2e"
path = "tests/full_trading_flow_e2e.rs"
[[test]]
name = "ml_inference_e2e"
path = "tests/ml_inference_e2e.rs"
[[test]]
name = "risk_management_e2e"
path = "tests/risk_management_e2e.rs"
[[test]]
name = "config_hot_reload_e2e"
path = "tests/config_hot_reload_e2e.rs"
[[test]]
name = "simplified_integration_test"
path = "tests/simplified_integration_test.rs"
[[test]]
name = "multi_service_integration"
path = "tests/multi_service_integration.rs"
[[test]]
name = "error_handling_recovery"
path = "tests/error_handling_recovery.rs"
[[test]]
name = "performance_load_tests"
path = "tests/performance_load_tests.rs"
[[test]]
name = "ml_training_tls_test"
path = "tests/ml_training_tls_test.rs"
[[test]]
name = "dqn_training_test"
path = "tests/dqn_training_test.rs"
[[test]]
name = "mamba2_training_test"
path = "tests/mamba2_training_test.rs"
[[test]]
name = "e2e_ml_training_test"
path = "tests/e2e_ml_training_test.rs"
[[test]]
name = "e2e_ml_paper_trading_test"
path = "tests/e2e_ml_paper_trading_test.rs"
[[test]]
name = "e2e_ml_backtesting_test"
path = "tests/e2e_ml_backtesting_test.rs"
[[test]]
name = "ml_pipeline_integration_test"
path = "tests/ml_pipeline_integration_test.rs"
[[test]]
name = "five_service_orchestration_test"
path = "tests/five_service_orchestration_test.rs"
[[bench]]
name = "e2e_latency_benchmark"
path = "benches/e2e_latency_benchmark.rs"
harness = false