moon

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

MIT License

Downloads
294.4K
Stars
2.6K
Committers
50

Bot releases are visible (Hide)

moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue where hashing would attempt to hash a directory and crash.
  • Fixed an issue where attempting to hash a large number of files (think 10,000) would hang.
  • Fixed an issue where offline checks would take longer than expected.
  • Fixed an issue where the project graph cache would not invalidate when Rust internals have changed.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🚀 Updates

  • Added a --force flag to moon run that will bypass affected checks. Useful for always forcing a
    run in CI.

🐞 Fixes

  • Fixed an issue where moon init would panic while checking for a newer version.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

💥 Breaking

  • Updated node.version and node.<packageManager>.version to no longer default to a hard-coded
    version. When not defined, will fallback to the binary available on PATH.
  • Updated touched files (in context and queries) to be workspace relative paths instead of absolute.

🚀 Updates

  • Added experimental Deno tier 2 support.
  • Added offline (no internet connection) support.
  • Added project-level TypeScript settings via toolchain.typescript in moon.yml.
  • Updated language setting in moon.yml to support any custom language.
  • Updated project, task, and target identifiers to support periods (.).
Moonbase
  • CI runs can now be tracked in moonbase to gather insights and metrics.

🐞 Fixes

  • Fixed an issue where task outputs were considered as input sources when hashing, causing
    unnecessary cache misses.

⚙️ Internal

  • Updated Rust to v1.67.
  • Updated local development to support BSD based unix distros.
  • Added context to pipeline.started and pipeline.finished events.
  • Refactored glob matching to use workspace relative paths instead of absolute. Please report an
    issue if hashing or affected detection is now inaccurate.
  • We now build against older operating systems in an attempt to solve GLIBC version errors.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue where moon query projects --affected would hang indefinitely waiting for stdin.
  • Fixed an issue where changing projects globs wouldn't immediately invalidate the cache.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🚀 Updates

  • Added Homebrew as an installation option.
  • Added a moon upgrade command to upgrade moon to the latest version.

🐞 Fixes

  • Fixed moon bin failing, even when a tool has been configured.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue around comparison estimate calculation for run reports.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

Remote caching is now publicly available through our new service moonbase!
Sign up for a free account and immediately see the benefits in your CI pipelines.

💥 Breaking

  • Moved moon query projects JSON output behind a --json flag.
  • Moved moon query touched-files JSON output behind a --json flag.

🚀 Updates

  • Added a moon completions command for generating shell completions.
  • Added a moon query tasks command for querying tasks within projects.
  • Added TypeScript v5 support.
  • Added a hasher.walkStrategy setting to .moon/workspace.yml.
  • Updated moon query projects and moon query touched-files default output to be easily readable
    and parseable.
Projects
  • Added a platform setting to moon.yml, allowing the default platform to be defined for all
    tasks.
  • Updated task outputs to support token functions (@group, @globs, etc).
Runner
  • Added an --interactive flag to moon run to force a target to run in interactive mode.
  • Updated tasks marked as local to always run in interactive mode.

🐞 Fixes

  • Fixed an issue where moon would write to package.json or tsconfig.json with no changes,
    causing modified events to trigger.

⚙️ Internal

  • Added initial Go lang support to our toolchain.
  • Added a comparisonEstimate block to run reports.
  • Added baselineDuration and estimatedSavings to pipeline.finished events.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue where pnpm lockfile parsing would fail when not workspaces enabled.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue where git ls-files --deduplicate wasn't available on older git versions.

⚙️ Internal

  • Minor internal changes for upcoming remote caching changes.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed a recursion issue when attempting to install dependencies and a post-install script would
    trigger the process again.
  • Fixed an issue where a task may be hashed with the incorrect Node.js version.
  • Fixed an issue when running Node.js tasks and the toolchain has not been configured.
  • Fixed a typo when installing npm dependencies: node install -> npm install
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

🐞 Fixes

  • Fixed an issue where scoped tasks were not being inherited for projects that relied on language
    detection.
moon - @moonrepo/[email protected]

Published by github-actions[bot] over 1 year ago

💥 Breaking

  • Renamed .moon/project.yml to .moon/tasks.yml.
  • Moved runner.implicitDeps from .moon/workspace.yml to .moon/tasks.yml as implicitDeps.
  • Moved runner.implicitInputs from .moon/workspace.yml to .moon/tasks.yml as implicitInputs.

🚀 Updates

  • We've improved our task inheritance model to support scoped inheritance based on a project's
    language and type.
    • Now supports .moon/tasks/<language>.yml and .moon/tasks/<language>-<type>.yml configuration
      files.
  • Added a top-level env setting to moon.yml.
  • Updated task outputs to support globs.
  • Updated moon migrate from-turborepo to preserve globs in outputs.
  • Updated project graph to no longer cache when there's no VCS root.
  • Updated pnpm to use the new pnpm dedupe command when the version is >= 7.26.0.

🐞 Fixes

  • Fixed an issue where directories in task inputs not using **/* would crash git.
  • Fixed an issue where the project graph cache was not always resetting based on changes.
  • Fixed an issue where run report action durations were innacurate.

⚙️ Internal

  • Updated our internal hasher to also take into account untracked files when hashing a directory.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

💥 Breaking

  • Renamed the runner.* webhook events to pipeline.*.
  • Renamed the --upstream option to --remote.
  • Removed the --report option from moon check and moon run commands. Reports are now always
    created.

🚀 Updates

  • We've improved our smart hashing for other use cases besides task running. The first improvement
    is that we now hash dependencies to determine whether to run a dependency install, or to skip!
    This is much more accurate than before, which only relied on lockfile modified timestamps.
  • Added a moon migrate from-turborepo command to migrate from Turborepo to moon.
  • Updated moon docker commands to take into account other programming languages when scaffolding
    files.
Config
  • Added a versionConstraint setting to .moon/workspace.yml that enforces a requirement on the
    running moon binary.
Pipeline
  • We've refactored the pipeline to use a new thread pool strategy so that we have more control over
    concurrency. This also paves the way for future output reporters.
  • Added global --concurrency option to all moon commands, allowing the thread count to be
    customized.
Projects
  • Updated the project fields in moon.yml to be optional, excluding description.
Toolchain
  • Added Bun as a Tier 1 language (doesn't do much at the moment).
  • Our toolchain now creates shims for all installed tools, and also utilizes these shims when
    executing commands in the pipeline. (Unix only)

🐞 Fixes

  • Fixed an issue where ~/.moon is deleted, but local caching isn't aware of it missing and fails
    to run a target.
  • Fixed an issue where long-running processes would not exit even after moon has exited.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🐞 Fixes

  • Fixed an issue where runFromWorkspaceRoot wasn't working correctly for node module binaries.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🚀 Updates

  • Updated all global CLI arguments (--log, etc) to be able to passed anywhere in the command line.
    They no longer have to be passed before the command.

🐞 Fixes

  • Fixed an issue where a task's platform was being incorrectly merged when inheriting global
    tasks.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🚀 Updates

  • Added a --json flag to moon dep-graph and moon project-graph that will return the nodes and
    edges data as JSON.

⚙️ Internal

  • We now include the version and file path of the moon binary being executed in the logs for
    debugging purposes.
  • Updated remote caching to use a new upload endpoint.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🐞 Fixes

  • Fixed an issue with moon project-graph that would not include nodes without edges.
  • Fixed an issue running the install script in WSL.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🚀 Updates

  • We've rewritten our project graph to use eager-loading instead of lazy-loading to improve
    performance, and to avoid mutating borrowed data across threads in Rust. We're also no longer
    cloning project information unnecessarily, which is a massive memory reduction boost.
  • We've also rewritten our dependency graph in a similar fashion, and are now able to efficiently
    reference data from the project graph while building the dependency chain.
  • You may now install the @moonrepo/cli package globally with pnpm and yarn. When running these
    globals, moon will attempt to use the binary found in the repo's node modules.
Core
  • Added a new cache level, read-write, that can be passed to --cache or MOON_CACHE. This is
    now the default level, while write is now a write-only level.
  • Added --minimal to moon init for quick scaffolding and prototyping.
  • Updated the system platform to include the operating system and architecture when hashing.
  • Updated remote caching to use presigned URLs when available.
Graphs
  • Updated moon dep-graph and moon project-graph to serve interactive graph visualizers using the
    cytoscape library. The DOT output has moved behind a --dot flag.
Runner
  • Added --updateCache (-u) to moon check and moon run that force updates the cache and
    bypasses any existing cache.
  • Added args and env as valid values for the affectedFiles task option.
  • Updated moon run and moon query touched-files to support a list of --status options.
  • Updated pnpm prune to use the pnpm-deduplicate
    package.
Toolchain
  • Added 24 hour temporary caching to version manifests to improve performance.
  • Updated default versions of tools:
    • pnpm 7.14.0 -> 7.18.2
    • yarn 3.2.4 -> 3.3.0

🐞 Fixes

  • Fixed an issue where "installing yarn" would constantly show.
  • Fixed an issue on Windows where package.json and tsconfig.json would change newlines
    unexpectedly when saving.
  • Fixed an issue with ^:deps that would resolve projects with a non-matching task.

⚙️ Internal

  • Updated Rust to v1.66.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🐞 Fixes

  • Fixed an issue where Node.js arm64 was no longer working within the toolchain.
moon - @moonrepo/[email protected]

Published by github-actions[bot] almost 2 years ago

🐞 Fixes

  • Fixed an issue where env files (.env) would not be considered as task inputs. We've also updated
    env_file to be an implicit input.
  • Fixed an issue where changes to a nested package.json were not triggering automatic installs.
Package Rankings
Top 3.41% on Npmjs.org
Badges
Extracted from project README
Contributors