@moonrepo/cli
Advanced tools
Comparing version 0.5.0 to 0.6.0
# Changelog | ||
## 0.6.0 | ||
#### 🚀 Updates | ||
- Added a new `@group` token that can be used be task `args` and `inputs`. | ||
- Added a `moon query` command for querying information about moon, the environment, and more. | ||
- To start, `moon query touched-files` can be used to query touched files. The same files | ||
`moon ci` and `moon run` use. | ||
- Also `moon query projects` can be used to query about projects in the project graph. | ||
- Added `bash` as a supported value for the project `language` setting. | ||
- Added `typescript.createMissingConfig` and `typescript.rootOptionsConfigFileName` settings to | ||
`.moon/workspace.yml`. | ||
- Updated TypeScript project reference syncing to automatically create missing `tsconfig.json`s. | ||
- Updated `moon setup` and `moon teardown` to display spinners while running. | ||
#### 🐞 Fixes | ||
- Fixed an issue with a globally installed moon not being executable in PowerShell. | ||
- Fixed an issue with empty files being passed to `git hash-object`. | ||
- Fixed an issue where a `git merge-base` could not be resolved when base and head are provided. | ||
#### ⚙️ Internal | ||
- Updated Rust to v1.62. | ||
- Refactored our action runner to support additional languages in the future. | ||
- Refactored Windows to execute package binaries with `node.exe` directly, instead of with | ||
`cmd.exe` + the `.bin/*.cmd` file. | ||
## 0.5.0 | ||
@@ -4,0 +32,0 @@ |
{ | ||
"name": "@moonrepo/cli", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "moon command line and core system.", | ||
@@ -32,8 +32,8 @@ "keywords": [ | ||
"optionalDependencies": { | ||
"@moonrepo/core-linux-x64-gnu": "^0.5.0", | ||
"@moonrepo/core-linux-x64-musl": "^0.5.0", | ||
"@moonrepo/core-macos-arm64": "^0.5.0", | ||
"@moonrepo/core-macos-x64": "^0.5.0", | ||
"@moonrepo/core-windows-x64-msvc": "^0.5.0" | ||
"@moonrepo/core-linux-x64-gnu": "^0.6.0", | ||
"@moonrepo/core-linux-x64-musl": "^0.6.0", | ||
"@moonrepo/core-macos-arm64": "^0.6.0", | ||
"@moonrepo/core-macos-x64": "^0.6.0", | ||
"@moonrepo/core-windows-x64-msvc": "^0.6.0" | ||
} | ||
} |
@@ -7,11 +7,14 @@ // Based on the great parcel-css | ||
const platform = | ||
process.platform === 'win32' | ||
? 'windows' | ||
: process.platform === 'darwin' | ||
? 'macos' | ||
: process.platform; | ||
const isMoonLocal = | ||
fs.existsSync(path.join(__dirname, '../../.moon')) && | ||
fs.existsSync(path.join(__dirname, '../../crates')); | ||
const isLinux = process.platform === 'linux'; | ||
const isMacos = process.platform === 'darwin'; | ||
const isWindows = process.platform === 'win32'; | ||
const platform = isWindows ? 'windows' : isMacos ? 'macos' : process.platform; | ||
const parts = [platform, process.arch]; | ||
if (process.platform === 'linux') { | ||
if (isLinux) { | ||
const { familySync } = require('detect-libc'); | ||
@@ -26,7 +29,7 @@ | ||
} | ||
} else if (process.platform === 'win32') { | ||
} else if (isWindows) { | ||
parts.push('msvc'); | ||
} | ||
const binary = process.platform === 'win32' ? 'moon.exe' : 'moon'; | ||
const binary = isWindows ? 'moon.exe' : 'moon'; | ||
const triple = parts.join('-'); | ||
@@ -48,4 +51,13 @@ | ||
} catch { | ||
console.error('Failed to find "moon" binary.'); | ||
// process.exit(1); | ||
console.error(`Failed to find "${binary}" binary.`); | ||
if (!isMoonLocal) { | ||
process.exit(1); | ||
} | ||
} | ||
if (isWindows && !isMoonLocal) { | ||
try { | ||
fs.unlinkSync(path.join(__dirname, 'moon')); | ||
} catch (error) {} | ||
} |
@@ -37,1 +37,63 @@ # @moonrepo/cli | ||
``` | ||
## 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](https://www.rust-lang.org/) 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 ID, and a task ID. | ||
- **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. | ||
- **Multi-platform** - Runs on common development platforms: Linux, macOS, and Windows. | ||
#### Organization | ||
- **Project graph** - Generates a project graph for dependency and dependent relationships. | ||
- **Project boundaries** - Enforces boundaries to eliminate cycles and reduce indirection. | ||
- **Dependency workspaces** - Works alongside package manager workspaces so that projects have | ||
distinct dependency trees. | ||
- **Ownership metadata** - Declare an owner, maintainers, support channels, and more, for LDAP or | ||
another integration. | ||
#### Orchestration | ||
- **Dependency graph** - Generates a dependency graph to increase performance and reduce workloads. | ||
- **Action runner** - 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. | ||
- **Terminal notifications** - Receives notifications in your chosen terminal when builds are | ||
successful... or are not. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11944
49
99