From c9159e68b4d9da8d90f2b30323237fc84d7a4f61 Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Fri, 23 Sep 2022 05:51:16 +0800 Subject: [PATCH 1/8] Modify schema for `rust-toolchain.toml` --- src/package-lock.json | 3 + src/schemas/json/rust-toolchain.json | 655 ++++++++++-------- src/test/rust-toolchain/channel_only01.json | 5 + src/test/rust-toolchain/channel_only02.json | 5 + .../components_and_targets.json | 6 + .../rust-toolchain/custom_toolchain01.json | 5 + .../rust-toolchain/custom_toolchain02.json | 5 + src/test/rust-toolchain/rust-toolchain.json | 11 +- 8 files changed, 406 insertions(+), 289 deletions(-) create mode 100644 src/test/rust-toolchain/channel_only01.json create mode 100644 src/test/rust-toolchain/channel_only02.json create mode 100644 src/test/rust-toolchain/components_and_targets.json create mode 100644 src/test/rust-toolchain/custom_toolchain01.json create mode 100644 src/test/rust-toolchain/custom_toolchain02.json diff --git a/src/package-lock.json b/src/package-lock.json index 69ff98d9ac2..c1411931e26 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -26,6 +26,9 @@ "js-beautify": "^1.14.6", "tv4": "^1.3.0", "yaml": "^2.1.1" + }, + "engines": { + "node": ">=16" } }, "node_modules/@bcoe/v8-coverage": { diff --git a/src/schemas/json/rust-toolchain.json b/src/schemas/json/rust-toolchain.json index 557924ffd8e..fedef46ddb0 100644 --- a/src/schemas/json/rust-toolchain.json +++ b/src/schemas/json/rust-toolchain.json @@ -1,315 +1,398 @@ { "$schema": "http://json-schema.org/draft-07/schema", "description": "https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file", + "title": "Schema for rust-toolchain.toml", + "type": "object", "properties": { "toolchain": { - "description": "A \"toolchain\" is a complete installation of the Rust\ncompiler (`rustc`) and related tools (like `cargo`). A toolchain\nspecification includes the release channel or version, and the host\nplatform that the toolchain runs on.", + "description": "A `toolchain` is a complete installation of the Rust compiler (`rustc`) and related tools (like `cargo`). A toolchain specification includes the release channel or version, and the host platform that the toolchain runs on.\n\n Get more from [`Toolchains`](https://rust-lang.github.io/rustup/concepts/toolchains.html)", "type": "object", "minProperties": 1, + "properties": { + "channel": { + "description": "`channel` is a named release channel, a major and minor version number such as `1.42`, or a fully specified version number, such as `1.42.0`. Channel names can be optionally appended with an archive date, as in `nightly-2014-12-18`, in which case the toolchain is downloaded from the archive for that date. Get more from [`Toolchain specification`](https://rust-lang.github.io/rustup/concepts/toolchains.html).\n\nOther valid channel like `stable`,`1.63`,`1.63.0`,`nightly-2022-09-20`,`stable-x86_64-pc-windows-msvc`,`1.63.0-riscv64gc-unknown-linux-gnu`,`nightly-2022-09-20-x86_64-unknown-nux-gnu`", + "type": "string", + "pattern": "^(?:stable|beat|nightly|\\d+\\.(?:\\d+\\.)?\\d+)(?:-\\d{4}-\\d{2}-\\d{2})?(?:(?:-\\w+)(?:-\\w+)(?:-\\w+)?(?:-\\w+)?)?$", + "examples": [ + "stable", + "1.63", + "1.63.0", + "nightly-2022-09-20", + "stable-x86_64-pc-windows-msvc", + "1.63.0-riscv64gc-unknown-linux-gnu", + "nightly-2022-09-20-x86_64-unknown-linux-gnu" + ], + "x-taplo": { + "links": { + "key": "https://rust-lang.github.io/rustup/concepts/channels.html" + } + } + }, + "components": { + "description": "Each release of Rust includes several \"components\", some of\nwhich are required (like `rustc`) and some that are optional (like [`clippy`](https://github.com/rust-lang/rust-clippy)) \n\n Learn more from [`Components`](https://rust-lang.github.io/rustup/concepts/components.html)", + "type": "array", + "items": { + "type": "string", + "enum": [ + "rustc", + "cargo", + "rustfmt", + "rust-std", + "rust-docs", + "rls", + "clippy", + "miri", + "rust-src", + "rust-analysis", + "rust-mingw", + "llvm-tools-preview", + "rustc-dev" + ], + "x-taplo": { + "docs": { + "enumValues": [ + "The Rust compiler and [Rustdoc].\n\n[rustdoc]: https://doc.rust-lang.org/rustdoc/", + "[Cargo] is a package manager and build tool.\n\n[cargo]: https://doc.rust-lang.org/cargo/", + "[Rustfmt] is a tool for automatically formatting code.\n\n[rustfmt]: https://github.com/rust-lang/rustfmt", + "This is the Rust [standard library]. There is a separate\n `rust-std` component for each target that `rustc` supports, such as\n `rust-std-x86_64-pc-windows-msvc`. See the [Cross-compilation] chapter for\n more detail.\n\n[standard library]: https://doc.rust-lang.org/std/\n[cross-compilation]: .https://rust-lang.github.io/rustup/cross-compilation.html", + "This is a local copy of the [Rust documentation]. Use the\n `rustup doc` command to open the documentation in a web browser. Run `rustup\n doc --help` for more options.\n\n[rust documentation]: https://doc.rust-lang.org/", + "[RLS] is a language server that provides support for editors and\n IDEs.\n\n[RLS]: https://github.com/rust-lang/rls", + "[Clippy] is a lint tool that provides extra checks for common\n mistakes and stylistic choices.\n\n[clippy]: https://github.com/rust-lang/rust-clippy", + "[Miri] is an experimental Rust interpreter, which can be used for\n checking for undefined-behavior.\n\n[miri]: https://github.com/rust-lang/miri/", + "This is a local copy of the source code of the Rust standard\n library. This can be used by some tools, such as [RLS], to provide\n auto-completion for functions within the standard library; [Miri] which is a\n Rust interpreter; and Cargo's experimental [build-std] feature, which allows\n you to rebuild the standard library locally.\n\n[RLS]: https://github.com/rust-lang/rls\n[miri]: https://github.com/rust-lang/miri/\n[build-std]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std", + "Metadata about the standard library, used by tools like\n [RLS].\n\n[RLS]: https://github.com/rust-lang/rls", + "This contains a linker and platform libraries for building on\n the `x86_64-pc-windows-gnu` platform.", + "This is an experimental component which contains a\n collection of [LLVM] tools.\n\n[LLVM]: https://llvm.org/", + "This component contains the compiler as a library. Most users\n will not need this; it is only needed for development *of* tools that link\n to the compiler, such as making modifications to [Clippy].\n\n[clippy]: https://github.com/rust-lang/rust-clippy" + ] + } + }, + "$comment": "Empty schema to allow for forward compatibility of new components" + }, + "x-taplo": { + "links": { + "key": "https://rust-lang.github.io/rustup/concepts/components.html" + } + } + }, + "targets": { + "description": "`rustc` is capable of generating code for many platforms. The `target` specifies the platform that the code will be generated for. By default, `cargo` and `rustc` use the host toolchain's platform as the target. To build for a different `target`, usually the target's standard library needs to be installed first via the `rustup target` command. Or you can run `rustc --print target-list` to list [`\"built-in\" targets`](https://doc.rust-lang.org/rustc/targets/built-in.html) \n\n Get more from [`Platform Support`](https://doc.rust-lang.org/rustc/platform-support.html) and [`Targets`](https://doc.rust-lang.org/rustc/targets/index.html)", + "type": "array", + "$comment": "Allow arbitary strings for new targets or custom target JSON", + "items": { + "type": "string", + "$comment": "From `rustc +nightly --print target-list`", + "enum": [ + "aarch64-apple-darwin", + "aarch64-apple-ios", + "aarch64-apple-ios-macabi", + "aarch64-apple-ios-sim", + "aarch64-apple-tvos", + "aarch64-fuchsia", + "aarch64-kmc-solid_asp3", + "aarch64-linux-android", + "aarch64-pc-windows-msvc", + "aarch64-unknown-freebsd", + "aarch64-unknown-hermit", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-gnu_ilp32", + "aarch64-unknown-linux-musl", + "aarch64-unknown-netbsd", + "aarch64-unknown-none", + "aarch64-unknown-none-softfloat", + "aarch64-unknown-openbsd", + "aarch64-unknown-redox", + "aarch64-unknown-uefi", + "aarch64-uwp-windows-msvc", + "aarch64-wrs-vxworks", + "aarch64_be-unknown-linux-gnu", + "aarch64_be-unknown-linux-gnu_ilp32", + "arm-linux-androideabi", + "arm-unknown-linux-gnueabi", + "arm-unknown-linux-gnueabihf", + "arm-unknown-linux-musleabi", + "arm-unknown-linux-musleabihf", + "armebv7r-none-eabi", + "armebv7r-none-eabihf", + "armv4t-unknown-linux-gnueabi", + "armv5te-unknown-linux-gnueabi", + "armv5te-unknown-linux-musleabi", + "armv5te-unknown-linux-uclibceabi", + "armv6-unknown-freebsd", + "armv6-unknown-netbsd-eabihf", + "armv6k-nintendo-3ds", + "armv7-apple-ios", + "armv7-linux-androideabi", + "armv7-unknown-freebsd", + "armv7-unknown-linux-gnueabi", + "armv7-unknown-linux-gnueabihf", + "armv7-unknown-linux-musleabi", + "armv7-unknown-linux-musleabihf", + "armv7-unknown-linux-uclibceabihf", + "armv7-unknown-netbsd-eabihf", + "armv7-wrs-vxworks-eabihf", + "armv7a-kmc-solid_asp3-eabi", + "armv7a-kmc-solid_asp3-eabihf", + "armv7a-none-eabi", + "armv7a-none-eabihf", + "armv7r-none-eabi", + "armv7r-none-eabihf", + "armv7s-apple-ios", + "asmjs-unknown-emscripten", + "avr-unknown-gnu-atmega328", + "bpfeb-unknown-none", + "bpfel-unknown-none", + "hexagon-unknown-linux-musl", + "i386-apple-ios", + "i586-pc-windows-msvc", + "i586-unknown-linux-gnu", + "i586-unknown-linux-musl", + "i686-apple-darwin", + "i686-linux-android", + "i686-pc-windows-gnu", + "i686-pc-windows-msvc", + "i686-unknown-freebsd", + "i686-unknown-haiku", + "i686-unknown-linux-gnu", + "i686-unknown-linux-musl", + "i686-unknown-netbsd", + "i686-unknown-openbsd", + "i686-unknown-uefi", + "i686-uwp-windows-gnu", + "i686-uwp-windows-msvc", + "i686-wrs-vxworks", + "m68k-unknown-linux-gnu", + "mips-unknown-linux-gnu", + "mips-unknown-linux-musl", + "mips-unknown-linux-uclibc", + "mips64-unknown-linux-gnuabi64", + "mips64-unknown-linux-muslabi64", + "mips64el-unknown-linux-gnuabi64", + "mips64el-unknown-linux-muslabi64", + "mipsel-sony-psp", + "mipsel-unknown-linux-gnu", + "mipsel-unknown-linux-musl", + "mipsel-unknown-linux-uclibc", + "mipsel-unknown-none", + "mipsisa32r6-unknown-linux-gnu", + "mipsisa32r6el-unknown-linux-gnu", + "mipsisa64r6-unknown-linux-gnuabi64", + "mipsisa64r6el-unknown-linux-gnuabi64", + "msp430-none-elf", + "nvptx64-nvidia-cuda", + "powerpc-unknown-freebsd", + "powerpc-unknown-linux-gnu", + "powerpc-unknown-linux-gnuspe", + "powerpc-unknown-linux-musl", + "powerpc-unknown-netbsd", + "powerpc-unknown-openbsd", + "powerpc-wrs-vxworks", + "powerpc-wrs-vxworks-spe", + "powerpc64-unknown-freebsd", + "powerpc64-unknown-linux-gnu", + "powerpc64-unknown-linux-musl", + "powerpc64-wrs-vxworks", + "powerpc64le-unknown-freebsd", + "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", + "riscv32gc-unknown-linux-gnu", + "riscv32gc-unknown-linux-musl", + "riscv32i-unknown-none-elf", + "riscv32imac-unknown-none-elf", + "riscv32imc-esp-espidf", + "riscv32imc-unknown-none-elf", + "riscv64gc-unknown-freebsd", + "riscv64gc-unknown-linux-gnu", + "riscv64gc-unknown-linux-musl", + "riscv64gc-unknown-none-elf", + "riscv64imac-unknown-none-elf", + "s390x-unknown-linux-gnu", + "s390x-unknown-linux-musl", + "sparc-unknown-linux-gnu", + "sparc64-unknown-linux-gnu", + "sparc64-unknown-netbsd", + "sparc64-unknown-openbsd", + "sparcv9-sun-solaris", + "thumbv4t-none-eabi", + "thumbv6m-none-eabi", + "thumbv7a-pc-windows-msvc", + "thumbv7a-uwp-windows-msvc", + "thumbv7em-none-eabi", + "thumbv7em-none-eabihf", + "thumbv7m-none-eabi", + "thumbv7neon-linux-androideabi", + "thumbv7neon-unknown-linux-gnueabihf", + "thumbv7neon-unknown-linux-musleabihf", + "thumbv8m.base-none-eabi", + "thumbv8m.main-none-eabi", + "thumbv8m.main-none-eabihf", + "wasm32-unknown-emscripten", + "wasm32-unknown-unknown", + "wasm32-wasi", + "wasm64-unknown-unknown", + "x86_64-apple-darwin", + "x86_64-apple-ios", + "x86_64-apple-ios-macabi", + "x86_64-apple-tvos", + "x86_64-fortanix-unknown-sgx", + "x86_64-fuchsia", + "x86_64-linux-android", + "x86_64-pc-solaris", + "x86_64-pc-windows-gnu", + "x86_64-pc-windows-msvc", + "x86_64-sun-solaris", + "x86_64-unknown-dragonfly", + "x86_64-unknown-freebsd", + "x86_64-unknown-haiku", + "x86_64-unknown-hermit", + "x86_64-unknown-illumos", + "x86_64-unknown-l4re-uclibc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-gnux32", + "x86_64-unknown-linux-musl", + "x86_64-unknown-netbsd", + "x86_64-unknown-none", + "x86_64-unknown-none-hermitkernel", + "x86_64-unknown-none-linuxkernel", + "x86_64-unknown-openbsd", + "x86_64-unknown-redox", + "x86_64-unknown-uefi", + "x86_64-uwp-windows-gnu", + "x86_64-uwp-windows-msvc", + "x86_64-wrs-vxworks" + ] + }, + "x-taplo": { + "links": { + "key": "https://rust-lang.github.io/rustup/cross-compilation.html" + } + } + }, + "profile": { + "description": "[`Profiles`](https://rust-lang.github.io/rustup/concepts/profiles.htm) are groups of [`components`](https://rust-lang.github.io/rustup/concepts/components.html) you can choose to download while installing a new Rust [`toolchain`](https://rust-lang.github.io/rustup/concepts/toolchains.html).\n\n The `profiles` available at this time are `minimal`, `default`, and `complete`.", + "type": "string", + "default": "default", + "enum": [ + "minimal", + "default", + "complete" + ], + "x-taplo": { + "links": { + "key": "https://rust-lang.github.io/rustup/concepts/profiles.html" + }, + "docs": { + "enumValues": [ + "This profile includes as few components as possible to get a\nworking compiler (`rustc`, `rust-std`, and `cargo`). It's recommended to use\nthis component on Windows systems if you don't use local documentation (the\nlarge number of files can cause issues with some Antivirus systems), and in\nCI.", + "This profile includes all of components in the **minimal**\nprofile, and adds `rust-docs`, `rustfmt`, and `clippy`. This profile will be\nused by `rustup` by default, and it's the one recommended for general use.", + "This profile includes all the components available through\n`rustup`. This should never be used, as it includes *every* component ever\nincluded in the metadata and thus will almost always fail. If you are\nlooking for a way to install devtools such as `miri` or IDE integration\ntools (`rls`), you should use the `default` profile and\ninstall the needed additional components manually, either by using `rustup\ncomponent add` or by using `-c` when installing the toolchain." + ] + } + } + }, + "path": { + "type": "string", + "description": "Path to a custom local toolchain. Since a `path` directive directly names a local toolchain, other options\nlike `components`, `targets`, and `profile` have no effect. `channel`\nand `path` are mutually exclusive, since a `path` already points to a\nspecific toolchain. A relative `path` is resolved relative to the\nlocation of the `rust-toolchain.toml` file.\n\n Learn more from [`Custom toolchains`](https://rust-lang.github.io/rustup/concepts/toolchains.html#custom-toolchains)" + } + }, "oneOf": [ { - "properties": { - "channel": { - "description": "Rust is released to three different \"channels\": stable, beta,\nand nightly.", - "type": "string", - "oneOf": [ - { - "enum": ["stable", "beta", "nightly"] - }, - { - "$comment": "Empty schema allows for custom rustup toolchains, specific nightlies, etc." - } - ], - "x-taplo": { - "links": { - "key": "https://rust-lang.github.io/rustup/concepts/channels.html" - } + "not": { + "properties": { + "path": { + "type": "string" } }, - "components": { - "description": "Each release of Rust includes several \"components\", some of\nwhich are required (like `rustc`) and some that are optional (like\n[`clippy`][clippy]).\n\n[clippy]: https://github.com/rust-lang/rust-clippy", - "type": "array", - "items": { - "type": "string", - "enum": [ - "rustc", - "cargo", - "rustfmt", - "rust-std", - "rust-docs", - "rls", - "clippy", - "miri", - "rust-src", - "rust-analysis", - "rust-mingw", - "llvm-tools-preview", - "rustc-dev" - ], - "x-taplo": { - "docs": { - "enumValues": [ - "The Rust compiler and [Rustdoc].\n\n[rustdoc]: https://doc.rust-lang.org/rustdoc/", - "[Cargo] is a package manager and build tool.\n\n[cargo]: https://doc.rust-lang.org/cargo/", - "[Rustfmt] is a tool for automatically formatting code.\n\n[rustfmt]: https://github.com/rust-lang/rustfmt", - "This is the Rust [standard library]. There is a separate\n `rust-std` component for each target that `rustc` supports, such as\n `rust-std-x86_64-pc-windows-msvc`. See the [Cross-compilation] chapter for\n more detail.\n\n[standard library]: https://doc.rust-lang.org/std/\n[cross-compilation]: .https://rust-lang.github.io/rustup/cross-compilation.html", - "This is a local copy of the [Rust documentation]. Use the\n `rustup doc` command to open the documentation in a web browser. Run `rustup\n doc --help` for more options.\n\n[rust documentation]: https://doc.rust-lang.org/", - "[RLS] is a language server that provides support for editors and\n IDEs.\n\n[RLS]: https://github.com/rust-lang/rls", - "[Clippy] is a lint tool that provides extra checks for common\n mistakes and stylistic choices.\n\n[clippy]: https://github.com/rust-lang/rust-clippy", - "[Miri] is an experimental Rust interpreter, which can be used for\n checking for undefined-behavior.\n\n[miri]: https://github.com/rust-lang/miri/", - "This is a local copy of the source code of the Rust standard\n library. This can be used by some tools, such as [RLS], to provide\n auto-completion for functions within the standard library; [Miri] which is a\n Rust interpreter; and Cargo's experimental [build-std] feature, which allows\n you to rebuild the standard library locally.\n\n[RLS]: https://github.com/rust-lang/rls\n[miri]: https://github.com/rust-lang/miri/\n[build-std]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std", - "Metadata about the standard library, used by tools like\n [RLS].\n\n[RLS]: https://github.com/rust-lang/rls", - "This contains a linker and platform libraries for building on\n the `x86_64-pc-windows-gnu` platform.", - "This is an experimental component which contains a\n collection of [LLVM] tools.\n\n[LLVM]: https://llvm.org/", - "This component contains the compiler as a library. Most users\n will not need this; it is only needed for development *of* tools that link\n to the compiler, such as making modifications to [Clippy].\n\n[clippy]: https://github.com/rust-lang/rust-clippy" - ] - } - }, - "$comment": "Empty schema to allow for forward compatibility of new components" - }, - "x-taplo": { - "links": { - "key": "https://rust-lang.github.io/rustup/concepts/components.html" - } + "required": [ + "path" + ] + } + }, + { + "required": [ + "path" + ] + } + ], + "dependencies": { + "path": { + "not": { + "properties": { + "channel": { + "type": "string" } }, - "targets": { - "description": "`rustc` is capable of generating code for many platforms. The\n\"target\" specifies the platform that the code will be generated for. By\ndefault, `cargo` and `rustc` use the host toolchain's platform as the\ntarget. To build for a different target, usually the target's standard\nlibrary needs to be installed first via the `rustup target` command.", - "type": "array", - "$comment": "Allow arbitary strings for new targets or custom target JSON", - "items": { - "type": "string", - "$comment": "From `rustc +nightly --print target-list`", - "enum": [ - "aarch64-apple-darwin", - "aarch64-apple-ios", - "aarch64-apple-ios-macabi", - "aarch64-apple-ios-sim", - "aarch64-apple-tvos", - "aarch64-fuchsia", - "aarch64-kmc-solid_asp3", - "aarch64-linux-android", - "aarch64-pc-windows-msvc", - "aarch64-unknown-freebsd", - "aarch64-unknown-hermit", - "aarch64-unknown-linux-gnu", - "aarch64-unknown-linux-gnu_ilp32", - "aarch64-unknown-linux-musl", - "aarch64-unknown-netbsd", - "aarch64-unknown-none", - "aarch64-unknown-none-softfloat", - "aarch64-unknown-openbsd", - "aarch64-unknown-redox", - "aarch64-unknown-uefi", - "aarch64-uwp-windows-msvc", - "aarch64-wrs-vxworks", - "aarch64_be-unknown-linux-gnu", - "aarch64_be-unknown-linux-gnu_ilp32", - "arm-linux-androideabi", - "arm-unknown-linux-gnueabi", - "arm-unknown-linux-gnueabihf", - "arm-unknown-linux-musleabi", - "arm-unknown-linux-musleabihf", - "armebv7r-none-eabi", - "armebv7r-none-eabihf", - "armv4t-unknown-linux-gnueabi", - "armv5te-unknown-linux-gnueabi", - "armv5te-unknown-linux-musleabi", - "armv5te-unknown-linux-uclibceabi", - "armv6-unknown-freebsd", - "armv6-unknown-netbsd-eabihf", - "armv6k-nintendo-3ds", - "armv7-apple-ios", - "armv7-linux-androideabi", - "armv7-unknown-freebsd", - "armv7-unknown-linux-gnueabi", - "armv7-unknown-linux-gnueabihf", - "armv7-unknown-linux-musleabi", - "armv7-unknown-linux-musleabihf", - "armv7-unknown-linux-uclibceabihf", - "armv7-unknown-netbsd-eabihf", - "armv7-wrs-vxworks-eabihf", - "armv7a-kmc-solid_asp3-eabi", - "armv7a-kmc-solid_asp3-eabihf", - "armv7a-none-eabi", - "armv7a-none-eabihf", - "armv7r-none-eabi", - "armv7r-none-eabihf", - "armv7s-apple-ios", - "asmjs-unknown-emscripten", - "avr-unknown-gnu-atmega328", - "bpfeb-unknown-none", - "bpfel-unknown-none", - "hexagon-unknown-linux-musl", - "i386-apple-ios", - "i586-pc-windows-msvc", - "i586-unknown-linux-gnu", - "i586-unknown-linux-musl", - "i686-apple-darwin", - "i686-linux-android", - "i686-pc-windows-gnu", - "i686-pc-windows-msvc", - "i686-unknown-freebsd", - "i686-unknown-haiku", - "i686-unknown-linux-gnu", - "i686-unknown-linux-musl", - "i686-unknown-netbsd", - "i686-unknown-openbsd", - "i686-unknown-uefi", - "i686-uwp-windows-gnu", - "i686-uwp-windows-msvc", - "i686-wrs-vxworks", - "m68k-unknown-linux-gnu", - "mips-unknown-linux-gnu", - "mips-unknown-linux-musl", - "mips-unknown-linux-uclibc", - "mips64-unknown-linux-gnuabi64", - "mips64-unknown-linux-muslabi64", - "mips64el-unknown-linux-gnuabi64", - "mips64el-unknown-linux-muslabi64", - "mipsel-sony-psp", - "mipsel-unknown-linux-gnu", - "mipsel-unknown-linux-musl", - "mipsel-unknown-linux-uclibc", - "mipsel-unknown-none", - "mipsisa32r6-unknown-linux-gnu", - "mipsisa32r6el-unknown-linux-gnu", - "mipsisa64r6-unknown-linux-gnuabi64", - "mipsisa64r6el-unknown-linux-gnuabi64", - "msp430-none-elf", - "nvptx64-nvidia-cuda", - "powerpc-unknown-freebsd", - "powerpc-unknown-linux-gnu", - "powerpc-unknown-linux-gnuspe", - "powerpc-unknown-linux-musl", - "powerpc-unknown-netbsd", - "powerpc-unknown-openbsd", - "powerpc-wrs-vxworks", - "powerpc-wrs-vxworks-spe", - "powerpc64-unknown-freebsd", - "powerpc64-unknown-linux-gnu", - "powerpc64-unknown-linux-musl", - "powerpc64-wrs-vxworks", - "powerpc64le-unknown-freebsd", - "powerpc64le-unknown-linux-gnu", - "powerpc64le-unknown-linux-musl", - "riscv32gc-unknown-linux-gnu", - "riscv32gc-unknown-linux-musl", - "riscv32i-unknown-none-elf", - "riscv32imac-unknown-none-elf", - "riscv32imc-esp-espidf", - "riscv32imc-unknown-none-elf", - "riscv64gc-unknown-freebsd", - "riscv64gc-unknown-linux-gnu", - "riscv64gc-unknown-linux-musl", - "riscv64gc-unknown-none-elf", - "riscv64imac-unknown-none-elf", - "s390x-unknown-linux-gnu", - "s390x-unknown-linux-musl", - "sparc-unknown-linux-gnu", - "sparc64-unknown-linux-gnu", - "sparc64-unknown-netbsd", - "sparc64-unknown-openbsd", - "sparcv9-sun-solaris", - "thumbv4t-none-eabi", - "thumbv6m-none-eabi", - "thumbv7a-pc-windows-msvc", - "thumbv7a-uwp-windows-msvc", - "thumbv7em-none-eabi", - "thumbv7em-none-eabihf", - "thumbv7m-none-eabi", - "thumbv7neon-linux-androideabi", - "thumbv7neon-unknown-linux-gnueabihf", - "thumbv7neon-unknown-linux-musleabihf", - "thumbv8m.base-none-eabi", - "thumbv8m.main-none-eabi", - "thumbv8m.main-none-eabihf", - "wasm32-unknown-emscripten", - "wasm32-unknown-unknown", - "wasm32-wasi", - "wasm64-unknown-unknown", - "x86_64-apple-darwin", - "x86_64-apple-ios", - "x86_64-apple-ios-macabi", - "x86_64-apple-tvos", - "x86_64-fortanix-unknown-sgx", - "x86_64-fuchsia", - "x86_64-linux-android", - "x86_64-pc-solaris", - "x86_64-pc-windows-gnu", - "x86_64-pc-windows-msvc", - "x86_64-sun-solaris", - "x86_64-unknown-dragonfly", - "x86_64-unknown-freebsd", - "x86_64-unknown-haiku", - "x86_64-unknown-hermit", - "x86_64-unknown-illumos", - "x86_64-unknown-l4re-uclibc", - "x86_64-unknown-linux-gnu", - "x86_64-unknown-linux-gnux32", - "x86_64-unknown-linux-musl", - "x86_64-unknown-netbsd", - "x86_64-unknown-none", - "x86_64-unknown-none-hermitkernel", - "x86_64-unknown-none-linuxkernel", - "x86_64-unknown-openbsd", - "x86_64-unknown-redox", - "x86_64-unknown-uefi", - "x86_64-uwp-windows-gnu", - "x86_64-uwp-windows-msvc", - "x86_64-wrs-vxworks" - ] + "required": [ + "channel" + ] + } + }, + "channel": { + "not": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ] + } + }, + "profile": { + "anyOf": [ + { + "properties": { + "channel": { + "type": "string" + } }, - "x-taplo": { - "links": { - "key": "https://rust-lang.github.io/rustup/cross-compilation.html" + "required": [ + "channel" + ] + }, + { + "properties": { + "components": { + "type": "array" } - } + }, + "required": [ + "components" + ] }, - "profile": { - "description": "In order to make it easier to work with components, a\n\"profile\" defines a grouping of components.", - "type": "string", - "default": "default", - "enum": ["minimal", "default", "complete"], - "x-taplo": { - "links": { - "key": "https://rust-lang.github.io/rustup/concepts/profiles.html" - }, - "docs": { - "enumValues": [ - "This profile includes as few components as possible to get a\nworking compiler (`rustc`, `rust-std`, and `cargo`). It's recommended to use\nthis component on Windows systems if you don't use local documentation (the\nlarge number of files can cause issues with some Antivirus systems), and in\nCI.", - "This profile includes all of components in the **minimal**\nprofile, and adds `rust-docs`, `rustfmt`, and `clippy`. This profile will be\nused by `rustup` by default, and it's the one recommended for general use.", - "This profile includes all the components available through\n`rustup`. This should never be used, as it includes *every* component ever\nincluded in the metadata and thus will almost always fail. If you are\nlooking for a way to install devtools such as `miri` or IDE integration\ntools (`rls`), you should use the `default` profile and\ninstall the needed additional components manually, either by using `rustup\ncomponent add` or by using `-c` when installing the toolchain." - ] + { + "properties": { + "targets": { + "type": "array" } - } - } - }, - "required": ["channel"] - }, - { - "properties": { - "path": { - "type": "string", - "description": "Path to a custom local toolchain. Since a `path` directive directly names a local toolchain, other options\nlike `components`, `targets`, and `profile` have no effect. `channel`\nand `path` are mutually exclusive, since a `path` already points to a\nspecific toolchain. A relative `path` is resolved relative to the\nlocation of the `rust-toolchain.toml` file." + }, + "required": [ + "targets" + ] } - }, - "required": ["path"] + ] } - ], + }, "x-taplo": { "links": { "key": "https://rust-lang.github.io/rustup/concepts/toolchains.html" }, - "initKeys": ["channel"] + "initKeys": [ + "channel" + ] } } }, - "required": ["toolchain"], - "title": "Schema for rust-toolchain.toml", - "type": "object", + "required": [ + "toolchain" + ], "x-taplo-info": { - "authors": ["ian-h-chamberlain (https://github.com/ian-h-chamberlain)"], - "patterns": ["^(.*(/|\\\\)rust-toolchain([.]toml)?)$"] + "authors": [ + "ian-h-chamberlain (https://github.com/ian-h-chamberlain)" + ], + "patterns": [ + "^(.*(/|\\\\)rust-toolchain([.]toml)?)$" + ] } } diff --git a/src/test/rust-toolchain/channel_only01.json b/src/test/rust-toolchain/channel_only01.json new file mode 100644 index 00000000000..8a952bb8198 --- /dev/null +++ b/src/test/rust-toolchain/channel_only01.json @@ -0,0 +1,5 @@ +{ + "toolchain": { + "channel": "stable" + } +} diff --git a/src/test/rust-toolchain/channel_only02.json b/src/test/rust-toolchain/channel_only02.json new file mode 100644 index 00000000000..1c001688e44 --- /dev/null +++ b/src/test/rust-toolchain/channel_only02.json @@ -0,0 +1,5 @@ +{ + "toolchain": { + "channel": "1.63" + } +} diff --git a/src/test/rust-toolchain/components_and_targets.json b/src/test/rust-toolchain/components_and_targets.json new file mode 100644 index 00000000000..1611432c987 --- /dev/null +++ b/src/test/rust-toolchain/components_and_targets.json @@ -0,0 +1,6 @@ +{ + "toolchain": { + "components": [], + "targets": [] + } +} diff --git a/src/test/rust-toolchain/custom_toolchain01.json b/src/test/rust-toolchain/custom_toolchain01.json new file mode 100644 index 00000000000..caac70e6201 --- /dev/null +++ b/src/test/rust-toolchain/custom_toolchain01.json @@ -0,0 +1,5 @@ +{ + "toolchain": { + "path": "" + } +} diff --git a/src/test/rust-toolchain/custom_toolchain02.json b/src/test/rust-toolchain/custom_toolchain02.json new file mode 100644 index 00000000000..d3cab0eb11e --- /dev/null +++ b/src/test/rust-toolchain/custom_toolchain02.json @@ -0,0 +1,5 @@ +{ + "toolchain": { + "path": "no_empty" + } +} diff --git a/src/test/rust-toolchain/rust-toolchain.json b/src/test/rust-toolchain/rust-toolchain.json index 5ff43e47fda..6e296c0cd1a 100644 --- a/src/test/rust-toolchain/rust-toolchain.json +++ b/src/test/rust-toolchain/rust-toolchain.json @@ -1,8 +1,13 @@ { "toolchain": { - "channel": "nightly-2020-07-10", - "components": ["rustfmt", "rustc-dev"], - "targets": ["wasm32-unknown-unknown"], + "channel": "nightly-2022-09-20-x86_64-unknown-linux-gnu", + "components": [ + "rustfmt", + "rustc-dev" + ], + "targets": [ + "wasm32-unknown-unknown" + ], "profile": "minimal" } } From c3c426a1f90e576d746d1071e33009fdd50546a3 Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Fri, 12 May 2023 23:44:20 +0800 Subject: [PATCH 2/8] fix(rust-toolchain): Fix schema for `rust-toolchain.toml` --- src/schemas/json/rust-toolchain.json | 273 +++++++++--------- src/test/rust-toolchain/channel_only01.json | 5 +- .../rust-toolchain/custom_toolchain02.json | 4 +- src/test/rust-toolchain/rust-toolchain.json | 16 +- 4 files changed, 159 insertions(+), 139 deletions(-) diff --git a/src/schemas/json/rust-toolchain.json b/src/schemas/json/rust-toolchain.json index acc2b3871ba..cd995d3ae6d 100644 --- a/src/schemas/json/rust-toolchain.json +++ b/src/schemas/json/rust-toolchain.json @@ -10,7 +10,7 @@ "channel": { "description": "`channel` is a named release channel, a major and minor version number such as `1.42`, or a fully specified version number, such as `1.42.0`. Channel names can be optionally appended with an archive date, as in `nightly-2014-12-18`, in which case the toolchain is downloaded from the archive for that date. Get more from [`Toolchain specification`](https://rust-lang.github.io/rustup/concepts/toolchains.html).\n\nOther valid channel like `stable`,`1.63`,`1.63.0`,`nightly-2022-09-20`,`stable-x86_64-pc-windows-msvc`,`1.63.0-riscv64gc-unknown-linux-gnu`,`nightly-2022-09-20-x86_64-unknown-nux-gnu`", "type": "string", - "pattern": "^(?:stable|beta|nightly|\\d+\\.(?:\\d+\\.)?\\d+)(?:-\\d{4}-\\d{2}-\\d{2})?(?:(?:-\\w+)(?:-\\w+)(?:-\\w+)?(?:-\\w+)?)?$", + "pattern": "^(?:stable|beta|nightly|\\d+(?:\\.\\d+){1,2})(?:-\\d{4}(?:-\\d{2}){2})?(?:-\\D[^-]*(?:(?:-(?:[^-]+)){1,3}))?$", "examples": [ "stable", "1.63", @@ -40,11 +40,14 @@ "rls", "clippy", "miri", - "rust-src", + "rust", "rust-analysis", - "rust-mingw", - "llvm-tools-preview", - "rustc-dev" + "llvm-tools", + "rustc-docs", + "rustc-dev", + "rust-analyzer", + "reproducible-artifacts", + "rust-docs-json" ], "x-taplo": { "docs": { @@ -81,95 +84,156 @@ "type": "string", "$comment": "From `rustc +nightly --print target-list`", "enum": [ + "aarch64-unknown-linux-gnu", + "i686-pc-windows-gnu", + "i686-pc-windows-msvc", + "i686-unknown-linux-gnu", + "x86_64-apple-darwin", + "x86_64-pc-windows-gnu", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", + "aarch64-pc-windows-msvc", + "aarch64-unknown-linux-musl", + "arm-unknown-linux-gnueabi", + "arm-unknown-linux-gnueabihf", + "armv7-unknown-linux-gnueabihf", + "mips-unknown-linux-gnu", + "mips64-unknown-linux-gnuabi64", + "mips64el-unknown-linux-gnuabi64", + "mipsel-unknown-linux-gnu", + "powerpc-unknown-linux-gnu", + "powerpc64-unknown-linux-gnu", + "powerpc64le-unknown-linux-gnu", + "riscv64gc-unknown-linux-gnu", + "s390x-unknown-linux-gnu", + "x86_64-unknown-freebsd", + "x86_64-unknown-illumos", + "x86_64-unknown-linux-musl", + "x86_64-unknown-netbsd", "aarch64-apple-ios", - "aarch64-apple-ios-macabi", "aarch64-apple-ios-sim", - "aarch64-apple-tvos", "aarch64-fuchsia", - "aarch64-kmc-solid_asp3", "aarch64-linux-android", - "aarch64-pc-windows-msvc", + "aarch64-unknown-fuchsia", + "aarch64-unknown-none", + "aarch64-unknown-none-softfloat", + "aarch64-unknown-uefi", + "arm-linux-androideabi", + "arm-unknown-linux-musleabi", + "arm-unknown-linux-musleabihf", + "armebv7r-none-eabi", + "armebv7r-none-eabihf", + "armv5te-unknown-linux-gnueabi", + "armv5te-unknown-linux-musleabi", + "armv7-linux-androideabi", + "armv7-unknown-linux-gnueabi", + "armv7-unknown-linux-musleabi", + "armv7-unknown-linux-musleabihf", + "armv7a-none-eabi", + "armv7r-none-eabi", + "armv7r-none-eabihf", + "asmjs-unknown-emscripten", + "i586-pc-windows-msvc", + "i586-unknown-linux-gnu", + "i586-unknown-linux-musl", + "i686-linux-android", + "i686-unknown-freebsd", + "i686-unknown-linux-musl", + "i686-unknown-uefi", + "mips-unknown-linux-musl", + "mips64-unknown-linux-muslabi64", + "mips64el-unknown-linux-muslabi64", + "mipsel-unknown-linux-musl", + "nvptx64-nvidia-cuda", + "riscv32i-unknown-none-elf", + "riscv32imac-unknown-none-elf", + "riscv32imc-unknown-none-elf", + "riscv64gc-unknown-none-elf", + "riscv64imac-unknown-none-elf", + "sparc64-unknown-linux-gnu", + "sparcv9-sun-solaris", + "thumbv6m-none-eabi", + "thumbv7em-none-eabi", + "thumbv7em-none-eabihf", + "thumbv7m-none-eabi", + "thumbv7neon-linux-androideabi", + "thumbv7neon-unknown-linux-gnueabihf", + "thumbv8m.base-none-eabi", + "thumbv8m.main-none-eabi", + "thumbv8m.main-none-eabihf", + "wasm32-unknown-emscripten", + "wasm32-unknown-unknown", + "wasm32-wasi", + "x86_64-apple-ios", + "x86_64-fortanix-unknown-sgx", + "x86_64-fuchsia", + "x86_64-linux-android", + "x86_64-pc-solaris", + "x86_64-unknown-fuchsia", + "x86_64-unknown-linux-gnux32", + "x86_64-unknown-none", + "x86_64-unknown-redox", + "x86_64-unknown-uefi", + "aarch64-apple-ios-macabi", + "aarch64-apple-tvos", + "aarch64-apple-watchos-sim", + "aarch64-kmc-solid_asp3", + "aarch64-nintendo-switch-freestanding", + "aarch64-pc-windows-gnullvm", "aarch64-unknown-freebsd", "aarch64-unknown-hermit", - "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-gnu_ilp32", - "aarch64-unknown-linux-musl", + "aarch64-unknown-linux-ohos", "aarch64-unknown-netbsd", - "aarch64-unknown-none", - "aarch64-unknown-none-softfloat", + "aarch64-unknown-nto-qnx710", "aarch64-unknown-openbsd", "aarch64-unknown-redox", - "aarch64-unknown-uefi", "aarch64-uwp-windows-msvc", "aarch64-wrs-vxworks", "aarch64_be-unknown-linux-gnu", "aarch64_be-unknown-linux-gnu_ilp32", - "arm-linux-androideabi", - "arm-unknown-linux-gnueabi", - "arm-unknown-linux-gnueabihf", - "arm-unknown-linux-musleabi", - "arm-unknown-linux-musleabihf", - "armebv7r-none-eabi", - "armebv7r-none-eabihf", + "arm64_32-apple-watchos", + "armeb-unknown-linux-gnueabi", + "armv4t-none-eabi", "armv4t-unknown-linux-gnueabi", - "armv5te-unknown-linux-gnueabi", - "armv5te-unknown-linux-musleabi", + "armv5te-none-eabi", "armv5te-unknown-linux-uclibceabi", "armv6-unknown-freebsd", "armv6-unknown-netbsd-eabihf", "armv6k-nintendo-3ds", "armv7-apple-ios", - "armv7-linux-androideabi", + "armv7-sony-vita-newlibeabihf", "armv7-unknown-freebsd", - "armv7-unknown-linux-gnueabi", - "armv7-unknown-linux-gnueabihf", - "armv7-unknown-linux-musleabi", - "armv7-unknown-linux-musleabihf", + "armv7-unknown-linux-ohos", + "armv7-unknown-linux-uclibceabi", "armv7-unknown-linux-uclibceabihf", "armv7-unknown-netbsd-eabihf", "armv7-wrs-vxworks-eabihf", "armv7a-kmc-solid_asp3-eabi", "armv7a-kmc-solid_asp3-eabihf", - "armv7a-none-eabi", "armv7a-none-eabihf", - "armv7r-none-eabi", - "armv7r-none-eabihf", + "armv7k-apple-watchos", "armv7s-apple-ios", - "asmjs-unknown-emscripten", "avr-unknown-gnu-atmega328", "bpfeb-unknown-none", "bpfel-unknown-none", "hexagon-unknown-linux-musl", "i386-apple-ios", - "i586-pc-windows-msvc", - "i586-unknown-linux-gnu", - "i586-unknown-linux-musl", + "i586-pc-nto-qnx700", "i686-apple-darwin", - "i686-linux-android", - "i686-pc-windows-gnu", - "i686-pc-windows-msvc", - "i686-unknown-freebsd", "i686-unknown-haiku", - "i686-unknown-linux-gnu", - "i686-unknown-linux-musl", "i686-unknown-netbsd", "i686-unknown-openbsd", - "i686-unknown-uefi", "i686-uwp-windows-gnu", "i686-uwp-windows-msvc", "i686-wrs-vxworks", + "loongarch64-unknown-linux-gnu", "m68k-unknown-linux-gnu", - "mips-unknown-linux-gnu", - "mips-unknown-linux-musl", "mips-unknown-linux-uclibc", - "mips64-unknown-linux-gnuabi64", - "mips64-unknown-linux-muslabi64", - "mips64el-unknown-linux-gnuabi64", - "mips64el-unknown-linux-muslabi64", + "mips64-openwrt-linux-musl", "mipsel-sony-psp", - "mipsel-unknown-linux-gnu", - "mipsel-unknown-linux-musl", + "mipsel-sony-psx", "mipsel-unknown-linux-uclibc", "mipsel-unknown-none", "mipsisa32r6-unknown-linux-gnu", @@ -177,87 +241,54 @@ "mipsisa64r6-unknown-linux-gnuabi64", "mipsisa64r6el-unknown-linux-gnuabi64", "msp430-none-elf", - "nvptx64-nvidia-cuda", "powerpc-unknown-freebsd", - "powerpc-unknown-linux-gnu", "powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-musl", "powerpc-unknown-netbsd", "powerpc-unknown-openbsd", "powerpc-wrs-vxworks", "powerpc-wrs-vxworks-spe", + "powerpc64-ibm-aix", "powerpc64-unknown-freebsd", - "powerpc64-unknown-linux-gnu", "powerpc64-unknown-linux-musl", + "powerpc64-unknown-openbsd", "powerpc64-wrs-vxworks", "powerpc64le-unknown-freebsd", - "powerpc64le-unknown-linux-gnu", "powerpc64le-unknown-linux-musl", "riscv32gc-unknown-linux-gnu", "riscv32gc-unknown-linux-musl", - "riscv32i-unknown-none-elf", - "riscv32imac-unknown-none-elf", + "riscv32im-unknown-none-elf", + "riscv32imac-unknown-xous-elf", "riscv32imc-esp-espidf", - "riscv32imc-unknown-none-elf", "riscv64gc-unknown-freebsd", - "riscv64gc-unknown-linux-gnu", + "riscv64gc-unknown-fuchsia", "riscv64gc-unknown-linux-musl", - "riscv64gc-unknown-none-elf", - "riscv64imac-unknown-none-elf", - "s390x-unknown-linux-gnu", + "riscv64gc-unknown-openbsd", "s390x-unknown-linux-musl", "sparc-unknown-linux-gnu", - "sparc64-unknown-linux-gnu", "sparc64-unknown-netbsd", "sparc64-unknown-openbsd", - "sparcv9-sun-solaris", "thumbv4t-none-eabi", - "thumbv6m-none-eabi", + "thumbv5te-none-eabi", "thumbv7a-pc-windows-msvc", "thumbv7a-uwp-windows-msvc", - "thumbv7em-none-eabi", - "thumbv7em-none-eabihf", - "thumbv7m-none-eabi", - "thumbv7neon-linux-androideabi", - "thumbv7neon-unknown-linux-gnueabihf", "thumbv7neon-unknown-linux-musleabihf", - "thumbv8m.base-none-eabi", - "thumbv8m.main-none-eabi", - "thumbv8m.main-none-eabihf", - "wasm32-unknown-emscripten", - "wasm32-unknown-unknown", - "wasm32-wasi", "wasm64-unknown-unknown", - "x86_64-apple-darwin", - "x86_64-apple-ios", "x86_64-apple-ios-macabi", "x86_64-apple-tvos", - "x86_64-fortanix-unknown-sgx", - "x86_64-fuchsia", - "x86_64-linux-android", - "x86_64-pc-solaris", - "x86_64-pc-windows-gnu", - "x86_64-pc-windows-msvc", + "x86_64-apple-watchos-sim", + "x86_64-pc-nto-qnx710", + "x86_64-pc-windows-gnullvm", "x86_64-sun-solaris", "x86_64-unknown-dragonfly", - "x86_64-unknown-freebsd", "x86_64-unknown-haiku", "x86_64-unknown-hermit", - "x86_64-unknown-illumos", "x86_64-unknown-l4re-uclibc", - "x86_64-unknown-linux-gnu", - "x86_64-unknown-linux-gnux32", - "x86_64-unknown-linux-musl", - "x86_64-unknown-netbsd", - "x86_64-unknown-none", - "x86_64-unknown-none-hermitkernel", - "x86_64-unknown-none-linuxkernel", "x86_64-unknown-openbsd", - "x86_64-unknown-redox", - "x86_64-unknown-uefi", "x86_64-uwp-windows-gnu", "x86_64-uwp-windows-msvc", - "x86_64-wrs-vxworks" + "x86_64-wrs-vxworks", + "x86_64h-apple-darwin" ] }, "x-taplo": { @@ -270,11 +301,7 @@ "description": "[`Profiles`](https://rust-lang.github.io/rustup/concepts/profiles.htm) are groups of [`components`](https://rust-lang.github.io/rustup/concepts/components.html) you can choose to download while installing a new Rust [`toolchain`](https://rust-lang.github.io/rustup/concepts/toolchains.html).\n\n The `profiles` available at this time are `minimal`, `default`, and `complete`.", "type": "string", "default": "default", - "enum": [ - "minimal", - "default", - "complete" - ], + "enum": ["minimal", "default", "complete"], "x-taplo": { "links": { "key": "https://rust-lang.github.io/rustup/concepts/profiles.html" @@ -301,15 +328,11 @@ "type": "string" } }, - "required": [ - "path" - ] + "required": ["path"] } }, { - "required": [ - "path" - ] + "required": ["path"] } ], "dependencies": { @@ -320,9 +343,7 @@ "type": "string" } }, - "required": [ - "channel" - ] + "required": ["channel"] } }, "channel": { @@ -332,9 +353,7 @@ "type": "string" } }, - "required": [ - "path" - ] + "required": ["path"] } }, "profile": { @@ -345,9 +364,7 @@ "type": "string" } }, - "required": [ - "channel" - ] + "required": ["channel"] }, { "properties": { @@ -355,9 +372,7 @@ "type": "array" } }, - "required": [ - "components" - ] + "required": ["components"] }, { "properties": { @@ -365,9 +380,7 @@ "type": "array" } }, - "required": [ - "targets" - ] + "required": ["targets"] } ] } @@ -376,23 +389,15 @@ "links": { "key": "https://rust-lang.github.io/rustup/concepts/toolchains.html" }, - "initKeys": [ - "channel" - ] + "initKeys": ["channel"] } } }, - "required": [ - "toolchain" - ], + "required": ["toolchain"], "title": "Schema for rust-toolchain.toml", "type": "object", "x-taplo-info": { - "authors": [ - "ian-h-chamberlain (https://github.com/ian-h-chamberlain)" - ], - "patterns": [ - "^(.*(/|\\\\)rust-toolchain([.]toml)?)$" - ] + "authors": ["ian-h-chamberlain (https://github.com/ian-h-chamberlain)"], + "patterns": ["^(.*(/|\\\\)rust-toolchain([.]toml)?)$"] } -} \ No newline at end of file +} diff --git a/src/test/rust-toolchain/channel_only01.json b/src/test/rust-toolchain/channel_only01.json index 8a952bb8198..c6ddf73cedf 100644 --- a/src/test/rust-toolchain/channel_only01.json +++ b/src/test/rust-toolchain/channel_only01.json @@ -1,5 +1,6 @@ { "toolchain": { - "channel": "stable" + "channel": "stable", + "target": "wasm32-wasi" } -} +} \ No newline at end of file diff --git a/src/test/rust-toolchain/custom_toolchain02.json b/src/test/rust-toolchain/custom_toolchain02.json index d3cab0eb11e..39e43a94c1a 100644 --- a/src/test/rust-toolchain/custom_toolchain02.json +++ b/src/test/rust-toolchain/custom_toolchain02.json @@ -1,5 +1,5 @@ { "toolchain": { - "path": "no_empty" + "path": "path/to/toolchain" } -} +} \ No newline at end of file diff --git a/src/test/rust-toolchain/rust-toolchain.json b/src/test/rust-toolchain/rust-toolchain.json index 46df0031f63..2d8148d6c7f 100644 --- a/src/test/rust-toolchain/rust-toolchain.json +++ b/src/test/rust-toolchain/rust-toolchain.json @@ -2,8 +2,22 @@ "toolchain": { "channel": "nightly-2022-09-20-x86_64-unknown-linux-gnu", "components": [ + "rustc", + "cargo", "rustfmt", - "rustc-dev" + "rust-std", + "rust-docs", + "rls", + "clippy", + "miri", + "rust", + "rust-analysis", + "llvm-tools", + "rustc-docs", + "rustc-dev", + "rust-analyzer", + "reproducible-artifacts", + "rust-docs-json" ], "targets": [ "wasm32-unknown-unknown" From ce36c8cc5cbfe8034501ed4245f60371e6294ffe Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 16:37:23 +0000 Subject: [PATCH 3/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/package-lock.json | 2 +- src/test/rust-toolchain/channel_only01.json | 2 +- src/test/rust-toolchain/custom_toolchain02.json | 2 +- src/test/rust-toolchain/rust-toolchain.json | 6 ++---- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/package-lock.json b/src/package-lock.json index 9e6aa3c6986..a0f38f9690b 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -3970,4 +3970,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/test/rust-toolchain/channel_only01.json b/src/test/rust-toolchain/channel_only01.json index c6ddf73cedf..296473e6d90 100644 --- a/src/test/rust-toolchain/channel_only01.json +++ b/src/test/rust-toolchain/channel_only01.json @@ -3,4 +3,4 @@ "channel": "stable", "target": "wasm32-wasi" } -} \ No newline at end of file +} diff --git a/src/test/rust-toolchain/custom_toolchain02.json b/src/test/rust-toolchain/custom_toolchain02.json index 39e43a94c1a..1140d12ea4a 100644 --- a/src/test/rust-toolchain/custom_toolchain02.json +++ b/src/test/rust-toolchain/custom_toolchain02.json @@ -2,4 +2,4 @@ "toolchain": { "path": "path/to/toolchain" } -} \ No newline at end of file +} diff --git a/src/test/rust-toolchain/rust-toolchain.json b/src/test/rust-toolchain/rust-toolchain.json index 2d8148d6c7f..eefae1518ec 100644 --- a/src/test/rust-toolchain/rust-toolchain.json +++ b/src/test/rust-toolchain/rust-toolchain.json @@ -19,9 +19,7 @@ "reproducible-artifacts", "rust-docs-json" ], - "targets": [ - "wasm32-unknown-unknown" - ], + "targets": ["wasm32-unknown-unknown"], "profile": "minimal" } -} \ No newline at end of file +} From 7f085d9023ee0449d361ed3e89bd793c6c9582a6 Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Wed, 17 May 2023 10:46:45 +0800 Subject: [PATCH 4/8] fix(dependency): revert Node.js version in `package-lock.json` --- src/package-lock.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/package-lock.json b/src/package-lock.json index a0f38f9690b..d32116c44f4 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -28,9 +28,6 @@ "prettier-plugin-sort-json": "^1.0.0", "tv4": "^1.3.0", "yaml": "^2.2.1" - }, - "engines": { - "node": ">=16" } }, "node_modules/@bcoe/v8-coverage": { @@ -3970,4 +3967,4 @@ } } } -} +} \ No newline at end of file From ea71d35d02c223eb2fb5d7a137f5244d763557c9 Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Fri, 9 Jun 2023 03:03:47 +0800 Subject: [PATCH 5/8] Fix(`rust-toolchan.json`): Upadte schema - feat(`rust-toolchain.json`): Add support platform Update target support according to https://github.com/rust-lang/rust/blob/afab3662eb066f05fcdb43c421b72dd19472e752/src/doc/rustc/src/platform-support.md - fix(`rust-toolchain.json`): fix components include in toolchain --- src/schemas/json/rust-toolchain.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/schemas/json/rust-toolchain.json b/src/schemas/json/rust-toolchain.json index cd995d3ae6d..01a1fd730ff 100644 --- a/src/schemas/json/rust-toolchain.json +++ b/src/schemas/json/rust-toolchain.json @@ -40,6 +40,7 @@ "rls", "clippy", "miri", + "rust-src", "rust", "rust-analysis", "llvm-tools", @@ -82,7 +83,7 @@ "$comment": "Allow arbitary strings for new targets or custom target JSON", "items": { "type": "string", - "$comment": "From `rustc +nightly --print target-list`", + "$comment": "From `rustc +nightly --print target-list` or targets listed in https://doc.rust-lang.org/rustc/platform-support.html", "enum": [ "aarch64-unknown-linux-gnu", "i686-pc-windows-gnu", @@ -98,6 +99,7 @@ "arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabihf", "armv7-unknown-linux-gnueabihf", + "loongarch64-unknown-linux-gnu", "mips-unknown-linux-gnu", "mips64-unknown-linux-gnuabi64", "mips64el-unknown-linux-gnuabi64", @@ -228,7 +230,8 @@ "i686-uwp-windows-gnu", "i686-uwp-windows-msvc", "i686-wrs-vxworks", - "loongarch64-unknown-linux-gnu", + "loongarch64-unknown-none", + "loongarch64-unknown-none-softfloat", "m68k-unknown-linux-gnu", "mips-unknown-linux-uclibc", "mips64-openwrt-linux-musl", @@ -260,6 +263,7 @@ "riscv32im-unknown-none-elf", "riscv32imac-unknown-xous-elf", "riscv32imc-esp-espidf", + "riscv32imac-esp-espidf", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-fuchsia", "riscv64gc-unknown-linux-musl", From dd28cdb2b2b8953756cd9e847ff29697f8bf179f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 19:29:40 +0000 Subject: [PATCH 6/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package-lock.json b/src/package-lock.json index d32116c44f4..d692133ba2f 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -3967,4 +3967,4 @@ } } } -} \ No newline at end of file +} From e236510930817392269cb80c35e65165dcf97bf6 Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Sat, 23 Sep 2023 23:29:48 +0800 Subject: [PATCH 7/8] fix(rust-toolchain.json): Update Platform Support of `rustc` Update Platform Support of `rustc` according to https://github.com/rust-lang/rust/blob/dcea7709f2/src/doc/rustc/src/platform-support.md --- src/schemas/json/rust-toolchain.json | 38 ++++++++++++++++++---------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/src/schemas/json/rust-toolchain.json b/src/schemas/json/rust-toolchain.json index 558ec5699d5..ed6d5979951 100644 --- a/src/schemas/json/rust-toolchain.json +++ b/src/schemas/json/rust-toolchain.json @@ -84,7 +84,7 @@ "$comment": "Allow arbitary strings for new targets or custom target JSON", "items": { "type": "string", - "$comment": "From `rustc +nightly --print target-list` or targets listed in https://doc.rust-lang.org/rustc/platform-support.html", + "$comment": "From `rustc +nightly --print target-list` or targets listed in https://doc.rust-lang.org/rustc/platform-support.html or https://github.com/rust-lang/rust/blob/master/src/doc/rustc/src/platform-support.md", "enum": [ "aarch64-unknown-linux-gnu", "i686-pc-windows-gnu", @@ -117,10 +117,10 @@ "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-fuchsia", - "aarch64-linux-android", "aarch64-unknown-fuchsia", - "aarch64-unknown-none", + "aarch64-linux-android", "aarch64-unknown-none-softfloat", + "aarch64-unknown-none", "aarch64-unknown-uefi", "arm-linux-androideabi", "arm-unknown-linux-musleabi", @@ -168,12 +168,13 @@ "wasm32-unknown-emscripten", "wasm32-unknown-unknown", "wasm32-wasi", + "wasm32-wasi-preview1-threads", "x86_64-apple-ios", "x86_64-fortanix-unknown-sgx", "x86_64-fuchsia", + "x86_64-unknown-fuchsia", "x86_64-linux-android", "x86_64-pc-solaris", - "x86_64-unknown-fuchsia", "x86_64-unknown-linux-gnux32", "x86_64-unknown-none", "x86_64-unknown-redox", @@ -184,18 +185,20 @@ "aarch64-kmc-solid_asp3", "aarch64-nintendo-switch-freestanding", "aarch64-pc-windows-gnullvm", + "aarch64-unknown-linux-ohos", + "aarch64-unknown-teeos", + "aarch64-unknown-nto-qnx710", "aarch64-unknown-freebsd", "aarch64-unknown-hermit", "aarch64-unknown-linux-gnu_ilp32", - "aarch64-unknown-linux-ohos", "aarch64-unknown-netbsd", - "aarch64-unknown-nto-qnx710", "aarch64-unknown-openbsd", "aarch64-unknown-redox", "aarch64-uwp-windows-msvc", "aarch64-wrs-vxworks", - "aarch64_be-unknown-linux-gnu", "aarch64_be-unknown-linux-gnu_ilp32", + "aarch64_be-unknown-linux-gnu", + "aarch64_be-unknown-netbsd", "arm64_32-apple-watchos", "armeb-unknown-linux-gnueabi", "armv4t-none-eabi", @@ -207,10 +210,10 @@ "armv6k-nintendo-3ds", "armv7-apple-ios", "armv7-sony-vita-newlibeabihf", - "armv7-unknown-freebsd", "armv7-unknown-linux-ohos", "armv7-unknown-linux-uclibceabi", "armv7-unknown-linux-uclibceabihf", + "armv7-unknown-freebsd", "armv7-unknown-netbsd-eabihf", "armv7-wrs-vxworks-eabihf", "armv7a-kmc-solid_asp3-eabi", @@ -221,11 +224,14 @@ "avr-unknown-gnu-atmega328", "bpfeb-unknown-none", "bpfel-unknown-none", + "csky-unknown-linux-gnuabiv2", "hexagon-unknown-linux-musl", "i386-apple-ios", "i586-pc-nto-qnx700", "i686-apple-darwin", + "i686-pc-windows-gnullvm", "i686-unknown-haiku", + "i686-unknown-hurd-gnu", "i686-unknown-netbsd", "i686-unknown-openbsd", "i686-uwp-windows-gnu", @@ -245,32 +251,36 @@ "mipsisa64r6-unknown-linux-gnuabi64", "mipsisa64r6el-unknown-linux-gnuabi64", "msp430-none-elf", - "powerpc-unknown-freebsd", "powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-musl", "powerpc-unknown-netbsd", "powerpc-unknown-openbsd", - "powerpc-wrs-vxworks", "powerpc-wrs-vxworks-spe", - "powerpc64-ibm-aix", + "powerpc-wrs-vxworks", "powerpc64-unknown-freebsd", + "powerpc64le-unknown-freebsd", + "powerpc-unknown-freebsd", "powerpc64-unknown-linux-musl", - "powerpc64-unknown-openbsd", "powerpc64-wrs-vxworks", - "powerpc64le-unknown-freebsd", "powerpc64le-unknown-linux-musl", + "powerpc64-unknown-openbsd", + "powerpc64-ibm-aix", "riscv32gc-unknown-linux-gnu", "riscv32gc-unknown-linux-musl", "riscv32im-unknown-none-elf", "riscv32imac-unknown-xous-elf", "riscv32imc-esp-espidf", "riscv32imac-esp-espidf", + "riscv64gc-unknown-hermit", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-fuchsia", "riscv64gc-unknown-linux-musl", + "riscv64gc-unknown-netbsd", "riscv64gc-unknown-openbsd", + "riscv64-linux-android", "s390x-unknown-linux-musl", "sparc-unknown-linux-gnu", + "sparc-unknown-none-elf", "sparc64-unknown-netbsd", "sparc64-unknown-openbsd", "thumbv4t-none-eabi", @@ -285,10 +295,12 @@ "x86_64-pc-nto-qnx710", "x86_64-pc-windows-gnullvm", "x86_64-sun-solaris", + "x86_64-unikraft-linux-musl", "x86_64-unknown-dragonfly", "x86_64-unknown-haiku", "x86_64-unknown-hermit", "x86_64-unknown-l4re-uclibc", + "x86_64-unknown-linux-ohos", "x86_64-unknown-openbsd", "x86_64-uwp-windows-gnu", "x86_64-uwp-windows-msvc", From 55ab190c3b62b80f2becee85b622f2d7c1f7425f Mon Sep 17 00:00:00 2001 From: gfgafn <87858323+gfgafn@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:48:57 +0800 Subject: [PATCH 8/8] fix(rust-toolchain.json): Update Platform Support of rustc Update Platform Support of rustc according to https://github.com/rust-lang/rust/blob/dcea7709f2/src/doc/rustc/src/platform-support.md --- src/schemas/json/rust-toolchain.json | 99 ++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/src/schemas/json/rust-toolchain.json b/src/schemas/json/rust-toolchain.json index 791753ab555..2757f2ab9f1 100644 --- a/src/schemas/json/rust-toolchain.json +++ b/src/schemas/json/rust-toolchain.json @@ -95,6 +95,7 @@ "type": "string", "enum": [ "aarch64-unknown-linux-gnu", + "aarch64-apple-darwin", "i686-pc-windows-gnu", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", @@ -102,37 +103,38 @@ "x86_64-pc-windows-gnu", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", - "aarch64-apple-darwin", "aarch64-pc-windows-msvc", "aarch64-unknown-linux-musl", "arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabihf", "armv7-unknown-linux-gnueabihf", "loongarch64-unknown-linux-gnu", - "mips-unknown-linux-gnu", - "mips64-unknown-linux-gnuabi64", - "mips64el-unknown-linux-gnuabi64", - "mipsel-unknown-linux-gnu", + "loongarch64-unknown-linux-musl", "powerpc-unknown-linux-gnu", "powerpc64-unknown-linux-gnu", "powerpc64le-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu", + "riscv64gc-unknown-linux-musl", "s390x-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-illumos", "x86_64-unknown-linux-musl", "x86_64-unknown-netbsd", "aarch64-apple-ios", + "aarch64-apple-ios-macabi", "aarch64-apple-ios-sim", "aarch64-fuchsia", "aarch64-unknown-fuchsia", "aarch64-linux-android", + "aarch64-pc-windows-gnullvm", + "aarch64-unknown-linux-ohos", "aarch64-unknown-none-softfloat", "aarch64-unknown-none", "aarch64-unknown-uefi", "arm-linux-androideabi", "arm-unknown-linux-musleabi", "arm-unknown-linux-musleabihf", + "arm64ec-pc-windows-msvc", "armebv7r-none-eabi", "armebv7r-none-eabihf", "armv5te-unknown-linux-gnueabi", @@ -141,25 +143,26 @@ "armv7-unknown-linux-gnueabi", "armv7-unknown-linux-musleabi", "armv7-unknown-linux-musleabihf", + "armv7-unknown-linux-ohos", "armv7a-none-eabi", "armv7r-none-eabi", "armv7r-none-eabihf", - "asmjs-unknown-emscripten", "i586-pc-windows-msvc", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", "i686-linux-android", + "i686-pc-windows-gnullvm", "i686-unknown-freebsd", "i686-unknown-linux-musl", "i686-unknown-uefi", - "mips-unknown-linux-musl", - "mips64-unknown-linux-muslabi64", - "mips64el-unknown-linux-muslabi64", - "mipsel-unknown-linux-musl", + "loongarch64-unknown-none", + "loongarch64-unknown-none-softfloat", "nvptx64-nvidia-cuda", - "riscv32i-unknown-none-elf", "riscv32imac-unknown-none-elf", + "riscv32i-unknown-none-elf", + "riscv32im-unknown-none-elf", "riscv32imc-unknown-none-elf", + "riscv32imafc-unknown-none-elf", "riscv64gc-unknown-none-elf", "riscv64imac-unknown-none-elf", "sparc64-unknown-linux-gnu", @@ -176,32 +179,42 @@ "wasm32-unknown-emscripten", "wasm32-unknown-unknown", "wasm32-wasi", - "wasm32-wasi-preview1-threads", + "wasm32-wasip1", + "wasm32-wasip1-threads", "x86_64-apple-ios", + "x86_64-apple-ios-macabi", "x86_64-fortanix-unknown-sgx", "x86_64-fuchsia", "x86_64-unknown-fuchsia", "x86_64-linux-android", "x86_64-pc-solaris", + "x86_64-pc-windows-gnullvm", "x86_64-unknown-linux-gnux32", + "x86_64-unknown-linux-ohos", "x86_64-unknown-none", "x86_64-unknown-redox", "x86_64-unknown-uefi", - "aarch64-apple-ios-macabi", + "arm64e-apple-ios", + "arm64e-apple-darwin", "aarch64-apple-tvos", + "aarch64-apple-tvos-sim", + "aarch64-apple-watchos", "aarch64-apple-watchos-sim", + "aarch64-apple-visionos", + "aarch64-apple-visionos-sim", "aarch64-kmc-solid_asp3", "aarch64-nintendo-switch-freestanding", - "aarch64-pc-windows-gnullvm", - "aarch64-unknown-linux-ohos", "aarch64-unknown-teeos", + "aarch64-unknown-nto-qnx700", "aarch64-unknown-nto-qnx710", "aarch64-unknown-freebsd", "aarch64-unknown-hermit", + "aarch64-unknown-illumos", "aarch64-unknown-linux-gnu_ilp32", "aarch64-unknown-netbsd", "aarch64-unknown-openbsd", "aarch64-unknown-redox", + "aarch64-unknown-trusty", "aarch64-uwp-windows-msvc", "aarch64-wrs-vxworks", "aarch64_be-unknown-linux-gnu_ilp32", @@ -216,40 +229,52 @@ "armv6-unknown-freebsd", "armv6-unknown-netbsd-eabihf", "armv6k-nintendo-3ds", - "armv7-apple-ios", + "armv7-rtems-eabihf", "armv7-sony-vita-newlibeabihf", - "armv7-unknown-linux-ohos", "armv7-unknown-linux-uclibceabi", "armv7-unknown-linux-uclibceabihf", "armv7-unknown-freebsd", "armv7-unknown-netbsd-eabihf", + "armv7-unknown-trusty", "armv7-wrs-vxworks-eabihf", "armv7a-kmc-solid_asp3-eabi", "armv7a-kmc-solid_asp3-eabihf", "armv7a-none-eabihf", "armv7k-apple-watchos", "armv7s-apple-ios", + "armv8r-none-eabihf", "avr-unknown-gnu-atmega328", "bpfeb-unknown-none", "bpfel-unknown-none", "csky-unknown-linux-gnuabiv2", + "csky-unknown-linux-gnuabiv2hf", + "hexagon-unknown-none-elf", "hexagon-unknown-linux-musl", "i386-apple-ios", "i586-pc-nto-qnx700", + "i586-unknown-netbsd", "i686-apple-darwin", - "i686-pc-windows-gnullvm", "i686-unknown-haiku", "i686-unknown-hurd-gnu", "i686-unknown-netbsd", "i686-unknown-openbsd", + "i686-unknown-redox", "i686-uwp-windows-gnu", "i686-uwp-windows-msvc", + "i686-win7-windows-msvc", "i686-wrs-vxworks", - "loongarch64-unknown-none", - "loongarch64-unknown-none-softfloat", "m68k-unknown-linux-gnu", + "mips-unknown-linux-gnu", + "mips-unknown-linux-musl", "mips-unknown-linux-uclibc", "mips64-openwrt-linux-musl", + "mips64-unknown-linux-gnuabi64", + "mips64-unknown-linux-muslabi64", + "mips64el-unknown-linux-gnuabi64", + "mips64el-unknown-linux-muslabi64", + "mipsel-unknown-linux-gnu", + "mipsel-unknown-linux-musl", + "mipsel-unknown-netbsd", "mipsel-sony-psp", "mipsel-sony-psx", "mipsel-unknown-linux-uclibc", @@ -261,6 +286,7 @@ "msp430-none-elf", "powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-musl", + "powerpc-unknown-linux-muslspe", "powerpc-unknown-netbsd", "powerpc-unknown-openbsd", "powerpc-wrs-vxworks-spe", @@ -275,14 +301,15 @@ "powerpc64-ibm-aix", "riscv32gc-unknown-linux-gnu", "riscv32gc-unknown-linux-musl", - "riscv32im-unknown-none-elf", + "riscv32im-risc0-zkvm-elf", + "riscv32ima-unknown-none-elf", "riscv32imac-unknown-xous-elf", "riscv32imc-esp-espidf", "riscv32imac-esp-espidf", + "riscv32imafc-esp-espidf", "riscv64gc-unknown-hermit", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-fuchsia", - "riscv64gc-unknown-linux-musl", "riscv64gc-unknown-netbsd", "riscv64gc-unknown-openbsd", "riscv64-linux-android", @@ -296,24 +323,42 @@ "thumbv7a-pc-windows-msvc", "thumbv7a-uwp-windows-msvc", "thumbv7neon-unknown-linux-musleabihf", + "wasm32-wasip2", "wasm64-unknown-unknown", - "x86_64-apple-ios-macabi", "x86_64-apple-tvos", "x86_64-apple-watchos-sim", "x86_64-pc-nto-qnx710", - "x86_64-pc-windows-gnullvm", - "x86_64-sun-solaris", "x86_64-unikraft-linux-musl", "x86_64-unknown-dragonfly", "x86_64-unknown-haiku", + "x86_64-unknown-hurd-gnu", "x86_64-unknown-hermit", "x86_64-unknown-l4re-uclibc", - "x86_64-unknown-linux-ohos", "x86_64-unknown-openbsd", "x86_64-uwp-windows-gnu", "x86_64-uwp-windows-msvc", + "x86_64-win7-windows-msvc", "x86_64-wrs-vxworks", - "x86_64h-apple-darwin" + "x86_64h-apple-darwin", + "x86_64-unknown-linux-none", + "xtensa-esp32-none-elf", + "xtensa-esp32-espidf", + "xtensa-esp32s2-none-elf", + "xtensa-esp32s2-espidf", + "xtensa-esp32s3-none-elf", + "xtensa-esp32s3-espidf", + "thumbv6m-nuttx-eabi", + "thumbv7m-nuttx-eabi", + "thumbv7em-nuttx-eabi", + "thumbv7em-nuttx-eabihf", + "thumbv8m.base-nuttx-eabi", + "thumbv8m.main-nuttx-eabi", + "thumbv8m.main-nuttx-eabihf", + "riscv32imc-unknown-nuttx-elf", + "riscv32imac-unknown-nuttx-elf", + "riscv32imafc-unknown-nuttx-elf", + "riscv64imac-unknown-nuttx-elf", + "riscv64gc-unknown-nuttx-elf" ] }, {