From b41d47962d92c5207bd8fee990d789151cbb3a24 Mon Sep 17 00:00:00 2001 From: Aspect Date: Fri, 24 Jul 2026 17:50:40 -0400 Subject: [PATCH 01/18] holy rewrite in honor of opus 5 --- .editorconfig | 15 + .gitbook.yaml | 5 + .github/workflows/ci.yml | 94 ++ .github/workflows/publish-docs.yml | 39 - .github/workflows/release.yml | 95 ++ .gitignore | 9 +- .markdownlint.json | 6 - Cargo.lock | 1822 ++++++++++++++++++++++++++++ Cargo.toml | 42 + LICENSE | 2 +- README.md | 123 +- TODO.md | 10 - aftman.toml | 3 - assets/debugPreview.gif | Bin 154406 -> 0 bytes assets/releasePreview.gif | Bin 362043 -> 0 bytes build.rs | 21 + docs/.nav.yml | 11 - docs/README.md | 93 ++ docs/SUMMARY.md | 20 + docs/cli.md | 174 +++ docs/composer-markers.md | 95 -- docs/config-reference.md | 228 ---- docs/darklua.md | 158 +++ docs/defines.md | 140 +++ docs/deployment.md | 63 - docs/diagnostics.md | 84 ++ docs/getting-started.md | 90 -- docs/index.md | 26 - docs/init.md | 73 -- docs/inputs.md | 92 ++ docs/install.md | 72 ++ docs/local-config.md | 93 -- docs/manifest.md | 282 +++++ docs/quickstart.md | 94 ++ mkdocs.yml | 73 -- pipeline/build.bat | 54 - pipeline/build_debug.bat | 46 - pipeline/darklua.json | 12 - requirements.txt | 2 - rust-toolchain.toml | 5 + rustfmt.toml | 4 + src/build.luau | 226 ---- src/config.luau | 251 ---- src/deploy.luau | 242 ---- src/diag.rs | 71 ++ src/digest.rs | 76 ++ src/engine.rs | 525 ++++++++ src/error.rs | 116 ++ src/init.luau | 360 ------ src/init.rs | 122 ++ src/lib.rs | 49 + src/lint.rs | 170 +++ src/load.rs | 291 +++++ src/main.rs | 583 +++++++++ src/manifest.rs | 260 ++++ src/path.rs | 140 +++ src/plan.rs | 740 +++++++++++ src/rules.rs | 70 ++ src/scaffold.luau | 309 ----- src/schema.rs | 187 +++ src/ui.luau | 195 --- src/util.luau | 62 - src/watch.rs | 77 ++ 63 files changed, 6916 insertions(+), 2576 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitbook.yaml create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/publish-docs.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .markdownlint.json create mode 100644 Cargo.lock create mode 100644 Cargo.toml delete mode 100644 TODO.md delete mode 100644 aftman.toml delete mode 100644 assets/debugPreview.gif delete mode 100644 assets/releasePreview.gif create mode 100644 build.rs delete mode 100644 docs/.nav.yml create mode 100644 docs/README.md create mode 100644 docs/SUMMARY.md create mode 100644 docs/cli.md delete mode 100644 docs/composer-markers.md delete mode 100644 docs/config-reference.md create mode 100644 docs/darklua.md create mode 100644 docs/defines.md delete mode 100644 docs/deployment.md create mode 100644 docs/diagnostics.md delete mode 100644 docs/getting-started.md delete mode 100644 docs/index.md delete mode 100644 docs/init.md create mode 100644 docs/inputs.md create mode 100644 docs/install.md delete mode 100644 docs/local-config.md create mode 100644 docs/manifest.md create mode 100644 docs/quickstart.md delete mode 100644 mkdocs.yml delete mode 100644 pipeline/build.bat delete mode 100644 pipeline/build_debug.bat delete mode 100644 pipeline/darklua.json delete mode 100644 requirements.txt create mode 100644 rust-toolchain.toml create mode 100644 rustfmt.toml delete mode 100644 src/build.luau delete mode 100644 src/config.luau delete mode 100644 src/deploy.luau create mode 100644 src/diag.rs create mode 100644 src/digest.rs create mode 100644 src/engine.rs create mode 100644 src/error.rs delete mode 100644 src/init.luau create mode 100644 src/init.rs create mode 100644 src/lib.rs create mode 100644 src/lint.rs create mode 100644 src/load.rs create mode 100644 src/main.rs create mode 100644 src/manifest.rs create mode 100644 src/path.rs create mode 100644 src/plan.rs create mode 100644 src/rules.rs delete mode 100644 src/scaffold.luau create mode 100644 src/schema.rs delete mode 100644 src/ui.luau delete mode 100644 src/util.luau create mode 100644 src/watch.rs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b6171a0 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 + +[*.{md,yml,yaml,json}] +indent_size = 2 + +[*.luau] +indent_style = tab diff --git a/.gitbook.yaml b/.gitbook.yaml new file mode 100644 index 0000000..23dad3a --- /dev/null +++ b/.gitbook.yaml @@ -0,0 +1,5 @@ +root: ./docs/ + +structure: + readme: README.md + summary: SUMMARY.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bc984ca --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,94 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: -D warnings + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Format and lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + # No toolchain action: `rust-toolchain.toml` pins the version, and rustup + # installs it on first use. + - uses: Swatinem/rust-cache@v2 + - run: cargo fmt --all --check + - run: cargo clippy --all-targets --all-features + + build: + name: Build (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + - run: cargo build --release + + reproducible: + name: Reproducible output + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + - run: cargo build --release + + # A build tool whose output is not byte-stable has no way to prove it did not + # break something. `pcmp verify` builds twice and compares, so this job fails on + # any nondeterminism the code introduces. + - name: Build a fixture twice and compare + run: | + mkdir -p /tmp/fixture/src + cat > /tmp/fixture/src/init.luau <<'LUAU' + --!strict + local VERSION: string = _G.PCMP_VERSION + if _G.DEBUG then print("stripped") end + return { version = VERSION } + LUAU + cat > /tmp/fixture/pcmp.luau <<'LUAU' + return { + vars = { name = "fixture", version = pcmp.env("VERSION") }, + profiles = { + release = { + entry = "src/init.luau", + output = "dist/{name}.luau", + define = { DEBUG = false }, + darklua = { + generator = "dense", + rules = { + "compute_expression", + "remove_unused_if_branch", + "remove_types", + "remove_comments", + "rename_variables", + }, + }, + }, + }, + } + LUAU + cd /tmp/fixture + pcmp="$GITHUB_WORKSPACE/target/release/pcmp" + "$pcmp" check --strict --env VERSION=v1.0.0 + "$pcmp" verify --env VERSION=v1.0.0 + + audit: + name: Advisories + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: rustsec/audit-check@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml deleted file mode 100644 index 7edb9c1..0000000 --- a/.github/workflows/publish-docs.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Publish Docs -on: - push: - branches: - - main - workflow_dispatch: - -permissions: - contents: write - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - - name: Set Cache ID - id: cache-id - run: echo "id=$(date --utc '+%V')" >> $GITHUB_OUTPUT - - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ steps.cache-id.outputs.id }} - path: .cache - restore-keys: | - mkdocs-material- - - - run: pip install mkdocs-material - - run: pip install -r requirements.txt - - run: mkdocs gh-deploy --force diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a6e560e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,95 @@ +name: Release + +on: + push: + tags: ["v*"] + workflow_dispatch: + +permissions: + contents: write + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + name: ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - { target: x86_64-unknown-linux-gnu, os: ubuntu-latest } + - { target: aarch64-unknown-linux-gnu, os: ubuntu-24.04-arm } + - { target: x86_64-apple-darwin, os: macos-13 } + - { target: aarch64-apple-darwin, os: macos-latest } + - { target: x86_64-pc-windows-msvc, os: windows-latest } + steps: + - uses: actions/checkout@v4 + - run: rustup target add ${{ matrix.target }} + - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.target }} + + - run: cargo build --release --target ${{ matrix.target }} + + - name: Package + shell: bash + run: | + name="pcmp-${GITHUB_REF_NAME}-${{ matrix.target }}" + mkdir -p "dist/$name" + + if [ "${{ runner.os }}" = "Windows" ]; then + cp "target/${{ matrix.target }}/release/pcmp.exe" "dist/$name/" + else + cp "target/${{ matrix.target }}/release/pcmp" "dist/$name/" + fi + cp README.md LICENSE "dist/$name/" + + cd dist + if [ "${{ runner.os }}" = "Windows" ]; then + 7z a "$name.zip" "$name" > /dev/null + certutil -hashfile "$name.zip" SHA256 | sed -n 2p | tr -d ' \r' > "$name.zip.sha256" + else + tar -czf "$name.tar.gz" "$name" + shasum -a 256 "$name.tar.gz" | cut -d' ' -f1 > "$name.tar.gz.sha256" + fi + + - uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.target }} + path: | + dist/*.tar.gz + dist/*.zip + dist/*.sha256 + if-no-files-found: error + + publish: + name: Publish + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v4 + with: + path: artifacts + merge-multiple: true + + # One combined checksum file, so a user can verify every asset with a single + # `sha256sum -c`. + - name: Collect checksums + run: | + cd artifacts + for file in *.sha256; do + printf '%s %s\n' "$(cat "$file")" "${file%.sha256}" >> SHA256SUMS + rm "$file" + done + sort -k2 -o SHA256SUMS SHA256SUMS + cat SHA256SUMS + + # Published as a draft: a release whose assets are still uploading is a release + # someone can download half of. Promote it once the assets are attached. + - uses: softprops/action-gh-release@v2 + with: + draft: true + generate_release_notes: true + files: artifacts/* diff --git a/.gitignore b/.gitignore index 23e11db..8690ac6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ -generated/ +# Build output +/target/ + +# ProCMP's own cache, written next to a project's manifest +.pcmp/ + +# Local environment .env -pipeline/.pcmp.local.json \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index bb7813a..0000000 --- a/.markdownlint.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "MD033": false, - "MD013": false, - "first-line-h1": false, - "MD029": false -} \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..f381541 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1822 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" + +[[package]] +name = "blake3" +version = "1.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "borsh" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a88b7ea17d208c4193f2c1e6de3c35fe71f98c96982d5ced308bdcc749ff6e1f" +dependencies = [ + "bytes", + "cfg_aliases", +] + +[[package]] +name = "bstr" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530" +dependencies = [ + "memchr", + "regex-automata", + "serde_core", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "camino" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cc" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "clap" +version = "4.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "4.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "clap_lex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "const_format" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" +dependencies = [ + "const_format_proc_macros", + "konst", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "ctrlc" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" +dependencies = [ + "dispatch2", + "nix", + "windows-sys 0.61.2", +] + +[[package]] +name = "darklua" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7345394f4d5ea10b0fbe2bf19b32a2a138cd5efe11c6e6b400dae5fafcb07271" +dependencies = [ + "anstyle", + "base64", + "bstr", + "clap", + "ctrlc", + "durationfmt", + "elsa", + "env_logger", + "flate2", + "full_moon", + "indexmap 2.14.0", + "json5", + "log", + "notify", + "notify-debouncer-full", + "num-traits", + "pathdiff", + "petgraph", + "regex", + "serde", + "serde_json", + "serde_yaml", + "toml", + "wax", + "web-time", + "xxhash-rust", + "zstd", +] + +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "unicode-xid", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "durationfmt" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "232860130f75128af6852aef5105ee3813539258f2ce74d0f0ec2dca9b69e22d" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "either" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" + +[[package]] +name = "elsa" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9abf33c656a7256451ebb7d0082c5a471820c31269e49d807c538c252352186e" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "file-id" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "full_moon" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a083d6f598bbe9d70e694f2a5cf78f0354678a8c13528da2df6467b089586404" +dependencies = [ + "bytecount", + "cfg-if", + "derive_more", + "full_moon_derive", + "paste", + "serde", + "smol_str", +] + +[[package]] +name = "full_moon_derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b4bd12ce56927d1dc5478d21528ea8c4b93ca85ff8f8043b6a5351a2a3c6f7" +dependencies = [ + "indexmap 1.9.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "inotify" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" +dependencies = [ + "bitflags 2.13.1", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" +dependencies = [ + "libc", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jiff" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e184d09547b80eb7e20d141ba2fb1fbac843ca53f4cf1b31210adc4c1adc6e16" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + +[[package]] +name = "jiff-static" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323da076b7a6faf914dc677cb05a4b907742ff7375c8322c9e7f5061e5e0e9de" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json5" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733a844dbd6fef128e98cb4487b887cb55454d92cd9994b1bafe004fabbe670c" +dependencies = [ + "serde", + "ucd-trie", +] + +[[package]] +name = "konst" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" +dependencies = [ + "konst_macro_rules", +] + +[[package]] +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + +[[package]] +name = "kqueue" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" +dependencies = [ + "bitflags 2.13.1", + "libc", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "lua-src" +version = "550.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e836dc8ae16806c9bdcf42003a88da27d163433e3f9684c52f0301258004a4fb" +dependencies = [ + "cc", +] + +[[package]] +name = "luajit-src" +version = "210.6.6+707c12b" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a86cc925d4053d0526ae7f5bc765dbd0d7a5d1a63d43974f4966cb349ca63295" +dependencies = [ + "cc", + "which", +] + +[[package]] +name = "luau0-src" +version = "0.18.3+luau709" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e73f7d752fe2ef0a41f132b83d0be154c6ae0ed84967b4df80a16901866be075" +dependencies = [ + "cc", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "mlua" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccd36acfa49ce6ee56d1307a061dd302c564eee757e6e4cd67eb4f7204846fab" +dependencies = [ + "bstr", + "either", + "erased-serde", + "libc", + "mlua-sys", + "num-traits", + "parking_lot", + "rustc-hash", + "rustversion", + "serde", + "serde-value", +] + +[[package]] +name = "mlua-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1c3a7fc7580227ece249fd90aa2fa3b39eb2b49d3aec5e103b3e85f2c3dfc8" +dependencies = [ + "cc", + "cfg-if", + "libc", + "lua-src", + "luajit-src", + "luau0-src", + "pkg-config", +] + +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags 2.13.1", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "notify" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" +dependencies = [ + "bitflags 2.13.1", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "notify-types", + "walkdir", + "windows-sys 0.60.2", +] + +[[package]] +name = "notify-debouncer-full" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02b49179cfebc9932238d04d6079912d26de0379328872846118a0fa0dbb302" +dependencies = [ + "file-id", + "log", + "notify", + "notify-types", + "walkdir", +] + +[[package]] +name = "notify-types" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "serde", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "pori" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906" +dependencies = [ + "nom", +] + +[[package]] +name = "portable-atomic" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" + +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procmp" +version = "4.0.0-alpha.1" +dependencies = [ + "blake3", + "camino", + "clap", + "darklua", + "indexmap 2.14.0", + "json5", + "mlua", + "notify", + "notify-debouncer-full", + "rayon", + "schemars", + "serde", + "serde_json", + "thiserror", + "toml", + "wax", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rayon" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "ref-cast" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "indexmap 2.14.0", + "ref-cast", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "indexmap 2.14.0", + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.14.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "smol_str" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" +dependencies = [ + "borsh", + "serde_core", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "terminal_size" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" +dependencies = [ + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "thiserror" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "toml" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wax" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8cbf8125142b9b30321ac8721f54c52fbcd6659f76cf863d5e2e38c07a3d7b" +dependencies = [ + "const_format", + "itertools", + "nom", + "pori", + "regex", + "thiserror", + "walkdir", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "which" +version = "8.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3ef584124b911bcc3875c2f1472e80f24361ceb789bd1c62b3e9a3df9ff43c" +dependencies = [ + "libc", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" + +[[package]] +name = "xxhash-rust" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aee1b19627c7c60102ab80d3a9cbe18de90bfe03bfa6c3715447681f0e8c8af6" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..32eea1d --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,42 @@ +[package] +name = "procmp" +description = "Multi-target build composition for Luau projects." +version = "4.0.0-alpha.1" +edition = "2024" +rust-version = "1.90" +license = "MIT" +build = "build.rs" + +[lib] +name = "procmp" +path = "src/lib.rs" + +[[bin]] +name = "pcmp" +path = "src/main.rs" + +[dependencies] +blake3 = "1" +camino = { version = "1", features = ["serde1"] } +clap = { version = "4", features = ["derive", "wrap_help"] } +darklua = "0.19" +indexmap = { version = "2", features = ["serde"] } +json5 = "1" +mlua = { version = "0.11", features = ["luau", "vendored", "serialize"] } +notify = "8" +notify-debouncer-full = "0.7" +rayon = "1" +schemars = { version = "1", features = ["indexmap2"] } +serde = { version = "1", features = ["derive"] } +serde_json = { version = "1", features = ["preserve_order"] } +thiserror = "2" +toml = "1" +wax = "0.7" + +[profile.release] +lto = "thin" +strip = true +codegen-units = 1 + +# `panic = "abort"` is deliberately absent: mlua propagates a Lua error by unwinding +# across the C boundary, and aborting turns an ordinary manifest mistake into a crash. diff --git a/LICENSE b/LICENSE index ae4d1ea..9c0c20a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Proton Utilities +Copyright (c) 2026 Proton Utilities Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 21bf57d..a5a4da4 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,125 @@ -# ProCMP +

ProCMP

-Build composition system with multi-target support, profiles, and injectable macros. +

Bundle one Luau source tree into many build targets from a single manifest.

+

+ CI + MIT + Release +

+ +--- + +ProCMP turns one Luau source tree into many artifacts — a minified release, a readable +debug build, a Roblox variant, a Lune variant — from a single manifest. It links +[darklua](https://darklua.com) in as a library, so there is no `darklua` binary to +install, no `PATH` to get wrong, and no version drift between what you pinned and what +is on the machine. + +The same inputs always produce the same bytes. `pcmp verify` proves it. + +## Install + +Download a binary from [releases](https://github.com/Proton-Utilities/ProCMP/releases), +or build from source: + +```sh +cargo install --git https://github.com/Proton-Utilities/ProCMP +``` + +## Use + +A manifest, `pcmp.luau`: + +```luau +return { + vars = { + name = "app", + version = pcmp.envOr("VERSION", "v0.0.0-dev"), + }, + + profiles = { + base = { + abstract = true, + entry = "src/init.luau", + output = "dist/{profile}/{name}.luau", + darklua = { + bundle = { require_mode = "luau" }, + }, + }, + + debug = { + extends = "base", + define = { DEBUG = true }, + darklua = { + generator = "readable", + rules = { "compute_expression" }, + }, + }, + + release = { + extends = "base", + define = { DEBUG = false }, + darklua = { + generator = "dense", + rules = { + "compute_expression", + "remove_unused_if_branch", + "remove_types", + "remove_comments", + "rename_variables", + }, + }, + }, + }, +} +``` + +Then: + +```sh +pcmp plan # what would be built +pcmp check # lint the manifest and the plan +pcmp build # build it +pcmp verify # prove the output is reproducible +``` + +`define` entries become real constants. In a release build, this: + +```luau +if _G.DEBUG then + print("verbose telemetry") +end +``` + +is not merely false — it is **gone from the artifact**, along with the branch, because +the value is injected as an AST node and then folded away. + +## Why + +**darklua is linked in**, not shelled out to, so `pcmp` is one static binary with no +external version to drift. + +**The `darklua` block is darklua's config, verbatim.** ProCMP adds no rule names, no +presets and no reordering — nothing the linked darklua supports is unreachable, and +`pcmp explain` prints the exact `.darklua.json` a task compiles down to. + +**Manifests are Luau, JSON, JSONC, JSON5 or TOML**, all resolving to the same plan. The +Luau front end is a real interpreter with every entropy source revoked, so config can +compute without going nondeterministic. + +**Inputs are derived, not guessed.** The hashed set comes from the plan — every file +under your roots, minus your outputs and the cache. No extension allowlist, so a `.json` +asset behind a content loader invalidates the build it belongs to. + +**Findings accumulate.** A manifest with four mistakes reports four, each with a stable +code and a fix. ## Documentation -View the documentation to learn how to use ProCMP: +**[procmp.dev](https://github.com/Proton-Utilities/ProCMP/tree/main/docs)** — installation, +concepts, manifest reference, CLI reference, and the full diagnostic catalogue. + +## License -**[→ Documentation](https://proton-utilities.github.io/ProCMP)** \ No newline at end of file +MIT — see [LICENSE](LICENSE). diff --git a/TODO.md b/TODO.md deleted file mode 100644 index fb6d9f9..0000000 --- a/TODO.md +++ /dev/null @@ -1,10 +0,0 @@ -# TODO - -- __COMPOSER.loadFile and other file system features -- Make readme lest abstract -- bug: build date artifact macro works outside of a build frsme -- bug: pcmp init configs not being semantic/not workng -- refactor: prettify output json files for pcmp init, switch to a file based approach rather than in-code data -- fix the opening files only working for multi-open -- add more macros for useful data like getting current build varaint etc -- add script (luau) support and/or custom command support. Maybe they can use flags for certain build-time events, like pre and post (deploy, build, etc) diff --git a/aftman.toml b/aftman.toml deleted file mode 100644 index af2faaa..0000000 --- a/aftman.toml +++ /dev/null @@ -1,3 +0,0 @@ -[tools] -darklua = "seaofvoices/darklua@0.18.0" -lune = "lune-org/lune@0.10.4" \ No newline at end of file diff --git a/assets/debugPreview.gif b/assets/debugPreview.gif deleted file mode 100644 index 7d4ec26f78cba17ea49032e6aeb03850efc3e171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154406 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

=QCWIAexjkRo~`BXU@>;ncd@A8-`;JkCuLnj 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 z z44 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�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 z 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%0Aj*^~SF&vB@+HieGH24PY4aw|oH}>%?CJ9- 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

em}$dsA0dv^aYNVWDl=e$EDqBAv1WMB>8V0 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 + + + +Compile-time constants +define values become literals, and the branches they disable are deleted from the artifact rather than shipped and skipped. + + +Profiles and matrices +Share settings with extends, or expand a matrix into one task per target. + + +Five manifest formats +Luau, JSON, JSONC, JSON5 and TOML all resolve to the same plan. + + +Reproducible by construction +pcmp verify builds twice and byte-compares, so nondeterminism fails CI instead of reaching a release. + + + + +{% content-ref url="install.md" %} +[install.md](install.md) +{% endcontent-ref %} diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md new file mode 100644 index 0000000..7e92914 --- /dev/null +++ b/docs/SUMMARY.md @@ -0,0 +1,20 @@ +# Table of contents + +* [ProCMP](README.md) + +## Start + +* [Install](install.md) +* [Quickstart](quickstart.md) + +## Build + +* [Vars and defines](defines.md) +* [darklua](darklua.md) +* [Inputs](inputs.md) + +## Reference + +* [Manifest](manifest.md) +* [CLI](cli.md) +* [Diagnostics](diagnostics.md) diff --git a/docs/cli.md b/docs/cli.md new file mode 100644 index 0000000..0477f77 --- /dev/null +++ b/docs/cli.md @@ -0,0 +1,174 @@ +--- +description: Every command, flag and exit code. +--- + +# CLI + +``` +pcmp [OPTIONS] +``` + + + + + + + + +
Global flag
-m, --manifest <PATH>Manifest to use. Discovered otherwise.
--cache-dir <PATH>Where build state is kept. Defaults to .pcmp/ beside the manifest.
--var <KEY=VALUE>Set a token. Repeatable. Beats the manifest.
-D, --define <KEY=VALUE>Set a constant. Repeatable. Beats the manifest.
-e, --env <KEY=VALUE>A value for pcmp.env, ahead of the process environment. Repeatable.
--jsonMachine-readable output. Works on every command.
+ +Discovery looks for `pcmp.luau`, `pcmp.json`, `pcmp.jsonc`, `pcmp.json5` then +`pcmp.toml`, in the working directory and then each of its ancestors — so `pcmp` works +from anywhere inside a project. + +`--var` and `--define` apply after inheritance and work whatever the manifest format. +`--env` is read by the manifest but never exported, so a value passed there cannot reach +anything ProCMP runs. + +```sh +pcmp build --var version="$(git describe --tags)" -D CHANNEL=beta +``` + +## `plan` + +Resolve the manifest and print the plan without building. + +``` +$ pcmp plan +2 task(s) — plan a18350afadee + + debug dist/debug/app.luau 7 rules + release dist/release/app.luau 11 rules +``` + +Resolution touches no source files, so this is exactly what a build would do. The plan +digest covers every task, so two checkouts can be compared without building either. + +## `build` + +```sh +pcmp build # everything +pcmp build release # one task or profile +pcmp build debug release # several +pcmp build 'dist[target=roblox]' # one matrix task, by exact identifier +pcmp build '*target=roblox*' # across a matrix axis +pcmp build --no-cache # rebuild regardless of cached state +``` + +`*` stands for any run of characters and is the only wildcard — a matrix identifier +contains `[`, `]` and `=`, which every glob dialect would read as syntax. + +Tasks run in parallel. Failures are collected rather than aborting, so one broken profile +does not hide the others. A filter matching nothing is an error, not a no-op. + +## `check` + +```sh +pcmp check +pcmp check --strict # also fail on warnings +``` + +Exits `5` on any error. See [Diagnostics](diagnostics.md). + +## `verify` + +Build twice with the cache off, then byte-compare every artifact. + +``` +$ pcmp verify +reproducible: 2 task(s) byte-identical across two builds +``` + +Exits `1` and names the differing tasks if anything changed between runs. A build that +fails is reported as a build failure, not as a comparison that could not be made. + +## `watch [TASKS]` + +Builds, then rebuilds whenever an input or the manifest changes. Accepts the same +patterns as `build`. + +``` +$ pcmp watch release + built release dist/release/app.luau (2 ms) +1 built, 0 cached, 0 failed + built release dist/release/app.luau (1 ms) +1 built, 0 cached, 0 failed +``` + +The watched set is the same one the cache is keyed on — see [Inputs](inputs.md) — so +nothing can wake the watcher without invalidating a build, or the reverse. + +The manifest is re-read each cycle, so editing it takes effect without a restart — +including an edit that breaks it, which is reported and then waited on. + +## `init` + +Writes `pcmp.luau` and `pcmp.d.luau`. Nothing else: no directories, no prompts, no +`.gitignore` rewriting. + +``` +$ pcmp init +created pcmp.luau +created pcmp.d.luau + +next pcmp plan +``` + +The entry point is detected from `src/init.luau`, `src/main.luau`, `init.luau` or +`main.luau`; pass `--entry` otherwise. It refuses to overwrite an existing manifest, so +it is safe to run twice. + +## `explain ` + +Entry, output, digest, every var, every define with its type, and the darklua +configuration the task compiles to. `--json` emits the task and that configuration +together. + +## `schema` + +```sh +pcmp schema # JSON Schema +pcmp schema --format luau # Luau type definitions +``` + +Needs no project — run it anywhere. See [Install](install.md#editor-completion). + +## Exit codes + + + + + + +
Code
0Success.
1A build task failed, or output was not reproducible.
2The manifest could not be loaded or resolved.
5Linting failed.
+ +## Caching + +Build state lives in `.pcmp/` beside the manifest — add it to `.gitignore`, or move it +with `--cache-dir`. + +A task is skipped when its configuration, every input, and the darklua version are all +unchanged. What counts as an input is derived from the plan rather than guessed at from +directory names. + +{% content-ref url="inputs.md" %} +[inputs.md](inputs.md) +{% endcontent-ref %} + +## In CI + +{% code title=".github/workflows/build.yml" %} +```yaml +- run: pcmp check --strict +- run: pcmp build --var version=${{ github.ref_name }} +- run: pcmp verify --var version=${{ github.ref_name }} +``` +{% endcode %} + +`--json` makes results parseable: + +```sh +pcmp check --json | jq '[.[] | select(.severity == "deny")] | length' +pcmp build --json | jq '.tasks[] | select(.outcome.status == "failed")' +pcmp verify --json | jq '.reproducible' +``` diff --git a/docs/composer-markers.md b/docs/composer-markers.md deleted file mode 100644 index 87ff38c..0000000 --- a/docs/composer-markers.md +++ /dev/null @@ -1,95 +0,0 @@ -# Frames and Composer Markers - -Frames are Luau files that contain composer markers, which are build-time macros to replace chunks of code with build data. - ---- - -## Built-in markers - -| Marker | Replaced with | Type | -|--------|--------------|------| -| `__COMPOSER.Insert(__COMPOSER.build)` | Full compiled source code | `string` | -| `__COMPOSER.Insert(__COMPOSER.genDate)` | ISO 8601 build date (quoted) | `"YYYY-MM-DD"` | -| `__COMPOSER.Insert(__COMPOSER.cfg)` | Build config name (quoted) | `"Release"` | -| `__COMPOSER.Insert(__COMPOSER.vers)` | Version string (quoted) | `"v1.2.3"` | - ---- - -## Writing a frame - -A frame is a plain `.luau` file. Use markers as expressions — they are replaced with raw Luau values (strings are already quoted with `%q`). - -```lua title="pipeline/frames/release.luau" ---!nolint ---!nocheck ---!native ---!optimize 2 - ---[[ - Generated by ProCMP — do not edit manually. -]] - -_P = { - genDate = __COMPOSER.Insert(__COMPOSER.genDate), - cfg = __COMPOSER.Insert(__COMPOSER.cfg), - vers = __COMPOSER.Insert(__COMPOSER.vers), -} - -__COMPOSER.Insert(__COMPOSER.build) -``` - -After composition, `__COMPOSER.Insert(__COMPOSER.vers)` becomes `"v1.2.3"`. - ---- - -## Runtime access - -The `_P` table is available at runtime in your built script: - -```lua -if _P.cfg == "Debug" then - warn("[DEBUG BUILD]") -end - -print("Version:", _P.vers) -print("Built:", _P.genDate) -``` - -You can rename `_P` to anything. If you use [luau-lsp](https://github.com/JohnnyMorganz/luau-lsp), add type definitions to silence warnings: - -```lua title=".globals/pcmp.d.luau" -declare __COMPOSER: { - Insert: (text: string) -> string, - genDate: string, - build: string, - cfg: string, - vers: string, -} - -declare _P: { [any]: any } -``` - ---- - -## Multiple frames - -You can have different frames for different configs. The `frame` field is per-config in `.pcmp.json`: - -```json -{ - "buildConfigs": [ - { - "name": "Debug", - "frame": "pipeline/frames/debug.luau", - ... - }, - { - "name": "Release", - "frame": "pipeline/frames/release.luau", - ... - } - ] -} -``` - -A common pattern is a debug frame with no optimisation flags and extra logging headers, and a release frame with `--!native --!optimize 2` and a clean header. diff --git a/docs/config-reference.md b/docs/config-reference.md deleted file mode 100644 index 990026e..0000000 --- a/docs/config-reference.md +++ /dev/null @@ -1,228 +0,0 @@ -Full reference for `.pcmp.json`, `.pcmp.local.json`, and the CLI. - ---- - -## Command-Line Interface - -ProCMP supports both config-based and configless builds via the CLI. - -### Subcommands - -| Subcommand | Description | -| ---------- | ------------------------------------------------- | -| `build` | Run a configless build with flags | -| `init` | Scaffold pipeline files and personal local config | - -### `build` flags - -| Flag | Description | -| --------------------- | ----------------------------------- | -| `-i, --input ` | Source entry point | -| `-o, --output ` | Output file path | -| `-f, --frame ` | Path to the frame file | -| `-c, --config ` | Path to the darklua config | -| `-n, --name ` | Optional display name for the build | - -### Example - -```bash -pcmp build -i src/init.luau -o generated/out.luau -f pipeline/frames/release.luau -c pipeline/darklua/stable.json -``` - ---- - -## `.pcmp.json` — Shared cfg - -This file is committed to source control and shared across all team members. - -### Fields - -| Field | Type | Default | Description | -| -------------------- | --------------------------------------- | ------------ | ----------------------------------------------------------- | -| `envFile` | `string` | `".env"` | Path to the env file for reading tokens | -| `openComposedOutput` | [`OpenFileConfig`](#openfileconfig) | — | Open composed output after each build (prefer local config) | -| `releaseNotesEditor` | [`OpenFileConfig`](#openfileconfig) | — | Editor for release notes (prefer local config) | -| `deployment` | [`DeploymentConfig`](#deploymentconfig) | — | GitHub deployment settings | -| `buildConfigs` | [`BuildConfig[]`](#buildconfig) | **required** | Array of named build configurations | - ---- - -### `BuildConfig` - -| Field | Type | Default | Description | -| -------------------- | ----------------------------------- | ------------------- | ------------------------------------------------------- | -| `name` | `string` | **required** | Display name shown in the selection prompt | -| `input` | `string` | — | Source entry point (mutually exclusive with `inputDir`) | -| `inputDir` | `string` | — | Scan a directory for `.luau`/`.lua` files | -| `output` | `string` | — | Output file path (single-file mode) | -| `outputDir` | `string` | — | Output directory (directory mode) | -| `frame` | `string` | **required** | Path to the frame file | -| `darkluaConfig` | `string` | **required** | Path to the darklua config | -| `promptVersion` | `boolean` | `false` | Prompt for a version string before building | -| `versionFormat` | `string` | `"^v%d+%.%d+%.%d+"` | Lua pattern the version string must match | -| `promptDeploy` | `boolean` | `false` | Prompt to deploy after building | -| `prerelease` | `boolean` | `false` | Mark the GitHub release as a pre-release | -| `openComposedOutput` | [`OpenFileConfig`](#openfileconfig) | — | Per-config output opener (overrides global) | -| `variants` | [`BuildVariant[]`](#buildvariant) | — | Additional builds that inherit this config | - -#### Directory mode (`inputDir`) - -When `inputDir` is set, ProCMP scans the directory for `.luau` and `.lua` files and builds each one independently. Useful for test suites. - -```json -{ - "name": "Tests", - "inputDir": "tests", - "outputDir": "generated/tests", - "frame": "pipeline/frames/release.luau", - "darkluaConfig": "pipeline/darklua/unminified.json" -} -``` - -#### Single-file mode (`input`) - -Standard mode: one source file → one output file. - -```json -{ - "name": "Release", - "input": "src/init.luau", - "output": "generated/release/myScript.luau", - "frame": "pipeline/frames/release.luau", - "darkluaConfig": "pipeline/darklua/stable.json" -} -``` - ---- - -### `BuildVariant` - -Variants inherit all fields from their parent `BuildConfig` and override any fields you specify. They are built in sequence after the parent. - -| Field | Type | Description | -| --------------- | -------- | ---------------------------- | -| `name` | `string` | Display name for the variant | -| `input` | `string` | Override source entry point | -| `output` | `string` | Override output path | -| `frame` | `string` | Override frame | -| `darkluaConfig` | `string` | Override darklua config | - -```json -{ - "name": "Release", - "input": "src/init.luau", - "output": "generated/release/myScript.luau", - "frame": "pipeline/frames/release.luau", - "darkluaConfig": "pipeline/darklua/stable.json", - "variants": [ - { - "name": "Release-Unminified", - "darkluaConfig": "pipeline/darklua/unminified.json", - "output": "generated/release/myScript-unminified.luau" - } - ] -} -``` - ---- - -### `DeploymentConfig` - -```json -{ - "deployment": { - "github": { - "owner": "your-username", - "repo": "your-repo", - "tokenEnvVar": "GITHUB_TOKEN" - } - } -} -``` - -| Field | Type | Default | Description | -| -------------------- | -------- | ---------------- | ----------------------------------- | -| `github.owner` | `string` | **required** | GitHub username or organisation | -| `github.repo` | `string` | **required** | Repository name | -| `github.tokenEnvVar` | `string` | `"GITHUB_TOKEN"` | Env var name to read the token from | - ---- - -### `OpenFileConfig` - -Used for `openComposedOutput` and `releaseNotesEditor`. - -| Field | Type | Description | -| --------- | ---------- | --------------------------------------------------- | -| `command` | `string` | Executable to run | -| `args` | `string[]` | Arguments — `{file}` is replaced with the file path | - -```json -{ - "command": "code", - "args": ["--wait", "{file}"] -} -``` - ---- - -## `.pcmp.local.json` — Local config - -Personal preferences - -| Field | Type | Description | -| -------------------- | ----------------------------------- | ------------------------------ | -| `envFile` | `string` | Override env file path | -| `openComposedOutput` | [`OpenFileConfig`](#openfileconfig) | Your editor for output preview | -| `releaseNotesEditor` | [`OpenFileConfig`](#openfileconfig) | Your editor for release notes | - -See [Local Config](local-config.md) for full documentation. - ---- - -## Full example - -```json title="pipeline/.pcmp.json" -{ - "deployment": { - "github": { - "owner": "your-name", - "repo": "your-repo", - "tokenEnvVar": "GITHUB_TOKEN" - } - }, - "buildConfigs": [ - { - "name": "Tests", - "inputDir": "tests", - "outputDir": "generated/tests", - "frame": "pipeline/frames/release.luau", - "darkluaConfig": "pipeline/darklua/unminified.json" - }, - { - "name": "Debug", - "input": "src/init.luau", - "output": "generated/debug/myScript.luau", - "frame": "pipeline/frames/debug.luau", - "darkluaConfig": "pipeline/darklua/unminified.json" - }, - { - "name": "Release", - "input": "src/init.luau", - "output": "generated/release/myScript.luau", - "frame": "pipeline/frames/release.luau", - "darkluaConfig": "pipeline/darklua/stable.json", - "promptVersion": true, - "versionFormat": "^v%d+%.%d+%.%d+", - "promptDeploy": true, - "variants": [ - { - "name": "Release-Unminified", - "darkluaConfig": "pipeline/darklua/unminified.json", - "output": "generated/release/myScript-unminified.luau" - } - ] - } - ] -} -``` diff --git a/docs/darklua.md b/docs/darklua.md new file mode 100644 index 0000000..ba5f9c5 --- /dev/null +++ b/docs/darklua.md @@ -0,0 +1,158 @@ +--- +description: darklua's configuration, passed through untouched. +--- + +# darklua + +A profile's `darklua` block is darklua's own configuration format. ProCMP does not +model it, rename it, restrict it or reorder it — it deserialises the block with +darklua's own deserialiser, so the accepted set is exactly what the linked version +supports. + +{% code title="pcmp.luau" %} +```lua +darklua = { + generator = { name = "dense", column_span = 120 }, + apply_to_files = { "src/**" }, + skip_files = { "**/*.test.luau" }, + lua_extension = "luau", + + bundle = { + require_mode = { name = "luau", aliases = { pkg = "./Packages" } }, + excludes = { "@lune/**" }, + }, + + rules = { + "compute_expression", + "remove_unused_if_branch", + "remove_types", + "remove_comments", + "rename_variables", + { rule = "convert_require", current = "path", target = "roblox" }, + }, +}, +``` +{% endcode %} + +{% content-ref url="https://darklua.com/docs/config/" %} +[darklua configuration reference](https://darklua.com/docs/config/) +{% endcontent-ref %} + +A key darklua does not know is an error carrying darklua's own message and the JSON that +was emitted: + +``` +$ pcmp build + FAILED a dist/a.luau (0 ms) + task `a` emitted a darklua configuration darklua rejected + unknown field `nonsense` + { + "nonsense": true, + ... +``` + +## Rules + +Three ways to say it, and they mean three different things: + + + + + +
rules omitteddarklua applies its own default rules.
rules = {}No rules. Bundle and generate, transform nothing.
rules = { ... }Exactly these, in this order.
+ +``` +$ pcmp plan + release dist/app.luau darklua defaults +``` + +A rule in object form takes `apply_to_files` and `skip_files`, so one rule can be scoped +without splitting the profile: + +```lua +rules = { + "compute_expression", + { rule = "remove_comments", skip_files = "**/vendor/**" }, + { rule = "rename_variables", apply_to_files = "src/**/*.luau" }, +}, +``` + +## Injection comes first + +Each [`define`](defines.md) becomes an `inject_global_value` rule, placed ahead of +whatever you wrote. Nothing downstream can fold a value that has not been substituted +yet, so this is the only position that works. + +``` +$ pcmp explain a + +darklua configuration + { + "apply_to_files": [ "src/**" ], + "bundle": { "require_mode": { "name": "luau" } }, + "generator": "dense", + "lua_extension": "luau", + "rules": [ + { "rule": "inject_global_value", "identifier": "DEBUG", "value": false }, + { "rule": "inject_global_value", "identifier": "PCMP_NAME", "value": "app" }, + { "rule": "inject_global_value", "identifier": "PCMP_PROFILE", "value": "a" }, + "compute_expression", + "remove_unused_if_branch" + ] + } +``` + +That block is valid `.darklua.json`. Paste it into a config file and darklua on its own +produces the same artifact. + +{% hint style="info" %} +Keys come out sorted. A Luau table iterates in hash order, so an unsorted block would +serialise differently on each run and give the same configuration two cache keys. +{% endhint %} + +## Order is reported, not corrected + +Your order is the order darklua runs. `pcmp check` reports the two orderings darklua's +own documentation calls out, and nothing beyond them: + +``` +$ pcmp check +error branch-before-fold: task `release`: `remove_unused_if_branch` runs before `compute_expression` + help: list every `compute_expression` ahead of `remove_unused_if_branch` + help: a branch is only removable once its condition has folded to a constant +``` + +darklua's own default rule list is a valid ordering. A lint stricter than the tool it +lints for would reject working manifests, so there are only these two. + +{% hint style="info" %} +A rule listed twice is not a finding. Running a pass again after an earlier rule has +exposed new foldable code is a technique, not a mistake. +{% endhint %} + +## Headers + +`remove_comments` strips Luau directives along with everything else, and the `dense` and +`readable` generators discard comments regardless. Headers are therefore written by +ProCMP after darklua finishes, so nothing downstream can remove them. + +{% code title="pcmp.luau" %} +```lua +header = { + "--!native", + "--!optimize 2", + "-- {name} {version} — generated, do not edit", +}, +``` +{% endcode %} + +{% code title="dist/release/app.luau" %} +```lua +--!native +--!optimize 2 +-- app v0.0.0-dev — generated, do not edit +local a={}a.size=16 return a +``` +{% endcode %} + +Tokens are expanded. With a directory `output` every generated file gets the header. diff --git a/docs/defines.md b/docs/defines.md new file mode 100644 index 0000000..64b96f1 --- /dev/null +++ b/docs/defines.md @@ -0,0 +1,140 @@ +--- +description: Tokens for paths, constants for source. +--- + +# Vars and defines + +Two knobs, one distinction: a **var** names a string used to build a path or a header; +a **define** names a value substituted into your source. + +```lua +vars = { name = "app", channel = "stable" }, -- {name}, {channel}, PCMP_NAME, PCMP_CHANNEL +define = { DEBUG = false, MAX_RETRY = 3 }, -- DEBUG, MAX_RETRY +``` + +Every var is also a define, because a name worth putting in a path is usually worth +reading from source. The reverse does not hold — a define can be a boolean or a number, +and neither belongs in a filename. + +Both can be set from the command line, which is what makes a manifest reusable across +environments it was never written to anticipate: + +```sh +pcmp build --var version="$(git describe --tags)" -D CHANNEL=beta +``` + +## Defines + +```lua +release = { + define = { + DEBUG = false, + MAX_RETRY = 3, + CHANNEL = "stable", + }, +} +``` + +Read them as plain globals: + +```lua +if DEBUG then + print("verbose telemetry") +end + +local channel: string = CHANNEL +``` + +`_G.DEBUG` and `_G["DEBUG"]` work identically. All three are compile-time placeholders — +after injection none of them appears in the artifact, because the read was replaced by +the value itself. + +{% hint style="warning" %} +`getgenv().DEBUG` does **not** work. It is a function call, so there is nothing to +replace at build time; it would read a real table at runtime, and the branch would ship. +{% endhint %} + +## They are removed, not disabled + +Values are injected as AST nodes, so they participate in constant folding. + +{% tabs %} +{% tab title="Source" %} +```lua +local VERSION: string = PCMP_VERSION + +if DEBUG then + print("verbose telemetry") + print("second debug line") +end + +return { version = VERSION } +``` +{% endtab %} + +{% tab title="DEBUG = false" %} +```lua +local a='v1.0.0'return{version=a} +``` + +The branch is gone — not `if false then`, and not left to the Luau optimiser. Code that +is not shipped cannot be read out of your artifact. +{% endtab %} + +{% tab title="DEBUG = true" %} +```lua +local a='v1.0.0'do print('verbose telemetry')print('second debug line')end +return{version=a} +``` + +The condition folded to a bare block, so nothing is tested at runtime. +{% endtab %} +{% endtabs %} + +This needs `compute_expression` to fold the condition and `remove_unused_if_branch` to +drop the branch, in that order. Without them the value is still injected, but the branch +ships. [darklua](darklua.md) covers the ordering. + +## Built in + +One constant per var, plus `PCMP_PROFILE`, plus one per [matrix](manifest.md#matrix) +axis. A define you write with the same name wins. + +```lua +vars = { name = "app", version = "v1.0.0" }, +``` + +```lua +print(PCMP_NAME, PCMP_VERSION, PCMP_PROFILE) -- "app", "v1.0.0", "release" +``` + +There is no fixed list beyond `PCMP_PROFILE` — the set is whatever you named. + +## Types + +A define is a boolean, a finite number, or a string. The type reaches the cache key, so +`true` and `"true"` are different builds. Infinity and NaN are rejected +([`bad-define`](diagnostics.md)) — they have no literal form. + +## Values from outside + +Three ways in, in order of precedence: + +```sh +pcmp build --var version=v1.2.3 # wins outright +``` + +```lua +vars = { version = pcmp.env("VERSION") }, -- errors when unset +vars = { version = pcmp.envOr("VERSION", "v0.0.0-dev") }, -- explicit fallback +``` + +`pcmp.env` fails rather than substituting an empty string, so a misconfigured CI job +reports a clear error instead of shipping a blank version. `--var` and `--define` work +whatever the manifest format, so a JSON or TOML project is not stuck with literals. + +{% hint style="info" %} +There is no build-timestamp define. A timestamp makes two builds of the same commit +differ, which breaks `pcmp verify` and the cache. Pass one in with +`pcmp.env("BUILD_STAMP")` if you want it, so the decision stays visible in your manifest. +{% endhint %} diff --git a/docs/deployment.md b/docs/deployment.md deleted file mode 100644 index 579fd0f..0000000 --- a/docs/deployment.md +++ /dev/null @@ -1,63 +0,0 @@ -# Deployment - -## Prerequisites - -- A GitHub repository -- A GitHub token with the right permissions (see below) - ---- - -## Token setup - -Add your token to an `.env` file at your project root: - -```dotenv title=".env" -GITHUB_TOKEN="ghp_..." -``` - -!!! caution - Never commit your `.env` file. Make sure it is in `.gitignore`. - -### Fine-grained PAT (recommended) - -When creating the token at [github.com/settings/tokens](https://github.com/settings/tokens), grant: - -| Permission | Access | -|------------|--------| -| `Contents` | Read and write | -| `Metadata` | Read-only | - -### Classic PAT - -Grant the `repo` scope. - ---- - -## Config - -Add a `deployment` section to your `.pcmp.json`: - -```json -{ - "deployment": { - "github": { - "owner": "your-username", - "repo": "your-repo", - "tokenEnvVar": "GITHUB_TOKEN" - } - } -} -``` - -`tokenEnvVar` defaults to `GITHUB_TOKEN` if omitted. Set it to a different name if you use multiple tokens. - -Enable deploy on a build config with `promptDeploy: true`: - -```json -{ - "name": "Release", - "promptDeploy": true, - "prerelease": false, - ... -} -``` \ No newline at end of file diff --git a/docs/diagnostics.md b/docs/diagnostics.md new file mode 100644 index 0000000..bd0bbc5 --- /dev/null +++ b/docs/diagnostics.md @@ -0,0 +1,84 @@ +--- +description: What pcmp check reports. +--- + +# Diagnostics + +``` +$ pcmp check +error missing-output: task `release` has no `output` + help: set `output`, e.g. "dist/{profile}/app.luau" +warn unused-profile: abstract profile `old` is never extended or used as a matrix base + help: remove it, or drop `abstract` so it builds + +1 error(s), 1 warning(s) +``` + +Codes are stable names. Findings accumulate — four mistakes report four in one run. +`--strict` makes warnings fail too. + +## Resolution + +Always errors. Nothing is built. + +``` +unknown-base extends names a profile that does not exist +cyclic-extends an extends chain forms a cycle +missing-entry no entry after inheritance +missing-output no output after inheritance +bad-template an output or header token is unknown, empty, or unclosed +bad-path a path in entry, output or sources is empty, or escapes the root +unknown-matrix-base matrix base names a profile that does not exist +empty-axis a matrix axis has no values +bad-define a define key is not a Luau identifier, or its value is not finite +bad-var a var name cannot become a token and a constant +bad-rules darklua.rules is not a list darklua could read +darklua-loaders loaders declared in both `loaders` and `darklua.loaders` +no-tasks no profiles and no matrix +``` + +`bad-define` covers both halves of "this define cannot become a literal". +`inject_global_value` substitutes by name, so a key such as `my-flag` or `end` matches +nothing; infinity and NaN have no literal form. A var and a matrix axis each contribute +a `PCMP_` constant, so their names are held to the same rule. + +`darklua-loaders` exists because only one of the two can win, and picking silently would +mean the manifest format decided which loader pattern applied. See +[Manifest](manifest.md#loaders). + +## Rule order + +Errors. Both are orderings darklua's own documentation calls out. + +``` +fold-before-inject compute_expression scheduled before inject_global_value +branch-before-fold remove_unused_if_branch scheduled before compute_expression +``` + +The order is yours; these report rather than rewrite, because a silently reordered +pipeline would make `pcmp explain` a lie. See [darklua](darklua.md). + +## Hygiene + +Warnings. The plan still builds. + +``` +unused-profile an abstract profile nothing extends +identical-profiles two profiles declared identically +``` + +## Errors without a code + +Reported on stderr: two tasks claiming one output path, a missing entry point, a +manifest that does not parse, an `ignore` entry that is not a valid glob, a configuration +darklua rejected — which carries the JSON that was emitted — and a task filter that +matched nothing. + +## Exit codes + + + + + + +
Code
0Success.
1A build task failed, or output was not reproducible.
2The manifest could not be loaded or resolved.
5check found an error, or a warning under --strict.
diff --git a/docs/getting-started.md b/docs/getting-started.md deleted file mode 100644 index ebe02fd..0000000 --- a/docs/getting-started.md +++ /dev/null @@ -1,90 +0,0 @@ -# Getting Started - -## Prerequisites - -ProCMP depends on one tool: - -- [**darklua**](https://github.com/seaofvoices/darklua) — bundler and minifier - -Install via [Aftman](https://github.com/LPGhatguy/aftman) (recommended): - -```toml title="aftman.toml" -[tools] -darklua = "Stefanuk12/darklua@0.17.4" -ProCMP = "Proton-Utilities/ProCMP@3.0.1" -``` - -Then run: - -```sh -aftman install -``` - ---- - -### 1. Build using CLI (Configless) - -If you don't want to set up a configuration file yet, you can run a build directly: - -```bash -pcmp build -i src/init.luau -o generated/out.luau -f pipeline/frames/release.luau -c pipeline/darklua/stable.json -``` - -### 2. Scaffold a new project - -The fastest way to get started is `pcmp init`: - -```sh -pcmp init -``` - -This launches an interactive wizard that generates: - -- `pipeline/.pcmp.json` — shared pipeline config (commit this) -- `pipeline/.pcmp.local.json` — your personal editor preferences (gitignored) -- `pipeline/frames/` — frame templates -- `pipeline/darklua/` — darklua configs (stable + unminified) -- `.env.example` — token template -- Updated `.gitignore` - -See the full walkthrough in [pcmp init](init.md). - ---- - -## Running the pipeline - -```sh -pcmp pipeline/.pcmp.json -``` - -You'll be prompted to: - -1. **Select a build configuration** (e.g. Debug, Beta, Release) -2. **Enter a version** (if `promptVersion: true`) — must match `versionFormat` -3. **Confirm public distribution** (if `promptDeploy: true`) - -### CLI flags - -| Flag | Description | -| ----------------------- | --------------------------------------- | -| `pcmp ` | Run pipeline with the given config file | -| `pcmp init` | Interactive project scaffolder | -| `pcmp --help` / `-h` | Show help | -| `pcmp --version` / `-V` | Print version string | - ---- - -## Your first build - -After running `pcmp init`, try a Debug build: - -```sh -pcmp pipeline/.pcmp.json -# → Select: Debug -# → Build complete: generated/debug/myScript.luau -``` - -The output file contains your composed source, inserted into the frame with all composer markers replaced. - -!!! note "Editor preview" -If you set an editor in `pcmp init`, the composed output will open automatically after each build. This is stored in your gitignored `.pcmp.local.json`. diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index ce3a80b..0000000 --- a/docs/index.md +++ /dev/null @@ -1,26 +0,0 @@ -# ProCMP - -**Build composition and release pipeline for Luau projects.** - -ProCMP is a powerful CLI tool that bundles your source with [darklua](https://github.com/seaofvoices/darklua) using build configurations, injects it into a frame with macros, and deploys it to Github releases. All in one mighty package. - ---- - -## Quick Start - -```sh -# Install via Aftman -aftman add seaofvoices/darklua -aftman add Proton-Utilities/ProCMP - -# Scaffold a new project -pcmp init - -# Run the pipeline -pcmp pipeline/.pcmp.json -``` - ---- - -!!! tip "New to ProCMP?" - Start with [Getting Started](getting-started.md) for a step-by-step walkthrough. diff --git a/docs/init.md b/docs/init.md deleted file mode 100644 index a30d7d1..0000000 --- a/docs/init.md +++ /dev/null @@ -1,73 +0,0 @@ -# pcmp init - -The `pcmp init` command scaffolds a complete ProCMP pipeline for your project interactively. - -```sh -pcmp init -``` - ---- - -## What it generates - -``` -pipeline/ - .pcmp.json - .pcmp.local.json - frames/ - release.luau - debug.luau - darklua/ - stable.json - unminified.json -.env.example -.gitignore -``` - ---- - -## Steps - -### 1. Project name -Used to name the output files (e.g. `generated/release/my-project.luau`). - -### 2. GitHub owner / repo -Optional. If provided, deploy config is added to `.pcmp.json` and deploy prompts are enabled on Release/Beta configs. - -### 3. Editor preference -Select your preferred editor. Options: - -| Choice | Command | -|--------|---------| -| VS Code | `code --wait {file}` | -| Cursor | `cursor --wait {file}` | -| Neovim | `nvim {file}` | -| Zed | `zed --wait {file}` | -| Skip | — | - -### 4. Build configs -Choose which configs to include: Debug, Beta, Release. A directory-based `Tests` config can be added manually later (see [Config Reference](config-reference.md)). - -### 5. Entry point -Path to your main Luau source file (e.g. `src/init.luau`). This is the file passed to darklua. - ---- - -## Re-running init - -You can run `pcmp init` in an existing project to: - -- Regenerate your personal `.pcmp.local.json` (e.g. after switching editors) -- Regenerate frame/darklua templates - -!!! warning - Running `pcmp init` again will overwrite `pipeline/.pcmp.json`. Back it up first if you've customised it. - ---- - -## After init: next steps - -1. Copy `.env.example` to `.env` and set your GitHub token -2. Run `pcmp pipeline/.pcmp.json` to build -3. Commit `pipeline/.pcmp.json` and `pipeline/frames/` and `pipeline/darklua/` -4. Add `.pcmp.local.example.json` to show teammates what fields they can set diff --git a/docs/inputs.md b/docs/inputs.md new file mode 100644 index 0000000..72b1c5a --- /dev/null +++ b/docs/inputs.md @@ -0,0 +1,92 @@ +--- +description: What counts as a build input, and how the cache knows. +--- + +# Inputs + +A task is skipped when nothing it reads has changed. That answer is only as good as the +set of files ProCMP considers, so the set is derived from the plan rather than guessed +at from directory names. + +## What is hashed + +Every file under every root, whatever its extension. + + + + +
Root
The manifest's directoryAlways.
sourcesAnything else the build reads.
+ +There is no extension allowlist. A content [loader](manifest.md#loaders) can make a +`.json`, a `.md` or a `.png` a real build input, and a build tool that only watched +`.luau` would hand you a stale artifact after you edited one. + +## What is not + + + + + + +
Every task's outputTaken from the plan. A build that hashed its own artifacts would invalidate the next one.
The cache directory.pcmp/, or wherever --cache-dir points.
.gitNever an input, and it changes on every commit.
ignoreYours.
+ +Nothing else is assumed. `dist`, `build`, `node_modules` and `target` are not special +names — if one of them is where your `output` goes it is excluded because it is your +output, and if it is where your source lives it is hashed because it is your source. + +## Reaching outside the project + +```lua +base = { + entry = "src/init.luau", + output = "dist/app.luau", + sources = { "../shared", "../protocol" }, +}, +``` + +Editing `../shared` now invalidates the cache and wakes `pcmp watch`. A root nested +inside another is folded into the outer one, so listing both costs nothing. + +## Skipping a vendored tree + +```lua +ignore = { "**/Packages/**", "**/*.rbxm" }, +``` + +[wax glob syntax](https://github.com/olson-sean-k/wax#patterns), matched against paths +relative to each root — the same dialect darklua uses for `apply_to_files`, `skip_files` +and loader patterns. + +This is a speed control, not a correctness one. Ignoring a directory the build actually +reads means edits there will not rebuild. + +## Watching + +`pcmp watch` watches exactly this set, so what wakes it and what invalidates the cache +cannot drift apart. The manifest itself is watched too, and re-read every cycle. + +```sh +pcmp watch release +pcmp watch '*target=roblox*' +``` + +## Cache location + +State lives in `.pcmp/` beside the manifest. Add it to `.gitignore`, or move it: + +```sh +pcmp build --cache-dir "$RUNNER_TEMP/pcmp" +``` + +Useful for a read-only checkout, or for sharing one cache across several worktrees. + +## What the key covers + +A task rebuilds when any of these changes: its resolved configuration, the fingerprint +of every input above, or the darklua version linked into the binary. The last one +matters because the same manifest can legitimately produce different bytes against a +different darklua. + +Whole-set hashing means editing one file rebuilds every task, which is the safe +direction: darklua follows requires, so a per-task input list would have to guess at +what a module pulls in. diff --git a/docs/install.md b/docs/install.md new file mode 100644 index 0000000..c5fde2c --- /dev/null +++ b/docs/install.md @@ -0,0 +1,72 @@ +--- +description: Install pcmp and wire up editor completion. +--- + +# Install + +{% tabs %} +{% tab title="Binary" %} +Download the archive for your platform from +[releases](https://github.com/Proton-Utilities/ProCMP/releases), extract it, and put +`pcmp` on your `PATH`. + +Each release ships `SHA256SUMS`: + +```sh +sha256sum -c SHA256SUMS --ignore-missing +``` +{% endtab %} + +{% tab title="Cargo" %} +```sh +cargo install --git https://github.com/Proton-Utilities/ProCMP +``` + +Needs Rust 1.90+. The first build takes a few minutes — darklua and a Luau interpreter +are compiled in. +{% endtab %} +{% endtabs %} + +```sh +pcmp --version +``` + +## Editor completion + +`pcmp schema` emits type definitions from the same types the parser uses, so they cannot +describe something ProCMP will reject. + +{% tabs %} +{% tab title="Luau manifests" %} +```sh +pcmp schema --format luau > pcmp.d.luau +``` + +{% code title=".vscode/settings.json" %} +```json +{ "luau-lsp.types.definitionFiles": ["pcmp.d.luau"] } +``` +{% endcode %} + +You get field completion on every ProCMP field and a type error on `output = 42` before +you run a build. The `pcmp` global is declared too. The `darklua` block is typed open, +because darklua owns that vocabulary and validates it itself. +{% endtab %} + +{% tab title="JSON and TOML manifests" %} +```sh +pcmp schema > pcmp.schema.json +``` + +```json +{ + "$schema": "./pcmp.schema.json", + "project": { "name": "app" } +} +``` + +The schema sets `additionalProperties: false`, so a typo'd key is flagged as you type. +{% endtab %} +{% endtabs %} + +Both files are safe to commit. Regenerate after upgrading ProCMP. diff --git a/docs/local-config.md b/docs/local-config.md deleted file mode 100644 index 325a348..0000000 --- a/docs/local-config.md +++ /dev/null @@ -1,93 +0,0 @@ -# Local Config - -ProCMP separates **shared pipeline config** from **personal preferences** - -## Fields - -| Field | Description | -|-------|-------------| -| `openComposedOutput` | Command to open the composed output after each build | -| `releaseNotesEditor` | Command to edit release notes before deploy | -| `envFile` | Path to dotenv file (default: `.env`) | - ---- - -## Example - -=== "VS Code user" - - ```json title="pipeline/.pcmp.local.json" - { - "openComposedOutput": { - "command": "code", - "args": ["{file}"] - }, - "releaseNotesEditor": { - "command": "code", - "args": ["--wait", "{file}"] - } - } - ``` - -=== "Neovim user" - - ```json title="pipeline/.pcmp.local.json" - { - "openComposedOutput": { - "command": "nvim", - "args": ["{file}"] - }, - "releaseNotesEditor": { - "command": "nvim", - "args": ["{file}"] - } - } - ``` - -=== "Cursor user" - - ```json title="pipeline/.pcmp.local.json" - { - "openComposedOutput": { - "command": "cursor", - "args": ["{file}"] - }, - "releaseNotesEditor": { - "command": "cursor", - "args": ["--wait", "{file}"] - } - } - ``` - ---- - -## Setup - -1. Create `pipeline/.pcmp.local.json` (or wherever your `.pcmp.json` lives) -2. Add your preferred fields (see table above) -3. The file is gitignored automatically by `pcmp init`, or add it manually: - - ```gitignore title=".gitignore" - pipeline/.pcmp.local.json - ``` - ---- - -## Sharing a template - -Commit a `.pcmp.local.example.json` alongside your `.pcmp.json` so teammates know what fields are available: - -```json title="pipeline/.pcmp.local.example.json" -{ - "openComposedOutput": { - "command": "code", - "args": ["{file}"] - }, - "releaseNotesEditor": { - "command": "code", - "args": ["--wait", "{file}"] - } -} -``` - -The `{file}` placeholder is replaced with the actual file path at runtime. diff --git a/docs/manifest.md b/docs/manifest.md new file mode 100644 index 0000000..da5a39a --- /dev/null +++ b/docs/manifest.md @@ -0,0 +1,282 @@ +--- +description: Every field, in one annotated manifest. +--- + +# Manifest + +`pcmp.luau`, `pcmp.json`, `pcmp.jsonc`, `pcmp.json5` or `pcmp.toml` — all resolve to the +same plan. JSON is parsed leniently, so comments and trailing commas are fine. Unknown +keys are rejected. + +Discovery starts in the working directory and walks up, so `pcmp` works from anywhere +inside a project. Relative paths always resolve against the manifest's own directory, +never against where the command was run. + +## The split + +ProCMP owns eight profile fields. Everything that configures a transformation lives +under `darklua` and is darklua's own configuration format, deserialised by darklua. + + + + + + + + + +
ProCMP
abstract, extendsInheritance.
entry, outputWhat is read and where it is written.
sources, ignoreWhat counts as a build input. See Inputs.
vars, defineTokens and compile-time constants.
headerLines written after darklua runs.
loadersThe one darklua setting ProCMP re-spells, because order matters.
darkluaEverything else, verbatim.
+ +## Everything at once + +{% code title="pcmp.luau" %} +```lua +return { + -- Each becomes a {token} and a PCMP_ constant. + vars = { + name = "app", + version = pcmp.envOr("VERSION", "v0.0.0-dev"), + }, + + profiles = { + base = { + abstract = true, -- never built; exempt from entry/output + entry = "src/init.luau", -- a file, or a directory + output = "dist/{profile}/{name}.luau", + sources = { "../shared" }, -- extra input roots + ignore = { "**/Packages/**" }, -- excluded from the input set + + darklua = { + bundle = { + require_mode = { name = "luau", aliases = { pkg = "./Packages" } }, + excludes = { "@lune/**" }, + }, + }, + }, + + release = { + extends = "base", + define = { DEBUG = false, RETRIES = 3, CHANNEL = "stable" }, + + -- Written above each artifact after darklua runs, so it survives minification. + header = { + "--!native", + "--!optimize 2", + "-- {name} {version} — generated, do not edit", + }, + + -- Ordered: darklua takes the first pattern that matches. + loaders = { + { pattern = "**/*.model.json", use = "copy" }, + { pattern = "**/*.json", use = "json" }, + { pattern = "**/*.md", use = "string" }, + }, + + darklua = { + generator = { name = "dense", column_span = 120 }, + apply_to_files = { "src/**" }, + skip_files = { "**/*.test.luau" }, + rules = { + "compute_expression", + "remove_unused_if_branch", + "rename_variables", + }, + }, + }, + }, + + matrix = { + dist = { + base = "base", + axes = { target = { "roblox", "lune" } }, + output = "dist/{target}/{name}.luau", + define = { BUNDLED = true }, + }, + }, +} +``` +{% endcode %} + +Every key under `darklua` is documented by +[darklua's configuration reference](https://darklua.com/docs/config/), and a key the +linked version does not know is rejected with darklua's own message and the JSON that +was emitted. + +## Vars + +Named strings. Each is a `{token}` in `output` and `header`, and a `PCMP_` +constant in the source. + +```lua +vars = { name = "app", channel = "stable" }, +output = "dist/{channel}/{name}.luau", +``` + +```lua +if PCMP_CHANNEL == "stable" then ... end +``` + +`{profile}` is always available. Matrix axes contribute one token each. `--var` beats +all of them: + +```sh +pcmp build --var version="$(git describe --tags)" +``` + +There is no `project` or `version` field. Both were `vars` entries with a special case +attached, and the special case bought nothing a token could not do. + +## Inheritance + +Nearer wins, field by field. `vars` and `define` accumulate; `darklua` merges key by +key, so a profile can set `generator` without restating the `bundle` it inherited. + +```lua +base = { abstract = true, define = { A = 1, B = 1 }, header = { "--!native" } }, +release = { extends = "base", define = { B = 2 } }, +-- release resolves to define { A = 1, B = 2 } and header { "--!native" } +``` + +Every list replaces outright, so a child clears one it inherited by declaring it empty: + +```lua +plain = { extends = "base", header = {} }, +``` + +A cycle is reported as `cyclic-extends` with the full chain. + +## Entry and output + +A file in, a file out — bundled, if `darklua.bundle` is set: + +```lua +entry = "src/init.luau", output = "dist/app.luau", +``` + +A directory in, a directory out — every file processed, structure preserved, no +bundling: + +```lua +entry = "src", output = "build", +``` + +`header` applies to every artifact either way, and `pcmp verify` compares the whole tree. + +## Output tokens + +```lua +output = "dist/{profile}/{name}-{version}.luau" +``` + +`{profile}`, every var, and every matrix axis. `{{` and `}}` are literal braces. An +unknown token is `bad-template`, not an empty string. + +## Loaders + +`loaders` teaches darklua what to do with files it would otherwise ignore, which is how +you embed assets: + +```lua +loaders = { + { pattern = "**/*.png", use = "buffer/base64" }, -- embedded as a buffer + { pattern = "**/*.md", use = "string" }, -- embedded as a string + { pattern = "**/*.json", use = "json" }, -- parsed into a table +} +``` + +Require them **with the extension** — that is how darklua tells a data file from a +module: + +```lua +local config = require("@self/assets/config.json") +local readme = require("@self/assets/readme.md") +``` + +Available: `copy`, `skip`, `json`, `json_lines`, `toml`, `yaml`, `string`, `buffer`, +`bytes`, and the encoded forms `string/base64`, `buffer/zstd`, `bytes/gzip` and so on. + +{% hint style="info" %} +This is the one darklua setting ProCMP re-spells. darklua takes the first pattern that +matches, and a Luau table iterates in hash order — a map here would let the manifest +format decide which pattern wins. Declaring loaders in both `loaders` and +`darklua.loaders` is `darklua-loaders`, an error. +{% endhint %} + +## Matrix + +One task per combination, named by its coordinates. + +``` +$ pcmp plan +4 task(s) — plan 881efe11b879 + + dist[flavour=dev,target=lune] out/lune/dev.luau 17 rules + dist[flavour=dev,target=roblox] out/roblox/dev.luau 17 rules + dist[flavour=min,target=lune] out/lune/min.luau 17 rules + dist[flavour=min,target=roblox] out/roblox/min.luau 17 rules +``` + +```sh +pcmp build dist # every combination +pcmp build 'dist[target=roblox]' # one, by exact identifier +pcmp build '*target=roblox*' # across an axis +``` + +Each axis is also a var, so `PCMP_TARGET` folds away in the builds that do not need it. + +## The `pcmp` API + +Luau manifests only, and the manifest's only channel outward. + +```lua +pcmp.env("VERSION") -- errors when unset +pcmp.envOr("VERSION", "v0.0.0") -- explicit fallback +``` + +Both read `--env KEY=VALUE` first, then the process environment. + +`os`, `io`, `require`, `loadstring`, `getfenv`, `setfenv`, `collectgarbage` and +`math.random` are unavailable, so two runs of the same manifest cannot disagree. + +## Other formats + +{% tabs %} +{% tab title="JSON" %} +```json +{ + "$schema": "./pcmp.schema.json", + "vars": { "name": "app", "version": "v1.0.0" }, + "profiles": { + "release": { + "entry": "src/init.luau", + "output": "dist/{name}.luau", + "define": { "DEBUG": false }, + "darklua": { + "generator": "dense", + "rules": ["compute_expression", "rename_variables"] + } + } + } +} +``` +{% endtab %} + +{% tab title="TOML" %} +```toml +[vars] +name = "app" +version = "v1.0.0" + +[profiles.release] +entry = "src/init.luau" +output = "dist/{name}.luau" + +[profiles.release.define] +DEBUG = false + +[profiles.release.darklua] +generator = "dense" +rules = ["compute_expression", "rename_variables"] +``` +{% endtab %} +{% endtabs %} diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 0000000..16008a9 --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1,94 @@ +--- +description: An empty directory to a built artifact. +--- + +# Quickstart + +{% stepper %} +{% step %} +**Source** + +{% code title="src/init.luau" %} +```lua +--!strict +local VERSION: string = PCMP_VERSION + +if DEBUG then + print("verbose telemetry") +end + +return { version = VERSION } +``` +{% endcode %} + +`PCMP_VERSION` and `DEBUG` are not runtime globals — ProCMP replaces them with +literals at build time. See [Vars and defines](defines.md). +{% endstep %} + +{% step %} +**Manifest** + +{% code title="pcmp.luau" %} +```lua +return { + vars = { name = "app", version = pcmp.env("VERSION") }, + + profiles = { + release = { + entry = "src/init.luau", + output = "dist/{name}.luau", + define = { DEBUG = false }, + + darklua = { + generator = "dense", + rules = { + "compute_expression", + "remove_unused_if_branch", + "remove_types", + "remove_comments", + "rename_variables", + }, + }, + }, + }, +} +``` +{% endcode %} +{% endstep %} + +{% step %} +**Build** + +```sh +pcmp build --env VERSION=v1.0.0 +``` + +``` + built release dist/app.luau (1 ms) + +1 built, 0 cached, 0 failed +``` +{% endstep %} +{% endstepper %} + +## The artifact + +{% code title="dist/app.luau" %} +```lua +local a='v1.0.0'return{version=a} +``` +{% endcode %} + +The version is a literal, and the `if DEBUG` branch is **not in the file** — injecting +`DEBUG` as a constant made the condition foldable, which made the branch unreachable, so +darklua removed it. + +## Other commands + +```sh +pcmp plan # what would be built, without building it +pcmp check # lint the manifest and the plan +pcmp explain release # the darklua config this task compiles to +pcmp watch # rebuild on every change +pcmp verify # build twice, confirm the bytes match +``` diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index dd620df..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,73 +0,0 @@ -site_name: ProCMP Documentation - -repo_name: Proton-Utilities/ProCMP -repo_url: https://github.com/Proton-Utilities/ProCMP -edit_uri: edit/main/docs - -markdown_extensions: - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - - pymdownx.superfences - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.details - - pymdownx.tasklist - - admonition - - attr_list - - md_in_html - -plugins: - - search - - awesome-nav - -theme: - name: material - - icon: - repo: fontawesome/brands/github - edit: material/pencil - view: material/eye - - palette: - - scheme: default - primary: deep purple - accent: deep purple - toggle: - icon: material/toggle-switch-off-outline - name: Switch to dark mode - - scheme: slate - primary: deep purple - accent: deep purple - toggle: - icon: material/toggle-switch - name: Switch to light mode - - font: - text: Inter - code: JetBrains Mono - - features: - - navigation.instant - - navigation.instant.progress - - navigation.tracking - - navigation.sections - - navigation.expand - - navigation.path - - navigation.indexes - - navigation.top - - navigation.footer - - toc.follow - - search.suggest - - content.action.edit - - content.action.view - - content.code.copy - - content.code.select - - content.code.annotate - -extra: - generator: false - social: - - icon: fontawesome/brands/github - link: https://github.com/Proton-Utilities/ProCMP diff --git a/pipeline/build.bat b/pipeline/build.bat deleted file mode 100644 index 2897c83..0000000 --- a/pipeline/build.bat +++ /dev/null @@ -1,54 +0,0 @@ -@echo off -setlocal EnableDelayedExpansion - -set outputDir=generated -set exeName=pcmp.exe -set tempPath=%outputDir%\__temp_release -set bundlePath=%outputDir%\__bundle.luau -set darkluaConfig=pipeline\darklua.json - -set targets=windows-x86_64 linux-x86_64 linux-aarch64 macos-x86_64 macos-aarch64 - -:: ── Version ────────────────────────────────────────────────── -set version=3.1.0 -:: ───────────────────────────────────────────────────────────── - -rmdir /s /q %outputDir% -mkdir %tempPath% - -:: ── Bundle src/ into a single file ─────────────────────────── -echo Bundling source with darklua... -darklua process src/init.luau %bundlePath% -c %darkluaConfig% -if %errorlevel% neq 0 ( - echo Darklua bundling failed. - exit /b 1 -) -echo Bundle complete: %bundlePath% -:: ───────────────────────────────────────────────────────────── - -for %%T in (%targets%) do ( - echo Building for %%T... - - for /f "tokens=1,2 delims=-" %%A in ("%%T") do ( - set platform=%%A - set arch=%%B - ) - - set zipName=pcmp-!version!-!platform!-!arch!.zip - set zipPath=%outputDir%\!zipName! - - if exist "!zipPath!" del "!zipPath!" - - lune build %bundlePath% -o "%tempPath%\%exeName%" -t !platform!-!arch! - - powershell Compress-Archive -Path "%tempPath%\%exeName%" -DestinationPath "!zipPath!" - - echo Built: !zipName! -) - -del %bundlePath% -rmdir /s /q %tempPath% - -echo. -echo All builds complete. -pause diff --git a/pipeline/build_debug.bat b/pipeline/build_debug.bat deleted file mode 100644 index 3fd1e75..0000000 --- a/pipeline/build_debug.bat +++ /dev/null @@ -1,46 +0,0 @@ -@echo off -setlocal EnableDelayedExpansion - -set outputDir=generated -set exeName=pcmp.exe -set tempPath=%outputDir%\__temp_release -set bundlePath=%outputDir%\__bundle.luau -set darkluaConfig=pipeline\darklua.json - -set targets=windows-x86_64 - -rmdir /s /q %outputDir% -mkdir %tempPath% - -echo Bundling source with darklua... -darklua process src/init.luau %bundlePath% -c %darkluaConfig% -if %errorlevel% neq 0 ( - echo Darklua bundling failed. - exit /b 1 -) -echo Bundle complete: %bundlePath% - -for %%T in (%targets%) do ( - echo Building for %%T... - - for /f "tokens=1,2 delims=-" %%A in ("%%T") do ( - set platform=%%A - set arch=%%B - ) - - set zipName=pcmp-!version!-!platform!-!arch!.zip - set zipPath=%outputDir%\pcmp - - if exist "!zipPath!" del "!zipPath!" - - lune build %bundlePath% -o "!zipPath!" -t !platform!-!arch! - - echo Built: !zipName! -) - -del %bundlePath% -rmdir /s /q %tempPath% - -echo. -echo All builds complete. -pause diff --git a/pipeline/darklua.json b/pipeline/darklua.json deleted file mode 100644 index e72630f..0000000 --- a/pipeline/darklua.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "generator": "retain_lines", - "bundle": { - "modules_identifier": "__PCMP", - "require_mode": { - "name": "luau", - "use_luau_configuration": true - }, - "excludes": ["@lune/**"] - }, - "rules": [] -} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index c9698e7..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -mkdocs-material -mkdocs-awesome-nav diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..3a6e03b --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,5 @@ +# Pinned so `cargo fmt` and `clippy` give every contributor and CI the same answer. +# `rustup` reads this automatically, which is why CI installs no toolchain of its own. +[toolchain] +channel = "1.90" +components = ["rustfmt", "clippy"] diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..607786d --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,4 @@ +edition = "2024" +max_width = 100 +newline_style = "Unix" +use_field_init_shorthand = true diff --git a/src/build.luau b/src/build.luau deleted file mode 100644 index 6c64289..0000000 --- a/src/build.luau +++ /dev/null @@ -1,226 +0,0 @@ ---!nocheck - ---// Imports -local fs = require("@lune/fs") -local process = require("@lune/process") -local dateTime = require("@lune/datetime") -local util = require("./util") - ---// Types -export type HookScript = { - command: string?, - script: string?, - args: { string }?, - env: { [string]: string }?, -} - -export type TaskHooks = { - preBuild: HookScript?, - postBuild: HookScript?, -} - -type BuildTask = { - name: string, - input: string, - output: string, - frame: string, - darkluaConfig: string, - prerelease: boolean?, - hooks: TaskHooks?, - [string]: any, -} - ---// State -local currentBuildSource: string? = nil -local currentBuildConfig: string? = nil -local currentVersion: string? = nil -local currentVariant: string? = nil -local currentInput: string? = nil -local currentOutput: string? = nil -local currentPrerelease: boolean? = nil - ---// Private Methods -local function resolveTokens(s: string): string - local resolved = s - resolved = resolved:gsub("{version}", currentVersion or "") - resolved = resolved:gsub("{config}", currentBuildConfig or "") - resolved = resolved:gsub("{variant}", currentVariant or "") - resolved = resolved:gsub("{input}", currentInput or "") - resolved = resolved:gsub("{output}", currentOutput or "") - resolved = resolved:gsub("{file}", currentOutput or "") - return resolved -end - -local function buildHookEnv(): { [string]: string } - local env: { [string]: string } = {} - for k, v in pairs(process.env) do - env[k] = v - end - - env.PCMP_VERSION = currentVersion or "" - env.PCMP_CONFIG = currentBuildConfig or "" - env.PCMP_VARIANT = currentVariant or "" - env.PCMP_INPUT = currentInput or "" - env.PCMP_OUTPUT = currentOutput or "" - env.PCMP_PRERELEASE = currentPrerelease and "true" or "false" - - return env -end - -local function runHook(hook: HookScript, label: string) - local env = buildHookEnv() - if hook.env then - for k, v in pairs(hook.env) do - env[k] = v - end - end - - local resolvedArgs: { string } = {} - if hook.args then - for _, a in ipairs(hook.args) do - table.insert(resolvedArgs, resolveTokens(a)) - end - end - - local result - if hook.script then - local lune_args = { "run", hook.script } - if #resolvedArgs > 0 then - table.insert(lune_args, "--") - for _, a in ipairs(resolvedArgs) do - table.insert(lune_args, a) - end - end - result = process.exec("lune", lune_args, { env = env }) - elseif hook.command then - local resolvedCmd = resolveTokens(hook.command) - local parts: { string } = {} - for part in resolvedCmd:gmatch("%S+") do - table.insert(parts, part) - end - if #parts == 0 then return end - local cmd = table.remove(parts, 1) :: string - for _, a in ipairs(resolvedArgs) do - table.insert(parts, a) - end - result = process.exec(cmd, parts, { env = env }) - else - return - end - - if not result.ok then - local output = (result.stderr and result.stderr ~= "") and result.stderr or result.stdout or "" - error(`[pcmp] Hook '{label}' failed (exit {result.code}):\n{output}`) - end -end - -local function runHookIfPresent(hook: HookScript?, label: string) - if hook then - runHook(hook, label) - end -end - ---// Macros -local function buildComposerMarkers(): { [string]: () -> string } - return { - -- Source - ["__COMPOSER.Insert(__COMPOSER.build)"] = function() - return currentBuildSource or "" - end, - - -- Date / time - ["__COMPOSER.Insert(__COMPOSER.genDate)"] = function() - return string.format("%q", dateTime.now():toIsoDate()) - end, - ["__COMPOSER.Insert(__COMPOSER.timestamp)"] = function() - return tostring(os.time()) - end, - - -- Build identity - ["__COMPOSER.Insert(__COMPOSER.cfg)"] = function() - return string.format("%q", currentBuildConfig or "") - end, - ["__COMPOSER.Insert(__COMPOSER.vers)"] = function() - return string.format("%q", currentVersion or "") - end, - ["__COMPOSER.Insert(__COMPOSER.variant)"] = function() - return string.format("%q", currentVariant or "") - end, - - -- File paths - ["__COMPOSER.Insert(__COMPOSER.input)"] = function() - return string.format("%q", currentInput or "") - end, - ["__COMPOSER.Insert(__COMPOSER.output)"] = function() - return string.format("%q", currentOutput or "") - end, - - -- Release flags - ["__COMPOSER.Insert(__COMPOSER.prerelease)"] = function() - return currentPrerelease and "true" or "false" - end, - - -- Runtime / environment - ["__COMPOSER.Insert(__COMPOSER.os)"] = function() - return string.format("%q", process.os) - end, - ["__COMPOSER.Insert(__COMPOSER.arch)"] = function() - return string.format("%q", process.arch) - end, - } -end - ---// Public Methods -local function setContext(cfg: string?, vers: string?) - currentBuildConfig = cfg - currentVersion = vers -end - -local function processFrame(rawFrame: string, builtSource: string): string - currentBuildSource = builtSource - - local markers = buildComposerMarkers() - local result = rawFrame - for marker, handler in pairs(markers) do - local cleanMarker = util.escapePattern(marker) - result = result:gsub(cleanMarker, handler) - end - - return result -end - -local function runTask(buildTask: BuildTask) - currentVariant = buildTask.name - currentInput = buildTask.input - currentOutput = buildTask.output - currentPrerelease = buildTask.prerelease - - util.ensureDir(util.getDirName(buildTask.output)) - - runHookIfPresent(buildTask.hooks and buildTask.hooks.preBuild, `preBuild:{buildTask.name}`) - - local result = process.exec("darklua", { - "process", - buildTask.input, - buildTask.output, - "-c", - buildTask.darkluaConfig, - }) - - if not result.ok then - error(result.stderr or "darklua returned a non-zero exit code") - end - - local builtSource = fs.readFile(buildTask.output) - local rawFrame = fs.readFile(buildTask.frame) - local composed = processFrame(rawFrame, builtSource) - fs.writeFile(buildTask.output, composed) - - runHookIfPresent(buildTask.hooks and buildTask.hooks.postBuild, `postBuild:{buildTask.name}`) -end - -return { - setContext = setContext, - runTask = runTask, - __runHook = runHook, -} diff --git a/src/config.luau b/src/config.luau deleted file mode 100644 index e14e0fb..0000000 --- a/src/config.luau +++ /dev/null @@ -1,251 +0,0 @@ ---!nocheck - ---// Imports - -local fs = require("@lune/fs") -local serde = require("@lune/serde") -local util = require("./util") - ---// Types - -export type OpenFileConfig = { - command: string, - args: { string }, -} - -export type DeployGithubConfig = { - owner: string, - repo: string, - tokenEnvVar: string?, -} - -export type DeploymentConfig = { - github: DeployGithubConfig?, -} - -export type HookScript = { - command: string?, - script: string?, - args: { string }?, - env: { [string]: string }?, -} - -export type TaskHooks = { - preBuild: HookScript?, - postBuild: HookScript?, -} - -export type PipelineHooks = { - preDeploy: HookScript?, - postDeploy: HookScript?, - preAllBuilds: HookScript?, - postAllBuilds: HookScript?, -} - -export type BuildVariant = { - name: string?, - input: string?, - output: string?, - frame: string?, - darkluaConfig: string?, - hooks: TaskHooks?, -} - -export type BuildConfig = { - name: string, - input: string?, - inputDir: string?, - output: string?, - outputDir: string?, - frame: string, - darkluaConfig: string, - promptVersion: boolean?, - versionFormat: string?, - promptDeploy: boolean?, - prerelease: boolean?, - openComposedOutput: OpenFileConfig?, - variants: { BuildVariant }?, - hooks: TaskHooks?, - pipelineHooks: PipelineHooks?, -} - -export type PcmpConfig = { - envFile: string?, - openComposedOutput: OpenFileConfig?, - releaseNotesEditor: OpenFileConfig?, - deployment: DeploymentConfig?, - buildConfigs: { BuildConfig }, -} - -export type PcmpLocalConfig = { - envFile: string?, - openComposedOutput: OpenFileConfig?, - releaseNotesEditor: OpenFileConfig?, -} - -export type BuildTask = { - name: string, - input: string, - output: string, - frame: string, - darkluaConfig: string, - prerelease: boolean?, - openComposedOutput: OpenFileConfig?, - hooks: TaskHooks?, -} - ---// Constants -local LOCAL_CONFIG_SUFFIX = ".local.json" - ---// Private Methods -local function resolveOpenComposedOutput(local_: OpenFileConfig?, global_: OpenFileConfig?): OpenFileConfig? - return if local_ ~= nil then local_ else global_ -end - -local function deriveLocalPath(configPath: string): string - local stem = configPath:gsub("%.json$", "") - return stem .. LOCAL_CONFIG_SUFFIX -end - -local function mergeHooks(base: TaskHooks?, override: TaskHooks?): TaskHooks? - if not base and not override then - return nil - end - local merged: TaskHooks = {} - if base then - merged.preBuild = base.preBuild - merged.postBuild = base.postBuild - end - if override then - if override.preBuild ~= nil then - merged.preBuild = override.preBuild - end - if override.postBuild ~= nil then - merged.postBuild = override.postBuild - end - end - - if merged.preBuild == nil and merged.postBuild == nil then - return nil - end - - return merged -end - ---// Public Methods -local function load(configPath: string): PcmpConfig - if not fs.isFile(configPath) then - error(`[pcmp] Config file not found: {configPath}`) - end - - local raw = serde.decode("json", fs.readFile(configPath)) - return raw :: PcmpConfig -end - -local function applyLocalOverrides(cfg: PcmpConfig, configPath: string): PcmpConfig - local localPath = deriveLocalPath(configPath) - if not fs.isFile(localPath) then - return cfg - end - - local ok, raw = pcall(serde.decode, "json", fs.readFile(localPath)) - if not ok then - error(`[pcmp] Failed to parse local config at {localPath}: {raw}`) - end - - local local_: PcmpLocalConfig = raw :: any - - local merged: PcmpConfig = table.clone(cfg :: any) :: any - if local_.openComposedOutput ~= nil then - merged.openComposedOutput = local_.openComposedOutput - end - if local_.releaseNotesEditor ~= nil then - merged.releaseNotesEditor = local_.releaseNotesEditor - end - if local_.envFile ~= nil then - merged.envFile = local_.envFile - end - - return merged -end - -local function getToken(cfg: PcmpConfig, envVars: { [string]: string }): string? - local github = cfg.deployment and cfg.deployment.github - if not github then - return nil - end - - local varName = (github.tokenEnvVar and github.tokenEnvVar ~= "") and github.tokenEnvVar or "GITHUB_TOKEN" - return envVars[varName] -end - -local function expandBuildConfig(bc: BuildConfig, globalOpen: OpenFileConfig?): { BuildTask } - local tasks: { BuildTask } = {} - local resolvedOpen = resolveOpenComposedOutput(bc.openComposedOutput, globalOpen) - - if bc.inputDir then - if not fs.isDir(bc.inputDir) then - error(`[pcmp] inputDir not found: {bc.inputDir}`) - end - - local outDir = bc.outputDir or bc.output or ("generated/" .. bc.name:lower()) - util.ensureDir(outDir) - - for _, fileName in ipairs(fs.readDir(bc.inputDir)) do - if fileName:match("%.luau$") or fileName:match("%.lua$") then - table.insert(tasks, { - name = fileName, - input = bc.inputDir .. "/" .. fileName, - output = outDir .. "/" .. fileName, - frame = bc.frame, - darkluaConfig = bc.darkluaConfig, - prerelease = bc.prerelease, - openComposedOutput = resolvedOpen, - hooks = bc.hooks, - }) - end - end - else - if not bc.input then - error(`[pcmp] Build config '{bc.name}' must specify 'input' or 'inputDir'`) - end - if not bc.output then - error(`[pcmp] Build config '{bc.name}' must specify 'output'`) - end - - table.insert(tasks, { - name = bc.name, - input = bc.input :: string, - output = bc.output :: string, - frame = bc.frame, - darkluaConfig = bc.darkluaConfig, - prerelease = bc.prerelease, - openComposedOutput = resolvedOpen, - hooks = bc.hooks, - }) - - if bc.variants then - for _, variant in ipairs(bc.variants) do - table.insert(tasks, { - name = variant.name or bc.name, - input = variant.input or bc.input :: string, - output = variant.output or bc.output :: string, - frame = variant.frame or bc.frame, - darkluaConfig = variant.darkluaConfig or bc.darkluaConfig, - prerelease = bc.prerelease, - openComposedOutput = resolvedOpen, - hooks = mergeHooks(bc.hooks, variant.hooks), - }) - end - end - end - - return tasks -end - -return { - load = load, - applyLocalOverrides = applyLocalOverrides, - getToken = getToken, - expandBuildConfig = expandBuildConfig, -} diff --git a/src/deploy.luau b/src/deploy.luau deleted file mode 100644 index 2125451..0000000 --- a/src/deploy.luau +++ /dev/null @@ -1,242 +0,0 @@ ---!nocheck - ---// Imports - -local fs = require("@lune/fs") -local net = require("@lune/net") -local serde = require("@lune/serde") -local util = require("./util") -local ui = require("./ui") -local io = require("@lune/stdio") - ---// Constants - -local MAX_REDIRECTS = 5 -local _UPLOAD_HOST = "uploads.github.com" -local API_HOST = "api.github.com" - ---// Private Methods - -local function getHost(url: string): string - return url:match("^https?://([^/]+)") or "" -end - -local function followRedirects( - url: string, - method: string, - headers: { [string]: string }, - body: string? -): net.FetchResponse - local currentUrl = url - local currentMethod = method - local currentHeaders = table.clone(headers) - local redirectCount = 0 - - while true do - local resp = net.request({ - url = currentUrl, - method = currentMethod, - headers = currentHeaders, - body = body, - }) - - local status = resp.statusCode - if status >= 300 and status < 400 then - if redirectCount >= MAX_REDIRECTS then - error(`[pcmp] Too many redirects (>{MAX_REDIRECTS}) from {currentUrl}`) - end - redirectCount += 1 - - local location: string? = nil - for k, v in pairs(resp.headers) do - if k:lower() == "location" then - location = v - break - end - end - - if not location or location == "" then - print(`[pcmp] Redirect status {status} from {currentUrl} but no location header found!`) - print(`[pcmp] Response body: {resp.body}`) - print(`[pcmp] Response headers:`) - for k, v in pairs(resp.headers) do - print(` {k}: {v}`) - end - return resp - end - - if not location:match("^https?://") then - local base = currentUrl:match("^(https?://[^/]+)") - if base then - location = base .. (location:match("^/") and "" or "/") .. location - end - end - - print(`[pcmp] Redirecting ({status}) to: {location}`) - - local newHost = getHost(location) - local origHost = getHost(currentUrl) - - local isGitHub = newHost:match("%.github%.com$") - or newHost:match("%.githubusercontent%.com$") - or newHost:match("%.githublabs%.com$") - - if newHost ~= origHost and not isGitHub then - currentHeaders = table.clone(currentHeaders) - currentHeaders["Authorization"] = nil :: any - end - - currentUrl = location - if status ~= 307 and status ~= 308 then - currentMethod = "GET" - body = nil - currentHeaders["Content-Type"] = nil :: any - currentHeaders["Content-Length"] = nil :: any - end - else - return resp - end - end -end - -local function createRelease( - owner: string, - repo: string, - token: string, - tagName: string, - releaseName: string, - body: string, - prerelease: boolean -): (boolean, number?, string?, string?) - local resp = followRedirects( - `https://{API_HOST}/repos/{owner}/{repo}/releases`, - "POST", - { - ["Authorization"] = `Bearer {token}`, - ["Content-Type"] = "application/json", - ["Accept"] = "application/vnd.github+json", - ["X-GitHub-Api-Version"] = "2022-11-28", - }, - serde.encode("json", { - tag_name = tagName, - name = releaseName, - body = body, - draft = false, - prerelease = prerelease, - }) - ) - - if not resp.ok then - return false, nil, `HTTP {resp.statusCode}: {resp.body}` - end - - local data = serde.decode("json", resp.body) - local releaseId = data.id - if not releaseId then - return false, nil, "GitHub response missing release ID" - end - - return true, releaseId, data.upload_url, nil -end - -local function uploadAsset( - owner: string, - repo: string, - releaseId: number, - token: string, - filePath: string, - assetName: string, - uploadUrl: string -): (boolean, string?) - local cleanUrl = uploadUrl:gsub("{%?name,label}", "") - local uploadUrlResolved = `{cleanUrl}?name={assetName}` - - local uploadResp = followRedirects(uploadUrlResolved, "POST", { - ["Authorization"] = `Bearer {token}`, - ["Content-Type"] = "application/octet-stream", - ["Accept"] = "application/vnd.github+json", - ["X-GitHub-Api-Version"] = "2022-11-28", - }, fs.readFile(filePath)) - - if uploadResp.ok or uploadResp.statusCode == 201 then - return true, nil - end - - return false, `HTTP {uploadResp.statusCode}: {uploadResp.body}` -end - ---// Public Methods - -export type DeployOptions = { - owner: string, - repo: string, - token: string, - version: string, - configName: string, - prerelease: boolean, - artifacts: { string }, - releaseBodyPath: string, - releaseNotesEditor: { command: string, args: { string } }?, -} - -local function run(opts: DeployOptions): boolean - -- Notes - fs.writeFile(opts.releaseBodyPath, `# {opts.repo} {opts.version}\n\n`) - - if opts.releaseNotesEditor then - ui.printInfo("Opening release notes editor — save and close when done.") - ui.openFile(opts.releaseBodyPath, opts.releaseNotesEditor, true) - io.prompt("text", "Press Enter when you are finished editing to continue...") - end - - local releaseBody = fs.isFile(opts.releaseBodyPath) and fs.readFile(opts.releaseBodyPath) or "" - - -- Release - local ok, releaseId, uploadUrl, err = createRelease( - opts.owner, - opts.repo, - opts.token, - opts.version, - `{opts.configName} {opts.version}`, - releaseBody, - opts.prerelease - ) - - if opts.releaseBodyPath and fs.isFile(opts.releaseBodyPath) then - fs.removeFile(opts.releaseBodyPath) - end - - if not ok or not releaseId then - ui.printError(`Release creation failed: {err or "unknown error"}`) - return false - end - - ui.printSuccess(`Release created (id={releaseId})`) - - -- Artifacts - local allOk = true - for _, filePath in ipairs(opts.artifacts) do - local assetName = util.getBaseName(filePath) - local uploadOk, uploadErr = uploadAsset( - opts.owner, - opts.repo, - releaseId :: number, - opts.token, - filePath, - assetName, - uploadUrl :: string - ) - if uploadOk then - ui.printSuccess(`Uploaded: {assetName}`) - else - ui.printError(`Upload failed: {assetName} — {uploadErr or "unknown"}`) - allOk = false - end - end - - return allOk -end - -return { - run = run, -} diff --git a/src/diag.rs b/src/diag.rs new file mode 100644 index 0000000..c13efff --- /dev/null +++ b/src/diag.rs @@ -0,0 +1,71 @@ +//! Findings produced by resolution and linting. + +/// Ordering is meaningful — the worst severity in a run is a `max` over the set. +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, serde::Serialize)] +#[serde(rename_all = "lowercase")] +pub enum Severity { + /// Reported, but the build proceeds unless `--strict` is set. + Warn, + /// The plan is not executable. + Deny, +} + +/// A single finding, ready to render. +#[derive(Debug, Clone, serde::Serialize)] +pub struct Diag { + /// Stable name such as `fold-before-inject`, never reused for another meaning. + pub code: &'static str, + pub severity: Severity, + pub message: String, + /// What to do about it, one `help:` line per line. + pub help: Option, +} + +impl Diag { + /// Builds a finding that makes the plan unexecutable. + pub fn deny(code: &'static str, message: impl Into) -> Self { + Self { + code, + severity: Severity::Deny, + message: message.into(), + help: None, + } + } + + /// Builds a finding that is reported but does not stop a build. + pub fn warn(code: &'static str, message: impl Into) -> Self { + Self { + code, + severity: Severity::Warn, + message: message.into(), + help: None, + } + } + + #[must_use] + pub fn help(mut self, help: impl Into) -> Self { + self.help = Some(help.into()); + self + } +} + +/// Orders findings by severity, then code, then message. +/// +/// Findings arrive from several passes in whatever order those finish, so this is what +/// makes two runs over the same manifest print identically. +pub fn sort(diags: &mut [Diag]) { + diags.sort_by(|a, b| { + b.severity + .cmp(&a.severity) + .then_with(|| a.code.cmp(b.code)) + .then_with(|| a.message.cmp(&b.message)) + }); +} + +pub fn worst(diags: &[Diag]) -> Option { + diags.iter().map(|d| d.severity).max() +} + +pub fn count(diags: &[Diag], severity: Severity) -> usize { + diags.iter().filter(|d| d.severity == severity).count() +} diff --git a/src/digest.rs b/src/digest.rs new file mode 100644 index 0000000..9e701c2 --- /dev/null +++ b/src/digest.rs @@ -0,0 +1,76 @@ +//! Content-addressed digests, used as cache keys and as plan fingerprints. + +/// A 32-byte BLAKE3 digest. +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, serde::Serialize)] +#[serde(into = "String")] +pub struct Digest([u8; 32]); + +impl Digest { + /// Returns the full 64-character lowercase hexadecimal form. + pub fn hex(self) -> String { + self.0.iter().map(|b| format!("{b:02x}")).collect() + } + + /// Returns the first 12 hexadecimal characters, for human-facing output. + pub fn short(self) -> String { + self.hex()[..12].to_owned() + } + + pub fn bytes(&self) -> &[u8; 32] { + &self.0 + } +} + +impl From for String { + fn from(digest: Digest) -> Self { + digest.hex() + } +} + +/// Accumulates labelled fields into a [`Digest`]. +/// +/// Fields are length-prefixed, so `["ab", "c"]` and `["a", "bc"]` hash differently. +/// Without that, two configurations could share a cache key. +#[derive(Debug, Default)] +pub struct Hasher(blake3::Hasher); + +impl Hasher { + pub fn new() -> Self { + Self::default() + } + + /// The label is hashed too, so renaming a field invalidates the cache. + pub fn field(&mut self, label: &str, bytes: impl AsRef<[u8]>) -> &mut Self { + let bytes = bytes.as_ref(); + self.0.update(&(label.len() as u64).to_le_bytes()); + self.0.update(label.as_bytes()); + self.0.update(&(bytes.len() as u64).to_le_bytes()); + self.0.update(bytes); + self + } + + /// Order-sensitive: rule order changes build output, so it must change the key. + pub fn seq(&mut self, label: &str, items: I) -> &mut Self + where + I: IntoIterator, + S: AsRef<[u8]>, + { + let items: Vec = items.into_iter().collect(); + self.field(label, (items.len() as u64).to_le_bytes()); + for (index, item) in items.iter().enumerate() { + self.0.update(&(index as u64).to_le_bytes()); + let bytes = item.as_ref(); + self.0.update(&(bytes.len() as u64).to_le_bytes()); + self.0.update(bytes); + } + self + } + + pub fn finish(&self) -> Digest { + Digest(*self.0.finalize().as_bytes()) + } +} + +pub fn of(bytes: impl AsRef<[u8]>) -> Digest { + Digest(*blake3::hash(bytes.as_ref()).as_bytes()) +} diff --git a/src/engine.rs b/src/engine.rs new file mode 100644 index 0000000..46ca672 --- /dev/null +++ b/src/engine.rs @@ -0,0 +1,525 @@ +//! Execution: [`Graph`] in, artifacts out. +//! +//! darklua is linked in rather than invoked, so there is no `PATH` lookup, no version +//! drift and no temp files. Tasks run in parallel and are content-addressed. + +use std::collections::{BTreeMap, BTreeSet}; +use std::time::Instant; + +use darklua_core::{Configuration, Options, Resources}; +use rayon::prelude::*; +use serde_json::{Map, Value}; +use wax::{Glob, Program}; + +use crate::digest::{self, Digest, Hasher}; +use crate::error::{Error, Result}; +use crate::path::AbsPath; +use crate::plan::{Graph, Task}; + +/// Version-control metadata: never a build input, and it changes on every commit. +const VCS: &str = ".git"; + +/// What happened to one task. +#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)] +#[serde(rename_all = "lowercase", tag = "status")] +pub enum Outcome { + /// Processed and written. + Built { + /// Short cache key the artifact was produced under. + digest: String, + }, + /// Inputs unchanged; the existing artifact was kept. + Cached { + /// Short cache key that matched. + digest: String, + }, + /// Not produced. The reason is reported; other tasks still run. + Failed { + /// Why, rendered for the user. + reason: String, + }, +} + +/// One task's result. +#[derive(Debug, Clone, serde::Serialize)] +pub struct TaskReport { + pub task: String, + /// Output path, relative to the project root. + pub output: String, + pub outcome: Outcome, + /// Wall-clock time spent on this task. + pub millis: u128, +} + +/// The result of one build, ordered by task identifier. +#[derive(Debug, Clone, serde::Serialize)] +pub struct Report { + pub tasks: Vec, +} + +impl Report { + pub fn ok(&self) -> bool { + !self + .tasks + .iter() + .any(|t| matches!(t.outcome, Outcome::Failed { .. })) + } + + pub fn counts(&self) -> (usize, usize, usize) { + let mut built = 0; + let mut cached = 0; + let mut failed = 0; + for task in &self.tasks { + match task.outcome { + Outcome::Built { .. } => built += 1, + Outcome::Cached { .. } => cached += 1, + Outcome::Failed { .. } => failed += 1, + } + } + (built, cached, failed) + } +} + +/// The set of files a build reads, derived from the plan rather than guessed. +/// +/// Every file under every task's `sources` counts, whatever its extension — a content +/// loader can make a `.json` or a `.png` a build input, and an extension allowlist +/// would serve a stale artifact after one changed. What is excluded is only what is +/// provably not an input: the cache, version control, and the artifacts themselves. +#[derive(Debug)] +pub struct Scope { + roots: Vec, + excluded: BTreeSet, + ignore: Vec>, +} + +impl Scope { + /// Derives the scope of `graph`, with `cache` excluded. + /// + /// # Errors + /// + /// When an `ignore` entry is not a valid glob. + pub fn of(graph: &Graph, cache: &AbsPath) -> Result { + let mut roots = Vec::new(); + let mut excluded = BTreeSet::from([cache.clone()]); + let mut patterns: BTreeSet<&str> = BTreeSet::new(); + + for task in &graph.tasks { + roots.extend(task.sources.iter().cloned()); + excluded.insert(task.output.clone()); + patterns.extend(task.ignore.iter().map(String::as_str)); + } + + roots.sort(); + roots.dedup(); + + // A root nested inside another would hash its files twice under two different + // relative names, so the shorter one wins. + let outer = roots.clone(); + roots.retain(|root| { + !outer + .iter() + .any(|other| other != root && root.is_under(other)) + }); + + let ignore = patterns + .into_iter() + .map(|pattern| { + Glob::new(pattern) + .map(Glob::into_owned) + .map_err(|e| Error::BadGlob(pattern.to_owned(), e.to_string())) + }) + .collect::>()?; + + Ok(Self { + roots, + excluded, + ignore, + }) + } + + /// Whether a path is a build input rather than output, tool state or ignored. + pub fn contains(&self, path: &std::path::Path) -> bool { + let Ok(path) = AbsPath::new(path.to_string_lossy().as_ref()) else { + return false; + }; + + let Some(root) = self.roots.iter().find(|root| path.is_under(root)) else { + return false; + }; + + if self + .excluded + .iter() + .any(|excluded| path.is_under(excluded) || path == *excluded) + { + return false; + } + + let relative = path.relative_to(root); + if relative.split('/').any(|segment| segment == VCS) { + return false; + } + + !self + .ignore + .iter() + .any(|glob| glob.is_match(relative.as_str())) + } + + /// Hashes every input, sorted, so filesystems that enumerate differently agree. + /// + /// A root that does not exist contributes nothing rather than failing; a missing + /// entry point is reported per task, with its path. + pub fn fingerprint(&self) -> Result { + let mut entries: BTreeMap = BTreeMap::new(); + + for root in &self.roots { + self.walk(root, root, &mut entries)?; + } + + let mut h = Hasher::new(); + h.seq( + "sources", + entries + .iter() + .map(|(path, d)| format!("{path}:{}", d.hex())), + ); + Ok(h.finish()) + } + + fn walk( + &self, + root: &AbsPath, + dir: &AbsPath, + entries: &mut BTreeMap, + ) -> Result<()> { + let read = match std::fs::read_dir(dir.as_std()) { + Ok(read) => read, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => return Ok(()), + Err(e) => return Err(Error::Read(dir.to_string(), e.to_string())), + }; + + for entry in read { + let entry = entry.map_err(|e| Error::Read(dir.to_string(), e.to_string()))?; + let name = entry.file_name().to_string_lossy().into_owned(); + + let Ok(path) = dir.join(&name) else { continue }; + if !self.contains(path.as_std()) { + continue; + } + + let kind = entry + .file_type() + .map_err(|e| Error::Read(path.to_string(), e.to_string()))?; + + if kind.is_dir() { + self.walk(root, &path, entries)?; + continue; + } + + // Symlinks are skipped: following them could leave the project. + if !kind.is_file() { + continue; + } + + let bytes = std::fs::read(path.as_std()) + .map_err(|e| Error::Read(path.to_string(), e.to_string()))?; + entries.insert(path.relative_to(root), digest::of(&bytes)); + } + + Ok(()) + } + + /// The directories to hand a filesystem watcher. + pub fn roots(&self) -> &[AbsPath] { + &self.roots + } +} + +/// Executes a build graph against the filesystem. +#[derive(Debug)] +pub struct Engine { + root: AbsPath, + cache: AbsPath, + /// When false, every task is rebuilt regardless of recorded state. + use_cache: bool, +} + +impl Engine { + /// Creates an engine rooted at `root`, keeping cache state in `cache`. + pub fn new(root: AbsPath, cache: AbsPath) -> Self { + Self { + root, + cache, + use_cache: true, + } + } + + /// The default cache location for a project: `.pcmp/` beside the manifest. + pub fn default_cache(root: &AbsPath) -> Result { + root.join(".pcmp") + } + + #[must_use] + /// Enables or disables cache reuse. Disabled is what `pcmp verify` needs. + pub fn cached(mut self, enabled: bool) -> Self { + self.use_cache = enabled; + self + } + + /// Failures land in the report rather than returning early, so one broken profile + /// does not hide the rest. Only whole-run problems, such as an output collision, + /// return an error. + pub fn run(&self, graph: &Graph) -> Result { + // Checked before any work starts. Two tasks writing one path would race, and + // which one won would depend on thread scheduling. + let mut claimed: BTreeMap<&str, &str> = BTreeMap::new(); + for task in &graph.tasks { + if let Some(first) = claimed.insert(task.output.as_str(), &task.id) { + return Err(Error::OutputCollision( + task.output.to_string(), + first.to_owned(), + task.id.clone(), + )); + } + } + + let sources = Scope::of(graph, &self.cache)?.fingerprint()?; + + let mut tasks: Vec = graph + .tasks + .par_iter() + .map(|task| { + let started = Instant::now(); + let key = self.key(task, sources); + + let outcome = match self.one(task, key) { + Ok(outcome) => outcome, + Err(error) => Outcome::Failed { + reason: error.to_string(), + }, + }; + + TaskReport { + task: task.id.clone(), + output: task.output.relative_to(&self.root), + outcome, + millis: started.elapsed().as_millis(), + } + }) + .collect(); + + // The pool finishes in any order; this is printed, so sort it back. + tasks.sort_by(|a, b| a.task.cmp(&b.task)); + Ok(Report { tasks }) + } + + /// Configuration, sources, and the darklua version — the last because the same + /// manifest can legitimately produce different bytes against a different darklua. + fn key(&self, task: &Task, sources: Digest) -> Digest { + let mut h = Hasher::new(); + h.field("config", task.digest().bytes()) + .field("sources", sources.bytes()) + .field("darklua", crate::darklua_version()); + h.finish() + } + + /// Builds one task, or reports it as already up to date. + fn one(&self, task: &Task, key: Digest) -> Result { + if !task.entry.exists() { + return Err(Error::MissingEntry( + task.id.clone(), + task.entry.relative_to(&self.root), + )); + } + + if self.use_cache && task.output.exists() && self.fresh(task, key) { + return Ok(Outcome::Cached { + digest: key.short(), + }); + } + + // A file output needs its parent; a directory output darklua creates itself. + if task.entry.is_file() + && let Some(parent) = task.output.parent() + { + std::fs::create_dir_all(parent.as_std()) + .map_err(|e| Error::Write(parent.to_string(), e.to_string()))?; + } + + // `process` reports per-file failures inside the returned tree rather than as + // an `Err`, so a build that produced nothing would otherwise look successful. + let worked = darklua_core::process( + &Resources::from_file_system(), + Options::new(task.entry.as_std()) + .with_output(task.output.as_std()) + .with_configuration(configuration(task)?), + ) + .map_err(|e| Error::Process(task.id.clone(), e.to_string()))?; + + let failures = worked.collect_errors(); + if !failures.is_empty() { + let detail = failures + .iter() + .map(ToString::to_string) + .collect::>() + .join("\n"); + return Err(Error::Process(task.id.clone(), detail)); + } + + // A backstop for the same class of problem: if darklua reports no failure but + // writes nothing, that is still not a build. A file filter that matches nothing + // is by far the likeliest cause, and the silence is otherwise baffling. + if !task.output.exists() { + let filtered = task.darklua.contains_key("apply_to_files") + || task.darklua.contains_key("skip_files"); + + return Err(Error::NoOutput( + task.id.clone(), + task.output.relative_to(&self.root), + if filtered { + "\n `apply_to_files` and `skip_files` match each file's path relative to \ + the entry, so `src/**` matches nothing when the entry is `src/init.luau`" + } else { + "" + }, + )); + } + + self.prepend_header(task)?; + self.record(task, key)?; + Ok(Outcome::Built { + digest: key.short(), + }) + } + + /// Writes the task's header lines above every artifact it produced. + /// + /// Done here rather than through darklua's `append_text_comment` rule because the + /// `dense` and `readable` generators discard comments, which would silently drop a + /// `--!native` directive from exactly the builds that want it. + fn prepend_header(&self, task: &Task) -> Result<()> { + if task.header.is_empty() { + return Ok(()); + } + + let mut banner = task.header.join("\n"); + banner.push('\n'); + + for artifact in artifacts(&task.output)? { + let path = artifact.as_std(); + let body = std::fs::read_to_string(path) + .map_err(|e| Error::Read(artifact.to_string(), e.to_string()))?; + + std::fs::write(path, format!("{banner}{body}")) + .map_err(|e| Error::Write(artifact.to_string(), e.to_string()))?; + } + + Ok(()) + } + + /// Named by hash: matrix identifiers contain `[`, `]`, `=` and `,`, which are not + /// portable in filenames. + fn stamp(&self, task: &Task) -> Result { + self.cache + .join(format!("{}.stamp", digest::of(&task.id).hex())) + } + + /// Reports whether a recorded stamp matches this task's current key. + fn fresh(&self, task: &Task, key: Digest) -> bool { + let Ok(path) = self.stamp(task) else { + return false; + }; + // A missing or unreadable stamp reads as stale. A needless rebuild costs + // seconds; a wrong cache hit costs correctness. + matches!(std::fs::read_to_string(path.as_std()), Ok(v) if v.trim() == key.hex()) + } + + /// Records a task's key so the next run can skip it. + fn record(&self, task: &Task, key: Digest) -> Result<()> { + std::fs::create_dir_all(self.cache.as_std()) + .map_err(|e| Error::Write(self.cache.to_string(), e.to_string()))?; + let path = self.stamp(task)?; + std::fs::write(path.as_std(), key.hex()) + .map_err(|e| Error::Write(path.to_string(), e.to_string())) + } +} + +/// Every file an output covers: the file itself, or the tree beneath a directory. +/// +/// Sorted, so hashing a directory output is order-independent. +pub fn artifacts(output: &AbsPath) -> Result> { + if output.is_file() { + return Ok(vec![output.clone()]); + } + + let mut found = Vec::new(); + let mut stack = vec![output.clone()]; + + while let Some(dir) = stack.pop() { + let read = match std::fs::read_dir(dir.as_std()) { + Ok(read) => read, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => continue, + Err(e) => return Err(Error::Read(dir.to_string(), e.to_string())), + }; + + for entry in read { + let entry = entry.map_err(|e| Error::Read(dir.to_string(), e.to_string()))?; + let Ok(path) = dir.join(entry.file_name().to_string_lossy().as_ref()) else { + continue; + }; + + match entry.file_type() { + Ok(kind) if kind.is_dir() => stack.push(path), + Ok(kind) if kind.is_file() => found.push(path), + _ => {} + } + } + } + + found.sort(); + Ok(found) +} + +/// Renders a task as a darklua configuration. +/// +/// Mostly the manifest's own `darklua` block: only `rules`, which carries ProCMP's +/// injections, and `loaders`, which a manifest format cannot order, are written here. +/// `pcmp explain` prints the result, so it doubles as a config a user can paste +/// elsewhere. +pub fn config_json(task: &Task) -> Value { + let mut config = task.darklua.clone(); + + // Omitted rather than emitted empty when the task declares none: darklua reads a + // missing `rules` as "use the defaults", which is not the same as "run nothing". + if let Some(rules) = &task.rules { + config.insert( + "rules".into(), + Value::Array(rules.iter().map(|rule| rule.json()).collect()), + ); + } + + if let Some(loaders) = &task.loaders { + let mut map = Map::new(); + for loader in loaders { + map.insert(loader.pattern.clone(), loader.loader.clone().into()); + } + config.insert("loaders".into(), Value::Object(map)); + } + + Value::Object(config) +} + +/// On rejection the error carries the emitted JSON, so the reader sees what was +/// produced rather than only that darklua disliked it. +fn configuration(task: &Task) -> Result { + let json = config_json(task); + serde_json::from_value(json.clone()).map_err(|e| { + Error::DarkluaConfig( + task.id.clone(), + e.to_string(), + serde_json::to_string_pretty(&json).unwrap_or_default(), + ) + }) +} diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 0000000..9ed3e6a --- /dev/null +++ b/src/error.rs @@ -0,0 +1,116 @@ +//! The crate's error type. +//! +//! Every variant names the file or task it came from and, where a fix exists, states +//! it. A message that says only "invalid config" leaves the reader to find the key +//! themselves. + +use thiserror::Error; + +/// [`std::result::Result`] specialised to [`enum@Error`]. +pub type Result = std::result::Result; + +/// Anything that can go wrong between reading a manifest and writing an artifact. +#[derive(Debug, Error)] +pub enum Error { + #[error("path `{0}` is not absolute")] + NotAbsolute(String), + + #[error("path `{0}` escapes the filesystem root: too many `..` segments")] + EscapesRoot(String), + + #[error("path is empty: remove the field or give it a value")] + EmptyPath, + + #[error("the working directory is not usable: {0}")] + Cwd(String), + + #[error("no manifest in `{0}`\n expected one of: {1}\n run `pcmp schema` to see the format")] + NoManifest(String, String), + + #[error("`{0}` has an unsupported extension\n supported: luau, json, jsonc, json5, toml")] + UnknownFormat(String), + + #[error("could not read `{0}`: {1}")] + Read(String, String), + + #[error("could not write `{0}`: {1}")] + Write(String, String), + + #[error("`{0}` is not valid {1}\n {2}")] + Syntax(String, &'static str, String), + + #[error( + "`{0}` does not match the manifest schema\n {1}\n run `pcmp schema` for the full shape" + )] + Shape(String, String), + + #[error("`{0}` must end with `return {{ ... }}`, but returned {1}")] + NotATable(String, String), + + #[error("`{0}` failed while evaluating\n {1}")] + Eval(String, String), + + #[error("could not {1} for `{0}`\n {2}")] + Vm(String, String, String), + + #[error("unknown token `{{{0}}}`\n known tokens: {1}")] + UnknownToken(String, String), + + #[error("token `{{{0}}}` has no value\n set it explicitly on the profile")] + EmptyToken(String), + + #[error("unterminated `{{` in `{0}`\n write `{{{{` for a literal brace")] + UnterminatedToken(String), + + #[error("task `{0}` emitted a darklua configuration darklua rejected\n {1}\n{2}")] + DarkluaConfig(String, String, String), + + #[error("task `{0}`: `entry` path `{1}` does not exist")] + MissingEntry(String, String), + + #[error("task `{0}` failed\n {1}")] + Process(String, String), + + #[error("task `{0}` reported no failure but wrote nothing to `{1}`{2}")] + NoOutput(String, String, &'static str), + + #[error("tasks `{1}` and `{2}` both write to `{0}`\n give them distinct `output` templates")] + OutputCollision(String, String, String), + + #[error("no task matched {0}\n known tasks: {1}")] + NoSuchTask(String, String), + + #[error("manifest `{0}` could not be resolved")] + Unresolved(String), + + #[error("could not watch `{0}`: {1}")] + Watch(String, String), + + #[error("`{0}` is not `KEY=VALUE`")] + BadPair(String), + + #[error("`{0}` is not a valid glob\n {1}")] + BadGlob(String, String), + + #[error("`{0}` already exists")] + AlreadyExists(String), + + #[error("no entry point found\n looked for: {0}\n pass one with --entry")] + NoEntry(String), +} + +/// Process exit codes. +/// +/// Distinct per failure class so a CI job can branch on why it failed rather than +/// matching on stderr. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ExitCode { + /// Everything succeeded. + Success = 0, + /// A build task failed, or output was not reproducible. + Build = 1, + /// The manifest could not be loaded or resolved. + Config = 2, + /// Linting reported an error, or a warning under `--strict`. + Lint = 5, +} diff --git a/src/init.luau b/src/init.luau deleted file mode 100644 index 8ad6806..0000000 --- a/src/init.luau +++ /dev/null @@ -1,360 +0,0 @@ ---!nocheck - ---// Imports -local io = require("@lune/stdio") -local process = require("@lune/process") - -local util = require("@self/util") -local ui = require("@self/ui") -local config = require("@self/config") -local build = require("@self/build") -local deploy = require("@self/deploy") -local scaffold = require("@self/scaffold") - ---// Constants -local VERSION = "3.1.0" - -local RELEASE_BODY_PATH = `{process.env.TEMP or process.env.TMP or "/tmp"}/PCMP_RELEASE_BODY.md` - -local HELP_TEXT = "ProCMP v" - .. VERSION - .. [[ Build composition system with multi-target support, profiles, injectable macros, and lifecycle hooks. - -Usage: - pcmp Run the pipeline with the given config file - pcmp build [options] Run a configless build via CLI - pcmp init Initialise a new ProCMP project interactively - pcmp --help Show this help message - pcmp --version Print version and exit - -Arguments: - Path to a .pcmp.json file - -Subcommands: - build Run a configless build with flags - init Scaffold pipeline files and personal local config - -Options: - -h, --help Show this help message - -V, --version Print version string - -i, --input Input file for 'build' subcommand - -o, --output Output file for 'build' subcommand - -f, --frame Frame file for 'build' subcommand - -c, --config Darklua config for 'build' subcommand - -n, --name Build task name for 'build' subcommand (optional) - -Local config: - Personal settings (editor, output opener) live in .pcmp.local.json next to - the shared config — this file is gitignored so each team member sets their own. - -Macros (usable in frame files): - __COMPOSER.Insert(__COMPOSER.build) Composed source - __COMPOSER.Insert(__COMPOSER.cfg) Build config name - __COMPOSER.Insert(__COMPOSER.vers) Build version - __COMPOSER.Insert(__COMPOSER.variant) Current variant / task name - __COMPOSER.Insert(__COMPOSER.input) Input file path - __COMPOSER.Insert(__COMPOSER.output) Output file path - __COMPOSER.Insert(__COMPOSER.prerelease) true/false literal - __COMPOSER.Insert(__COMPOSER.genDate) ISO date string - __COMPOSER.Insert(__COMPOSER.timestamp) Unix epoch (number literal) - __COMPOSER.Insert(__COMPOSER.os) Operating system ("windows"/"linux"/"macos") - __COMPOSER.Insert(__COMPOSER.arch) CPU architecture - -Lifecycle hooks (in .pcmp.json buildConfigs[].pipelineHooks / hooks / variants[].hooks): - preAllBuilds / postAllBuilds — once before/after all tasks in a config - preBuild / postBuild — before/after each individual build task - preDeploy / postDeploy — before/after the GitHub release step - -Hook fields: - command shell command; tokens: {version} {config} {variant} {input} {output} {file} - script path to a .luau script run via `lune run