Configuration Overview

Every project requires a melos.yaml project in the root. The below outlines all the configurable fields and their purpose.

name

required

The name of this project, using for display purposes within IO environments and IDEs.

name: My Awesome Project

repository

The URL of where the git repository, which contains this project, is centrally hosted.

Supported hosts:

repository: https://github.com/invertase/melos

sdkPath

Path to the Dart/Flutter SDK that should be used.

Relative paths are resolved relative to the melos.yaml file.

To use the system-wide SDK, provide the special value "auto".

If the SDK path is specified though multiple mechanisms, the precedence from highest to lowest is:

  1. --sdk-path global command line option
  2. MELOS_SDK_PATH environment variable
  3. sdkPath in melos.yaml
sdkPath: .fvm/flutter_sdk

packages

required

A list of local packages Melos will use to execute commands against. The list can be of specific paths or a glob pattern expansion format.

packages:
  # e.g. all packages inside the /packages directory
  - packages/**
  # e.g. including the workspace root as a package
  - "*"

You can also reduce the scope of packages on a per-command basis via the --scope filter flag.

ignore

required

A list of local packages Melos will ignore when executing commands in the workspace. The list can be of specific paths or a glob pattern expansion format.

ignore:
  # e.g. ignore example apps
  - "packages/**/*example"

You can also expand the scope of ignored packages on a per-command basis via the --scope filter flag.

ide/intellij

Whether to generate IntelliJ IDEA config files to improve the developer experience when working in a Melos workspace.

The default is true.

ide:
  intellij: false

scripts

optional

Define custom scripts that can be executed in the workspace via the melos run command.

Learn more about defining scripts here.

command

Configuration relating to specific Melos commands such as versioning.

command/bootstrap/usePubspecOverrides

Whether to use pubspec_overrides.yaml for overriding workspace dependencies during development.

Enabling this option requires Dart 2.17.0 or greater.

command/bootstrap/runPubGetInParallel

Whether to run pub get in parallel during bootstrapping.

The default is true.

command/version/message

A template for the commit message, that is generated by melos version.

Templates must use mustache syntax and have the following variables available:

  • new_package_versions: A list of the versioned packages and their new versions.

The default is:

chore(release): publish packages

{new_package_versions}
command:
  version:
    message: |
      chore: cut package releases 🎉

      {new_package_versions}

command/version/branch

If specified, prevents melos version from being used inside branches other than the one specified.

command:
  version:
    branch: main

command/version/linkToCommits

Whether to add links to commits in the CHANGELOG.md, that is generated by melos version.

Enabling this option, requires repository to be specified.

command:
  version:
    linkToCommits: true

command/version/workspaceChangelog

Whether to additionally build a CHANGELOG.md at the root of the workspace when running melos version.

command:
  version:
    workspaceChangelog: true

command/version/updateGitTagRefs

When running melos version this option will allow updates to pubspec.yaml for locally (git) hosted packages part of this melos workspace, see here

command:
  version:
    updateGitTagRefs: true