Git Product home page Git Product logo

sub6resources / melos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from invertase/melos

0.0 2.0 0.0 2.09 MB

๐ŸŒ‹ A tool for managing Dart projects with multiple packages. With IntelliJ and Vscode IDE support. Supports automated versioning, changelogs & publishing via Conventional Commits.

Home Page: https://melos.invertase.dev

License: Apache License 2.0

Shell 0.01% Dart 99.99% Batchfile 0.01%

melos's Introduction

Melos

A tool for managing Dart projects with multiple packages, inspired by Lerna.

Melos docs.page

Documentation โ€ข License

About

Splitting up large code bases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories gets complicated really fast.

To solve these (and many other) problems, some projects will organize their code bases into multi-package repositories (sometimes called monorepos).

Melos is a tool that optimizes the workflow around managing multi-package repositories with git and Pub.

What can Melos do?

  • ๐Ÿ”— Override pub get in development to install packages in your workspace from path without having to edit your pubspec.yaml.
  • ๐Ÿ“ฆ Automatically version, create changelogs and publish your packages using Conventional Commits.
  • ๐Ÿ“œ Pre-define advanced custom scripts for your workspace in your melos.yaml configuration to use via melos run [scriptName]. Anyone contributing to your workspace can just run melos run to be prompted to select a script from a list with descriptions of each script.
  • โšก Execute commands across your packages easily with melos exec -- command here with additional concurrency and fail-fast options.
    • Environment variables containing various information about the current package and the workspace are available in each execution.
    • Can be combined with all package filters.
  • ๐ŸŽฏ Many advanced package filtering options allowing you to target specific packages or groups of packages in your workspace.
  • โ™จ๏ธ Advanced support for IntelliJ IDEs with automatic creation of run configurations for workspace defined scripts and more on workspace bootstrap.
    • Vscode code doesn't require advanced integration to work.

Local development setup

To setup and use this melos mono repo locally for the purposes of contributing, clone it and run the following commands from the root of the repository:

# Install melos if it's not already installed:
dart pub global activate melos

# Activate 'melos' from path:
melos activate

# Confirm you now using a local development version:
melos --help
# You should now see a banner printed at the top of the help output similar to:
# ---------------------------------------------------------
# | You are running a local development version of melos. |
# ---------------------------------------------------------

Install

dart pub global activate melos

README Badge

Using Melos? Add a README badge to show it off:

melos

[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos)

Built and maintained by Invertase.

melos's People

Contributors

alex-sandri avatar blaugold avatar cabljac avatar ehesp avatar ekasetiawans avatar imtoori avatar jpnurmi avatar kirstywilliams avatar klavs avatar kleak avatar kmartins avatar lcdsmao avatar luanpotter avatar mikehardy avatar mspb1g12 avatar nilsreichardt avatar olexale avatar quijx avatar quirijngb avatar rafaelcmm avatar riscait avatar rrousselgit avatar rufman avatar russellwheatley avatar ryanhanks avatar sachaarbonel avatar sagarsuri avatar salakar avatar shyndman avatar spydon avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.