TSNDep - Dependency Manager for TSN MQL5 Ecosystem. Manages dependencies recursively with hooks support
- Python 100%
| tsndep | ||
| .gitignore | ||
| dependencies.json | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
| TSNDep.mqproj | ||
TSN Dependency Manager
A powerful CLI tool for managing TSN MQL5 Projects dependencies with recursive processing, hooks support, and automatic dependency resolution.
Main Features
Dependency Management
- Declarative Configuration: Define dependencies in a simple JSON format
- Recursive Processing: Automatically resolve nested dependencies
- Duplicate Prevention: Skip already-processed repositories
- Smart Updates: Clone new repos or pull existing ones
Hooks System
- Pre/Post Hooks: Execute custom commands before and after operations
- Conditional Execution: Run hooks only on success
- Timeout Control: Prevent hanging commands with configurable timeouts
- Error Handling: Skip failures or fail on errors
Advanced Queries
- Dependency Tree: Visualize project structure with depth control
- Export Analysis: Export flattened dependency list with metadata
- Repository Validation: Check that all dependencies are properly cloned
Multi-Language Support
- Language Detection: Identify required programming languages
- Version Tracking: Record language versions per dependency
- Structured Metadata: Store comments and branch information
Repository Structure
TSNDep/
├── tsndep/ # Source code (CLI, commands, utilities)
│ ├── Comands/ # Command modules (install, add, remove, update, list, check, export, init)
│ ├── Ops/ # Utilities (Git operations, hooks, JSON handling)
│ └── Variables/ # Env varialbes for hooks (class)
Installation
From PyPI (Recommended)
pip install tsndep
Then use globally:
tsndep --help
From Repository
git clone https://forge.mql5.io/nique_372/TSNDep.git
cd TSNDep
pip install -e .
Contact me
Contact me on MQL5 (user: nique_372) to be added as a collaborator with your MQL5 nickname (read-only access), which will make the repository automatically appear in your Shared Projects folder
Quick Start
1. Initialize Your Project
cd your-project
tsndep init
This creates a dependencies.json template with:
- Empty repos array
- MetaTrader 5 build requirement
- Hook configuration (pre/post install/update)
2. Configure Dependencies
Edit dependencies.json and add your first dependency:
{
"repos": [
{
"name": "my-core-lib",
"url": "https://github.com/yourorg/my-core-lib.git",
"rama": "main",
"comment": "Core library for trading systems"
}
],
"hooks": {
"post_install": []
}
}
3. Clone & Install All Dependencies
# Install from repository URL
tsndep install https://github.com/yourorg/my-project.git main
# Or with custom path
tsndep install https://github.com/yourorg/my-project.git main --path_install custom\\path
This will:
- Clone the main repository
- Read its
dependencies.json - Recursively clone all nested dependencies
- Execute any pre/post hooks
4. Verify Everything is Installed
tsndep check
Shows status of each dependency:
[OK]: Repository cloned and ready[FAIL]: Repository missing or not cloned
5. Visualize the Dependency Tree
# Show all dependencies (default depth: 10)
tsndep list
# Show only 3 levels deep
tsndep list --depth 3
Output:
MyProject/
├── my-core-lib/
│ ├── logger-lib/
│ └── config-lib/
└── data-processor/
├── pandas-wrapper/
└── ml-models/
Common Commands
Add a New Dependency
tsndep add https://github.com/org/repo.git main \
--name my-new-lib \
--comment "Trading calculations library"
Remove a Dependency
tsndep remove my-new-lib
Update all repositories (from dependencies.json)
tsndep update
Pulls latest changes from all repositories.
Export Flat Dependency List
tsndep export --output all-deps.json
Creates a flattened list with all dependencies (useful for CI/CD).
Requirements
Python
- pip (Python package manager)
- see: requirements.txt
Check Your Setup
python --version # Should be 3.10+
git --version # Should be installed
pip list | grep click # Should show click installed
Documentation
- Commands Reference: Detailed description of each command
- dependencies.json Format: Full dependencies.json specification
- Hooks Guide: Hook system and examples
License
By downloading or using this repository, you accept the license terms.
Contact and Support
- Platform: MQL5 Community
- Profile: https://www.mql5.com/es/users/nique_372
- Issues: For bug reports or questions
Disclaimer
- TSNDep is a dependency management tool, not trading software
- Always test in development before production deployment
- Ensure you have permissions for all repositories
- Git operations may have security implications. review URLs carefully
- The authors assume no liability for system failures or data loss
Copyright © 2026 TradeSystemsNique