TSNDep - Dependency Manager for TSN MQL5 Ecosystem. Manages dependencies recursively with hooks support
Find a file
Nique_372 e8ec86b5e1
2026-05-15 11:44:03 -05:00
tsndep 2026-05-15 11:44:03 -05:00
.gitignore new files added 2026-04-24 22:40:27 -05:00
dependencies.json # Actulizacion importante en el gestor tsndep 2026-04-27 07:30:55 -05:00
LICENSE new files added 2026-04-24 22:40:27 -05:00
pyproject.toml 2026-05-09 06:53:40 -05:00
README.md - Add --execute_hooks option for install and update commands 2026-05-07 15:49:18 -05:00
requirements.txt new files added 2026-04-24 22:40:27 -05:00
TSNDep.mqproj 2026-05-09 06:53:40 -05:00

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

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

Check Your Setup

python --version          # Should be 3.10+
git --version             # Should be installed
pip list | grep click     # Should show click installed

Documentation


License

Read Full License

By downloading or using this repository, you accept the license terms.


Contact and Support


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