GithubHelp home page GithubHelp logo

huandzh / moon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from moonrepo/moon

0.0 0.0 0.0 102.65 MB

A task runner and repo management tool for the web ecosystem, written in Rust.

Home Page: https://moonrepo.dev/moon

License: MIT License

Shell 0.35% JavaScript 0.56% Rust 65.55% PowerShell 0.12% TypeScript 6.32% CSS 0.18% HTML 0.02% Dockerfile 0.18% Just 0.05% MDX 26.68%

moon's Introduction

moon

moon is a repository management, organization, orchestration, and notification tool for the web ecosystem, written in Rust. Many of the concepts within moon are heavily inspired from Bazel and other popular build systems, but tailored for our supported languages, primarily JavaScript and TypeScript.

Why use moon?

Working in the JavaScript ecosystem can be very involved, especially when it comes to managing a repository effectively. Which package manager to use? Which Node.js version to use? How to import node modules? How to build packages? So on and so forth. moon aims to streamline this entire process and provide a first-class developer experience.

  • Increased productivity - With Rust as our foundation, we can ensure robust speeds, high performance, and low memory usage. Instead of long builds blocking you, focus on your work.
  • Exceptional developer experience - As veterans of the JavaScript ecosystem, we're well aware of the pain points and frustrations. Our goal is to mitigate and overcome these obstacles.
  • Incremental adoption - At its core, moon has been designed to be adopted incrementally and is not an "all at once adoption". Migrate project-by-project, or task-by-task, it's up to you!
  • Reduced scripts confusion - package.json scripts can become unwieldy, very quickly. No more duplicating the same script into every package, or reverse-engineering which root scripts to use. With moon, all you need to know is the project name, and a task name.
  • Ensure correct versions - Whether it's Node.js or npm, ensure the same version of each tool is the same across every developer's environment. No more wasted hours of debugging.
  • Automation built-in - When applicable, moon will automatically install node_modules, or sync package dependencies, or even sync TypeScript project references.
  • And of course, the amazing list of features below!

Features

Not all features are currently supported, view the documentation for an accurate list!

Management

  • Smart hashing - Collects inputs from multiple sources to ensure builds are deterministic and reproducible.
  • Remote caching - Persists builds, hashes, and caches between teammates and CI/CD environments.
  • Integrated toolchain - Automatically downloads and installs explicit versions of Node.js and other tools for consistency across the entire workspace or per project.
  • Multi-platform - Runs on common development platforms: Linux, macOS, and Windows.

Organization

  • Project graph - Generates a project graph for dependency and dependent relationships.
  • Code generation - Easily scaffold new applications, libraries, tooling, and more!
  • Dependency workspaces - Works alongside package manager workspaces so that projects have distinct dependency trees.
  • Code ownership - Declare owners, maintainers, support channels, and more. Generate CODEOWNERS.

Orchestration

  • Dependency graph - Generates a dependency graph to increase performance and reduce workloads.
  • Action pipeline - Executes actions in parallel and in order using a thread pool and our dependency graph.
  • Action distribution - Distributes actions across multiple machines to increase throughput.
  • Incremental builds - With our smart hashing, only rebuild projects that have been touched since the last build.

Notification

  • Flakiness detection - Reduce flaky builds with automatic retries and passthrough settings.
  • Webhook events - Receive a webhook for every event in the pipeline. Useful for metrics gathering and insights.
  • Terminal notifications - Receives notifications in your chosen terminal when builds are successful... or are not.
  • Git hooks - Manage Git hooks to enforce workflows and requirements for contributors.

moon's People

Contributors

milesj avatar ignisda avatar jpoz avatar malkir avatar jacobwgillespie avatar jad31 avatar theomessin avatar itsezc avatar tomdavidson avatar dependabot[bot] avatar konomae avatar stk0vrfl0w avatar anthonyshew avatar bram209 avatar cyberflamego avatar rotu avatar ilyasotkov avatar juanod avatar kianmeng avatar g3root avatar nrempel avatar anliksim avatar sosukesuzuki avatar styfle avatar tbezman avatar tknickman avatar tom-fletcher avatar ydah avatar kradih avatar elmpp 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.