Merge staging-next into staging

authored by nixpkgs-ci[bot] and committed by GitHub e5afa113 443c8d2f

+3305 -455
-2
doc/release-notes/rl-2511.section.md
··· 60 60 61 61 - `go-mockery` has been updated to v3. For migration instructions see the [upstream documentation](https://vektra.github.io/mockery/latest/v3/). If v2 is still required `go-mockery_v2` has been added but will be removed on or before 2029-12-31 in-line with it's [upstream support lifecycle](https://vektra.github.io/mockery/ 62 62 63 - - NixOS display manager modules now strictly use tty1, where many of them previously used tty7. Options to configure display managers' VT have been dropped. A configuration with a display manager enabled will not start `getty@tty1.service`, even if the system is forced to boot into `multi-user.target` instead of `graphical.target`. 64 - 65 63 - [private-gpt](https://github.com/zylon-ai/private-gpt) service has been removed by lack of maintenance upstream. 66 64 67 65 ## Other Notable Changes {#sec-nixpkgs-release-25.11-notable-changes}
+2
nixos/doc/manual/release-notes/rl-2511.section.md
··· 133 133 134 134 - [private-gpt](https://github.com/zylon-ai/private-gpt) service has been removed by lack of maintenance upstream. 135 135 136 + - NixOS display manager modules now strictly use tty1, where many of them previously used tty7. Options to configure display managers' VT have been dropped. A configuration with a display manager enabled will not start `getty@tty1.service`, even if the system is forced to boot into `multi-user.target` instead of `graphical.target`. 137 + 136 138 ## Other Notable Changes {#sec-release-25.11-notable-changes} 137 139 138 140 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+39
nixos/modules/services/search/meilisearch.nix
··· 237 237 WorkingDirectory = "%S/meilisearch"; 238 238 RuntimeDirectory = "meilisearch"; 239 239 RuntimeDirectoryMode = "0700"; 240 + 241 + ProtectSystem = "strict"; 242 + ProtectHome = true; 243 + ProtectClock = true; 244 + ProtectHostname = true; 245 + ProtectKernelLogs = true; 246 + ProtectKernelModules = true; 247 + ProtectKernelTunables = true; 248 + ProtectControlGroups = true; 249 + PrivateTmp = true; 250 + PrivateMounts = true; 251 + PrivateUsers = true; 252 + PrivateDevices = true; 253 + RestrictRealtime = true; 254 + RestrictNamespaces = true; 255 + RestrictSUIDSGID = true; 256 + LockPersonality = true; 257 + MemoryDenyWriteExecute = true; 258 + 259 + ProcSubset = "pid"; 260 + ProtectProc = "invisible"; 261 + 262 + NoNewPrivileges = true; 263 + 264 + # Meilisearch does not support listening on AF_UNIX sockets, 265 + # so we currently restrict it to only AF_INET and AF_INET6. 266 + RestrictAddressFamilies = [ 267 + "AF_INET" 268 + "AF_INET6" 269 + ]; 270 + 271 + CapabilityBoundingSet = ""; 272 + SystemCallArchitectures = "native"; 273 + SystemCallFilter = [ 274 + "@system-service" 275 + "~@privileged @resources" 276 + ]; 277 + 278 + UMask = "0077"; 240 279 }; 241 280 }; 242 281 };
+2 -2
pkgs/by-name/gh/gh/package.nix
··· 10 10 11 11 buildGoModule rec { 12 12 pname = "gh"; 13 - version = "2.76.1"; 13 + version = "2.76.2"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "cli"; 17 17 repo = "cli"; 18 18 tag = "v${version}"; 19 - hash = "sha256-5m7BIjJqggQZYwxfUlsU+WBw6BxK0PBQYOSrw3I7gLA="; 19 + hash = "sha256-tIA2zFXGmnaTuhO6UNzlk01/20CPg5RQ4Kz1UMmbTGc="; 20 20 }; 21 21 22 22 vendorHash = "sha256-NXyqWeiESkLVb2Bb88MoD+4ssvfOy0HGHFAOrT83t0c=";
+2 -28
pkgs/by-name/gi/givaro/package.nix
··· 2 2 lib, 3 3 stdenv, 4 4 fetchFromGitHub, 5 - fetchpatch, 6 5 automake, 7 6 autoconf, 8 7 libtool, ··· 11 10 }: 12 11 stdenv.mkDerivation rec { 13 12 pname = "givaro"; 14 - version = "4.2.0"; 13 + version = "4.2.1"; 15 14 16 15 src = fetchFromGitHub { 17 16 owner = "linbox-team"; 18 17 repo = "givaro"; 19 18 tag = "v${version}"; 20 - sha256 = "sha256-KR0WJc0CSvaBnPRott4hQJhWNBb/Wi6MIhcTExtVobQ="; 19 + sha256 = "sha256-vSkWmKqpbVk1qdsqCU7qF7o+YgV5YRc9p4mlgl6yrto="; 21 20 }; 22 21 23 22 patches = [ 24 - # Pull upstream fix for gcc-13: 25 - # https://github.com/linbox-team/givaro/pull/218 26 - (fetchpatch { 27 - name = "gcc-13.patch"; 28 - url = "https://github.com/linbox-team/givaro/commit/c7744bb133496cd7ac04688f345646d505e1bf52.patch"; 29 - hash = "sha256-aAA5o8Va10v0Pqgcpx7qM0TAZiNQgXoR6N9xecj7tDA="; 30 - }) 31 - (fetchpatch { 32 - name = "clang-16.patch"; 33 - url = "https://github.com/linbox-team/givaro/commit/a81d44b3b57c275bcb04ab00db79be02561deaa2.patch"; 34 - hash = "sha256-sSk+VWffoEjZRTJcHRISLHPyW6yuvI1u8knBOfxNUIE="; 35 - }) 36 - # https://github.com/linbox-team/givaro/issues/226 37 - (fetchpatch { 38 - name = "gcc-14.patch"; 39 - url = "https://github.com/linbox-team/givaro/commit/b0cf33e1d4437530c7e4b3db90b6c80057a7f2f3.patch"; 40 - includes = [ "src/kernel/integer/random-integer.h" ]; 41 - hash = "sha256-b2Q8apP9ueEqIUtibTeP47x6TlroRzLgAxuv5ZM1EUw="; 42 - }) 43 - # https://github.com/linbox-team/givaro/issues/232 44 - (fetchpatch { 45 - name = "clang-19.patch"; 46 - url = "https://github.com/linbox-team/givaro/commit/a18baf5227d4f3e81a50850fe98e0d954eaa3ddb.patch"; 47 - hash = "sha256-IR0IHhCqbxgtsST30vxM9ak1nGtt0apxcLUQ1kS1DHw="; 48 - }) 49 23 # skip gmp version check for cross-compiling, our version is new enough 50 24 ./skip-gmp-check.patch 51 25 ];
+3 -3
pkgs/by-name/hy/hydra/package.nix
··· 130 130 in 131 131 stdenv.mkDerivation (finalAttrs: { 132 132 pname = "hydra"; 133 - version = "0-unstable-2025-06-15"; 133 + version = "0-unstable-2025-07-17"; 134 134 # nixpkgs-update: no auto update 135 135 136 136 src = fetchFromGitHub { 137 137 owner = "NixOS"; 138 138 repo = "hydra"; 139 - rev = "ed500ca4345f7edaa6c3d84027a7599d38b15a29"; 140 - hash = "sha256-Mxz4n40VKxA2ILtIHX6fObgcy2WlgsM+ERfpjuVJ0BU="; 139 + rev = "b812bb5017cac055fa56ffeac5440b6365830d67"; 140 + hash = "sha256-XmoecWRUvUX8jf0U0cGyP4AfLHb0D2D4Ec69jqwrWVI="; 141 141 }; 142 142 143 143 outputs = [
+3 -3
pkgs/by-name/im/immich-public-proxy/package.nix
··· 8 8 }: 9 9 buildNpmPackage rec { 10 10 pname = "immich-public-proxy"; 11 - version = "1.11.5"; 11 + version = "1.12.1"; 12 12 src = fetchFromGitHub { 13 13 owner = "alangrainger"; 14 14 repo = "immich-public-proxy"; 15 15 tag = "v${version}"; 16 - hash = "sha256-jSAQbACWEt/gyZbr4sOM17t3KZoxPOM0RZFbsLZfcRM="; 16 + hash = "sha256-m0E7YNdN2K81AwyBBBKZNrZaNis+qakdViVih+1Wk2E="; 17 17 }; 18 18 19 19 sourceRoot = "${src.name}/app"; 20 20 21 - npmDepsHash = "sha256-av+XKzrTl+8xizYFZwCTmaLNsbBnusf03I1Uvkp0sF8="; 21 + npmDepsHash = "sha256-GtX2mRfw4eo3WKfxdMoOAryQKHddFPcVCuXhHmLA/Oc="; 22 22 23 23 # patch in absolute nix store paths so the process doesn't need to cwd in $out 24 24 postPatch = ''
+2 -29
pkgs/by-name/li/linbox/package.nix
··· 2 2 lib, 3 3 stdenv, 4 4 fetchFromGitHub, 5 - fetchpatch, 6 5 autoreconfHook, 7 6 givaro, 8 7 pkg-config, ··· 16 15 17 16 stdenv.mkDerivation rec { 18 17 pname = "linbox"; 19 - version = "1.7.0"; 18 + version = "1.7.1"; 20 19 21 20 src = fetchFromGitHub { 22 21 owner = "linbox-team"; 23 22 repo = "linbox"; 24 23 rev = "v${version}"; 25 - sha256 = "sha256-mW84a98KPLqcHMjX3LIYTmVe0ngUdz6RJLpoDaAqKU8="; 24 + sha256 = "sha256-WUSQI9svxbrDTtWBjCF2XMhRFdKwCht8XBmJIJ3DR1E="; 26 25 }; 27 - 28 - patches = [ 29 - (fetchpatch { 30 - url = "https://github.com/linbox-team/linbox/commit/4be26e9ef0eaf36a9909e5008940e8bf7dc625b6.patch"; 31 - sha256 = "PX0Tik7blXOV2vHUq92xMxaADkNoNGiax4qrjQyGK6U="; 32 - }) 33 - (fetchpatch { 34 - name = "gcc-14.patch"; 35 - url = "https://github.com/linbox-team/linbox/commit/b8f2d4ccdc0af4418d14f72caf6c4d01969092a3.patch"; 36 - includes = [ 37 - "linbox/matrix/sparsematrix/sparse-ell-matrix.h" 38 - "linbox/matrix/sparsematrix/sparse-ellr-matrix.h" 39 - ]; 40 - hash = "sha256-sqwgHkECexR2uX/SwYP7r9ZGHnGG+i4RXtfnvWsVQlk="; 41 - }) 42 - (fetchpatch { 43 - name = "clang-19.patch"; 44 - url = "https://github.com/linbox-team/linbox/commit/4f7a9bc830696b2f2c0219feaa74e85202700412.patch"; 45 - hash = "sha256-DoKh8/+2WPbMhN9MhpKmQ5sKmizD9iE81zS/XI0aM9Q="; 46 - }) 47 - (fetchpatch { 48 - name = "clang-19.patch"; 49 - url = "https://github.com/linbox-team/linbox/commit/4a1e1395804d4630ec556c61ba3f2cb67e140248.patch"; 50 - hash = "sha256-sCe/8hb27RuMxU1XXWsVU5gaGk2V+T6Ee7yrC5G5Hsc="; 51 - }) 52 - ]; 53 26 54 27 nativeBuildInputs = [ 55 28 autoreconfHook
+1756 -377
pkgs/by-name/ve/veloren/fix-on-rust-stable.patch
··· 1 - commit 0829b00ec1a14c8248e1aadca22b132a1b21c40f 1 + commit eca36e8293bef85493657f514cf37119bb27e2e0 2 + Author: rnhmjoj <rnhmjoj@inventati.org> 3 + Date: Wed Jul 30 16:34:18 2025 +0200 4 + 5 + Update toolchain 6 + 7 + diff --git a/common/net/src/lib.rs b/common/net/src/lib.rs 8 + index 671aa074d..78cfdcb96 100644 9 + --- a/common/net/src/lib.rs 10 + +++ b/common/net/src/lib.rs 11 + @@ -1,5 +1,5 @@ 12 + #![allow(incomplete_features)] 13 + -#![feature(generic_const_exprs, const_fn_floating_point_arithmetic)] 14 + +#![feature(generic_const_exprs)] 15 + pub mod msg; 16 + pub mod sync; 17 + pub mod synced_components; 18 + diff --git a/common/systems/src/mount.rs b/common/systems/src/mount.rs 19 + index ed1b7f3c4..9acf953ec 100644 20 + --- a/common/systems/src/mount.rs 21 + +++ b/common/systems/src/mount.rs 22 + @@ -67,7 +67,7 @@ impl<'a> System<'a> for Sys { 23 + if !matches!(body, Some(Body::Humanoid(_))) { 24 + let actions = c 25 + .actions 26 + - .extract_if(|action| match action { 27 + + .extract_if(.., |action| match action { 28 + ControlAction::StartInput { input: i, .. } 29 + | ControlAction::CancelInput(i) => matches!( 30 + i, 31 + @@ -164,7 +164,7 @@ impl<'a> System<'a> for Sys { 32 + let inputs = controllers.get_mut(entity).map(|c| { 33 + let actions: Vec<_> = c 34 + .actions 35 + - .extract_if(|action| match action { 36 + + .extract_if(.., |action| match action { 37 + ControlAction::StartInput { input: i, .. } 38 + | ControlAction::CancelInput(i) => { 39 + matches!(i, InputKind::Jump | InputKind::Fly | InputKind::Roll) 40 + diff --git a/network/examples/fileshare/main.rs b/network/examples/fileshare/main.rs 41 + index 015e46e9e..fc8db3a0d 100644 42 + --- a/network/examples/fileshare/main.rs 43 + +++ b/network/examples/fileshare/main.rs 44 + @@ -1,4 +1,3 @@ 45 + -#![feature(async_closure)] 46 + //!run with 47 + //! (cd network/examples/fileshare && RUST_BACKTRACE=1 cargo run 48 + //! --profile=release -Z unstable-options -- --trace=info --port 15006) 49 + diff --git a/rtsim/src/lib.rs b/rtsim/src/lib.rs 50 + index ef62db65e..000831da3 100644 51 + --- a/rtsim/src/lib.rs 52 + +++ b/rtsim/src/lib.rs 53 + @@ -2,7 +2,6 @@ 54 + never_type, 55 + try_blocks, 56 + trait_alias, 57 + - control_flow_enum, 58 + let_chains, 59 + binary_heap_drain_sorted, 60 + fn_traits, 61 + diff --git a/voxygen/benches/meshing_benchmark.rs b/voxygen/benches/meshing_benchmark.rs 62 + index 2cfe9563a..929d62b17 100644 63 + --- a/voxygen/benches/meshing_benchmark.rs 64 + +++ b/voxygen/benches/meshing_benchmark.rs 65 + @@ -146,7 +146,7 @@ pub fn criterion_benchmark(c: &mut Criterion) { 66 + for x in 1..GEN_SIZE - 1 { 67 + for y in 1..GEN_SIZE - 1 { 68 + let (volume, range) = sample(Vec2::new(x, y)); 69 + - meshing_benches.bench_function(&format!("Terrain mesh {}, {}", x, y), move |b| { 70 + + meshing_benches.bench_function(format!("Terrain mesh {}, {}", x, y), move |b| { 71 + b.iter(|| { 72 + generate_mesh( 73 + black_box(&volume), 74 + diff --git a/voxygen/src/lib.rs b/voxygen/src/lib.rs 75 + index 70ca5dd10..143791d2f 100644 76 + --- a/voxygen/src/lib.rs 77 + +++ b/voxygen/src/lib.rs 78 + @@ -9,7 +9,6 @@ 79 + #![feature( 80 + extract_if, 81 + trait_alias, 82 + - option_get_or_insert_default, 83 + map_try_insert, 84 + slice_as_chunks, 85 + let_chains, 86 + diff --git a/voxygen/src/panic_handler.rs b/voxygen/src/panic_handler.rs 87 + index a2c0ee381..9cecff787 100644 88 + --- a/voxygen/src/panic_handler.rs 89 + +++ b/voxygen/src/panic_handler.rs 90 + @@ -1,4 +1,4 @@ 91 + -use std::{panic, panic::PanicInfo, path::PathBuf}; 92 + +use std::{panic, panic::PanicHookInfo, path::PathBuf}; 93 + use tracing::error; 94 + 95 + pub fn set_panic_hook(log_filename: String, logs_dir: PathBuf) { 96 + @@ -113,7 +113,7 @@ enum PotentialPanicCause { 97 + GraphicsCardIncompatibleWithRenderingBackend, 98 + } 99 + 100 + -fn potential_cause(panic_info: &PanicInfo) -> Option<String> { 101 + +fn potential_cause(panic_info: &PanicHookInfo) -> Option<String> { 102 + let location = panic_info 103 + .location() 104 + .map_or("".to_string(), |x| x.file().to_string()) 105 + diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs 106 + index d5251b53a..e654a288b 100644 107 + --- a/voxygen/src/scene/figure/cache.rs 108 + +++ b/voxygen/src/scene/figure/cache.rs 109 + @@ -406,7 +406,8 @@ where 110 + item_key: Option<ItemKey>, 111 + ) -> (FigureModelEntryLod<'c>, &'c Skel::Attr) 112 + where 113 + - for<'a> &'a Skel::Body: Into<Skel::Attr>, 114 + + Skel::Attr: 'c, 115 + + Skel::Attr: for<'a> From<&'a Skel::Body>, 116 + Skel::Body: Clone + Send + Sync + 'static, 117 + <Skel::Body as BodySpec>::Spec: Send + Sync + 'static, 118 + { 119 + @@ -443,7 +444,7 @@ where 120 + opaque, 121 + bounds, 122 + vertex_range, 123 + - }) = Arc::get_mut(recv).take().and_then(|cell| cell.take()) 124 + + }) = Arc::get_mut(recv).and_then(|cell| cell.take()) 125 + { 126 + let model_entry = atlas.create_figure( 127 + renderer, 128 + @@ -641,6 +642,7 @@ where 129 + sprite_render_state: &Arc<SpriteRenderState>, 130 + ) -> (TerrainModelEntryLod<'c>, &'c Skel::Attr) 131 + where 132 + + Skel::Attr: 'c, 133 + for<'a> &'a Skel::Body: Into<Skel::Attr>, 134 + Skel::Body: Clone + Send + Sync + 'static, 135 + <Skel::Body as BodySpec>::Spec: Send + Sync + 'static, 136 + @@ -669,7 +671,7 @@ where 137 + sprite_instances, 138 + blocks_of_interest, 139 + blocks_offset, 140 + - }) = Arc::get_mut(recv).take().and_then(|cell| cell.take()) 141 + + }) = Arc::get_mut(recv).and_then(|cell| cell.take()) 142 + { 143 + let model_entry = atlas.create_terrain( 144 + renderer, 145 + 146 + commit 97378a437847b8860e548de3ce70c2c53f9347f6 2 147 Author: rnhmjoj <rnhmjoj@inventati.org> 3 - Date: Mon Aug 5 00:34:55 2024 +0200 148 + Date: Wed Jul 30 00:23:35 2025 +0200 4 149 5 - update toolchain to `2024-05-14` 6 - 7 - Backport of 6ec900cf to v0.16.0 150 + Fix wasmtime-wasi build 8 151 9 - diff --git a/.cargo/config b/.cargo/config.toml 10 - similarity index 100% 11 - rename from .cargo/config 12 - rename to .cargo/config.toml 13 152 diff --git a/Cargo.lock b/Cargo.lock 14 - index d0f84803..6f90da69 100644 153 + index f751793bc..593f05ec1 100644 15 154 --- a/Cargo.lock 16 155 +++ b/Cargo.lock 17 - @@ -45,17 +45,6 @@ version = "0.4.8" 156 + @@ -1,6 +1,6 @@ 157 + # This file is automatically @generated by Cargo. 158 + # It is not intended for manual editing. 159 + -version = 3 160 + +version = 4 161 + 162 + [[package]] 163 + name = "ab_glyph" 164 + @@ -197,9 +197,9 @@ dependencies = [ 165 + 166 + [[package]] 167 + name = "anyhow" 168 + -version = "1.0.89" 169 + +version = "1.0.98" 170 + source = "registry+https://github.com/rust-lang/crates.io-index" 171 + -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 172 + +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" 173 + 174 + [[package]] 175 + name = "anymap2" 176 + @@ -248,9 +248,9 @@ dependencies = [ 177 + 178 + [[package]] 179 + name = "arbitrary" 180 + -version = "1.3.2" 181 + +version = "1.4.1" 182 + source = "registry+https://github.com/rust-lang/crates.io-index" 183 + -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" 184 + +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" 185 + 186 + [[package]] 187 + name = "arr_macro" 188 + @@ -350,7 +350,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 189 + dependencies = [ 190 + "proc-macro2 1.0.89", 191 + "quote 1.0.37", 192 + - "syn 2.0.79", 193 + + "syn 2.0.87", 194 + ] 195 + 196 + [[package]] 197 + @@ -518,7 +518,7 @@ dependencies = [ 198 + "regex", 199 + "rustc-hash 1.1.0", 200 + "shlex", 201 + - "syn 2.0.79", 202 + + "syn 2.0.87", 203 + ] 204 + 205 + [[package]] 206 + @@ -622,6 +622,9 @@ name = "bumpalo" 207 + version = "3.16.0" 18 208 source = "registry+https://github.com/rust-lang/crates.io-index" 19 - checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289" 209 + checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 210 + +dependencies = [ 211 + + "allocator-api2", 212 + +] 20 213 21 - -[[package]] 22 - -name = "ahash" 23 - -version = "0.7.8" 24 - -source = "registry+https://github.com/rust-lang/crates.io-index" 25 - -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 26 - -dependencies = [ 27 - - "getrandom 0.2.12", 28 - - "once_cell", 29 - - "version_check", 30 - -] 31 - - 32 214 [[package]] 33 - name = "ahash" 34 - version = "0.8.11" 35 - @@ -4538,16 +4527,6 @@ dependencies = [ 36 - "ttf-parser", 215 + name = "bytemuck" 216 + @@ -640,7 +643,7 @@ checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" 217 + dependencies = [ 218 + "proc-macro2 1.0.89", 219 + "quote 1.0.37", 220 + - "syn 2.0.79", 221 + + "syn 2.0.87", 37 222 ] 38 223 39 - -[[package]] 40 - -name = "packed_simd" 41 - -version = "0.3.9" 42 - -source = "registry+https://github.com/rust-lang/crates.io-index" 43 - -checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d" 44 - -dependencies = [ 45 - - "cfg-if 1.0.0", 46 - - "num-traits", 47 - -] 48 - - 224 + [[package]] 225 + @@ -980,7 +983,7 @@ dependencies = [ 226 + "heck 0.5.0", 227 + "proc-macro2 1.0.89", 228 + "quote 1.0.37", 229 + - "syn 2.0.79", 230 + + "syn 2.0.87", 231 + ] 232 + 49 233 [[package]] 50 - name = "parking" 51 - version = "2.2.0" 52 - @@ -5870,8 +5849,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 234 + @@ -1337,19 +1340,34 @@ dependencies = [ 235 + ] 53 236 54 237 [[package]] 55 - name = "shred" 56 - -version = "0.15.0" 57 - -source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85" 58 - +version = "0.16.1" 238 + -name = "cranelift-bforest" 239 + -version = "0.113.1" 240 + +name = "cranelift-assembler-x64" 241 + +version = "0.117.2" 242 + source = "registry+https://github.com/rust-lang/crates.io-index" 243 + -checksum = "540b193ff98b825a1f250a75b3118911af918a734154c69d80bcfcf91e7e9522" 244 + +checksum = "d2b83fcf2fc1c8954561490d02079b496fd0c757da88129981e15bfe3a548229" 245 + +dependencies = [ 246 + + "cranelift-assembler-x64-meta", 247 + +] 248 + + 249 + +[[package]] 250 + +name = "cranelift-assembler-x64-meta" 251 + +version = "0.117.2" 59 252 +source = "registry+https://github.com/rust-lang/crates.io-index" 60 - +checksum = "656294f5bdcf6d33f0cf89e88a72b58595e3fca0e77e4a4b9e9026179757fb1e" 253 + +checksum = "c7496a6e92b5cee48c5d772b0443df58816dee30fed6ba19b2a28e78037ecedf" 254 + + 255 + +[[package]] 256 + +name = "cranelift-bforest" 257 + +version = "0.117.2" 258 + +source = "registry+https://github.com/rust-lang/crates.io-index" 259 + +checksum = "73a9dc0a8d3d49ee772101924968830f1c1937d650c571d3c2dd69dc36a68f41" 260 + dependencies = [ 261 + "cranelift-entity", 262 + ] 263 + 264 + [[package]] 265 + name = "cranelift-bitset" 266 + -version = "0.113.1" 267 + +version = "0.117.2" 268 + source = "registry+https://github.com/rust-lang/crates.io-index" 269 + -checksum = "c7cb269598b9557ab942d687d3c1086d77c4b50dcf35813f3a65ba306fd42279" 270 + +checksum = "573c641174c40ef31021ae4a5a3ad78974e280633502d0dfc6e362385e0c100f" 271 + dependencies = [ 272 + "serde", 273 + "serde_derive", 274 + @@ -1357,11 +1375,12 @@ dependencies = [ 275 + 276 + [[package]] 277 + name = "cranelift-codegen" 278 + -version = "0.113.1" 279 + +version = "0.117.2" 280 + source = "registry+https://github.com/rust-lang/crates.io-index" 281 + -checksum = "46566d7c83a8bff4150748d66020f4c7224091952aa4b4df1ec4959c39d937a1" 282 + +checksum = "2d7c94d572615156f2db682181cadbd96342892c31e08cc26a757344319a9220" 283 + dependencies = [ 284 + "bumpalo", 285 + + "cranelift-assembler-x64", 286 + "cranelift-bforest", 287 + "cranelift-bitset", 288 + "cranelift-codegen-meta", 289 + @@ -1370,43 +1389,47 @@ dependencies = [ 290 + "cranelift-entity", 291 + "cranelift-isle", 292 + "gimli", 293 + - "hashbrown 0.14.5", 294 + + "hashbrown 0.15.4", 295 + "log", 296 + + "pulley-interpreter", 297 + "regalloc2", 298 + "rustc-hash 2.0.0", 299 + + "serde", 300 + "smallvec", 301 + "target-lexicon", 302 + ] 303 + 304 + [[package]] 305 + name = "cranelift-codegen-meta" 306 + -version = "0.113.1" 307 + +version = "0.117.2" 308 + source = "registry+https://github.com/rust-lang/crates.io-index" 309 + -checksum = "2df8a86a34236cc75a8a6a271973da779c2aeb36c43b6e14da474cf931317082" 310 + +checksum = "beecd9fcf2c3e06da436d565de61a42676097ea6eb6b4499346ac6264b6bb9ce" 311 + dependencies = [ 312 + + "cranelift-assembler-x64", 313 + "cranelift-codegen-shared", 314 + + "pulley-interpreter", 315 + ] 316 + 317 + [[package]] 318 + name = "cranelift-codegen-shared" 319 + -version = "0.113.1" 320 + +version = "0.117.2" 321 + source = "registry+https://github.com/rust-lang/crates.io-index" 322 + -checksum = "cf75340b6a57b7c7c1b74f10d3d90883ee6d43a554be8131a4046c2ebcf5eb65" 323 + +checksum = "0f4ff8d2e1235f2d6e7fc3c6738be6954ba972cd295f09079ebffeca2f864e22" 324 + 325 + [[package]] 326 + name = "cranelift-control" 327 + -version = "0.113.1" 328 + +version = "0.117.2" 329 + source = "registry+https://github.com/rust-lang/crates.io-index" 330 + -checksum = "2e84495bc5d23d86aad8c86f8ade4af765b94882af60d60e271d3153942f1978" 331 + +checksum = "001312e9fbc7d9ca9517474d6fe71e29d07e52997fd7efe18f19e8836446ceb2" 332 + dependencies = [ 333 + "arbitrary", 334 + ] 335 + 336 + [[package]] 337 + name = "cranelift-entity" 338 + -version = "0.113.1" 339 + +version = "0.117.2" 340 + source = "registry+https://github.com/rust-lang/crates.io-index" 341 + -checksum = "963c17147b80df351965e57c04d20dbedc85bcaf44c3436780a59a3f1ff1b1c2" 342 + +checksum = "eb0fd6d4aae680275fcbceb08683416b744e65c8b607352043d3f0951d72b3b2" 343 + dependencies = [ 344 + "cranelift-bitset", 345 + "serde", 346 + @@ -1415,9 +1438,9 @@ dependencies = [ 347 + 348 + [[package]] 349 + name = "cranelift-frontend" 350 + -version = "0.113.1" 351 + +version = "0.117.2" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + -checksum = "727f02acbc4b4cb2ba38a6637101d579db50190df1dd05168c68e762851a3dd5" 354 + +checksum = "9fd44e7e5dcea20ca104d45894748205c51365ce4cdb18f4418e3ba955971d1b" 355 + dependencies = [ 356 + "cranelift-codegen", 357 + "log", 358 + @@ -1427,15 +1450,15 @@ dependencies = [ 359 + 360 + [[package]] 361 + name = "cranelift-isle" 362 + -version = "0.113.1" 363 + +version = "0.117.2" 364 + source = "registry+https://github.com/rust-lang/crates.io-index" 365 + -checksum = "32b00cc2e03c748f2531eea01c871f502b909d30295fdcad43aec7bf5c5b4667" 366 + +checksum = "f900e0a3847d51eed0321f0777947fb852ccfce0da7fb070100357f69a2f37fc" 367 + 368 + [[package]] 369 + name = "cranelift-native" 370 + -version = "0.113.1" 371 + +version = "0.117.2" 372 + source = "registry+https://github.com/rust-lang/crates.io-index" 373 + -checksum = "bbeaf978dc7c1a2de8bbb9162510ed218eb156697bc45590b8fbdd69bb08e8de" 374 + +checksum = "7617f13f392ebb63c5126258aca8b8eca739636ca7e4eeee301d3eff68489a6a" 375 + dependencies = [ 376 + "cranelift-codegen", 377 + "libc", 378 + @@ -1647,7 +1670,7 @@ checksum = "1234e1717066d3c71dcf89b75e7b586299e41204d361db56ec51e6ded5014279" 379 + dependencies = [ 380 + "proc-macro2 1.0.89", 381 + "quote 1.0.37", 382 + - "syn 2.0.79", 383 + + "syn 2.0.87", 384 + ] 385 + 386 + [[package]] 387 + @@ -1697,7 +1720,7 @@ dependencies = [ 388 + "proc-macro2 1.0.89", 389 + "quote 1.0.37", 390 + "strsim", 391 + - "syn 2.0.79", 392 + + "syn 2.0.87", 393 + ] 394 + 395 + [[package]] 396 + @@ -1708,7 +1731,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 397 + dependencies = [ 398 + "darling_core", 399 + "quote 1.0.37", 400 + - "syn 2.0.79", 401 + + "syn 2.0.87", 402 + ] 403 + 404 + [[package]] 405 + @@ -1884,7 +1907,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 406 + dependencies = [ 407 + "proc-macro2 1.0.89", 408 + "quote 1.0.37", 409 + - "syn 2.0.79", 410 + + "syn 2.0.87", 411 + ] 412 + 413 + [[package]] 414 + @@ -2044,7 +2067,7 @@ dependencies = [ 415 + "heck 0.5.0", 416 + "proc-macro2 1.0.89", 417 + "quote 1.0.37", 418 + - "syn 2.0.79", 419 + + "syn 2.0.87", 420 + ] 421 + 422 + [[package]] 423 + @@ -2065,7 +2088,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" 424 + dependencies = [ 425 + "proc-macro2 1.0.89", 426 + "quote 1.0.37", 427 + - "syn 2.0.79", 428 + + "syn 2.0.87", 429 + ] 430 + 431 + [[package]] 432 + @@ -2086,7 +2109,7 @@ dependencies = [ 433 + "darling", 434 + "proc-macro2 1.0.89", 435 + "quote 1.0.37", 436 + - "syn 2.0.79", 437 + + "syn 2.0.87", 438 + ] 439 + 440 + [[package]] 441 + @@ -2112,12 +2135,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 442 + 443 + [[package]] 444 + name = "errno" 445 + -version = "0.3.9" 446 + +version = "0.3.13" 447 + source = "registry+https://github.com/rust-lang/crates.io-index" 448 + -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 449 + +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 450 + dependencies = [ 451 + "libc", 452 + - "windows-sys 0.52.0", 453 + + "windows-sys 0.59.0", 454 + ] 455 + 456 + [[package]] 457 + @@ -2377,7 +2400,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 458 + dependencies = [ 459 + "proc-macro2 1.0.89", 460 + "quote 1.0.37", 461 + - "syn 2.0.79", 462 + + "syn 2.0.87", 463 + ] 464 + 465 + [[package]] 466 + @@ -2484,7 +2507,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 467 + dependencies = [ 468 + "proc-macro2 1.0.89", 469 + "quote 1.0.37", 470 + - "syn 2.0.79", 471 + + "syn 2.0.87", 472 + ] 473 + 474 + [[package]] 475 + @@ -2651,7 +2674,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 476 + checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" 477 + dependencies = [ 478 + "fallible-iterator", 479 + - "indexmap 2.5.0", 480 + + "indexmap 2.10.0", 481 + "stable_deref_trait", 482 + ] 483 + 484 + @@ -2860,16 +2883,14 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 61 485 dependencies = [ 62 486 "ahash 0.8.11", 63 - "arrayvec", 64 - @@ -5884,8 +5864,9 @@ dependencies = [ 487 + "allocator-api2", 488 + - "serde", 489 + ] 490 + 491 + [[package]] 492 + name = "hashbrown" 493 + -version = "0.15.1" 494 + +version = "0.15.4" 495 + source = "registry+https://github.com/rust-lang/crates.io-index" 496 + -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" 497 + +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 498 + dependencies = [ 499 + - "allocator-api2", 500 + "equivalent", 501 + "foldhash", 502 + "rayon", 503 + @@ -3330,7 +3351,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 504 + dependencies = [ 505 + "proc-macro2 1.0.89", 506 + "quote 1.0.37", 507 + - "syn 2.0.79", 508 + + "syn 2.0.87", 509 + ] 510 + 511 + [[package]] 512 + @@ -3393,12 +3414,12 @@ dependencies = [ 513 + 514 + [[package]] 515 + name = "indexmap" 516 + -version = "2.5.0" 517 + +version = "2.10.0" 518 + source = "registry+https://github.com/rust-lang/crates.io-index" 519 + -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 520 + +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 521 + dependencies = [ 522 + "equivalent", 523 + - "hashbrown 0.14.5", 524 + + "hashbrown 0.15.4", 525 + "rayon", 526 + "serde", 527 + ] 528 + @@ -3438,7 +3459,7 @@ dependencies = [ 529 + "lazy_static", 530 + "proc-macro2 1.0.89", 531 + "rustc-hash 1.1.0", 532 + - "syn 2.0.79", 533 + + "syn 2.0.87", 534 + ] 535 + 536 + [[package]] 537 + @@ -3449,7 +3470,7 @@ checksum = "46d62a0a3b6af04d4eee8e7251cd758ce74b0ed86253d3e4ac8a1b297a75f4a0" 538 + dependencies = [ 539 + "proc-macro2 1.0.89", 540 + "quote 1.0.37", 541 + - "syn 2.0.79", 542 + + "syn 2.0.87", 543 + ] 544 + 545 + [[package]] 546 + @@ -3505,7 +3526,7 @@ dependencies = [ 547 + "pretty_assertions", 548 + "proc-macro2 1.0.89", 549 + "quote 1.0.37", 550 + - "syn 2.0.79", 551 + + "syn 2.0.87", 552 + ] 553 + 554 + [[package]] 555 + @@ -3637,9 +3658,9 @@ dependencies = [ 556 + 557 + [[package]] 558 + name = "itoa" 559 + -version = "1.0.11" 560 + +version = "1.0.15" 561 + source = "registry+https://github.com/rust-lang/crates.io-index" 562 + -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 563 + +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 65 564 66 565 [[package]] 67 - name = "shred-derive" 68 - -version = "0.6.3" 69 - -source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85" 70 - +version = "0.7.0" 566 + name = "ittapi" 567 + @@ -3821,6 +3842,12 @@ version = "0.2.5" 568 + source = "registry+https://github.com/rust-lang/crates.io-index" 569 + checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" 570 + 571 + +[[package]] 572 + +name = "leb128fmt" 573 + +version = "0.1.0" 71 574 +source = "registry+https://github.com/rust-lang/crates.io-index" 72 - +checksum = "69760b786f8b40361c10663eb63c81fa7d828008527d26aa7595b99c53ab3a8d" 575 + +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 576 + + 577 + [[package]] 578 + name = "levenshtein" 579 + version = "1.0.5" 580 + @@ -3850,7 +3877,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 581 + checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" 582 + dependencies = [ 583 + "cfg-if 1.0.0", 584 + - "windows-targets 0.48.5", 585 + + "windows-targets 0.52.6", 586 + ] 587 + 588 + [[package]] 589 + @@ -4239,7 +4266,7 @@ dependencies = [ 590 + "bitflags 2.6.0", 591 + "codespan-reporting", 592 + "hexf-parse", 593 + - "indexmap 2.5.0", 594 + + "indexmap 2.10.0", 595 + "log", 596 + "num-traits", 597 + "petgraph 0.6.5", 598 + @@ -4569,7 +4596,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 599 + dependencies = [ 600 + "proc-macro2 1.0.89", 601 + "quote 1.0.37", 602 + - "syn 2.0.79", 603 + + "syn 2.0.87", 604 + ] 605 + 606 + [[package]] 607 + @@ -4683,7 +4710,7 @@ dependencies = [ 608 + "proc-macro-crate", 609 + "proc-macro2 1.0.89", 610 + "quote 1.0.37", 611 + - "syn 2.0.79", 612 + + "syn 2.0.87", 613 + ] 614 + 615 + [[package]] 616 + @@ -4695,7 +4722,7 @@ dependencies = [ 617 + "proc-macro-crate", 618 + "proc-macro2 1.0.89", 619 + "quote 1.0.37", 620 + - "syn 2.0.79", 621 + + "syn 2.0.87", 622 + ] 623 + 624 + [[package]] 625 + @@ -4870,13 +4897,13 @@ dependencies = [ 626 + 627 + [[package]] 628 + name = "object" 629 + -version = "0.36.4" 630 + +version = "0.36.7" 631 + source = "registry+https://github.com/rust-lang/crates.io-index" 632 + -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" 633 + +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 634 + dependencies = [ 635 + "crc32fast", 636 + - "hashbrown 0.14.5", 637 + - "indexmap 2.5.0", 638 + + "hashbrown 0.15.4", 639 + + "indexmap 2.10.0", 640 + "memchr", 641 + ] 642 + 643 + @@ -5051,7 +5078,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 644 + checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" 645 + dependencies = [ 646 + "fixedbitset 0.4.2", 647 + - "indexmap 2.5.0", 648 + + "indexmap 2.10.0", 649 + ] 650 + 651 + [[package]] 652 + @@ -5288,7 +5315,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 653 + checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" 654 + dependencies = [ 655 + "quote 1.0.37", 656 + - "syn 2.0.79", 657 + + "syn 2.0.87", 658 + ] 659 + 660 + [[package]] 661 + @@ -5354,13 +5381,13 @@ dependencies = [ 662 + 663 + [[package]] 664 + name = "pulley-interpreter" 665 + -version = "26.0.1" 666 + +version = "30.0.2" 667 + source = "registry+https://github.com/rust-lang/crates.io-index" 668 + -checksum = "df33e7f8a43ccc7f93b330fef4baf271764674926f3f4d40f4a196d54de8af26" 669 + +checksum = "cb0ecb9823083f71df8735f21f6c44f2f2b55986d674802831df20f27e26c907" 670 + dependencies = [ 671 + "cranelift-bitset", 672 + "log", 673 + - "sptr", 674 + + "wasmtime-math", 675 + ] 676 + 677 + [[package]] 678 + @@ -5660,19 +5687,20 @@ dependencies = [ 679 + "quote 1.0.37", 680 + "refinery-core", 681 + "regex", 682 + - "syn 2.0.79", 683 + + "syn 2.0.87", 684 + ] 685 + 686 + [[package]] 687 + name = "regalloc2" 688 + -version = "0.10.2" 689 + +version = "0.11.2" 690 + source = "registry+https://github.com/rust-lang/crates.io-index" 691 + -checksum = "12908dbeb234370af84d0579b9f68258a0f67e201412dd9a2814e6f45b2fc0f0" 692 + +checksum = "dc06e6b318142614e4a48bc725abbf08ff166694835c43c9dae5a9009704639a" 693 + dependencies = [ 694 + - "hashbrown 0.14.5", 695 + + "allocator-api2", 696 + + "bumpalo", 697 + + "hashbrown 0.15.4", 698 + "log", 699 + "rustc-hash 2.0.0", 700 + - "slice-group-by", 701 + "smallvec", 702 + ] 703 + 704 + @@ -5883,9 +5911,9 @@ dependencies = [ 705 + 706 + [[package]] 707 + name = "rustix" 708 + -version = "0.38.40" 709 + +version = "0.38.44" 710 + source = "registry+https://github.com/rust-lang/crates.io-index" 711 + -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" 712 + +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 713 + dependencies = [ 714 + "bitflags 2.6.0", 715 + "errno", 716 + @@ -5893,7 +5921,7 @@ dependencies = [ 717 + "libc", 718 + "linux-raw-sys", 719 + "once_cell", 720 + - "windows-sys 0.52.0", 721 + + "windows-sys 0.59.0", 722 + ] 723 + 724 + [[package]] 725 + @@ -6197,22 +6225,22 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 726 + 727 + [[package]] 728 + name = "serde" 729 + -version = "1.0.210" 730 + +version = "1.0.219" 731 + source = "registry+https://github.com/rust-lang/crates.io-index" 732 + -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 733 + +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 73 734 dependencies = [ 74 - "proc-macro2 1.0.79", 75 - "quote 1.0.35", 76 - @@ -6019,10 +6000,9 @@ dependencies = [ 735 + "serde_derive", 736 + ] 737 + 738 + [[package]] 739 + name = "serde_derive" 740 + -version = "1.0.210" 741 + +version = "1.0.219" 742 + source = "registry+https://github.com/rust-lang/crates.io-index" 743 + -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 744 + +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 745 + dependencies = [ 746 + "proc-macro2 1.0.89", 747 + "quote 1.0.37", 748 + - "syn 2.0.79", 749 + + "syn 2.0.87", 750 + ] 751 + 752 + [[package]] 753 + @@ -6245,7 +6273,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" 754 + dependencies = [ 755 + "proc-macro2 1.0.89", 756 + "quote 1.0.37", 757 + - "syn 2.0.79", 758 + + "syn 2.0.87", 759 + ] 760 + 761 + [[package]] 762 + @@ -6277,10 +6305,10 @@ checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" 763 + dependencies = [ 764 + "base64 0.22.1", 765 + "chrono", 766 + - "hashbrown 0.15.1", 767 + + "hashbrown 0.15.4", 768 + "hex", 769 + "indexmap 1.9.3", 770 + - "indexmap 2.5.0", 771 + + "indexmap 2.10.0", 772 + "serde", 773 + "serde_derive", 774 + "serde_json", 775 + @@ -6297,7 +6325,7 @@ dependencies = [ 776 + "darling", 777 + "proc-macro2 1.0.89", 778 + "quote 1.0.37", 779 + - "syn 2.0.79", 780 + + "syn 2.0.87", 781 + ] 782 + 77 783 [[package]] 78 - name = "specs" 79 - version = "0.20.0" 784 + @@ -6458,12 +6486,6 @@ dependencies = [ 785 + "autocfg", 786 + ] 787 + 788 + -[[package]] 789 + -name = "slice-group-by" 790 + -version = "0.3.1" 80 791 -source = "registry+https://github.com/rust-lang/crates.io-index" 81 - -checksum = "a60eabdfd5a80e458c3e7bcc9f1076d6ce3cc8ddb71d69691f00fc0de735a635" 82 - +source = "git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27#4e2da1df29ee840baa9b936593c45592b7c9ae27" 792 + -checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" 793 + - 794 + [[package]] 795 + name = "slotmap" 796 + version = "1.0.7" 797 + @@ -6697,7 +6719,7 @@ dependencies = [ 798 + "proc-macro2 1.0.89", 799 + "quote 1.0.37", 800 + "rustversion", 801 + - "syn 2.0.79", 802 + + "syn 2.0.87", 803 + ] 804 + 805 + [[package]] 806 + @@ -6813,9 +6835,9 @@ dependencies = [ 807 + 808 + [[package]] 809 + name = "syn" 810 + -version = "2.0.79" 811 + +version = "2.0.87" 812 + source = "registry+https://github.com/rust-lang/crates.io-index" 813 + -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" 814 + +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" 815 + dependencies = [ 816 + "proc-macro2 1.0.89", 817 + "quote 1.0.37", 818 + @@ -6851,7 +6873,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 83 819 dependencies = [ 84 - - "ahash 0.7.8", 85 - + "ahash 0.8.11", 86 - "crossbeam-queue", 87 - "hibitset", 88 - "log", 89 - @@ -6904,9 +6884,9 @@ dependencies = [ 820 + "proc-macro2 1.0.89", 821 + "quote 1.0.37", 822 + - "syn 2.0.79", 823 + + "syn 2.0.87", 824 + ] 825 + 826 + [[package]] 827 + @@ -6889,9 +6911,9 @@ dependencies = [ 90 828 91 829 [[package]] 92 - name = "vek" 93 - -version = "0.16.1" 94 - +version = "0.17.0" 830 + name = "target-lexicon" 831 + -version = "0.12.16" 832 + +version = "0.13.2" 95 833 source = "registry+https://github.com/rust-lang/crates.io-index" 96 - -checksum = "c85158043f3bc1fac596d59a77e07948da340b9951b451ed4cb4a8c480aa2157" 97 - +checksum = "cb40015035f83ba23d647e647f8be060d0f6f99b7c7687989fbca3e3d65e7234" 834 + -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 835 + +checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" 836 + 837 + [[package]] 838 + name = "tempfile" 839 + @@ -6932,7 +6954,7 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" 98 840 dependencies = [ 99 - "approx 0.5.1", 100 - "num-integer", 101 - @@ -6936,7 +6916,7 @@ dependencies = [ 102 - "specs", 103 - "tokio", 104 - "tracing", 105 - - "vek 0.16.1", 106 - + "vek 0.17.0", 107 - "veloren-client-i18n", 108 - "veloren-common", 109 - "veloren-common-base", 110 - @@ -7007,7 +6987,7 @@ dependencies = [ 111 - "tracing", 112 - "tracing-subscriber", 113 - "uuid", 114 - - "vek 0.16.1", 115 - + "vek 0.17.0", 116 - "veloren-common-assets", 117 - "veloren-common-base", 118 - "veloren-common-i18n", 119 - @@ -7092,7 +7072,7 @@ dependencies = [ 120 - "specs", 121 - "sum_type", 122 - "tracing", 123 - - "vek 0.16.1", 124 - + "vek 0.17.0", 125 - "veloren-common", 841 + "proc-macro2 1.0.89", 842 + "quote 1.0.37", 843 + - "syn 2.0.79", 844 + + "syn 2.0.87", 126 845 ] 127 846 128 - @@ -7116,7 +7096,7 @@ dependencies = [ 129 - "timer-queue", 130 - "toml 0.8.12", 131 - "tracing", 132 - - "vek 0.16.1", 133 - + "vek 0.17.0", 134 - "veloren-common", 135 - "veloren-common-assets", 136 - "veloren-common-base", 137 - @@ -7136,7 +7116,7 @@ dependencies = [ 138 - "rayon", 139 - "specs", 140 - "tracing", 141 - - "vek 0.16.1", 142 - + "vek 0.17.0", 143 - "veloren-common", 144 - "veloren-common-base", 145 - "veloren-common-ecs", 146 - @@ -7208,7 +7188,7 @@ dependencies = [ 847 + [[package]] 848 + @@ -7070,7 +7092,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 849 + dependencies = [ 850 + "proc-macro2 1.0.89", 851 + "quote 1.0.37", 852 + - "syn 2.0.79", 853 + + "syn 2.0.87", 854 + ] 855 + 856 + [[package]] 857 + @@ -7131,7 +7153,7 @@ version = "0.19.15" 858 + source = "registry+https://github.com/rust-lang/crates.io-index" 859 + checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 860 + dependencies = [ 861 + - "indexmap 2.5.0", 862 + + "indexmap 2.10.0", 863 + "toml_datetime", 864 + "winnow 0.5.40", 865 + ] 866 + @@ -7142,7 +7164,7 @@ version = "0.22.22" 867 + source = "registry+https://github.com/rust-lang/crates.io-index" 868 + checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 869 + dependencies = [ 870 + - "indexmap 2.5.0", 871 + + "indexmap 2.10.0", 147 872 "serde", 148 - "slotmap", 149 - "tracing", 150 - - "vek 0.16.1", 151 - + "vek 0.17.0", 152 - "veloren-common", 153 - "veloren-world", 873 + "serde_spanned", 874 + "toml_datetime", 875 + @@ -7209,7 +7231,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 876 + dependencies = [ 877 + "proc-macro2 1.0.89", 878 + "quote 1.0.37", 879 + - "syn 2.0.79", 880 + + "syn 2.0.87", 881 + ] 882 + 883 + [[package]] 884 + @@ -7283,6 +7305,17 @@ dependencies = [ 885 + "cc", 154 886 ] 155 - @@ -7251,7 +7231,7 @@ dependencies = [ 156 - "strum 0.24.1", 157 - "tokio", 887 + 888 + +[[package]] 889 + +name = "trait-variant" 890 + +version = "0.1.2" 891 + +source = "registry+https://github.com/rust-lang/crates.io-index" 892 + +checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" 893 + +dependencies = [ 894 + + "proc-macro2 1.0.89", 895 + + "quote 1.0.37", 896 + + "syn 2.0.87", 897 + +] 898 + + 899 + [[package]] 900 + name = "treeculler" 901 + version = "0.4.0" 902 + @@ -7525,7 +7558,7 @@ dependencies = [ 903 + "authc", 904 + "byteorder", 905 + "clap", 906 + - "hashbrown 0.15.1", 907 + + "hashbrown 0.15.4", 908 + "hickory-resolver", 909 + "image", 910 + "num 0.4.3", 911 + @@ -7559,7 +7592,7 @@ dependencies = [ 912 + "fluent", 913 + "fluent-bundle", 914 + "fluent-syntax", 915 + - "hashbrown 0.15.1", 916 + + "hashbrown 0.15.4", 917 + "intl-memoizer", 918 + "serde", 158 919 "tracing", 159 - - "vek 0.16.1", 160 - + "vek 0.17.0", 161 - "veloren-common", 162 - "veloren-common-base", 163 - "veloren-common-ecs", 164 - @@ -7272,7 +7252,7 @@ dependencies = [ 920 + @@ -7583,8 +7616,8 @@ dependencies = [ 921 + "dot_vox", 922 + "enum-map", 923 + "fxhash", 924 + - "hashbrown 0.15.1", 925 + - "indexmap 2.5.0", 926 + + "hashbrown 0.15.4", 927 + + "indexmap 2.10.0", 928 + "itertools 0.13.0", 929 + "kiddo", 165 930 "lazy_static", 166 - "rand 0.8.5", 167 - "specs", 168 - - "vek 0.16.1", 169 - + "vek 0.17.0", 170 - "veloren-common", 171 - "veloren-common-dynlib", 172 - "veloren-rtsim", 173 - @@ -7368,7 +7348,7 @@ dependencies = [ 174 - "tokio", 175 - "tracing", 176 - "treeculler", 177 - - "vek 0.16.1", 178 - + "vek 0.17.0", 179 - "veloren-client", 180 - "veloren-client-i18n", 181 - "veloren-common", 182 - @@ -7396,7 +7376,7 @@ version = "0.10.0" 931 + @@ -7621,7 +7654,7 @@ version = "0.10.0" 183 932 dependencies = [ 184 - "bytemuck", 933 + "assets_manager", 934 + "dot_vox", 935 + - "hashbrown 0.15.1", 936 + + "hashbrown 0.15.4", 937 + "image", 185 938 "lazy_static", 186 - - "vek 0.16.1", 187 - + "vek 0.17.0", 188 - "veloren-common", 189 - "veloren-common-dynlib", 939 + "ron", 940 + @@ -7676,7 +7709,7 @@ dependencies = [ 941 + name = "veloren-common-i18n" 942 + version = "0.1.0" 943 + dependencies = [ 944 + - "hashbrown 0.15.1", 945 + + "hashbrown 0.15.4", 946 + "rand", 947 + "serde", 190 948 ] 191 - @@ -7452,7 +7432,6 @@ dependencies = [ 192 - "num 0.4.1", 949 + @@ -7687,7 +7720,7 @@ version = "0.10.0" 950 + dependencies = [ 951 + "bincode", 952 + "flate2", 953 + - "hashbrown 0.15.1", 954 + + "hashbrown 0.15.4", 955 + "image", 193 956 "num-traits", 194 - "ordered-float 3.9.2", 195 - - "packed_simd", 196 - "rand 0.8.5", 197 - "rand_chacha 0.3.1", 957 + "serde", 958 + @@ -7706,7 +7739,7 @@ dependencies = [ 959 + "bincode", 960 + "bytes", 961 + "futures", 962 + - "hashbrown 0.15.1", 963 + + "hashbrown 0.15.4", 964 + "hex", 965 + "num_cpus", 198 966 "rayon", 199 - @@ -7465,7 +7444,7 @@ dependencies = [ 200 - "svg_fmt", 967 + @@ -7758,7 +7791,7 @@ dependencies = [ 968 + "criterion", 969 + "crossbeam-channel", 970 + "futures-util", 971 + - "hashbrown 0.15.1", 972 + + "hashbrown 0.15.4", 973 + "lazy_static", 974 + "lz-fear", 975 + "prometheus", 976 + @@ -7786,7 +7819,7 @@ dependencies = [ 977 + "bitflags 2.6.0", 978 + "bytes", 979 + "criterion", 980 + - "hashbrown 0.15.1", 981 + + "hashbrown 0.15.4", 982 + "prometheus", 983 + "rand", 984 + "tokio", 985 + @@ -7813,7 +7846,7 @@ dependencies = [ 986 + "atomic_refcell", 987 + "enum-map", 988 + "fxhash", 989 + - "hashbrown 0.15.1", 990 + + "hashbrown 0.15.4", 991 + "itertools 0.13.0", 992 + "rand", 993 + "rand_chacha", 994 + @@ -7841,7 +7874,7 @@ dependencies = [ 995 + "drop_guard", 996 + "enum-map", 997 + "futures-util", 998 + - "hashbrown 0.15.1", 999 + + "hashbrown 0.15.4", 1000 + "humantime", 1001 + "itertools 0.13.0", 1002 + "lazy_static", 1003 + @@ -7957,7 +7990,7 @@ dependencies = [ 1004 + "gilrs", 1005 + "glyph_brush", 1006 + "guillotiere", 1007 + - "hashbrown 0.15.1", 1008 + + "hashbrown 0.15.4", 1009 + "iced_native", 1010 + "iced_winit", 1011 + "image", 1012 + @@ -8063,7 +8096,7 @@ dependencies = [ 1013 + "fixed", 1014 + "flate2", 1015 + "fxhash", 1016 + - "hashbrown 0.15.1", 1017 + + "hashbrown 0.15.4", 1018 + "image", 1019 + "indicatif", 1020 + "itertools 0.13.0", 1021 + @@ -8164,7 +8197,7 @@ dependencies = [ 1022 + "once_cell", 1023 + "proc-macro2 1.0.89", 1024 + "quote 1.0.37", 1025 + - "syn 2.0.79", 1026 + + "syn 2.0.87", 1027 + "wasm-bindgen-shared", 1028 + ] 1029 + 1030 + @@ -8198,7 +8231,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" 1031 + dependencies = [ 1032 + "proc-macro2 1.0.89", 1033 + "quote 1.0.37", 1034 + - "syn 2.0.79", 1035 + + "syn 2.0.87", 1036 + "wasm-bindgen-backend", 1037 + "wasm-bindgen-shared", 1038 + ] 1039 + @@ -8211,63 +8244,64 @@ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" 1040 + 1041 + [[package]] 1042 + name = "wasm-encoder" 1043 + -version = "0.218.0" 1044 + +version = "0.224.1" 1045 + source = "registry+https://github.com/rust-lang/crates.io-index" 1046 + -checksum = "22b896fa8ceb71091ace9bcb81e853f54043183a1c9667cf93422c40252ffa0a" 1047 + +checksum = "1ab7a13a23790fe91ea4eb7526a1f3131001d874e3e00c2976c48861f2e82920" 1048 + dependencies = [ 1049 + "leb128", 1050 + + "wasmparser 0.224.1", 1051 + ] 1052 + 1053 + [[package]] 1054 + name = "wasm-encoder" 1055 + -version = "0.220.0" 1056 + +version = "0.236.0" 1057 + source = "registry+https://github.com/rust-lang/crates.io-index" 1058 + -checksum = "ebf48234b389415b226a4daef6562933d38c7b28a8b8f64c5c4130dad1561ab7" 1059 + +checksum = "3108979166ab0d3c7262d2e16a2190ffe784b2a5beb963edef154b5e8e07680b" 1060 + dependencies = [ 1061 + - "leb128", 1062 + - "wasmparser 0.220.0", 1063 + + "leb128fmt", 1064 + + "wasmparser 0.236.0", 1065 + ] 1066 + 1067 + [[package]] 1068 + name = "wasmparser" 1069 + -version = "0.218.0" 1070 + +version = "0.224.1" 1071 + source = "registry+https://github.com/rust-lang/crates.io-index" 1072 + -checksum = "b09e46c7fceceaa72b2dd1a8a137ea7fd8f93dfaa69806010a709918e496c5dc" 1073 + +checksum = "04f17a5917c2ddd3819e84c661fae0d6ba29d7b9c1f0e96c708c65a9c4188e11" 1074 + dependencies = [ 1075 + - "ahash 0.8.11", 1076 + "bitflags 2.6.0", 1077 + - "hashbrown 0.14.5", 1078 + - "indexmap 2.5.0", 1079 + + "hashbrown 0.15.4", 1080 + + "indexmap 2.10.0", 1081 + "semver 1.0.23", 1082 + "serde", 1083 + ] 1084 + 1085 + [[package]] 1086 + name = "wasmparser" 1087 + -version = "0.220.0" 1088 + +version = "0.236.0" 1089 + source = "registry+https://github.com/rust-lang/crates.io-index" 1090 + -checksum = "e246c2772ce3ebc83f89a2d4487ac5794cad6c309b2071818a88c7db7c36d87b" 1091 + +checksum = "16d1eee846a705f6f3cb9d7b9f79b54583810f1fb57a1e3aea76d1742db2e3d2" 1092 + dependencies = [ 1093 + "bitflags 2.6.0", 1094 + - "indexmap 2.5.0", 1095 + + "indexmap 2.10.0", 1096 + + "semver 1.0.23", 1097 + ] 1098 + 1099 + [[package]] 1100 + name = "wasmprinter" 1101 + -version = "0.218.0" 1102 + +version = "0.224.1" 1103 + source = "registry+https://github.com/rust-lang/crates.io-index" 1104 + -checksum = "0ace089155491837b75f474bf47c99073246d1b737393fe722d6dee311595ddc" 1105 + +checksum = "0095b53a3b09cbc2f90f789ea44aa1b17ecc2dad8b267e657c7391f3ded6293d" 1106 + dependencies = [ 1107 + "anyhow", 1108 + "termcolor", 1109 + - "wasmparser 0.218.0", 1110 + + "wasmparser 0.224.1", 1111 + ] 1112 + 1113 + [[package]] 1114 + name = "wasmtime" 1115 + -version = "26.0.1" 1116 + +version = "30.0.2" 1117 + source = "registry+https://github.com/rust-lang/crates.io-index" 1118 + -checksum = "51e762e163fd305770c6c341df3290f0cabb3c264e7952943018e9a1ced8d917" 1119 + +checksum = "809cc8780708f1deed0a7c3fcab46954f0e8c08a6fe0252772481fbc88fcf946" 1120 + dependencies = [ 1121 + "addr2line", 1122 + "anyhow", 1123 + @@ -8279,11 +8313,10 @@ dependencies = [ 1124 + "encoding_rs", 1125 + "fxprof-processed-profile", 1126 + "gimli", 1127 + - "hashbrown 0.14.5", 1128 + - "indexmap 2.5.0", 1129 + + "hashbrown 0.15.4", 1130 + + "indexmap 2.10.0", 1131 + "ittapi", 1132 + "libc", 1133 + - "libm", 1134 + "log", 1135 + "mach2", 1136 + "memfd", 1137 + @@ -8302,8 +8335,9 @@ dependencies = [ 1138 + "smallvec", 1139 + "sptr", 1140 + "target-lexicon", 1141 + - "wasm-encoder 0.218.0", 1142 + - "wasmparser 0.218.0", 1143 + + "trait-variant", 1144 + + "wasm-encoder 0.224.1", 1145 + + "wasmparser 0.224.1", 1146 + "wasmtime-asm-macros", 1147 + "wasmtime-cache", 1148 + "wasmtime-component-macro", 1149 + @@ -8313,6 +8347,7 @@ dependencies = [ 1150 + "wasmtime-fiber", 1151 + "wasmtime-jit-debug", 1152 + "wasmtime-jit-icache-coherence", 1153 + + "wasmtime-math", 1154 + "wasmtime-slab", 1155 + "wasmtime-versioned-export-macros", 1156 + "wasmtime-winch", 1157 + @@ -8322,18 +8357,18 @@ dependencies = [ 1158 + 1159 + [[package]] 1160 + name = "wasmtime-asm-macros" 1161 + -version = "26.0.1" 1162 + +version = "30.0.2" 1163 + source = "registry+https://github.com/rust-lang/crates.io-index" 1164 + -checksum = "63caa7aebb546374e26257a1900fb93579171e7c02514cde26805b9ece3ef812" 1165 + +checksum = "236964b6b35af0f08879c9c56dbfbc5adc12e8d624672341a0121df31adaa3fa" 1166 + dependencies = [ 1167 + "cfg-if 1.0.0", 1168 + ] 1169 + 1170 + [[package]] 1171 + name = "wasmtime-cache" 1172 + -version = "26.0.1" 1173 + +version = "30.0.2" 1174 + source = "registry+https://github.com/rust-lang/crates.io-index" 1175 + -checksum = "c7192f71e3afe32e858729454d9d90d6e927bd92427d688a9507d8220bddb256" 1176 + +checksum = "7a5d75ac36ee28647f6d871a93eefc7edcb729c3096590031ba50857fac44fa8" 1177 + dependencies = [ 1178 + "anyhow", 1179 + "base64 0.21.7", 1180 + @@ -8351,14 +8386,14 @@ dependencies = [ 1181 + 1182 + [[package]] 1183 + name = "wasmtime-component-macro" 1184 + -version = "26.0.1" 1185 + +version = "30.0.2" 1186 + source = "registry+https://github.com/rust-lang/crates.io-index" 1187 + -checksum = "d61a4b5ce2ad9c15655e830f0eac0c38b8def30c74ecac71f452d3901e491b68" 1188 + +checksum = "2581ef04bf33904db9a902ffb558e7b2de534d6a4881ee985ea833f187a78fdf" 1189 + dependencies = [ 1190 + "anyhow", 1191 + "proc-macro2 1.0.89", 1192 + "quote 1.0.37", 1193 + - "syn 2.0.79", 1194 + + "syn 2.0.87", 1195 + "wasmtime-component-util", 1196 + "wasmtime-wit-bindgen", 1197 + "wit-parser", 1198 + @@ -8366,15 +8401,15 @@ dependencies = [ 1199 + 1200 + [[package]] 1201 + name = "wasmtime-component-util" 1202 + -version = "26.0.1" 1203 + +version = "30.0.2" 1204 + source = "registry+https://github.com/rust-lang/crates.io-index" 1205 + -checksum = "35e87a1212270dbb84a49af13d82594e00a92769d6952b0ea7fc4366c949f6ad" 1206 + +checksum = "9a7108498a8a0afc81c7d2d81b96cdc509cd631d7bbaa271b7db5137026f10e3" 1207 + 1208 + [[package]] 1209 + name = "wasmtime-cranelift" 1210 + -version = "26.0.1" 1211 + +version = "30.0.2" 1212 + source = "registry+https://github.com/rust-lang/crates.io-index" 1213 + -checksum = "7cb40dddf38c6a5eefd5ce7c1baf43b00fe44eada11a319fab22e993a960262f" 1214 + +checksum = "abcc9179097235c91f299a8ff56b358ee921266b61adff7d14d6e48428954dd2" 1215 + dependencies = [ 1216 + "anyhow", 1217 + "cfg-if 1.0.0", 1218 + @@ -8387,26 +8422,27 @@ dependencies = [ 1219 + "itertools 0.12.1", 1220 + "log", 1221 + "object", 1222 + + "pulley-interpreter", 1223 + "smallvec", 1224 + "target-lexicon", 1225 + "thiserror", 1226 + - "wasmparser 0.218.0", 1227 + + "wasmparser 0.224.1", 1228 + "wasmtime-environ", 1229 + "wasmtime-versioned-export-macros", 1230 + ] 1231 + 1232 + [[package]] 1233 + name = "wasmtime-environ" 1234 + -version = "26.0.1" 1235 + +version = "30.0.2" 1236 + source = "registry+https://github.com/rust-lang/crates.io-index" 1237 + -checksum = "8613075e89e94a48c05862243c2b718eef1b9c337f51493ebf951e149a10fa19" 1238 + +checksum = "8e90f6cba665939381839bbf2ddf12d732fca03278867910348ef1281b700954" 1239 + dependencies = [ 1240 + "anyhow", 1241 + "cpp_demangle", 1242 + "cranelift-bitset", 1243 + "cranelift-entity", 1244 + "gimli", 1245 + - "indexmap 2.5.0", 1246 + + "indexmap 2.10.0", 1247 + "log", 1248 + "object", 1249 + "postcard", 1250 + @@ -8416,17 +8452,17 @@ dependencies = [ 1251 + "serde_derive", 1252 + "smallvec", 1253 + "target-lexicon", 1254 + - "wasm-encoder 0.218.0", 1255 + - "wasmparser 0.218.0", 1256 + + "wasm-encoder 0.224.1", 1257 + + "wasmparser 0.224.1", 1258 + "wasmprinter", 1259 + "wasmtime-component-util", 1260 + ] 1261 + 1262 + [[package]] 1263 + name = "wasmtime-fiber" 1264 + -version = "26.0.1" 1265 + +version = "30.0.2" 1266 + source = "registry+https://github.com/rust-lang/crates.io-index" 1267 + -checksum = "77acabfbcd89a4d47ad117fb31e340c824e2f49597105402c3127457b6230995" 1268 + +checksum = "ba5c2ac21f0b39d72d2dac198218a12b3ddeb4ab388a8fa0d2e429855876783c" 1269 + dependencies = [ 1270 + "anyhow", 1271 + "cc", 1272 + @@ -8439,21 +8475,21 @@ dependencies = [ 1273 + 1274 + [[package]] 1275 + name = "wasmtime-jit-debug" 1276 + -version = "26.0.1" 1277 + +version = "30.0.2" 1278 + source = "registry+https://github.com/rust-lang/crates.io-index" 1279 + -checksum = "f02a0118d471de665565ed200bc56673eaa10cc8e223dfe2cef5d50ed0d9d143" 1280 + +checksum = "74812989369947f4f5a33f4ae8ff551eb6c8a97ff55e0269a9f5f0fac93cd755" 1281 + dependencies = [ 1282 + + "cc", 1283 + "object", 1284 + - "once_cell", 1285 + "rustix", 1286 + "wasmtime-versioned-export-macros", 1287 + ] 1288 + 1289 + [[package]] 1290 + name = "wasmtime-jit-icache-coherence" 1291 + -version = "26.0.1" 1292 + +version = "30.0.2" 1293 + source = "registry+https://github.com/rust-lang/crates.io-index" 1294 + -checksum = "da47fba49af72581bc0dc67c8faaf5ee550e6f106e285122a184a675193701a5" 1295 + +checksum = "3f180cc0d2745e3a5df5d02231cd3046f49c75512eaa987b8202363b112e125d" 1296 + dependencies = [ 1297 + "anyhow", 1298 + "cfg-if 1.0.0", 1299 + @@ -8462,27 +8498,36 @@ dependencies = [ 1300 + ] 1301 + 1302 + [[package]] 1303 + -name = "wasmtime-slab" 1304 + -version = "26.0.1" 1305 + +name = "wasmtime-math" 1306 + +version = "30.0.2" 1307 + source = "registry+https://github.com/rust-lang/crates.io-index" 1308 + -checksum = "770e10cdefb15f2b6304152978e115bd062753c1ebe7221c0b6b104fa0419ff6" 1309 + +checksum = "f5f04c5dcf5b2f88f81cfb8d390294b2f67109dc4d0197ea7303c60a092df27c" 1310 + +dependencies = [ 1311 + + "libm", 1312 + +] 1313 + + 1314 + +[[package]] 1315 + +name = "wasmtime-slab" 1316 + +version = "30.0.2" 1317 + +source = "registry+https://github.com/rust-lang/crates.io-index" 1318 + +checksum = "fe9681707f1ae9a4708ca22058722fca5c135775c495ba9b9624fe3732b94c97" 1319 + 1320 + [[package]] 1321 + name = "wasmtime-versioned-export-macros" 1322 + -version = "26.0.1" 1323 + +version = "30.0.2" 1324 + source = "registry+https://github.com/rust-lang/crates.io-index" 1325 + -checksum = "db8efb877c9e5e67239d4553bb44dd2a34ae5cfb728f3cf2c5e64439c6ca6ee7" 1326 + +checksum = "dd2fe69d04986a12fc759d2e79494100d600adcb3bb79e63dedfc8e6bb2ab03e" 1327 + dependencies = [ 1328 + "proc-macro2 1.0.89", 1329 + "quote 1.0.37", 1330 + - "syn 2.0.79", 1331 + + "syn 2.0.87", 1332 + ] 1333 + 1334 + [[package]] 1335 + name = "wasmtime-wasi" 1336 + -version = "26.0.1" 1337 + +version = "30.0.2" 1338 + source = "registry+https://github.com/rust-lang/crates.io-index" 1339 + -checksum = "f16c8d87a45168131be6815045e6d46d7f6ddf65897c49444ab210488bce10dc" 1340 + +checksum = "4ce639c7d398586bc539ae9bba752084c1db7a49ab0f391a3230dcbcc6a64cfd" 1341 + dependencies = [ 1342 + "anyhow", 1343 + "async-trait", 1344 + @@ -8497,7 +8542,6 @@ dependencies = [ 1345 + "futures", 1346 + "io-extras", 1347 + "io-lifetimes", 1348 + - "once_cell", 1349 + "rustix", 1350 + "system-interface", 1351 + "thiserror", 1352 + @@ -8505,22 +8549,36 @@ dependencies = [ 201 1353 "tracing", 202 - "tracing-subscriber", 203 - - "vek 0.16.1", 204 - + "vek 0.17.0", 205 - "veloren-common", 206 - "veloren-common-base", 207 - "veloren-common-dynlib", 208 - diff --git a/Cargo.toml b/Cargo.toml 209 - index c8d02902..02521745 100644 210 - --- a/Cargo.toml 211 - +++ b/Cargo.toml 212 - @@ -1,5 +1,3 @@ 213 - -cargo-features = ["named-profiles", "profile-overrides"] 214 - - 215 - [workspace] 216 - resolver = "2" 217 - members = [ 218 - @@ -141,7 +139,7 @@ crossbeam-channel = { version = "0.5"} 219 - ordered-float = { version = "3", default-features = true } 220 - num = { version = "0.4" } 221 - num-traits = { version = "0.2" } 222 - -vek = { version = "0.16.1", features = ["serde"] } 223 - +vek = { version = "0.17.0", features = ["serde"] } 224 - itertools = { version = "0.10" } 1354 + "url", 1355 + "wasmtime", 1356 + + "wasmtime-wasi-io", 1357 + "wiggle", 1358 + "windows-sys 0.59.0", 1359 + ] 225 1360 226 - serde = { version = "1.0.118", features = ["derive"] } 227 - @@ -158,7 +156,7 @@ sha2 = "0.10" 228 - hex = "0.4.3" 1361 + [[package]] 1362 + -name = "wasmtime-winch" 1363 + -version = "26.0.1" 1364 + +name = "wasmtime-wasi-io" 1365 + +version = "30.0.2" 1366 + source = "registry+https://github.com/rust-lang/crates.io-index" 1367 + -checksum = "4f7a267367382ceec3e7f7ace63a63b83d86f4a680846743dead644e10f08150" 1368 + +checksum = "bdcad7178fddaa07786abe8ff5e043acb4bc8c8f737eb117f11e028b48d92792" 1369 + +dependencies = [ 1370 + + "anyhow", 1371 + + "async-trait", 1372 + + "bytes", 1373 + + "futures", 1374 + + "wasmtime", 1375 + +] 1376 + + 1377 + +[[package]] 1378 + +name = "wasmtime-winch" 1379 + +version = "30.0.2" 1380 + +source = "registry+https://github.com/rust-lang/crates.io-index" 1381 + +checksum = "5a9c8eae8395d530bb00a388030de9f543528674c382326f601de47524376975" 1382 + dependencies = [ 1383 + "anyhow", 1384 + "cranelift-codegen", 1385 + "gimli", 1386 + "object", 1387 + "target-lexicon", 1388 + - "wasmparser 0.218.0", 1389 + + "wasmparser 0.224.1", 1390 + "wasmtime-cranelift", 1391 + "wasmtime-environ", 1392 + "winch-codegen", 1393 + @@ -8528,13 +8586,13 @@ dependencies = [ 229 1394 230 - [patch.crates-io] 231 - -shred = { git = "https://github.com/amethyst/shred.git", rev = "5d52c6fc390dd04c12158633e77591f6523d1f85" } 232 - +specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" } 233 - # This is needed because of: 234 - # * an issue with spirv & naga in wgpu 0.18 (I assume this is fixed upstream but not in 0.18) 235 - # * an issue with uint in uniforms for gl. (potentially fixed in 0.19?) 236 - diff --git a/client/i18n/src/error.rs b/client/i18n/src/error.rs 237 - index 99f47bad..37eaa097 100644 238 - --- a/client/i18n/src/error.rs 239 - +++ b/client/i18n/src/error.rs 240 - @@ -45,6 +45,7 @@ pub enum ResourceErr { 241 - #[allow(dead_code)] // false-positive 242 - err: String, 243 - }, 244 - + #[allow(dead_code)] // false-positive 245 - BundleError(String), 246 - } 1395 + [[package]] 1396 + name = "wasmtime-wit-bindgen" 1397 + -version = "26.0.1" 1398 + +version = "30.0.2" 1399 + source = "registry+https://github.com/rust-lang/crates.io-index" 1400 + -checksum = "4bef2a726fd8d1ee9b0144655e16c492dc32eb4c7c9f7e3309fcffe637870933" 1401 + +checksum = "9a5531455e2c55994a1540355140369bb7ec0e46d2699731c5ee9f4cf9c3f7d4" 1402 + dependencies = [ 1403 + "anyhow", 1404 + "heck 0.5.0", 1405 + - "indexmap 2.5.0", 1406 + + "indexmap 2.10.0", 1407 + "wit-parser", 1408 + ] 247 1409 248 - diff --git a/rtsim/src/lib.rs b/rtsim/src/lib.rs 249 - index 11477390..ef62db65 100644 250 - --- a/rtsim/src/lib.rs 251 - +++ b/rtsim/src/lib.rs 252 - @@ -7,7 +7,8 @@ 253 - binary_heap_drain_sorted, 254 - fn_traits, 255 - unboxed_closures, 256 - - tuple_trait 257 - + tuple_trait, 258 - + trait_upcasting 259 - )] 1410 + @@ -8549,24 +8607,24 @@ dependencies = [ 260 1411 261 - pub mod ai; 262 - diff --git a/rust-toolchain b/rust-toolchain 263 - index f1273305..e426a2f8 100644 264 - --- a/rust-toolchain 265 - +++ b/rust-toolchain 266 - @@ -1 +1 @@ 267 - -nightly-2024-01-17 268 - +nightly-2024-05-14 269 - diff --git a/server/agent/src/lib.rs b/server/agent/src/lib.rs 270 - index 420bd5ff..4a927c74 100644 271 - --- a/server/agent/src/lib.rs 272 - +++ b/server/agent/src/lib.rs 273 - @@ -1,4 +1,4 @@ 274 - -#![feature(exclusive_range_pattern, let_chains)] 275 - +#![feature(let_chains)] 276 - #![allow( 277 - clippy::needless_pass_by_ref_mut //until we find a better way for specs 278 - )] 279 - diff --git a/server/src/persistence/models.rs b/server/src/persistence/models.rs 280 - index df148742..70baed42 100644 281 - --- a/server/src/persistence/models.rs 282 - +++ b/server/src/persistence/models.rs 283 - @@ -1,5 +1,6 @@ 284 - pub struct Character { 285 - pub character_id: i64, 286 - + #[allow(dead_code)] 287 - pub player_uuid: String, 288 - pub alias: String, 289 - pub waypoint: Option<String>, 290 - @@ -16,6 +17,7 @@ pub struct Item { 1412 + [[package]] 1413 + name = "wast" 1414 + -version = "220.0.0" 1415 + +version = "236.0.0" 1416 + source = "registry+https://github.com/rust-lang/crates.io-index" 1417 + -checksum = "4e708c8de08751fd66e70961a32bae9d71901f14a70871e181cb8461a3bb3165" 1418 + +checksum = "11d6b6faeab519ba6fbf9b26add41617ca6f5553f99ebc33d876e591d2f4f3c6" 1419 + dependencies = [ 1420 + "bumpalo", 1421 + - "leb128", 1422 + + "leb128fmt", 1423 + "memchr", 1424 + "unicode-width 0.2.0", 1425 + - "wasm-encoder 0.220.0", 1426 + + "wasm-encoder 0.236.0", 1427 + ] 1428 + 1429 + [[package]] 1430 + name = "wat" 1431 + -version = "1.220.0" 1432 + +version = "1.236.0" 1433 + source = "registry+https://github.com/rust-lang/crates.io-index" 1434 + -checksum = "de4f1d7d59614ba690541360102b995c4eb1b9ed373701d5102cc1a968b1c5a3" 1435 + +checksum = "cc31704322400f461f7f31a5f9190d5488aaeafb63ae69ad2b5888d2704dcb08" 1436 + dependencies = [ 1437 + - "wast 220.0.0", 1438 + + "wast 236.0.0", 1439 + ] 1440 + 1441 + [[package]] 1442 + @@ -8909,9 +8967,9 @@ checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" 1443 + 1444 + [[package]] 1445 + name = "wiggle" 1446 + -version = "26.0.1" 1447 + +version = "30.0.2" 1448 + source = "registry+https://github.com/rust-lang/crates.io-index" 1449 + -checksum = "b0f25588cf5ea16f56c1af13244486d50c5a2cf67cc0c4e990c665944d741546" 1450 + +checksum = "c5a4ea7722c042a659dc70caab0b56d7f45220e8bae1241cf5ebc7ab7efb0dfb" 1451 + dependencies = [ 1452 + "anyhow", 1453 + "async-trait", 1454 + @@ -8924,28 +8982,28 @@ dependencies = [ 1455 + 1456 + [[package]] 1457 + name = "wiggle-generate" 1458 + -version = "26.0.1" 1459 + +version = "30.0.2" 1460 + source = "registry+https://github.com/rust-lang/crates.io-index" 1461 + -checksum = "28ff23bed568b335dac6a324b8b167318a0c60555199445fcc89745a5eb42452" 1462 + +checksum = "3f786d9d3e006152a360f1145bdc18e56ea22fd5d2356f1ddc2ecfcf7529a77b" 1463 + dependencies = [ 1464 + "anyhow", 1465 + "heck 0.5.0", 1466 + "proc-macro2 1.0.89", 1467 + "quote 1.0.37", 1468 + "shellexpand 2.1.2", 1469 + - "syn 2.0.79", 1470 + + "syn 2.0.87", 1471 + "witx", 1472 + ] 1473 + 1474 + [[package]] 1475 + name = "wiggle-macro" 1476 + -version = "26.0.1" 1477 + +version = "30.0.2" 1478 + source = "registry+https://github.com/rust-lang/crates.io-index" 1479 + -checksum = "7f13be83541aa0b033ac5ec8a8b59c9a8d8b32305845b8466dd066e722cb0004" 1480 + +checksum = "ceac9f94f22ccc0485aeab08187b9f211d1993aaf0ed6eeb8aed43314f6e717c" 1481 + dependencies = [ 1482 + "proc-macro2 1.0.89", 1483 + "quote 1.0.37", 1484 + - "syn 2.0.79", 1485 + + "syn 2.0.87", 1486 + "wiggle-generate", 1487 + ] 1488 + 1489 + @@ -8991,9 +9049,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1490 + 1491 + [[package]] 1492 + name = "winch-codegen" 1493 + -version = "26.0.1" 1494 + +version = "30.0.2" 1495 + source = "registry+https://github.com/rust-lang/crates.io-index" 1496 + -checksum = "07ab957fc71a36c63834b9b51cc2e087c4260d5ff810a5309ab99f7fbeb19567" 1497 + +checksum = "7dbd4e07bd92c7ddace2f3267bdd31d4197b5ec58c315751325d45c19bfb56df" 1498 + dependencies = [ 1499 + "anyhow", 1500 + "cranelift-codegen", 1501 + @@ -9001,7 +9059,8 @@ dependencies = [ 1502 + "regalloc2", 1503 + "smallvec", 1504 + "target-lexicon", 1505 + - "wasmparser 0.218.0", 1506 + + "thiserror", 1507 + + "wasmparser 0.224.1", 1508 + "wasmtime-cranelift", 1509 + "wasmtime-environ", 1510 + ] 1511 + @@ -9108,7 +9167,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 1512 + dependencies = [ 1513 + "proc-macro2 1.0.89", 1514 + "quote 1.0.37", 1515 + - "syn 2.0.79", 1516 + + "syn 2.0.87", 1517 + ] 1518 + 1519 + [[package]] 1520 + @@ -9119,7 +9178,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 1521 + dependencies = [ 1522 + "proc-macro2 1.0.89", 1523 + "quote 1.0.37", 1524 + - "syn 2.0.79", 1525 + + "syn 2.0.87", 1526 + ] 1527 + 1528 + [[package]] 1529 + @@ -9459,20 +9518,20 @@ dependencies = [ 1530 + 1531 + [[package]] 1532 + name = "wit-parser" 1533 + -version = "0.218.0" 1534 + +version = "0.224.1" 1535 + source = "registry+https://github.com/rust-lang/crates.io-index" 1536 + -checksum = "0d3d1066ab761b115f97fef2b191090faabcb0f37b555b758d3caf42d4ed9e55" 1537 + +checksum = "e3477d8d0acb530d76beaa8becbdb1e3face08929db275f39934963eb4f716f8" 1538 + dependencies = [ 1539 + "anyhow", 1540 + "id-arena", 1541 + - "indexmap 2.5.0", 1542 + + "indexmap 2.10.0", 1543 + "log", 1544 + "semver 1.0.23", 1545 + "serde", 1546 + "serde_derive", 1547 + "serde_json", 1548 + "unicode-xid 0.2.6", 1549 + - "wasmparser 0.218.0", 1550 + + "wasmparser 0.224.1", 1551 + ] 1552 + 1553 + [[package]] 1554 + @@ -9672,7 +9731,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 1555 + dependencies = [ 1556 + "proc-macro2 1.0.89", 1557 + "quote 1.0.37", 1558 + - "syn 2.0.79", 1559 + + "syn 2.0.87", 1560 + "synstructure", 1561 + ] 1562 + 1563 + @@ -9694,7 +9753,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 1564 + dependencies = [ 1565 + "proc-macro2 1.0.89", 1566 + "quote 1.0.37", 1567 + - "syn 2.0.79", 1568 + + "syn 2.0.87", 1569 + ] 1570 + 1571 + [[package]] 1572 + @@ -9714,7 +9773,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" 1573 + dependencies = [ 1574 + "proc-macro2 1.0.89", 1575 + "quote 1.0.37", 1576 + - "syn 2.0.79", 1577 + + "syn 2.0.87", 1578 + "synstructure", 1579 + ] 1580 + 1581 + @@ -9743,7 +9802,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 1582 + dependencies = [ 1583 + "proc-macro2 1.0.89", 1584 + "quote 1.0.37", 1585 + - "syn 2.0.79", 1586 + + "syn 2.0.87", 1587 + ] 1588 + 1589 + [[package]] 1590 + diff --git a/common/state/Cargo.toml b/common/state/Cargo.toml 1591 + index d786873af..934e288a3 100644 1592 + --- a/common/state/Cargo.toml 1593 + +++ b/common/state/Cargo.toml 1594 + @@ -35,8 +35,8 @@ toml = { version = "0.8", optional = true } 1595 + tar = { version = "0.4.37", optional = true } 1596 + bincode = { workspace = true, optional = true } 1597 + timer-queue = "0.1.0" 1598 + -wasmtime = { version = "26.0.1", optional = true , features = ["component-model", "async"] } 1599 + -wasmtime-wasi = { version = "26.0.1", optional = true } 1600 + +wasmtime = { version = "30.0.2", optional = true , features = ["component-model", "async"] } 1601 + +wasmtime-wasi = { version = "30.0.2", optional = true } 1602 + async-trait = { workspace = true } 1603 + bytes = "^1" 1604 + futures = "0.3.30" 1605 + diff --git a/common/state/src/lib.rs b/common/state/src/lib.rs 1606 + index 11f8175a4..3d76f8f27 100644 1607 + --- a/common/state/src/lib.rs 1608 + +++ b/common/state/src/lib.rs 1609 + @@ -1,7 +1,7 @@ 1610 + //! This crate contains the [`State`] and shared between 1611 + //! server (`veloren-server`) and the client (`veloren-client`) 1612 + 1613 + -#![feature(maybe_uninit_uninit_array, maybe_uninit_array_assume_init)] 1614 + +#![feature(maybe_uninit_array_assume_init)] 1615 + 1616 + #[cfg(feature = "plugins")] pub mod plugin; 1617 + mod special_areas; 1618 + diff --git a/common/state/src/plugin/module.rs b/common/state/src/plugin/module.rs 1619 + index 72d4f9904..3189c909c 100644 1620 + --- a/common/state/src/plugin/module.rs 1621 + +++ b/common/state/src/plugin/module.rs 1622 + @@ -10,7 +10,7 @@ use wasmtime::{ 1623 + component::{Component, Linker}, 1624 + Config, Engine, Store, 1625 + }; 1626 + -use wasmtime_wasi::WasiView; 1627 + +use wasmtime_wasi::IoView; 1628 + 1629 + pub(crate) mod types_mod { 1630 + wasmtime::component::bindgen!({ 1631 + @@ -180,9 +180,10 @@ struct WasiHostCtx { 1632 + registered_bodies: HashMap<String, types::BodyIndex>, 291 1633 } 292 1634 293 - pub struct Body { 294 - + #[allow(dead_code)] 295 - pub body_id: i64, 296 - pub variant: String, 297 - pub body_data: String, 298 - @@ -38,6 +40,7 @@ pub struct Pet { 1635 + -impl wasmtime_wasi::WasiView for WasiHostCtx { 1636 + +impl wasmtime_wasi::IoView for WasiHostCtx { 1637 + fn table(&mut self) -> &mut wasmtime::component::ResourceTable { &mut self.preview2_table } 1638 + - 1639 + +} 1640 + +impl wasmtime_wasi::WasiView for WasiHostCtx { 1641 + fn ctx(&mut self) -> &mut wasmtime_wasi::WasiCtx { &mut self.preview2_ctx } 299 1642 } 300 1643 301 - pub struct AbilitySets { 302 - + #[allow(dead_code)] 303 - pub entity_id: i64, 304 - pub ability_sets: String, 1644 + @@ -276,7 +277,7 @@ impl information::HostEntity for WasiHostCtx { 1645 + 1646 + struct InfoStream(String); 1647 + 1648 + -impl wasmtime_wasi::HostOutputStream for InfoStream { 1649 + +impl wasmtime_wasi::OutputStream for InfoStream { 1650 + fn write(&mut self, bytes: bytes::Bytes) -> wasmtime_wasi::StreamResult<()> { 1651 + tracing::info!("{}: {}", self.0, String::from_utf8_lossy(bytes.as_ref())); 1652 + Ok(()) 1653 + @@ -288,13 +289,13 @@ impl wasmtime_wasi::HostOutputStream for InfoStream { 305 1654 } 306 - diff --git a/voxygen/src/credits.rs b/voxygen/src/credits.rs 307 - index 2de54687..be49ac97 100644 308 - --- a/voxygen/src/credits.rs 309 - +++ b/voxygen/src/credits.rs 310 - @@ -7,6 +7,7 @@ use std::path::PathBuf; 311 1655 312 - // See best practices for attribution: https://wiki.creativecommons.org/wiki/Best_practices_for_attribution 1656 + #[wasmtime_wasi::async_trait] 1657 + -impl wasmtime_wasi::Subscribe for InfoStream { 1658 + +impl wasmtime_wasi::Pollable for InfoStream { 1659 + async fn ready(&mut self) {} 1660 + } 313 1661 314 - +#[allow(dead_code)] 315 - #[derive(Clone, Deserialize)] 316 - pub struct Art { 317 - /// Name of the art. 318 - diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs 319 - index e62250ca..6be79389 100755 320 - --- a/voxygen/src/hud/mod.rs 321 - +++ b/voxygen/src/hud/mod.rs 322 - @@ -1,3 +1,4 @@ 323 - +#![allow(non_local_definitions)] // because of WidgetCommon derive 324 - mod animation; 325 - mod bag; 326 - mod buffs; 327 - diff --git a/voxygen/src/render/renderer/rain_occlusion_map.rs b/voxygen/src/render/renderer/rain_occlusion_map.rs 328 - index bdc44f98..68026806 100644 329 - --- a/voxygen/src/render/renderer/rain_occlusion_map.rs 330 - +++ b/voxygen/src/render/renderer/rain_occlusion_map.rs 331 - @@ -11,7 +11,6 @@ pub struct RainOcclusionMapRenderer { 1662 + struct ErrorStream(String); 332 1663 333 - pub terrain_pipeline: rain_occlusion::RainOcclusionPipeline, 334 - pub figure_pipeline: rain_occlusion::RainOcclusionFigurePipeline, 335 - - pub layout: rain_occlusion::RainOcclusionLayout, 1664 + -impl wasmtime_wasi::HostOutputStream for ErrorStream { 1665 + +impl wasmtime_wasi::OutputStream for ErrorStream { 1666 + fn write(&mut self, bytes: bytes::Bytes) -> wasmtime_wasi::StreamResult<()> { 1667 + tracing::error!("{}: {}", self.0, String::from_utf8_lossy(bytes.as_ref())); 1668 + Ok(()) 1669 + @@ -306,14 +307,14 @@ impl wasmtime_wasi::HostOutputStream for ErrorStream { 336 1670 } 337 1671 338 - pub enum RainOcclusionMap { 339 - @@ -31,13 +30,10 @@ impl RainOcclusionMap { 340 - if let (Some(terrain_pipeline), Some(figure_pipeline), Some(depth)) = 341 - (directed, figure, view) 342 - { 343 - - let layout = rain_occlusion::RainOcclusionLayout::new(device); 344 - - 345 - Self::Enabled(RainOcclusionMapRenderer { 346 - depth, 347 - terrain_pipeline, 348 - figure_pipeline, 349 - - layout, 350 - }) 351 - } else { 352 - Self::Disabled(Self::create_dummy_tex(device, queue)) 353 - diff --git a/voxygen/src/render/renderer/shadow_map.rs b/voxygen/src/render/renderer/shadow_map.rs 354 - index 7b5ab16e..b15a2da3 100644 355 - --- a/voxygen/src/render/renderer/shadow_map.rs 356 - +++ b/voxygen/src/render/renderer/shadow_map.rs 357 - @@ -12,7 +12,6 @@ pub struct ShadowMapRenderer { 358 - pub terrain_directed_pipeline: shadow::ShadowPipeline, 359 - pub figure_directed_pipeline: shadow::ShadowFigurePipeline, 360 - pub debug_directed_pipeline: shadow::ShadowDebugPipeline, 361 - - pub layout: shadow::ShadowLayout, 1672 + #[wasmtime_wasi::async_trait] 1673 + -impl wasmtime_wasi::Subscribe for ErrorStream { 1674 + +impl wasmtime_wasi::Pollable for ErrorStream { 1675 + async fn ready(&mut self) {} 362 1676 } 363 1677 364 - pub enum ShadowMap { 365 - @@ -43,8 +42,6 @@ impl ShadowMap { 366 - { 367 - let (point_depth, directed_depth) = shadow_views; 1678 + struct LogStream(String, tracing::Level); 368 1679 369 - - let layout = shadow::ShadowLayout::new(device); 370 - - 371 - Self::Enabled(ShadowMapRenderer { 372 - directed_depth, 373 - point_depth, 374 - @@ -53,8 +50,6 @@ impl ShadowMap { 375 - terrain_directed_pipeline, 376 - figure_directed_pipeline, 377 - debug_directed_pipeline, 378 - - 379 - - layout, 380 - }) 1680 + impl wasmtime_wasi::StdoutStream for LogStream { 1681 + - fn stream(&self) -> Box<dyn wasmtime_wasi::HostOutputStream> { 1682 + + fn stream(&self) -> Box<dyn wasmtime_wasi::OutputStream> { 1683 + if self.1 == tracing::Level::INFO { 1684 + Box::new(InfoStream(self.0.clone())) 381 1685 } else { 382 - let (dummy_point, dummy_directed) = Self::create_dummy_shadow_tex(device, queue); 383 - diff --git a/voxygen/src/ui/widgets/mod.rs b/voxygen/src/ui/widgets/mod.rs 384 - index e7ce5ee8..622e7e9e 100644 385 - --- a/voxygen/src/ui/widgets/mod.rs 386 - +++ b/voxygen/src/ui/widgets/mod.rs 387 - @@ -1,3 +1,4 @@ 388 - +#![allow(non_local_definitions)] // because of WidgetCommon derive 389 - pub mod ghost_image; 390 - pub mod image_frame; 391 - pub mod image_slider; 392 - diff --git a/world/Cargo.toml b/world/Cargo.toml 393 - index 92bd288f..6ff2e79e 100644 394 - --- a/world/Cargo.toml 395 - +++ b/world/Cargo.toml 396 - @@ -7,11 +7,11 @@ edition = "2021" 397 - [features] 398 - use-dyn-lib = ["common-dynlib"] 399 - be-dyn-lib = [] 400 - -simd = ["vek/platform_intrinsics", "packed_simd"] 401 - +simd = ["vek/platform_intrinsics"] 402 - bin_compression = ["lz-fear", "deflate", "flate2", "image/jpeg", "num-traits", "fallible-iterator", "rstar", "cli"] 403 - cli = ["clap", "signal-hook", "indicatif"] 1686 + diff --git a/voxygen/src/lib.rs b/voxygen/src/lib.rs 1687 + index a9273e7c8..70ca5dd10 100644 1688 + --- a/voxygen/src/lib.rs 1689 + +++ b/voxygen/src/lib.rs 1690 + @@ -14,7 +14,6 @@ 1691 + slice_as_chunks, 1692 + let_chains, 1693 + generic_const_exprs, 1694 + - maybe_uninit_uninit_array, 1695 + maybe_uninit_array_assume_init, 1696 + closure_lifetime_binder 1697 + )] 1698 + 1699 + commit d585b16256152fff3eaa69ec2b5b75dbe1c53f7a 1700 + Author: Isse <git@isse.rs> 1701 + Date: Thu Jan 23 12:32:17 2025 +0100 1702 + 1703 + Don't use vek::repr_simd 1704 + 1705 + diff --git a/common/Cargo.toml b/common/Cargo.toml 1706 + index b11b5ad6f..4515fadbd 100644 1707 + --- a/common/Cargo.toml 1708 + +++ b/common/Cargo.toml 1709 + @@ -32,7 +32,7 @@ serde = { workspace = true, features = ["rc"] } 404 1710 405 - -default = ["simd"] 406 - +default = [] 1711 + # Util 1712 + enum-map = { workspace = true, features = ["serde"] } 1713 + -vek = { workspace = true, features = ["repr_simd"] } 1714 + +vek = { workspace = true } 1715 + chrono = { workspace = true } 1716 + chrono-tz = { workspace = true } 1717 + itertools = { workspace = true } 1718 + diff --git a/common/src/comp/ori.rs b/common/src/comp/ori.rs 1719 + index 567332430..93ab1f49a 100644 1720 + --- a/common/src/comp/ori.rs 1721 + +++ b/common/src/comp/ori.rs 1722 + @@ -364,6 +364,7 @@ impl From<Quaternion<f32>> for Ori { 1723 + fn from(quat: Quaternion<f32>) -> Self { Self::new(quat) } 1724 + } 407 1725 408 - [dependencies] 409 - common = { package = "veloren-common", path = "../common" } 410 - @@ -36,7 +36,6 @@ tracing = { workspace = true } 411 - rand = { workspace = true } 412 - rand_chacha = { workspace = true } 413 - arr_macro = "0.2.1" 414 - -packed_simd = { version = "0.3.9", optional = true } 415 - rayon = { workspace = true } 416 - serde = { workspace = true } 417 - ron = { workspace = true } 418 - diff --git a/world/src/site2/gen.rs b/world/src/site2/gen.rs 419 - index 59c57766..0800ccee 100644 420 - --- a/world/src/site2/gen.rs 421 - +++ b/world/src/site2/gen.rs 422 - @@ -1415,18 +1415,6 @@ impl<'a, const N: usize> PrimitiveTransform for [PrimitiveRef<'a>; N] { 1726 + +/* 1727 + impl From<vek::quaternion::repr_simd::Quaternion<f32>> for Ori { 1728 + fn from( 1729 + vek::quaternion::repr_simd::Quaternion { x, y, z, w }: vek::quaternion::repr_simd::Quaternion<f32>, 1730 + @@ -371,16 +372,19 @@ impl From<vek::quaternion::repr_simd::Quaternion<f32>> for Ori { 1731 + Self::from(Quaternion { x, y, z, w }) 1732 + } 1733 + } 1734 + +*/ 1735 + 1736 + impl From<Ori> for Quaternion<f32> { 1737 + fn from(Ori(q): Ori) -> Self { q } 1738 + } 1739 + 1740 + +/* 1741 + impl From<Ori> for vek::quaternion::repr_simd::Quaternion<f32> { 1742 + fn from(Ori(Quaternion { x, y, z, w }): Ori) -> Self { 1743 + vek::quaternion::repr_simd::Quaternion { x, y, z, w } 423 1744 } 424 1745 } 1746 + +*/ 425 1747 426 - -pub trait PrimitiveGroupFill<const N: usize> { 427 - - fn fill_many(self, fills: [Fill; N]); 428 - -} 429 - - 430 - -impl<const N: usize> PrimitiveGroupFill<N> for [PrimitiveRef<'_>; N] { 431 - - fn fill_many(self, fills: [Fill; N]) { 432 - - for i in 0..N { 433 - - self[i].fill(fills[i].clone()); 434 - - } 435 - - } 436 - -} 437 - - 438 - pub trait Structure { 439 - #[cfg(feature = "use-dyn-lib")] 440 - const UPDATE_FN: &'static [u8]; 1748 + impl From<Ori> for Dir { 1749 + fn from(ori: Ori) -> Self { ori.look_dir() } 1750 + @@ -390,17 +394,21 @@ impl From<Ori> for Vec3<f32> { 1751 + fn from(ori: Ori) -> Self { ori.look_vec() } 1752 + } 1753 + 1754 + +/* 1755 + impl From<Ori> for vek::vec::repr_simd::Vec3<f32> { 1756 + fn from(ori: Ori) -> Self { vek::vec::repr_simd::Vec3::from(ori.look_vec()) } 1757 + } 1758 + +*/ 1759 + 1760 + impl From<Ori> for Vec2<f32> { 1761 + fn from(ori: Ori) -> Self { ori.look_dir().to_horizontal().unwrap_or_default().xy() } 1762 + } 1763 + 1764 + +/* 1765 + impl From<Ori> for vek::vec::repr_simd::Vec2<f32> { 1766 + fn from(ori: Ori) -> Self { vek::vec::repr_simd::Vec2::from(ori.look_vec().xy()) } 1767 + } 1768 + +*/ 1769 + 1770 + // Validate at Deserialization 1771 + #[derive(Copy, Clone, Default, Debug, PartialEq, Serialize, Deserialize)] 1772 + diff --git a/voxygen/anim/src/plugin/mod.rs b/voxygen/anim/src/plugin/mod.rs 1773 + index 224cc644e..534f6426d 100644 1774 + --- a/voxygen/anim/src/plugin/mod.rs 1775 + +++ b/voxygen/anim/src/plugin/mod.rs 1776 + @@ -5,7 +5,8 @@ use super::{ 1777 + Skeleton, 1778 + }; 1779 + use common::comp; 1780 + -use vek::quaternion::repr_simd::Quaternion; 1781 + +// use vek::quaternion::repr_simd::Quaternion; 1782 + +use vek::Quaternion; 1783 + 1784 + pub type Body = comp::plugin::Body; 1785 + 1786 + diff --git a/voxygen/anim/src/vek.rs b/voxygen/anim/src/vek.rs 1787 + index a056cd664..b4ded62a9 100644 1788 + --- a/voxygen/anim/src/vek.rs 1789 + +++ b/voxygen/anim/src/vek.rs 1790 + @@ -1,8 +1,10 @@ 1791 + +/* 1792 + pub use ::vek::{ 1793 + geom::repr_simd::*, mat::repr_simd::column_major::Mat4, ops::*, quaternion::repr_simd::*, 1794 + transform::repr_simd::*, transition::*, vec::repr_simd::*, 1795 + }; 1796 + -/*pub use ::vek::{ 1797 + +*/ 1798 + +pub use ::vek::{ 1799 + bezier::repr_c::*, geom::repr_c::*, mat::repr_c::column_major::Mat4, ops::*, 1800 + quaternion::repr_c::*, transform::repr_c::*, transition::*, vec::repr_c::*, 1801 + -};*/ 1802 + +}; 1803 + diff --git a/voxygen/src/scene/math.rs b/voxygen/src/scene/math.rs 1804 + index 6caf30b7d..7ca3d7953 100644 1805 + --- a/voxygen/src/scene/math.rs 1806 + +++ b/voxygen/src/scene/math.rs 1807 + @@ -1,9 +1,10 @@ 1808 + use core::{iter, mem}; 1809 + use hashbrown::HashMap; 1810 + use num::traits::Float; 1811 + +/* 1812 + pub use vek::{geom::repr_simd::*, mat::repr_simd::column_major::Mat4, ops::*, vec::repr_simd::*}; 1813 + -//pub use vek::{geom::repr_c::*, mat::repr_c::column_major::Mat4, ops::*, 1814 + -// vec::repr_c::*}; 1815 + +*/ 1816 + +pub use vek::{geom::repr_c::*, mat::repr_c::column_major::Mat4, ops::*, vec::repr_c::*}; 1817 + 1818 + pub fn aabb_to_points<T: Float>(bounds: Aabb<T>) -> [Vec3<T>; 8] { 1819 + [
+7 -6
pkgs/by-name/ve/veloren/package.nix
··· 14 14 let 15 15 # Note: use this to get the release metadata 16 16 # https://gitlab.com/api/v4/projects/10174980/repository/tags/v{version} 17 - version = "0.16.0"; 18 - date = "2023-03-30-03:28"; 19 - rev = "80fe5ca64b40fbf3e0e393a44f8880a79a6a5380"; 17 + version = "0.17.0"; 18 + date = "2024-12-28-12:49"; 19 + rev = "a1be5a7bece7af43ebd76910eb0020c1cf3c0798"; 20 20 in 21 21 22 22 rustPlatform.buildRustPackage { ··· 27 27 owner = "veloren"; 28 28 repo = "veloren"; 29 29 inherit rev; 30 - hash = "sha256-h2hLO227aeK2oEFfdGMgmtMkA9cn9AgQ9w6myb+8W8c="; 30 + hash = "sha256-AnmXn4GWzxu27FUyQIIVnANtu3sr0NIi7seN7buAtL8="; 31 31 }; 32 32 33 33 cargoPatches = [ ··· 35 35 ./fix-assets-path.patch 36 36 ]; 37 37 38 - cargoHash = "sha256-3XHuAgue0Id1oxCJ8NLZ4wYjMfND+C1iIW+AnMKXd54="; 38 + cargoHash = "sha256-Uj0gFcStWhIS+GbM/Hn/vD2PrA0ftzEnMnCwV0n0g7g="; 39 39 40 40 postPatch = '' 41 41 # Force vek to build in unstable mode ··· 61 61 env = { 62 62 # Enable unstable features, see https://gitlab.com/veloren/veloren/-/issues/264 63 63 RUSTC_BOOTSTRAP = true; 64 + RUSTC_BREAK_ON_ICE = true; 64 65 65 66 # Set version info, required by veloren-common 66 67 NIX_GIT_TAG = "v${version}"; 67 - NIX_GIT_HASH = "${lib.substring 0 7 rev}/${date}"; 68 + NIX_GIT_HASH = "${lib.substring 0 8 rev}/${date}"; 68 69 69 70 # Save game data under user's home directory, 70 71 # otherwise it defaults to $out/bin/../userdata
+1 -1
pkgs/development/compilers/go/binary.nix
··· 34 34 homepage = "https://go.dev/"; 35 35 license = lib.licenses.bsd3; 36 36 teams = [ lib.teams.golang ]; 37 - platforms = lib.platforms.darwin ++ lib.platforms.linux; 37 + platforms = lib.platforms.darwin ++ lib.platforms.freebsd ++ lib.platforms.linux; 38 38 badPlatforms = [ 39 39 # Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones 40 40 # So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
+2 -2
pkgs/development/libraries/mesa/common.nix
··· 5 5 # nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa 6 6 rec { 7 7 pname = "mesa"; 8 - version = "25.1.6"; 8 + version = "25.1.7"; 9 9 10 10 src = fetchFromGitLab { 11 11 domain = "gitlab.freedesktop.org"; 12 12 owner = "mesa"; 13 13 repo = "mesa"; 14 14 rev = "mesa-${version}"; 15 - hash = "sha256-SHYYezt2ez9awvIATEC6wVMZMuJUsOYXxlugs1Q6q7U="; 15 + hash = "sha256-dseMHUifLsszSAGCaZwgOwhj0/yfbRlBVVHQz25NdjY="; 16 16 }; 17 17 18 18 meta = {
+2 -2
pkgs/kde/misc/ktextaddons/default.nix
··· 9 9 }: 10 10 mkKdeDerivation rec { 11 11 pname = "ktextaddons"; 12 - version = "1.6.0"; 12 + version = "1.7.0"; 13 13 14 14 src = fetchurl { 15 15 url = "mirror://kde/stable/ktextaddons/ktextaddons-${version}.tar.xz"; 16 - hash = "sha256-2YRlBaUvl72mTq0ZMDK8KVc+wxSB9HO+PFhvW4Mh7Nw="; 16 + hash = "sha256-7JtimpC0shZgaGfoA08UszRDQgwreybz/UFNjB+jyuQ="; 17 17 }; 18 18 19 19 extraBuildInputs = [
+46
pkgs/os-specific/linux/acer-wmi-battery/default.nix
··· 1 + { 2 + stdenv, 3 + lib, 4 + fetchFromGitHub, 5 + kernel, 6 + }: 7 + 8 + let 9 + release = "0.1.0-unstable-2025-04-24"; 10 + 11 + in 12 + stdenv.mkDerivation { 13 + pname = "acer-wmi-battery"; 14 + version = "${kernel.version}-${release}"; 15 + 16 + src = fetchFromGitHub { 17 + owner = "frederik-h"; 18 + repo = "acer-wmi-battery"; 19 + rev = "0889d3ea54655eaa88de552b334911ce7375952f"; 20 + hash = "sha256-mI6Ob9BmNfwqT3nndWf3jkz8f7tV10odkTnfApsNo+A="; 21 + }; 22 + 23 + postPatch = '' 24 + substituteInPlace Makefile \ 25 + --replace-fail '/lib/modules/$(shell uname -r)/build' ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build 26 + ''; 27 + 28 + enableParallelBuilding = true; 29 + 30 + installPhase = '' 31 + runHook preInstall 32 + 33 + find . -name '*.ko' -exec xz -f {} \; 34 + install -Dm444 -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/platform/x86 *.ko.xz 35 + 36 + runHook postInstall 37 + ''; 38 + 39 + meta = { 40 + description = "Driver for the Acer WMI battery health control interface"; 41 + homepage = "https://github.com/frederik-h/acer-wmi-battery"; 42 + license = lib.licenses.gpl2Only; 43 + platforms = lib.platforms.linux; 44 + maintainers = with lib.maintainers; [ peterhoeg ]; 45 + }; 46 + }
+2
pkgs/os-specific/windows/default.nix
··· 48 48 pthreads = callPackage ./pthread-w32 { }; 49 49 50 50 libgnurx = callPackage ./libgnurx { }; 51 + 52 + sdk = callPackage ./msvcSdk { }; 51 53 } 52 54 )
+124
pkgs/os-specific/windows/msvcSdk/default.nix
··· 1 + { 2 + lib, 3 + config, 4 + stdenvNoCC, 5 + xwin, 6 + testers, 7 + llvmPackages, 8 + }: 9 + let 10 + version = (builtins.fromJSON (builtins.readFile ./manifest.json)).info.productSemanticVersion; 11 + 12 + hashes = (builtins.fromJSON (builtins.readFile ./hashes.json)); 13 + 14 + host = stdenvNoCC.hostPlatform; 15 + arch = 16 + if host.isx86_64 then 17 + "x86_64" 18 + else if host.isAarch64 then 19 + "aarch64" 20 + else if host.isx86_32 then 21 + "x86" 22 + else if host.isAarch32 then 23 + "aarch" 24 + else 25 + throw "Unsupported system"; 26 + in 27 + if !config.microsoftVisualStudioLicenseAccepted then 28 + throw '' 29 + Microsoft Software License Terms are not accepted with config.microsoftVisualStudioLicenseAccepted. 30 + Please read https://visualstudio.microsoft.com/license-terms/mt644918/ and if you agree, change your 31 + config to indicate so. 32 + '' 33 + else 34 + stdenvNoCC.mkDerivation (finalAttrs: { 35 + inherit version; 36 + pname = "msvc-sdk"; 37 + dontUnpack = true; 38 + 39 + strictDeps = true; 40 + nativeBuildInputs = [ xwin ]; 41 + 42 + outputHashAlgo = "sha256"; 43 + outputHashMode = "recursive"; 44 + outputHash = hashes.${arch}; 45 + 46 + __structuredAttrs = true; 47 + xwinArgs = [ 48 + "--accept-license" 49 + "--cache-dir=xwin-out" 50 + "--manifest=${./manifest.json}" 51 + "--arch=${arch}" 52 + "splat" 53 + "--preserve-ms-arch-notation" 54 + ]; 55 + 56 + buildPhase = '' 57 + runHook preBuild 58 + 59 + xwin "''${xwinArgs[@]}" 60 + mkdir "$out" 61 + mv xwin-out/splat/* "$out" 62 + 63 + runHook postBuild 64 + ''; 65 + 66 + dontFixup = true; 67 + dontInstall = true; 68 + 69 + passthru = { 70 + updateScript = ./update.nu; 71 + tests = { 72 + hello-world = testers.runCommand { 73 + name = "hello-msvc"; 74 + 75 + nativeBuildInputs = [ 76 + llvmPackages.clang-unwrapped 77 + llvmPackages.bintools-unwrapped 78 + ]; 79 + 80 + script = '' 81 + set -euo pipefail 82 + 83 + cat > hello.c <<- EOF 84 + #include <stdio.h> 85 + 86 + int main(int argc, char* argv[]) { 87 + printf("Hello world!\n"); 88 + return 0; 89 + } 90 + EOF 91 + 92 + clang-cl --target=x86_64-pc-windows-msvc -fuse-ld=lld \ 93 + /vctoolsdir ${finalAttrs.finalPackage}/crt \ 94 + /winsdkdir ${finalAttrs.finalPackage}/sdk \ 95 + ./hello.c -v 96 + 97 + if test ! -f hello.exe; then 98 + echo "hello.exe not found!" 99 + exit 1 100 + else 101 + touch $out 102 + fi 103 + ''; 104 + }; 105 + }; 106 + }; 107 + 108 + meta = { 109 + description = "MSVC SDK and Windows CRT for cross compiling"; 110 + homepage = "https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/"; 111 + maintainers = [ lib.maintainers.RossSmyth ]; 112 + license = { 113 + deprecated = false; 114 + fullName = "Microsoft Software License Terms"; 115 + shortName = "msvc"; 116 + spdxId = "unknown"; 117 + url = "https://www.visualstudio.com/license-terms/mt644918/"; 118 + }; 119 + platforms = lib.platforms.all; 120 + # The arm manifest is missing critical pieces. 121 + broken = stdenvNoCC.hostPlatform.isAarch; 122 + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; 123 + }; 124 + })
+4
pkgs/os-specific/windows/msvcSdk/hashes.json
··· 1 + { 2 + "x86_64": "sha256-s3iaz9SkV8H1j3rQ1ZWKe9I1o/42+buqxCnGAoA17j8=", 3 + "x86": "sha256-ZiFms3GWhTrEcE6/nf3pUjpdux5PRI3AtOzxofk93pk=" 4 + }
+1246
pkgs/os-specific/windows/msvcSdk/manifest.json
··· 1 + { 2 + "manifestVersion": "1.1", 3 + "info": { 4 + "id": "VisualStudio.17.Release/17.14.10+36327.8", 5 + "buildBranch": "d17.14", 6 + "buildVersion": "17.14.36327.8", 7 + "commitId": "9c44947270e1855daef3c04c366aea2e90d9b7e8", 8 + "communityOrLowerFlightId": "eafa266867f74eb", 9 + "localBuild": "build-lab", 10 + "manifestName": "VisualStudio.17.Release", 11 + "manifestType": "channel", 12 + "productDisplayVersion": "17.14.10", 13 + "productLine": "Dev17", 14 + "productLineVersion": "2022", 15 + "productMilestone": "RTW", 16 + "productMilestoneIsPreRelease": "False", 17 + "productName": "Visual Studio", 18 + "productPatchVersion": "10", 19 + "productPreReleaseMilestoneSuffix": "1.0", 20 + "productSemanticVersion": "17.14.10+36327.8", 21 + "professionalOrGreaterFlightId": "4bfa166bd6094b0", 22 + "qBuildSessionId": "8f5f40fc-b90a-ea8e-46c5-2c40390680d0" 23 + }, 24 + "channelItems": [ 25 + { 26 + "id": "Microsoft.VisualStudio.Manifests.VisualStudio", 27 + "version": "17.14.36327.8", 28 + "type": "Manifest", 29 + "payloads": [ 30 + { 31 + "fileName": "VisualStudio.vsman", 32 + "sha256": "219fcc842c9f5a431105a409e8f9642ceeebd285a3d6a1c1502cf1761cc564e0", 33 + "size": 31342440, 34 + "url": "https://download.visualstudio.microsoft.com/download/pr/fd84d0bb-e8dd-4174-b4ad-b2556426fe65/219fcc842c9f5a431105a409e8f9642ceeebd285a3d6a1c1502cf1761cc564e0/VisualStudio.vsman" 35 + } 36 + ] 37 + }, 38 + { 39 + "id": "Microsoft.VisualStudio.Product.BuildTools", 40 + "version": "17.14.36327.8", 41 + "type": "ChannelProduct", 42 + "icon": { 43 + "mimeType": "image/svg+xml", 44 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 45 + }, 46 + "isHidden": true, 47 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 48 + "localizedResources": [ 49 + { 50 + "language": "en-us", 51 + "title": "Visual Studio Build Tools 2022", 52 + "description": "The Visual Studio Build Tools allows you to build native and managed MSBuild-based applications without requiring the Visual Studio IDE. There are options to install the Visual C++ compilers and libraries, MFC, ATL, and C++/CLI support.", 53 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 54 + }, 55 + { 56 + "language": "zh-cn", 57 + "title": "Visual Studio 生成工具 2022", 58 + "description": "Visual Studio 生成工具允许生成本机和基于 MSBuild 的托管 .NET 应用程序,而不需要 Visual Studio IDE。还可以选择安装 Visual C++ 编译器和库、MFC、ALT 和 C++/CLI 支持。", 59 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 60 + }, 61 + { 62 + "language": "zh-tw", 63 + "title": "Visual Studio Build Tools 2022", 64 + "description": "Visual Studio Build Tools 可讓您建置原生及受控 MSBuild 型工具,而不需要 Visual Studio IDE。選項包括安裝 Visual C++ 編譯器與程式庫、MFC、ATL 及 C++/CLI 支援。", 65 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 66 + }, 67 + { 68 + "language": "cs-cz", 69 + "title": "Visual Studio Build Tools 2022", 70 + "description": "Nástroje Visual Studio Build Tools umožňují vytváření nativních a spravovaných aplikací na bázi platformy MSBuild, aniž by se vyžadovalo prostředí IDE sady Visual Studio. K dispozici jsou i možnosti pro instalaci nástrojů, jako jsou kompilátory a knihovny nebo podpora Visual C++, MFC, ATL a C++/CLI.", 71 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 72 + }, 73 + { 74 + "language": "de-de", 75 + "title": "Visual Studio Build Tools 2022", 76 + "description": "Die Visual Studio Build Tools ermöglichen Ihnen die Erstellung nativer und verwalteter MSBuild-basierter Anwendungen, ohne dass die Visual Studio-IDE erforderlich ist. Es stehen Optionen zur Installation von Visual C++-Compilern und -Bibliotheken, MFC, ATL sowie C++/CLI-Unterstützung zur Verfügung.", 77 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 78 + }, 79 + { 80 + "language": "es-es", 81 + "title": "Visual Studio Build Tools 2022", 82 + "description": "Visual Studio Build Tools permite compilar aplicaciones nativas y administradas basadas en MSBuild sin el IDE de Visual Studio. Hay opciones para instalar los compiladores y las bibliotecas de Visual C++, MFC, ATL y la compatibilidad con C++/CLI.", 83 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 84 + }, 85 + { 86 + "language": "fr-fr", 87 + "title": "Visual Studio Build Tools 2022", 88 + "description": "Visual Studio Build Tools vous permet de générer des applications MSBuild natives et managées sans passer par l'IDE Visual Studio. Il existe des options pour installer les compilateurs et bibliothèques Visual C++, ainsi que la prise en charge d'ATL, de MFC et de C++/CLI.", 89 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 90 + }, 91 + { 92 + "language": "it-it", 93 + "title": "Visual Studio Build Tools 2022", 94 + "description": "Visual Studio Build Tools consente di creare applicazioni native e gestite basate su MSBuild senza l'IDE di Visual Studio. Sono disponibili opzioni per installare le librerie e i compilatori Visual C++, MFC, ATL e il supporto C++/CLI.", 95 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 96 + }, 97 + { 98 + "language": "ja-jp", 99 + "title": "Visual Studio Build Tools 2022", 100 + "description": "Visual Studio Build Tools では、Visual Studio IDE を必要とせずに、MSBuild ベースのネイティブ マネージド アプリケーションをビルドできます。また、Visual C++ のコンパイラやライブラリ、MFC、ATL、および C++/CLI サポートをインストールするオプションも用意されています。", 101 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 102 + }, 103 + { 104 + "language": "ko-kr", 105 + "title": "Visual Studio Build Tools 2022", 106 + "description": "Visual Studio Build Tools에서는 Visual Studio IDE 없이 네이티브 및 관리 MSBuild 기반 애플리케이션을 빌드할 수 있습니다. Visual C++ 컴파일러 및 라이브러리, MFC, ATL, C++/CLI 지원 등과 같은 도구를 설치하는 옵션이 있습니다.", 107 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 108 + }, 109 + { 110 + "language": "pl-pl", 111 + "title": "Visual Studio Build Tools 2022", 112 + "description": "Narzędzia Visual Studio Build Tools umożliwiają tworzenie natywnych i zarządzanych aplikacji opartych na narzędziu MSBuild bez korzystania ze środowiska IDE programu Visual Studio. Dostępne są opcje instalacji narzędzi, takich jak kompilatory i biblioteki Visual C++, ATL, MFC oraz obsługa C++/CLI.", 113 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 114 + }, 115 + { 116 + "language": "pt-br", 117 + "title": "Ferramentas de Build do Visual Studio 2022", 118 + "description": "As Ferramentas de Build do Visual Studio permitem que você compile aplicativos nativos e gerenciados com base no MSBuild sem precisar do IDE do Visual Studio. Há opções para instalar as bibliotecas e os compiladores do Visual C++, MFC, ATL e suporte C++/CLI.", 119 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 120 + }, 121 + { 122 + "language": "ru-ru", 123 + "title": "Visual Studio Build Tools 2022", 124 + "description": "Visual Studio Build Tools позволяет осуществлять сборку собственных и управляемых приложений на базе MSBuild без использования среды Visual Studio IDE. Существуют разные варианты установки компиляторов и библиотек Visual C++, ATL, MFC и поддержки C++/CLI.", 125 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 126 + }, 127 + { 128 + "language": "tr-tr", 129 + "title": "Visual Studio Derleme Araçları 2022", 130 + "description": "Visual Studio Derleme Araçları, MSBuild tabanlı yerel ve yönetilen uygulamaları Visual Studio IDE kullanmanız gerekmeden derlemenizi sağlar. Visual C++ derleyicileri ile kitaplıkları, MFC, ATL ve C++/CLI desteğini yükleyebilirsiniz.", 131 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179911" 132 + } 133 + ] 134 + }, 135 + { 136 + "id": "Microsoft.VisualStudio.Product.Community", 137 + "version": "17.14.36327.8", 138 + "type": "ChannelProduct", 139 + "chip": "x64", 140 + "productArch": "arm64", 141 + "icon": { 142 + "mimeType": "image/svg+xml", 143 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 144 + }, 145 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 146 + "supportsDownloadThenUpdate": true, 147 + "localizedResources": [ 148 + { 149 + "language": "en-us", 150 + "title": "Visual Studio Community 2022", 151 + "description": "Powerful IDE, free for students, open-source contributors, and individuals", 152 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 153 + }, 154 + { 155 + "language": "zh-cn", 156 + "title": "Visual Studio Community 2022", 157 + "description": "功能强大的 IDE,供学生、开放源代码参与者和个人免费使用", 158 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 159 + }, 160 + { 161 + "language": "zh-tw", 162 + "title": "Visual Studio Community 2022", 163 + "description": "功能強大的 IDE、免費供學生、開放原始碼參與者及個人使用", 164 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 165 + }, 166 + { 167 + "language": "cs-cz", 168 + "title": "Visual Studio Community 2022", 169 + "description": "Výkonné integrované vývojové prostředí (IDE), zdarma pro studenty, open source přispěvatele a jednotlivce", 170 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 171 + }, 172 + { 173 + "language": "de-de", 174 + "title": "Visual Studio Community 2022", 175 + "description": "Leistungsstarke IDE, kostenlos für Studenten, Open-Source-Mitwirkende und Einzelpersonen", 176 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 177 + }, 178 + { 179 + "language": "es-es", 180 + "title": "Visual Studio Community 2022", 181 + "description": "IDE con un gran potencial, gratis para estudiantes, colaboradores de código abierto y personas", 182 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 183 + }, 184 + { 185 + "language": "fr-fr", 186 + "title": "Visual Studio Community 2022", 187 + "description": "IDE puissant, gratuit pour les étudiants, les contributeurs open source et les particuliers", 188 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 189 + }, 190 + { 191 + "language": "it-it", 192 + "title": "Visual Studio Community 2022", 193 + "description": "Potente IDE gratuito per studenti, collaboratori open-source e singoli utenti", 194 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 195 + }, 196 + { 197 + "language": "ja-jp", 198 + "title": "Visual Studio Community 2022", 199 + "description": "学生、オープンソースの共同作成者、個人用の無料で強力な IDE", 200 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 201 + }, 202 + { 203 + "language": "ko-kr", 204 + "title": "Visual Studio Community 2022", 205 + "description": "학생, 오픈 소스 기여자 및 개인에게 무료로 제공되는 강력한 IDE", 206 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 207 + }, 208 + { 209 + "language": "pl-pl", 210 + "title": "Visual Studio Community 2022", 211 + "description": "Zaawansowane środowisko IDE — bezpłatne dla uczniów i studentów, współautorów oprogramowania open source oraz indywidualnych osób", 212 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 213 + }, 214 + { 215 + "language": "pt-br", 216 + "title": "Visual Studio Community 2022", 217 + "description": "IDE avançado, gratuito para estudantes, colaboradores de software livre e indivíduos", 218 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 219 + }, 220 + { 221 + "language": "ru-ru", 222 + "title": "Visual Studio Community 2022", 223 + "description": "Мощная интегрированная среда разработки, бесплатная для студентов, участников проектов с открытым кодом и отдельных пользователей.", 224 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 225 + }, 226 + { 227 + "language": "tr-tr", 228 + "title": "Visual Studio Community 2022", 229 + "description": "Güçlü IDE, öğrenciler için ücretsiz, açık kaynak katkıda bulunanları ve bireyler", 230 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 231 + } 232 + ], 233 + "requirements": { 234 + "supportedOS": "10.0.22000", 235 + "functors": { 236 + "architecture": "arm64" 237 + } 238 + } 239 + }, 240 + { 241 + "id": "Microsoft.VisualStudio.Product.Community", 242 + "version": "17.14.36327.8", 243 + "type": "ChannelProduct", 244 + "chip": "x64", 245 + "productArch": "x64", 246 + "icon": { 247 + "mimeType": "image/svg+xml", 248 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 249 + }, 250 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 251 + "supportsDownloadThenUpdate": true, 252 + "localizedResources": [ 253 + { 254 + "language": "en-us", 255 + "title": "Visual Studio Community 2022", 256 + "description": "Powerful IDE, free for students, open-source contributors, and individuals", 257 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 258 + }, 259 + { 260 + "language": "zh-cn", 261 + "title": "Visual Studio Community 2022", 262 + "description": "功能强大的 IDE,供学生、开放源代码参与者和个人免费使用", 263 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 264 + }, 265 + { 266 + "language": "zh-tw", 267 + "title": "Visual Studio Community 2022", 268 + "description": "功能強大的 IDE、免費供學生、開放原始碼參與者及個人使用", 269 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 270 + }, 271 + { 272 + "language": "cs-cz", 273 + "title": "Visual Studio Community 2022", 274 + "description": "Výkonné integrované vývojové prostředí (IDE), zdarma pro studenty, open source přispěvatele a jednotlivce", 275 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 276 + }, 277 + { 278 + "language": "de-de", 279 + "title": "Visual Studio Community 2022", 280 + "description": "Leistungsstarke IDE, kostenlos für Studenten, Open-Source-Mitwirkende und Einzelpersonen", 281 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 282 + }, 283 + { 284 + "language": "es-es", 285 + "title": "Visual Studio Community 2022", 286 + "description": "IDE con un gran potencial, gratis para estudiantes, colaboradores de código abierto y personas", 287 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 288 + }, 289 + { 290 + "language": "fr-fr", 291 + "title": "Visual Studio Community 2022", 292 + "description": "IDE puissant, gratuit pour les étudiants, les contributeurs open source et les particuliers", 293 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 294 + }, 295 + { 296 + "language": "it-it", 297 + "title": "Visual Studio Community 2022", 298 + "description": "Potente IDE gratuito per studenti, collaboratori open-source e singoli utenti", 299 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 300 + }, 301 + { 302 + "language": "ja-jp", 303 + "title": "Visual Studio Community 2022", 304 + "description": "学生、オープンソースの共同作成者、個人用の無料で強力な IDE", 305 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 306 + }, 307 + { 308 + "language": "ko-kr", 309 + "title": "Visual Studio Community 2022", 310 + "description": "학생, 오픈 소스 기여자 및 개인에게 무료로 제공되는 강력한 IDE", 311 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 312 + }, 313 + { 314 + "language": "pl-pl", 315 + "title": "Visual Studio Community 2022", 316 + "description": "Zaawansowane środowisko IDE — bezpłatne dla uczniów i studentów, współautorów oprogramowania open source oraz indywidualnych osób", 317 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 318 + }, 319 + { 320 + "language": "pt-br", 321 + "title": "Visual Studio Community 2022", 322 + "description": "IDE avançado, gratuito para estudantes, colaboradores de software livre e indivíduos", 323 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 324 + }, 325 + { 326 + "language": "ru-ru", 327 + "title": "Visual Studio Community 2022", 328 + "description": "Мощная интегрированная среда разработки, бесплатная для студентов, участников проектов с открытым кодом и отдельных пользователей.", 329 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 330 + }, 331 + { 332 + "language": "tr-tr", 333 + "title": "Visual Studio Community 2022", 334 + "description": "Güçlü IDE, öğrenciler için ücretsiz, açık kaynak katkıda bulunanları ve bireyler", 335 + "license": "https://go.microsoft.com/fwlink/?LinkId=2179811" 336 + } 337 + ], 338 + "requirements": { 339 + "supportedOS": "6.1.1", 340 + "functors": { 341 + "architecture": "x64" 342 + }, 343 + "conditions": { 344 + "expression": "not Win10ThresholdBuildNumber", 345 + "conditions": [ 346 + { 347 + "registryKey": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 348 + "id": "Win10ThresholdBuildNumber", 349 + "registryValue": "CurrentBuildNumber", 350 + "registryData": "[10240.0,14393.0)" 351 + } 352 + ] 353 + } 354 + } 355 + }, 356 + { 357 + "id": "Microsoft.VisualStudio.Product.Enterprise", 358 + "version": "17.14.36327.8", 359 + "type": "ChannelProduct", 360 + "chip": "x64", 361 + "productArch": "arm64", 362 + "icon": { 363 + "mimeType": "image/svg+xml", 364 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 365 + }, 366 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 367 + "supportsDownloadThenUpdate": true, 368 + "localizedResources": [ 369 + { 370 + "language": "en-us", 371 + "title": "Visual Studio Enterprise 2022", 372 + "description": "Scalable, end-to-end solution for teams of any size", 373 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 374 + }, 375 + { 376 + "language": "zh-cn", 377 + "title": "Visual Studio Enterprise 2022", 378 + "description": "面向任何规模团队提供的可缩放、端到端解决方案", 379 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 380 + }, 381 + { 382 + "language": "zh-tw", 383 + "title": "Visual Studio Enterprise 2022", 384 + "description": "可擴展,且適用於任何規模小組的全方位解決方案", 385 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 386 + }, 387 + { 388 + "language": "cs-cz", 389 + "title": "Visual Studio Enterprise 2022", 390 + "description": "Škálovatelné a kompletní řešení pro týmy libovolné velikosti", 391 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 392 + }, 393 + { 394 + "language": "de-de", 395 + "title": "Visual Studio Enterprise 2022", 396 + "description": "Skalierbare End-to-End-Lösung für Teams jeder Größe", 397 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 398 + }, 399 + { 400 + "language": "es-es", 401 + "title": "Visual Studio Enterprise 2022", 402 + "description": "Solución integral escalable para equipos de cualquier tamaño", 403 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 404 + }, 405 + { 406 + "language": "fr-fr", 407 + "title": "Visual Studio Enterprise 2022", 408 + "description": "Solution scalable de bout en bout pour les équipes de toutes tailles", 409 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 410 + }, 411 + { 412 + "language": "it-it", 413 + "title": "Visual Studio Enterprise 2022", 414 + "description": "Soluzione end-to-end scalabile per team di qualsiasi dimensione", 415 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 416 + }, 417 + { 418 + "language": "ja-jp", 419 + "title": "Visual Studio Enterprise 2022", 420 + "description": "あらゆる規模のチーム向けのスケーラブルなエンドツーエンド ソリューション", 421 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 422 + }, 423 + { 424 + "language": "ko-kr", 425 + "title": "Visual Studio Enterprise 2022", 426 + "description": "모든 규모의 팀에 사용할 수 있는 확장 가능한 엔드투엔드 솔루션", 427 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 428 + }, 429 + { 430 + "language": "pl-pl", 431 + "title": "Visual Studio Enterprise 2022", 432 + "description": "Skalowalne, kompleksowe rozwiązanie dla zespołów dowolnej wielkości", 433 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 434 + }, 435 + { 436 + "language": "pt-br", 437 + "title": "Visual Studio Enterprise 2022", 438 + "description": "Solução escalonável e de ponta a ponta para equipes de qualquer tamanho", 439 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 440 + }, 441 + { 442 + "language": "ru-ru", 443 + "title": "Visual Studio Enterprise 2022", 444 + "description": "Комплексное масштабируемое решение для команд любого размера.", 445 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 446 + }, 447 + { 448 + "language": "tr-tr", 449 + "title": "Visual Studio Enterprise 2022", 450 + "description": "Her boyuttaki takımlar için ölçeklenebilir, uçtan uca çözüm", 451 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 452 + } 453 + ], 454 + "requirements": { 455 + "supportedOS": "10.0.22000", 456 + "functors": { 457 + "architecture": "arm64" 458 + } 459 + } 460 + }, 461 + { 462 + "id": "Microsoft.VisualStudio.Product.Enterprise", 463 + "version": "17.14.36327.8", 464 + "type": "ChannelProduct", 465 + "chip": "x64", 466 + "productArch": "x64", 467 + "icon": { 468 + "mimeType": "image/svg+xml", 469 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 470 + }, 471 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 472 + "supportsDownloadThenUpdate": true, 473 + "localizedResources": [ 474 + { 475 + "language": "en-us", 476 + "title": "Visual Studio Enterprise 2022", 477 + "description": "Scalable, end-to-end solution for teams of any size", 478 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 479 + }, 480 + { 481 + "language": "zh-cn", 482 + "title": "Visual Studio Enterprise 2022", 483 + "description": "面向任何规模团队提供的可缩放、端到端解决方案", 484 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 485 + }, 486 + { 487 + "language": "zh-tw", 488 + "title": "Visual Studio Enterprise 2022", 489 + "description": "可擴展,且適用於任何規模小組的全方位解決方案", 490 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 491 + }, 492 + { 493 + "language": "cs-cz", 494 + "title": "Visual Studio Enterprise 2022", 495 + "description": "Škálovatelné a kompletní řešení pro týmy libovolné velikosti", 496 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 497 + }, 498 + { 499 + "language": "de-de", 500 + "title": "Visual Studio Enterprise 2022", 501 + "description": "Skalierbare End-to-End-Lösung für Teams jeder Größe", 502 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 503 + }, 504 + { 505 + "language": "es-es", 506 + "title": "Visual Studio Enterprise 2022", 507 + "description": "Solución integral escalable para equipos de cualquier tamaño", 508 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 509 + }, 510 + { 511 + "language": "fr-fr", 512 + "title": "Visual Studio Enterprise 2022", 513 + "description": "Solution scalable de bout en bout pour les équipes de toutes tailles", 514 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 515 + }, 516 + { 517 + "language": "it-it", 518 + "title": "Visual Studio Enterprise 2022", 519 + "description": "Soluzione end-to-end scalabile per team di qualsiasi dimensione", 520 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 521 + }, 522 + { 523 + "language": "ja-jp", 524 + "title": "Visual Studio Enterprise 2022", 525 + "description": "あらゆる規模のチーム向けのスケーラブルなエンドツーエンド ソリューション", 526 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 527 + }, 528 + { 529 + "language": "ko-kr", 530 + "title": "Visual Studio Enterprise 2022", 531 + "description": "모든 규모의 팀에 사용할 수 있는 확장 가능한 엔드투엔드 솔루션", 532 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 533 + }, 534 + { 535 + "language": "pl-pl", 536 + "title": "Visual Studio Enterprise 2022", 537 + "description": "Skalowalne, kompleksowe rozwiązanie dla zespołów dowolnej wielkości", 538 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 539 + }, 540 + { 541 + "language": "pt-br", 542 + "title": "Visual Studio Enterprise 2022", 543 + "description": "Solução escalonável e de ponta a ponta para equipes de qualquer tamanho", 544 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 545 + }, 546 + { 547 + "language": "ru-ru", 548 + "title": "Visual Studio Enterprise 2022", 549 + "description": "Комплексное масштабируемое решение для команд любого размера.", 550 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 551 + }, 552 + { 553 + "language": "tr-tr", 554 + "title": "Visual Studio Enterprise 2022", 555 + "description": "Her boyuttaki takımlar için ölçeklenebilir, uçtan uca çözüm", 556 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 557 + } 558 + ], 559 + "requirements": { 560 + "supportedOS": "6.1.1", 561 + "functors": { 562 + "architecture": "x64" 563 + }, 564 + "conditions": { 565 + "expression": "not Win10ThresholdBuildNumber", 566 + "conditions": [ 567 + { 568 + "registryKey": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 569 + "id": "Win10ThresholdBuildNumber", 570 + "registryValue": "CurrentBuildNumber", 571 + "registryData": "[10240.0,14393.0)" 572 + } 573 + ] 574 + } 575 + } 576 + }, 577 + { 578 + "id": "Microsoft.VisualStudio.Product.Professional", 579 + "version": "17.14.36327.8", 580 + "type": "ChannelProduct", 581 + "chip": "x64", 582 + "productArch": "arm64", 583 + "icon": { 584 + "mimeType": "image/svg+xml", 585 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 586 + }, 587 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 588 + "supportsDownloadThenUpdate": true, 589 + "localizedResources": [ 590 + { 591 + "language": "en-us", 592 + "title": "Visual Studio Professional 2022", 593 + "description": "Professional IDE best suited to small teams", 594 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 595 + }, 596 + { 597 + "language": "zh-cn", 598 + "title": "Visual Studio Professional 2022", 599 + "description": "为小型团队量身定制的专业 IDE", 600 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 601 + }, 602 + { 603 + "language": "zh-tw", 604 + "title": "Visual Studio Professional 2022", 605 + "description": "最適合小型小組的專業 IDE", 606 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 607 + }, 608 + { 609 + "language": "cs-cz", 610 + "title": "Visual Studio Professional 2022", 611 + "description": "Profesionální integrované vývojové prostředí (IDE), které nejlépe vyhovuje malým týmům", 612 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 613 + }, 614 + { 615 + "language": "de-de", 616 + "title": "Visual Studio Professional 2022", 617 + "description": "Professionelle IDE, optimal für kleine Teams", 618 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 619 + }, 620 + { 621 + "language": "es-es", 622 + "title": "Visual Studio Professional 2022", 623 + "description": "IDE profesional ideal para equipos pequeños", 624 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 625 + }, 626 + { 627 + "language": "fr-fr", 628 + "title": "Visual Studio Professional 2022", 629 + "description": "IDE professionnel, mieux adapté aux petites équipes", 630 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 631 + }, 632 + { 633 + "language": "it-it", 634 + "title": "Visual Studio Professional 2022", 635 + "description": "IDE professionale ideale per piccoli team", 636 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 637 + }, 638 + { 639 + "language": "ja-jp", 640 + "title": "Visual Studio Professional 2022", 641 + "description": "小規模チームに最適なプロフェッショナルな IDE", 642 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 643 + }, 644 + { 645 + "language": "ko-kr", 646 + "title": "Visual Studio Professional 2022", 647 + "description": "소규모 팀에 가장 적합한 전문 IDE", 648 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 649 + }, 650 + { 651 + "language": "pl-pl", 652 + "title": "Visual Studio Professional 2022", 653 + "description": "Profesjonalne środowisko IDE najlepiej dopasowane do małych zespołów", 654 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 655 + }, 656 + { 657 + "language": "pt-br", 658 + "title": "Visual Studio Professional 2022", 659 + "description": "IDE profissional mais adequado para equipes pequenas", 660 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 661 + }, 662 + { 663 + "language": "ru-ru", 664 + "title": "Visual Studio Professional 2022", 665 + "description": "Профессиональная интегрированная среда разработки, оптимально подходящая для небольших команд.", 666 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 667 + }, 668 + { 669 + "language": "tr-tr", 670 + "title": "Visual Studio Professional 2022", 671 + "description": "Küçük takımlar için en uygun profesyonel IDE", 672 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 673 + } 674 + ], 675 + "requirements": { 676 + "supportedOS": "10.0.22000", 677 + "functors": { 678 + "architecture": "arm64" 679 + } 680 + } 681 + }, 682 + { 683 + "id": "Microsoft.VisualStudio.Product.Professional", 684 + "version": "17.14.36327.8", 685 + "type": "ChannelProduct", 686 + "chip": "x64", 687 + "productArch": "x64", 688 + "icon": { 689 + "mimeType": "image/svg+xml", 690 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 691 + }, 692 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 693 + "supportsDownloadThenUpdate": true, 694 + "localizedResources": [ 695 + { 696 + "language": "en-us", 697 + "title": "Visual Studio Professional 2022", 698 + "description": "Professional IDE best suited to small teams", 699 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 700 + }, 701 + { 702 + "language": "zh-cn", 703 + "title": "Visual Studio Professional 2022", 704 + "description": "为小型团队量身定制的专业 IDE", 705 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 706 + }, 707 + { 708 + "language": "zh-tw", 709 + "title": "Visual Studio Professional 2022", 710 + "description": "最適合小型小組的專業 IDE", 711 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 712 + }, 713 + { 714 + "language": "cs-cz", 715 + "title": "Visual Studio Professional 2022", 716 + "description": "Profesionální integrované vývojové prostředí (IDE), které nejlépe vyhovuje malým týmům", 717 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 718 + }, 719 + { 720 + "language": "de-de", 721 + "title": "Visual Studio Professional 2022", 722 + "description": "Professionelle IDE, optimal für kleine Teams", 723 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 724 + }, 725 + { 726 + "language": "es-es", 727 + "title": "Visual Studio Professional 2022", 728 + "description": "IDE profesional ideal para equipos pequeños", 729 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 730 + }, 731 + { 732 + "language": "fr-fr", 733 + "title": "Visual Studio Professional 2022", 734 + "description": "IDE professionnel, mieux adapté aux petites équipes", 735 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 736 + }, 737 + { 738 + "language": "it-it", 739 + "title": "Visual Studio Professional 2022", 740 + "description": "IDE professionale ideale per piccoli team", 741 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 742 + }, 743 + { 744 + "language": "ja-jp", 745 + "title": "Visual Studio Professional 2022", 746 + "description": "小規模チームに最適なプロフェッショナルな IDE", 747 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 748 + }, 749 + { 750 + "language": "ko-kr", 751 + "title": "Visual Studio Professional 2022", 752 + "description": "소규모 팀에 가장 적합한 전문 IDE", 753 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 754 + }, 755 + { 756 + "language": "pl-pl", 757 + "title": "Visual Studio Professional 2022", 758 + "description": "Profesjonalne środowisko IDE najlepiej dopasowane do małych zespołów", 759 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 760 + }, 761 + { 762 + "language": "pt-br", 763 + "title": "Visual Studio Professional 2022", 764 + "description": "IDE profissional mais adequado para equipes pequenas", 765 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 766 + }, 767 + { 768 + "language": "ru-ru", 769 + "title": "Visual Studio Professional 2022", 770 + "description": "Профессиональная интегрированная среда разработки, оптимально подходящая для небольших команд.", 771 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 772 + }, 773 + { 774 + "language": "tr-tr", 775 + "title": "Visual Studio Professional 2022", 776 + "description": "Küçük takımlar için en uygun profesyonel IDE", 777 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 778 + } 779 + ], 780 + "requirements": { 781 + "supportedOS": "6.1.1", 782 + "functors": { 783 + "architecture": "x64" 784 + }, 785 + "conditions": { 786 + "expression": "not Win10ThresholdBuildNumber", 787 + "conditions": [ 788 + { 789 + "registryKey": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 790 + "id": "Win10ThresholdBuildNumber", 791 + "registryValue": "CurrentBuildNumber", 792 + "registryData": "[10240.0,14393.0)" 793 + } 794 + ] 795 + } 796 + } 797 + }, 798 + { 799 + "id": "Microsoft.VisualStudio.Product.TeamExplorer", 800 + "version": "17.14.36327.8", 801 + "type": "ChannelProduct", 802 + "chip": "x64", 803 + "productArch": "x64", 804 + "icon": { 805 + "mimeType": "image/svg+xml", 806 + "base64": "PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICA8ZGVmcz4NCiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzVlNDM4Zjt9LmNscy0ye29wYWNpdHk6MC4xO2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTN7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTV7ZmlsbDojYzE4ZWYxO308L3N0eWxlPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMy42MTIiIHkxPSItMTUuMzUyIiB4Mj0iMTkuNTc1IiB5Mj0iMS4zNjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM3MjUyYWEiLz4NCiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcyNTJhYSIvPg0KICAgIDwvbGluZWFyR3JhZGllbnQ+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjguODQ0IiB5MT0iMzguNjc5IiB4Mj0iMTMuODcxIiB5Mj0iMzMuMjE2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTIyKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYWU3ZmUyIi8+DQogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5YTcwZDQiLz4NCiAgICA8L2xpbmVhckdyYWRpZW50Pg0KICA8L2RlZnM+DQogIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNCwyMC4zbC00LTNhLjkxMS45MTEsMCwwLDEtLjQtLjh2LTlhLjkxMS45MTEsMCwwLDEsLjQtLjhsNC0zYS45MTEuOTExLDAsMCwwLS40Ljh2MTVBLjkxMS45MTEsMCwwLDAsNC40LDIwLjNaIi8+DQogIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEuMSwxNy4yYS41MTcuNTE3LDAsMCwxLS40LjIuMzY2LjM2NiwwLDAsMS0uMy0uMWgwbDQsM2EuOTExLjkxMSwwLDAsMS0uNC0uOFYxMy44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0uNCw2LjdoMGEuNS41LDAsMCwxLC42OTMuMDlMMS4xLDYuOCw0LDEwLjJWNC41YS45MTEuOTExLDAsMCwxLC40LS44WiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMy42LDQuMkExLjQyMywxLjQyMywwLDAsMCwyMyw0YS45MDguOTA4LDAsMCwwLS43LjNsLS4xLjFMMTgsOC40LDE0LjMsMTIsOS45LDE2LjIsNS44LDIwLjFsLS4xLjFhLjkwOC45MDgsMCwwLDEtLjcuMywxLjQyMywxLjQyMywwLDAsMS0uNi0uMmwtNC0zYTEuMDcxLDEuMDcxLDAsMCwwLDEuNC0uMUw0LDE0LjYsNi4yLDEyLDkuOCw3LjgsMTYuMi40QS45MTEuOTExLDAsMCwxLDE3LDBhMS40MjMsMS40MjMsMCwwLDEsLjYuMloiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEwLjIgNy40IDkuOCA3LjggNi4yIDEyIDUuOSAxMi40IDkuNSAxNi42IDkuNSAxNi42IDkuOCAxNi4yIDE0LjMgMTIgMTQuNiAxMS43IDEwLjIgNy40Ii8+DQogIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIzLjYsMTkuOGwtNiw0Yy0uMSwwLS4yLjEtLjMuMWgwYS45LjksMCwwLDEtMS0uM0w5LjksMTYuMiw2LjIsMTIsNCw5LjQsMS44LDYuOEExLjIwOCwxLjIwOCwwLDAsMCwuNCw2LjdsNC0zQTEuNDIzLDEuNDIzLDAsMCwxLDUsMy41YS45MDguOTA4LDAsMCwxLC43LjNsLjEuMUw5LjksNy44LDE0LjMsMTJsMy4yLDMuMS41LjUsNC4yLDQuMS4xLjFhLjkwOC45MDgsMCwwLDAsLjcuM1oiLz4NCiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjMuNiwxOS44bC02LDRjLS4xLDAtLjIuMS0uMy4xYS43NjIuNzYyLDAsMCwwLC4yLS40VjE1LjFsLjUuNSw0LjIsNC4xLjEuMWEuOTA4LjkwOCwwLDAsMCwuNy4zWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy41LjJhLjM2Ni4zNjYsMCwwLDAtLjMtLjEuNTE3LjUxNywwLDAsMSwuMi40VjguOWwuNi0uNSw0LjItNC4xLjEtLjFBMS40NDgsMS40NDgsMCwwLDEsMjMsNGExLjQyMywxLjQyMywwLDAsMSwuNi4yWiIvPg0KICA8cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNCw1VjE5YTEsMSwwLDAsMS0uNDQ1LjgzNWwtNiw0QTEsMSwwLDAsMCwxOCwyM1YxYTEuMDEsMS4wMSwwLDAsMC0uNDYtLjgzNWw2LjAxNSw0QTEuMDA5LDEuMDA5LDAsMCwxLDI0LDVaIi8+DQo8L3N2Zz4=" 807 + }, 808 + "isHidden": true, 809 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 810 + "localizedResources": [ 811 + { 812 + "language": "en-us", 813 + "title": "Visual Studio Team Explorer 2022", 814 + "description": "Interact with Team Foundation Server and Visual Studio Team Services without a Visual Studio developer toolset", 815 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 816 + }, 817 + { 818 + "language": "zh-cn", 819 + "title": "Visual Studio 团队资源管理器 2022", 820 + "description": "无需 Visual Studio 开发人员工具集,即可与 Team Foundation Server 和 Visual Studio Team Services 进行交互", 821 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 822 + }, 823 + { 824 + "language": "zh-tw", 825 + "title": "Visual Studio Team Explorer 2022", 826 + "description": "與 Team Foundation Server 和 Visual Studio Team Services 互動而不使用 Visual Studio 開發人員工具", 827 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 828 + }, 829 + { 830 + "language": "cs-cz", 831 + "title": "Visual Studio Team Explorer 2022", 832 + "description": "Interakce s Team Foundation Serverem a službou Visual Studio Team Services bez sady vývojářských nástrojů, které nabízí Visual Studio", 833 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 834 + }, 835 + { 836 + "language": "de-de", 837 + "title": "Visual Studio Team Explorer 2022", 838 + "description": "Interagieren Sie mit Team Foundation Server und Visual Studio Team Services ohne eine Visual Studio-Entwicklertoolset.", 839 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 840 + }, 841 + { 842 + "language": "es-es", 843 + "title": "Visual Studio Team Explorer 2022", 844 + "description": "Interactúe con Team Foundation Server y Visual Studio Team Services sin un conjunto de herramientas de desarrollador de Visual Studio", 845 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 846 + }, 847 + { 848 + "language": "fr-fr", 849 + "title": "Visual Studio Team Explorer 2022", 850 + "description": "Interagissez avec Team Foundation Server et Visual Studio Team Services sans l'ensemble d'outils de développement Visual Studio", 851 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 852 + }, 853 + { 854 + "language": "it-it", 855 + "title": "Visual Studio Team Explorer 2022", 856 + "description": "Consente di interagire con Team Foundation Server e Visual Studio Team Services senza usare un set di strumenti di sviluppo di Visual Studio", 857 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 858 + }, 859 + { 860 + "language": "ja-jp", 861 + "title": "Visual Studio Team Explorer 2022", 862 + "description": "Visual Studio 開発者ツールセットを使用せずに Team Foundation Server および Visual Studio Team Services と対話します", 863 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 864 + }, 865 + { 866 + "language": "ko-kr", 867 + "title": "Visual Studio 팀 탐색기 2022", 868 + "description": "Visual Studio 개발자 도구 집합 없이 Team Foundation Server 및 Visual Studio Team Services 조작", 869 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 870 + }, 871 + { 872 + "language": "pl-pl", 873 + "title": "Visual Studio Team Explorer 2022", 874 + "description": "Interakcja z serwerem Team Foundation Server i usługami Visual Studio Team Services bez korzystania z zestawu narzędzi dewelopera programu Visual Studio", 875 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 876 + }, 877 + { 878 + "language": "pt-br", 879 + "title": "Visual Studio Team Explorer 2022", 880 + "description": "Interaja com o Team Foundation Server e o Visual Studio Team Services sem um conjunto de ferramentas de desenvolvedor do Visual Studio", 881 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 882 + }, 883 + { 884 + "language": "ru-ru", 885 + "title": "Visual Studio Team Explorer 2022", 886 + "description": "Взаимодействие с Team Foundation Server и Visual Studio Team Services без набора инструментов разработчика Visual Studio", 887 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 888 + }, 889 + { 890 + "language": "tr-tr", 891 + "title": "Visual Studio Takım Gezgini 2022", 892 + "description": "Visual Studio geliştirici araç seti olmadan Team Foundation Server ve Visual Studio Team Services ile etkileşim kurun", 893 + "license": "https://go.microsoft.com/fwlink/?LinkId=2229259" 894 + } 895 + ], 896 + "requirements": { 897 + "supportedOS": "6.1.1", 898 + "functors": { 899 + "architecture": "x64" 900 + }, 901 + "conditions": { 902 + "expression": "not Win10ThresholdBuildNumber", 903 + "conditions": [ 904 + { 905 + "registryKey": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 906 + "id": "Win10ThresholdBuildNumber", 907 + "registryValue": "CurrentBuildNumber", 908 + "registryData": "[10240.0,14393.0)" 909 + } 910 + ] 911 + } 912 + } 913 + }, 914 + { 915 + "id": "Microsoft.VisualStudio.Product.TestAgent", 916 + "version": "17.14.36327.8", 917 + "type": "ChannelProduct", 918 + "icon": { 919 + "mimeType": "image/svg+xml", 920 + "base64": "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+DQogIDxzdHlsZT4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I2Y2ZjZmNn0uYnJhbmQtdnNpZGV7ZmlsbDojODY1ZmM1fTwvc3R5bGU+DQogIDxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTQwIDQwSDBWMGg0MHY0MHoiIGlkPSJjYW52YXMiLz4NCiAgPHBhdGggY2xhc3M9ImJyYW5kLXZzaWRlIiBkPSJNMzAuMjIxLS4wMDJMMTMuODg3IDE2LjE2IDQuMDUyIDguNzQ2IDAgMTAuMTAyVjI5LjlsNC4wNTIgMS4zNTYgOS44MzUtNy40MTQgMTYuMzM0IDE2LjE2TDQwIDM1Ljg0MlY0LjE1OGwtOS43NzktNC4xNnpNNC4wNTIgMjUuODlWMTQuMTExTDEwLjAwNCAyMGwtNS45NTIgNS44OXpNMzAgMjguNDcyTDE4Ljk4MyAyMCAzMCAxMS41Mjh2MTYuOTQ0eiIvPg0KPC9zdmc+" 921 + }, 922 + "isHidden": true, 923 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 924 + "localizedResources": [ 925 + { 926 + "language": "en-us", 927 + "title": "Visual Studio Test Agent 2022", 928 + "description": "Supports running automated tests and load tests remotely", 929 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 930 + }, 931 + { 932 + "language": "zh-cn", 933 + "title": "Visual Studio 测试代理 2022", 934 + "description": "支持运行自动测试和远程下载测试", 935 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 936 + }, 937 + { 938 + "language": "zh-tw", 939 + "title": "Visual Studio Test Agent 2022", 940 + "description": "支援在遠端執行自動化的測試與負載測試", 941 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 942 + }, 943 + { 944 + "language": "cs-cz", 945 + "title": "Visual Studio Test Agent 2022", 946 + "description": "Podporuje vzdálené spouštění automatizovaných a zátěžových testů.", 947 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 948 + }, 949 + { 950 + "language": "de-de", 951 + "title": "Visual Studio-Test-Agent 2022", 952 + "description": "Unterstützt die Remoteausführung von automatisierten Tests und Auslastungstests.", 953 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 954 + }, 955 + { 956 + "language": "es-es", 957 + "title": "Visual Studio Test Agent 2022", 958 + "description": "Admite la ejecución de pruebas automatizadas y pruebas de carga de forma remota.", 959 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 960 + }, 961 + { 962 + "language": "fr-fr", 963 + "title": "Agent de test Visual Studio 2022", 964 + "description": "Prend en charge l'exécution de tests automatisés et de tests de charge à distance", 965 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 966 + }, 967 + { 968 + "language": "it-it", 969 + "title": "Visual Studio agente di test 2022", 970 + "description": "Supporta l'esecuzione di test automatizzati e test di carico in remoto", 971 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 972 + }, 973 + { 974 + "language": "ja-jp", 975 + "title": "Visual Studio Test Agent 2022", 976 + "description": "自動テストとロード テストのリモートでの実行をサポートする", 977 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 978 + }, 979 + { 980 + "language": "ko-kr", 981 + "title": "Visual Studio 테스트 에이전트 2022", 982 + "description": "자동화된 테스트 및 부하 테스트 원격 실행을 지원합니다.", 983 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 984 + }, 985 + { 986 + "language": "pl-pl", 987 + "title": "Visual Studio Test Agent 2022", 988 + "description": "Obsługuje zdalne uruchamianie zautomatyzowanych testów i testów obciążeniowych", 989 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 990 + }, 991 + { 992 + "language": "pt-br", 993 + "title": "Agente de Teste do Visual Studio 2022", 994 + "description": "Dá suporte à execução de testes automatizados e carrega testes remotamente", 995 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 996 + }, 997 + { 998 + "language": "ru-ru", 999 + "title": "Агент тестирования Visual Studio 2022", 1000 + "description": "Поддерживает удаленное выполнение автоматических тестов и нагрузочных тестов", 1001 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1002 + }, 1003 + { 1004 + "language": "tr-tr", 1005 + "title": "Visual Studio Test Aracısı 2022", 1006 + "description": "Otomatik testler çalıştırmayı ve testleri uzaktan yüklemeyi destekler", 1007 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1008 + } 1009 + ] 1010 + }, 1011 + { 1012 + "id": "Microsoft.VisualStudio.Product.TestController", 1013 + "version": "17.14.36327.8", 1014 + "type": "ChannelProduct", 1015 + "icon": { 1016 + "mimeType": "image/svg+xml", 1017 + "base64": "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+DQogIDxzdHlsZT4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I2Y2ZjZmNn0uYnJhbmQtdnNpZGV7ZmlsbDojODY1ZmM1fTwvc3R5bGU+DQogIDxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTQwIDQwSDBWMGg0MHY0MHoiIGlkPSJjYW52YXMiLz4NCiAgPHBhdGggY2xhc3M9ImJyYW5kLXZzaWRlIiBkPSJNMzAuMjIxLS4wMDJMMTMuODg3IDE2LjE2IDQuMDUyIDguNzQ2IDAgMTAuMTAyVjI5LjlsNC4wNTIgMS4zNTYgOS44MzUtNy40MTQgMTYuMzM0IDE2LjE2TDQwIDM1Ljg0MlY0LjE1OGwtOS43NzktNC4xNnpNNC4wNTIgMjUuODlWMTQuMTExTDEwLjAwNCAyMGwtNS45NTIgNS44OXpNMzAgMjguNDcyTDE4Ljk4MyAyMCAzMCAxMS41Mjh2MTYuOTQ0eiIvPg0KPC9zdmc+" 1018 + }, 1019 + "isHidden": true, 1020 + "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.10", 1021 + "localizedResources": [ 1022 + { 1023 + "language": "en-us", 1024 + "title": "Visual Studio Load Test Controller 2022", 1025 + "description": "Distribute automated tests to multiple machines", 1026 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1027 + }, 1028 + { 1029 + "language": "zh-cn", 1030 + "title": "Visual Studio Load Test Controller 2022", 1031 + "description": "将自动测试分发到多台计算机", 1032 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1033 + }, 1034 + { 1035 + "language": "zh-tw", 1036 + "title": "Visual Studio Load Test Controller 2022", 1037 + "description": "將自動化的測試散發至多部電腦", 1038 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1039 + }, 1040 + { 1041 + "language": "cs-cz", 1042 + "title": "Visual Studio Load Test Controller 2022", 1043 + "description": "Distribuce automatizovaných testů na více počítačů", 1044 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1045 + }, 1046 + { 1047 + "language": "de-de", 1048 + "title": "Visual Studio Load Test Controller 2022", 1049 + "description": "Verteilt automatisierte Tests auf mehrere Computer.", 1050 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1051 + }, 1052 + { 1053 + "language": "es-es", 1054 + "title": "Microsoft Test Controller para Visual Studio 2022", 1055 + "description": "Distribuye pruebas automatizadas a varias máquinas.", 1056 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1057 + }, 1058 + { 1059 + "language": "fr-fr", 1060 + "title": "Visual Studio Load Test Controller 2022", 1061 + "description": "Distribuer des tests automatisés à plusieurs machines", 1062 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1063 + }, 1064 + { 1065 + "language": "it-it", 1066 + "title": "Visual Studio Load Test Controller 2022", 1067 + "description": "Consente di distribuire i test automatizzati in più computer", 1068 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1069 + }, 1070 + { 1071 + "language": "ja-jp", 1072 + "title": "Visual Studio Load Test Controller 2022", 1073 + "description": "自動テストを複数のマシンに配布する", 1074 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1075 + }, 1076 + { 1077 + "language": "ko-kr", 1078 + "title": "Visual Studio Load Test Controller 2022", 1079 + "description": "자동화된 테스트를 여러 컴퓨터에 배포합니다.", 1080 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1081 + }, 1082 + { 1083 + "language": "pl-pl", 1084 + "title": "Visual Studio Load Test Controller 2022", 1085 + "description": "Dystrybuuj zautomatyzowane testy na wielu maszynach", 1086 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1087 + }, 1088 + { 1089 + "language": "pt-br", 1090 + "title": "Visual Studio Load Test Controller 2022", 1091 + "description": "Distribuir testes automatizados para vários computadores", 1092 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1093 + }, 1094 + { 1095 + "language": "ru-ru", 1096 + "title": "Visual Studio Load Test Controller 2022", 1097 + "description": "Распределение автоматических тестов на несколько компьютеров", 1098 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1099 + }, 1100 + { 1101 + "language": "tr-tr", 1102 + "title": "Visual Studio Yük Testi Denetleyicisi 2022", 1103 + "description": "Otomatik testleri birden fazla makineye dağıt", 1104 + "license": "https://go.microsoft.com/fwlink/?LinkId=2180117" 1105 + } 1106 + ] 1107 + }, 1108 + { 1109 + "id": "VisualStudio.17.Release", 1110 + "version": "17.14.36327.8", 1111 + "type": "Channel", 1112 + "localizedResources": [ 1113 + { 1114 + "language": "en-us", 1115 + "title": "Current", 1116 + "description": "The Current channel includes the latest features and fixes that are ready for production use.", 1117 + "channelSuffix": "" 1118 + }, 1119 + { 1120 + "language": "zh-cn", 1121 + "title": "Current", 1122 + "description": "当前频道包括已可供生产使用的最新功能和修补程序。", 1123 + "channelSuffix": "" 1124 + }, 1125 + { 1126 + "language": "zh-tw", 1127 + "title": "Current", 1128 + "description": "目前通道包含可供生產環境使用的最新功能和修正程式。", 1129 + "channelSuffix": "" 1130 + }, 1131 + { 1132 + "language": "cs-cz", 1133 + "title": "Current", 1134 + "description": "Aktuální kanál zahrnuje nejnovější funkce a opravy, které jsou připravené k použití v produkčním prostředí.", 1135 + "channelSuffix": "" 1136 + }, 1137 + { 1138 + "language": "de-de", 1139 + "title": "Current", 1140 + "description": "Der aktuelle Kanal enthält die neuesten Features und Fixes, die für die Produktion bereit sind.", 1141 + "channelSuffix": "" 1142 + }, 1143 + { 1144 + "language": "es-es", 1145 + "title": "Current", 1146 + "description": "El canal actual incluye las características y correcciones más recientes que están listas para el uso de producción.", 1147 + "channelSuffix": "" 1148 + }, 1149 + { 1150 + "language": "fr-fr", 1151 + "title": "Current", 1152 + "description": "Le canal actuel inclut les dernières fonctionnalités et correctifs prêts pour une utilisation en production.", 1153 + "channelSuffix": "" 1154 + }, 1155 + { 1156 + "language": "it-it", 1157 + "title": "Current", 1158 + "description": "Il Canale corrente include le funzionalità e le correzioni più recenti pronte per l'uso in produzione.", 1159 + "channelSuffix": "" 1160 + }, 1161 + { 1162 + "language": "ja-jp", 1163 + "title": "Current", 1164 + "description": "現在のチャネルには、運用環境で使用する準備が整っている最新の機能と修正が含まれています。", 1165 + "channelSuffix": "" 1166 + }, 1167 + { 1168 + "language": "ko-kr", 1169 + "title": "Current", 1170 + "description": "현재 채널에는 프로덕션용으로 사용할 준비가 된 최신 기능과 수정 사항이 포함되어 있습니다.", 1171 + "channelSuffix": "" 1172 + }, 1173 + { 1174 + "language": "pl-pl", 1175 + "title": "Current", 1176 + "description": "Bieżący kanał obejmuje najnowsze funkcje i poprawki, które są gotowe do użycia w środowisku produkcyjnym.", 1177 + "channelSuffix": "" 1178 + }, 1179 + { 1180 + "language": "pt-br", 1181 + "title": "Current", 1182 + "description": "O canal Atual inclui os recursos e correções mais recentes que estão prontos para uso de produção.", 1183 + "channelSuffix": "" 1184 + }, 1185 + { 1186 + "language": "ru-ru", 1187 + "title": "Current", 1188 + "description": "Актуальный канал включает последние функции и исправления, готовые к использованию в рабочей среде.", 1189 + "channelSuffix": "" 1190 + }, 1191 + { 1192 + "language": "tr-tr", 1193 + "title": "Current", 1194 + "description": "Geçerli kanal, üretim kullanımı için hazır olan en son özellikleri ve düzeltmeleri içerir.", 1195 + "channelSuffix": "" 1196 + } 1197 + ] 1198 + }, 1199 + { 1200 + "id": "VisualStudio.17.Release.Bootstrappers.Setup", 1201 + "version": "3.14.2082.286130193", 1202 + "type": "Bootstrapper", 1203 + "installerVersion": "3.14.2082.42463", 1204 + "payloads": [ 1205 + { 1206 + "fileName": "vs_Setup.exe", 1207 + "sha256": "4e6f2345ffe48d7978d9dc239008ce9d49f107c548c9c04eed997b22c2706fa3", 1208 + "size": 4469024, 1209 + "url": "https://download.visualstudio.microsoft.com/download/pr/fd84d0bb-e8dd-4174-b4ad-b2556426fe65/4e6f2345ffe48d7978d9dc239008ce9d49f107c548c9c04eed997b22c2706fa3/vs_Setup.exe" 1210 + } 1211 + ] 1212 + } 1213 + ], 1214 + "signature": { 1215 + "signInfo": { 1216 + "signatureMethod": "sha256RSA_cng", 1217 + "digestMethod": "sha256", 1218 + "digestValue": "qUUfinnWy9j/vZ3sjUpT+qiJ2E6vjwYVl97HyPPMRoQ=", 1219 + "canonicalization": "" 1220 + }, 1221 + "signatureValue": "RMBQmisqHpU6tRAoJAgeAsJxabSYi+NdquccW/6tY2zo+NyZ28Nw0JkeqUEXwcKbEU/+SwhnDo+sQuVYYilVs7Q5role/SIBgxedocuffJxEDROkXjEhx5i7LGyg7hPwHGhgpdY6kfcBe6pQBgUUafWosH1zwS7qo/wDTP8qAiDiG/jCGDQ4sZtARHAKVPFJk4HjdQeKIkeErOH/r0WUBT5zFK8fmw4cvZhaC3ctxLuj5BK8EurkMZPn7mS7MfqJxozS4wFMpkdmlBzjx+S5CX3Ko9jIFRveHsIa+6GS0RTHzmjJQML8Gp6SMWesMX1Q13nTq4WhkiBLjQWE07vKkQ==", 1222 + "keyInfo": { 1223 + "keyValue": { 1224 + "rsaKeyValue": { 1225 + "modulus": "7XpKjCg5837MnNU9UKR3xba/q5Iq/JXcyzypjF20Q6LlVwLLwX3ehPNrT4+GM2kpbhg0KF9zaTCqKCnlRY4zUat+8sk/4dUEyzAfHaZrGf+9FDPlP7GMb7dT1lsS4zDSF6swfD4xuoux9mBYJOGDoXxknpL581td3SwLX4w9MIsERD7wjZYpUc+16BXXuSjtNXhYlnrXoePKlDqlGgJCM5wuFwd7BXdS1lJrqVxytOUHyUpp3ovamSQWE7fGYQKxg4e50J/mNYzgN6AYglCeJ9QjGlnQ4a4HTLrtNuqFgG3wt6a6pFJ/C1qdvB/tki3rTRuSkGWcL8t2XJ+/j0BpeQ==", 1226 + "exponent": "AQAB" 1227 + } 1228 + }, 1229 + "x509Data": [ 1230 + "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", 1231 + "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", 1232 + "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" 1233 + ] 1234 + }, 1235 + "counterSign": { 1236 + "x509Data": [ 1237 + "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", 1238 + "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", 1239 + "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" 1240 + ], 1241 + "timestamp": "2025-07-27-04:42:04", 1242 + "counterSignatureMethod": "timeStamp", 1243 + "counterSignature": "MIIXmAYJKoZIhvcNAQcCoIIXiTCCF4UCAQMxDzANBglghkgBZQMEAgEFADCCAV0GCyqGSIb3DQEJEAEEoIIBTASCAUgwggFEAgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIJh+vi75Frd/XH94ra2iJX44MrM/tCHaPTf/AQFgHdAIAgZoerIqRaQYEzIwMjUwNzI3MjM0MjA0LjY1NFowBIACAfQCAZGggdmkgdYwgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR+zCCBygwggUQoAMCAQICEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQwNzI1MTgzMTIxWhcNMjUxMDIyMTgzMTIxWjCB0zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NTIxQS0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvVdpp0qQ/ZOS6ehMXnvf+0Xsokz0OiK/dxy/bqaqdSGa/YMzn2KQRPhadF+jluIUgdzouqsh6oKBP19P8aSzlUo73RlBbZq+H88weeXSRl9f8jnN1Wihcdt1RSQ+Jl81ezNazCYv1SVajybPK/0un1MC3D+hc5hMDF1hKo4HlTPPVDcDy4Kk2W6ZA0MkYNjpxKfQyVi6ReSUCsKGrqX4piuXqv9ac6pdKScAGmCBKwnfegveieYOI31hQClnCOc2H0zqQNqd5LPvz9i0P/akanH38tcQuhrMRQXGHKDgp2ahYY1jB1Hv+J3zWB44RHr2Xl0m/vVL+Yf4vFvovr3afy4SYBXDp9W8T5zzCOBhluVkI08DKcKcN25Et2TWOzAKqOo1zdf9YjMDsYazgdRLhgisBTHwfYD3i8M2IDwBZrtn8dLBMLIiB5VuV1dgzYG3EwqreSd5GhPbs1DtjufxlNoCN7sGV+O7zeykY/9BZg1nXBjNhUZHI6l0DxabGrlXx/mvgdob3M9zKQ7ImlFnL5XdEaKCEWawIlcBwzOI7voeKfAIiMiacIUoYn8hsuMfont8lepE9uD4fqtgtnxcGmZcEUfg9NqRlVjEH8/4RBsvks3DRkgz565/EKWNXg76ceQz7OBLHz7TsFVk8EqyWih5uyaEhwE7Tvv2R6FyJgwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFIAlJNq+CSMqqB7nFA5effl9d3c6MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAo8Ib2eNG0ipD5+4QKDHNYyxA4jce9buxX0+YRYII5aVO4YIjM2LeJt0tlLRvYgMeDTIuu11W4GLcXFV16whe7NjKh8h79qVMF1XgOGKMtNe0Hs2A6ejsbXaI7e3qPLWE9Kq7MYuvL/aYRkHAixKhLYP4f7ccInE8PKHMwWo/6mWW08AIH9A3Bnur4cbJm/e/x636tBiDywXc9O5Z4ODd1H/OTU1rAn918UINiVY14IEIu809AFx4xhcVEUqFxJTCzuYV0gMOFmnGrIgoPZYPAXI0gYR7Of6d3iRdG6l40TH55KklfKVEP7V3jmFvo/M4gXsGRw+1G0VbbBeCSMuq1NZaUGS/OXa419gncI9lVoPIwNppeA74foOKuwnggb2KQh33jX6ZYN6OSPlpif1A3pE5+j8c0eDW2KbCkWhSK+oAW7qKtZkXDlX7IuvwUtzudsxraUVKLHO73rN2cOw8ibPRzpK1tjKEpKUze4NGL1RbJ1IqqcRu0noyT5i7G/OmuS5ZAlhZ+k++6D7BOeKjKRXBzTJFVyx3jEzOeedG1kMYxJQSX20xWd5thGyHBkjIlOwGAtmYczurZMUr9f33jhKQirJjbYBy4t7Qaqg18BIIhxm3Ntn/M/iVPb83SkNufZ98DONmSEj5Cuqv3zeZBlbBl2vdOTUxgSUNOHPYPQzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNWMIICPgIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCMk58tlveK+KkvexIuVYVsutaOZKCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7DENkzAiGA8yMDI1MDcyNzIwNDE1NVoYDzIwMjUwNzI4MjA0MTU1WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDsMQ2TAgEAMAcCAQACAhypMAcCAQACAhK6MAoCBQDsMl8TAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBABqxFyrNR8Zpr4peLLfWcoT7tbIY6cWdaO/JuxqHklTdbK1vIJ+ddd6asymw4PorliS9UDcVU76gixt7kswLcgkyxNikiIGPCB5Z8lYXMiQrc9ZXpUJH8Gk2ffzjfX5anw9OpQc/nkOlFEMhGW43Zr2a7ClWVmDLev2ciwBpVQ4KAs2vEbG7UD0OWBGVga+v4D+bSf1FkcIvdYlCYk/of+GKiS1xUsF3w8zUe04WrCHahH715uti/i2lFcCr/rMc+95FGh89z5dQCE8GMobpfyObfpXD2JKfyBnNP18TC20fHXs/B35KYcknCaKSsLgqh4JK9WXZmAgO43dV9jut04wxggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgAL16p/GyoXVgABAAACADANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCfk1sUrlE2LqTEM7arB8TGcYqqMrYG46yfR8MVajH/tDCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINTI7ew1ndu6sE0MZQJXg18zaAfhpa5G50iT/0oCT9knMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwIgQg1O1SgOjzXdzxUcKDpV3Edcq+/A52LcDhewVG1Bjdoq8wDQYJKoZIhvcNAQELBQAEggIAaHqZpIVHkTu/tuSBagQQ2TeBOlZyuBbT+HJGPNXhwl+pdpUjYHvBL7Ij7nm8noe/roHNoxsXXXIXlzycM4NUWotreCEiVPmsEsA2C5rCCdHegLTPqVq+WQP2PuoLRF8e2A/Doyo+A/r4FNYkTELzTnjs4znf3PT0gOJG+H6/+ogYOqlLFEvBprnS1ApKBflUQ1MbeBrMzSQb3+Ma2FfacfpiVXJvHeNappjz7/dnx1bjWJ4YIeJGGcehE3KrY4xNUYOsmOU32TazsTBErzY5O5PvkgFmXvEv2egAVQAKpQtfJShLBVlQ0YAUsYmlRNZ4AgZ/WLJ7T3i/hcc7J3FiBQs7KZpSXyIdti3F+K4BLqzJTOlOmoR+xJloObAndQsYOdiJAQQJVwNJgodp8wjwJxYXR3x00gvBDm/PQAPk2nNHYSPmsiKk5y2w0q9rUf4lamrGBckTqFrkg7jLhs9Ud94bp3SDyCJz/xZLFFfNaYfjkRNbfBXouVXR3BgdouJUW4wm7SYU9dxKRjy/V129uFrZdDRQLu9f1aSNZwCveAtRKNvHrQ0Kj6aHAxSqY57h8UXcgQIIEa7qxBRx/7Bf+5Grjuri4jjNv7nkeoF1IT1Ii7whdPDT5k3CT+8dDhEHejelupyEpieQ3KeWSXkCy/WDLZiixhMvbGUcyOI9rsgA" 1244 + } 1245 + } 1246 + }
+48
pkgs/os-specific/windows/msvcSdk/update.nu
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i nu -p nushell xwin 3 + 4 + use std/log 5 + use std/dirs 6 + 7 + const MANIFEST_URL = "https://aka.ms/vs/17/release/channel" 8 + 9 + const PATH = "pkgs/os-specific/windows/msvcSdk" 10 + 11 + def replace_hash [ p: path old: string new: string ] { 12 + open $p 13 + | str replace $old $new 14 + | save -f $p 15 + } 16 + 17 + def main [] { 18 + # Ensure the version is actually new 19 + let current_version = nix eval -f "" windows.sdk.version --json | from json 20 + 21 + let new_manifest = http get $MANIFEST_URL | decode | from json 22 + let new_version = $new_manifest.info.productSemanticVersion 23 + 24 + if $current_version == $new_version { 25 + log info "Current Windows SDK manifest matches the newest version, exiting..." 26 + exit 0 27 + } else { 28 + log info $"Previous version (current_version)\nNew version (new_version)" 29 + } 30 + 31 + $new_manifest | to json | append "\n" | str join | save -f ($PATH | path join manifest.json) 32 + 33 + # TODO: Add arm once it isn't broken 34 + let hashes = ["x86_64", "x86"] | par-each { 35 + |arch| 36 + let dir = mktemp -d 37 + 38 + xwin --accept-license --cache-dir $dir --manifest $"($PATH | path join manifest.json)" --arch $arch splat --preserve-ms-arch-notation 39 + 40 + let hash = nix hash path ($dir | path join splat) 41 + 42 + {arch: $arch, hash: $hash} 43 + } | transpose -r -d 44 + 45 + log info $"New hashes:\n ($hashes)" 46 + 47 + $hashes | to json | append "\n" | str join | save -f ($PATH | path join hashes.json) 48 + }
+12
pkgs/top-level/config.nix
··· 274 274 } 275 275 ''; 276 276 }; 277 + 278 + microsoftVisualStudioLicenseAccepted = mkOption { 279 + type = types.bool; 280 + default = false; 281 + # getEnv part is in check-meta.nix 282 + defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"''; 283 + description = '' 284 + If the Microsoft Visual Studio license has been accepted. 285 + 286 + Please read https://www.visualstudio.com/license-terms/mt644918/ and enable this config if you accept. 287 + ''; 288 + }; 277 289 }; 278 290 279 291 in
+2
pkgs/top-level/linux-kernels.nix
··· 364 364 inherit (pkgs) oci-seccomp-bpf-hook; # added 2022-11 365 365 inherit (pkgs) dpdk; # added 2024-03 366 366 367 + acer-wmi-battery = callPackage ../os-specific/linux/acer-wmi-battery { }; 368 + 367 369 acpi_call = callPackage ../os-specific/linux/acpi-call { }; 368 370 369 371 ajantv2 = callPackage ../os-specific/linux/ajantv2 { };