Skip to content
Merged

v2.4 #2589

Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8bb1f0a
internal: Rename test utils. (#2557)
milesj Jun 6, 2026
856d07c
new: Migrate to Vite+ for JS dev. (#2558)
milesj Jun 8, 2026
7881683
new: Copy over the vscode extension. (#2565)
milesj Jun 11, 2026
04f2e10
internal: Improve code quality of the moon_process crate (#2567)
milesj Jun 11, 2026
8463ca2
internal: Improve VCS implementation and handling. (#2569)
milesj Jun 13, 2026
34d8e42
deps(proto): Update to v0.58. (#2581)
milesj Jun 21, 2026
a3a8aa1
internal: Implement a new storage layer for better caching and local/…
milesj Jun 25, 2026
27bb3b7
internal: Integrate new remote storage. (#2587)
milesj Jun 26, 2026
3896b50
internal: Integrate new storage layer into task archiver/hydrater. (#…
milesj Jun 29, 2026
5d1fcc5
new: Warm local cache when a hit from remote cache. (#2592)
milesj Jun 30, 2026
faef6f6
deps: Audit 06/29 (#2591)
milesj Jun 30, 2026
1ed678d
new: Add project-level `taskOptions` setting. (#2593)
milesj Jun 30, 2026
a7ba372
new: Add `--update-constraint` to `moon upgrade`. (#2594)
milesj Jun 30, 2026
20bae61
new: Add Python Poetry support. (#2595)
milesj Jun 30, 2026
9f0e030
feat(config): register unstable_ruby toolchain locator (#2570)
lamalex Jul 1, 2026
2b29272
fix(toolchain): support build-from-source tier-3 toolchains (#2572)
lamalex Jul 1, 2026
28002be
internal: Improve daemon implementation. (#2597)
milesj Jul 3, 2026
8c4b816
new: Add task `checks` feature. (#2596)
milesj Jul 4, 2026
b11d937
new: Add toolchain executable location caching. (#2598)
milesj Jul 4, 2026
d2f6693
deps: Audit 07/04 (#2599)
milesj Jul 5, 2026
1574ee1
docs: Add v2.4 blog post and doc updates. (#2600)
milesj Jul 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
202 changes: 133 additions & 69 deletions .agents/skills/doc-coauthoring/SKILL.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ mjs/
umd/

# Artifacts
.eslintcache
*.map
*.min.js
*.tsbuildinfo
Expand Down
66 changes: 0 additions & 66 deletions .github/copilot-instructions.md

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ env:
jobs:
bench:
name: Bench
if: github.event_name == 'workflow_dispatch' ||
github.event_name == 'pull_request' ||
github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/develop-'))
if: github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' ||
github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref,
'refs/heads/develop-'))
# || github.event.issue.pull_request && contains(github.event.comment.body, '!benchmark')
strategy:
fail-fast: false
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: voidzero-dev/setup-vp@v1
- run: yarn install --immutable
- run: bash ./scripts/release/buildPackages.sh
- uses: peaceiris/actions-gh-pages@v4
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/moon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,20 @@ jobs:
with:
fetch-depth: 0
- uses: actions/setup-node@v6
- uses: voidzero-dev/setup-vp@v1
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: moonrepo/setup-rust@v1
with:
cache-base: "^(master|develop-)"
- run: cargo run -- --color --log trace ci --base ${{ github.base_ref || 'master' }}
cache-base: '^(master|develop-)'
- run: cargo run -- --color --log debug ci --base ${{ github.base_ref || 'master' }}
env:
DEPOT_TOKEN: ${{ secrets.DEPOT_TOKEN }}
MOON_DEBUG_DAEMON: true
MOON_DEBUG_REMOTE: true
MOON_DEBUG_PROCESS_ENV: true
RUST_BACKTRACE: "1"
RUST_BACKTRACE: '1'
- run: cat .moon/cache/daemon/server.log
if: failure()
- uses: moonrepo/run-report-action@v1
Expand Down Expand Up @@ -77,7 +78,7 @@ jobs:
# Non-staged
- run: ./target/debug/moon docker scaffold website --log trace
env:
MOON_SKIP_SETUP_TOOLCHAIN: "*"
MOON_SKIP_SETUP_TOOLCHAIN: '*'
- uses: depot/build-push-action@v1
with:
context: .
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: PR
on:
pull_request:
env:
MOON_DEBUG: "true"
PROTO_DEBUG: "true"
MOON_DEBUG: 'true'
PROTO_DEBUG: 'true'
jobs:
installer:
name: Install script check
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ jobs:
with:
node-version: 24
registry-url: https://registry.npmjs.org
- uses: voidzero-dev/setup-vp@v1
- name: Install dependencies
run: yarn install --immutable
- name: Build packages
Expand Down
46 changes: 28 additions & 18 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ on:
push:
tags:
# Only release for the CLI crate
- "v[0-9]+.[0-9]+.[0-9]+*"
- 'v[0-9]+.[0-9]+.[0-9]+*'

jobs:
# Run 'dist plan' (or host) to determine what tasks we need to do
plan:
runs-on: "ubuntu-22.04"
runs-on: 'ubuntu-22.04'
outputs:
val: ${{ steps.plan.outputs.manifest }}
tag: ${{ !github.event.pull_request && github.ref_name || '' }}
Expand All @@ -70,7 +70,9 @@ jobs:
# we specify bash to get pipefail; it guards against the `curl` command
# failing. otherwise `sh` won't catch that `curl` returned non-0
shell: bash
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.30.3/cargo-dist-installer.sh | sh"
run: "curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/axodotdev/cargo-dist/releases/download/v0.30.3/cargo-dist-installer.sh
| sh"
- name: Cache dist
uses: actions/upload-artifact@v6
with:
Expand All @@ -87,7 +89,7 @@ jobs:
echo "dist ran successfully"
cat plan-dist-manifest.json
echo "manifest=$(jq -c "." plan-dist-manifest.json)" >> "$GITHUB_OUTPUT"
- name: "Upload dist-manifest.json"
- name: 'Upload dist-manifest.json'
uses: actions/upload-artifact@v6
with:
name: artifacts-plan-dist-manifest
Expand All @@ -99,7 +101,9 @@ jobs:
# Let the initial task tell us to not run (currently very blunt)
needs:
- plan
if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null && (needs.plan.outputs.publishing == 'true' || fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }}
if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null &&
(needs.plan.outputs.publishing == 'true' ||
fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }}
strategy:
fail-fast: false
# Target platforms/runners are computed by dist in create-release.
Expand Down Expand Up @@ -170,7 +174,7 @@ jobs:
echo "EOF" >> "$GITHUB_OUTPUT"

cp dist-manifest.json "$BUILD_MANIFEST_NAME"
- name: "Upload artifacts"
- name: 'Upload artifacts'
uses: actions/upload-artifact@v6
with:
name: artifacts-build-local-${{ join(matrix.targets, '_') }}
Expand All @@ -183,7 +187,7 @@ jobs:
needs:
- plan
- build-local-artifacts
runs-on: "ubuntu-22.04"
runs-on: 'ubuntu-22.04'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json
Expand Down Expand Up @@ -217,7 +221,7 @@ jobs:
echo "EOF" >> "$GITHUB_OUTPUT"

cp dist-manifest.json "$BUILD_MANIFEST_NAME"
- name: "Upload artifacts"
- name: 'Upload artifacts'
uses: actions/upload-artifact@v6
with:
name: artifacts-build-global
Expand All @@ -231,12 +235,15 @@ jobs:
- build-local-artifacts
- build-global-artifacts
# Only run if we're "publishing", and only if plan, local and global didn't fail (skipped is fine)
if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' &&
(needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result ==
'success') && (needs.build-local-artifacts.result == 'skipped' ||
needs.build-local-artifacts.result == 'success') }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write # For GitHub releases
runs-on: "ubuntu-22.04"
runs-on: 'ubuntu-22.04'
outputs:
val: ${{ steps.host.outputs.manifest }}
steps:
Expand Down Expand Up @@ -264,14 +271,14 @@ jobs:
echo "artifacts uploaded and released successfully"
cat dist-manifest.json
echo "manifest=$(jq -c "." dist-manifest.json)" >> "$GITHUB_OUTPUT"
- name: "Upload dist-manifest.json"
- name: 'Upload dist-manifest.json'
uses: actions/upload-artifact@v6
with:
# Overwrite the previous copy
name: artifacts-dist-manifest
path: dist-manifest.json
# Create a GitHub Release while uploading all files to it
- name: "Download GitHub Artifacts"
- name: 'Download GitHub Artifacts'
uses: actions/download-artifact@v7
with:
pattern: artifacts-*
Expand All @@ -283,10 +290,12 @@ jobs:
rm -f artifacts/*-dist-manifest.json
- name: Create GitHub Release
env:
PRERELEASE_FLAG: "${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease' || '' }}"
ANNOUNCEMENT_TITLE: "${{ fromJson(steps.host.outputs.manifest).announcement_title }}"
ANNOUNCEMENT_BODY: "${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}"
RELEASE_COMMIT: "${{ github.sha }}"
PRERELEASE_FLAG:
"${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease'
|| '' }}"
ANNOUNCEMENT_TITLE: '${{ fromJson(steps.host.outputs.manifest).announcement_title }}'
ANNOUNCEMENT_BODY: '${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}'
RELEASE_COMMIT: '${{ github.sha }}'
run: |
# Write and read notes from a file to avoid quoting breaking things
echo "$ANNOUNCEMENT_BODY" > $RUNNER_TEMP/notes.txt
Expand Down Expand Up @@ -315,8 +324,9 @@ jobs:
# use "always() && ..." to allow us to wait for all publish jobs while
# still allowing individual publish jobs to skip themselves (for prereleases).
# "host" however must run to completion, no skipping allowed!
if: ${{ always() && needs.host.result == 'success' && (needs.custom-release-npm.result == 'skipped' || needs.custom-release-npm.result == 'success') }}
runs-on: "ubuntu-22.04"
if: ${{ always() && needs.host.result == 'success' && (needs.custom-release-npm.result ==
'skipped' || needs.custom-release-npm.result == 'success') }}
runs-on: 'ubuntu-22.04'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ jobs:
# Windows runs out of disk space
COVERAGE: ${{ needs.test-plan.outputs.coverage == 'true' && !contains(matrix.os, 'windows') }}
# Temporary until we upgrade starbase
GIT_AUTHOR_NAME: "Sandbox"
GIT_AUTHOR_EMAIL: "fakeemail@somedomain.dev"
GIT_COMMITTER_NAME: "Sandbox"
GIT_COMMITTER_EMAIL: "fakeemail@somedomain.dev"
GIT_AUTHOR_NAME: 'Sandbox'
GIT_AUTHOR_EMAIL: 'fakeemail@somedomain.dev'
GIT_COMMITTER_NAME: 'Sandbox'
GIT_COMMITTER_EMAIL: 'fakeemail@somedomain.dev'
steps:
- uses: actions/checkout@v6
- uses: arduino/setup-protoc@v3
Expand All @@ -136,7 +136,7 @@ jobs:
with:
auto-install: true
cache: true
proto-version: "0.57.4" # Keep in sync
proto-version: '0.58.0' # Keep in sync
env:
PROTO_LOG: trace
- uses: mozilla-actions/sccache-action@v0.0.9
Expand Down
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ umd/
dist/

# Artifacts
.eslintcache
*.map
*.min.js
*.tsbuildinfo
Expand All @@ -48,9 +47,6 @@ tests/repros/*/.moon/cache
*profdata
dockerManifest.json

# vscode
.vscode/settings.json

# AI / agents
.claude/settings.local.json
.claude/worktrees
Loading
Loading