Skip to content
Michael Schwartz edited this page Jul 22, 2021 · 6 revisions

Welcome to the dart-mt wiki!

This is the home of mt ("monorepo tool"), a program for working with monorepos in Dart.

# mt help

 ========================
 == mt by Modus Create ==
 ========================

A tool to manage Dart monorepos

Usage: mt <command> [arguments]

Global options:
-h, --help            Print this usage information.
    --mode            [debug (default), release]
-v, --[no-]verbose    Print verbose logging
-n, --[no-]dry-run    Do not update files

Available commands:
  bump        bump version numbers
  clean       Clean .bak files
  get         Run pub get on directory or directories
  install     Install project as program
  uninstall   Uninstall project as program

Run "mt help <command>" for more information about a command.

Synopsis

Consider the following source code tree, for ModusLabs' dart samples implementation of (parts of) its RoboDomo IoT application.

Note that there are numerous pubspec.yaml files buried potentially several levels deep in the tree.

If you want to work on pkg/debug, you might have to edit all the pubspec.yaml files throughout the tree to change from a pub.dev version number to a relative path to pkg/debug. Once debug is published to pub.dev, you may want to re-edit all those pubspec.yaml files to convert from relative path to version again. In fact, to publish anything to pub.dev, you cannot have relative links in your pubspec.yaml!

This sort of issue means a LOT of editing and management of pubspec.yaml files and CHANGELOG.md files. The mt command was conceived to help with the management of pubxpec.yaml and CHANGELOG.md files, publishing packages, git commits and pushes after a version change, and more!

# tree ../dart-samples/RoboDomo -P '*.yaml|*.md'
../dart-samples/RoboDomo
├── bravia-microservice
│   ├── bin
│   └── pubspec.yaml
├── myq-microservice
│   ├── analysis_options.yaml
│   ├── bin
│   ├── CHANGELOG.md
│   ├── pubspec.yaml
│   └── README.md
├── pkg
│   ├── bravia
│   │   ├── CHANGELOG.md
│   │   ├── doc
│   │   │   └── api
│   │   │       ├── bravia
│   │   │       │   ├── Bravia
│   │   │       │   └── ServiceProtocol
│   │   │       └── static-assets
│   │   │           └── readme.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── debug
│   │   ├── analysis_options.yaml
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── env_get
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── hostbase
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── modus_json
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── modus_mqtt
│   │   ├── doc
│   │   │   └── api
│   │   │       ├── mqtt
│   │   │       │   └── Mqtt
│   │   │       └── static-assets
│   │   │           └── readme.md
│   │   ├── lib
│   │   └── pubspec.yaml
│   ├── myq
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   ├── samsung
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   ├── pubspec.yaml
│   │   └── README.md
│   └── statefulemitter
│       ├── CHANGELOG.md
│       ├── lib
│       ├── pubspec.yaml
│       └── README.md
├── presence-microservice
│   ├── analysis_options.yaml
│   ├── bin
│   ├── CHANGELOG.md
│   ├── lib
│   ├── pubspec.yaml
│   └── README.md
├── README.md
├── samsung-microservice
│   ├── bin
│   └── pubspec.yaml
└── weather-microservice
    ├── analysis_options.yaml
    ├── bin
    ├── CHANGELOG.md
    ├── pubspec.yaml
    └── README.md

41 directories, 43 files
Clone this wiki locally