From de11d0da226732505c438cccfe76ccbb38f02e29 Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Mon, 3 Mar 2025 17:40:48 +0100 Subject: [PATCH 1/6] fix: create test directories (#1135) --- crates/rattler_menuinst/src/windows.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/rattler_menuinst/src/windows.rs b/crates/rattler_menuinst/src/windows.rs index 36bde73fa..d35fd0f09 100644 --- a/crates/rattler_menuinst/src/windows.rs +++ b/crates/rattler_menuinst/src/windows.rs @@ -88,15 +88,21 @@ impl Directories { /// Create a fake Directories struct for testing ONLY pub fn fake_folders(path: &Path) -> Directories { + // Prepare the directories + fs::create_dir_all(&path).unwrap(); + let terminal_settings_json = path.join("terminal_settings.json"); if !terminal_settings_json.exists() { // This is for testing only, so we can ignore the result - std::fs::write(&terminal_settings_json, "{}").unwrap(); + fs::write(&terminal_settings_json, "{}").unwrap(); } + let start_menu = path.join("Start Menu"); fs::create_dir_all(&start_menu).unwrap(); + let quick_launch = Some(path.join("Quick Launch")); fs::create_dir_all(quick_launch.as_ref().unwrap()).unwrap(); + let desktop = path.join("Desktop"); fs::create_dir_all(&desktop).unwrap(); From 17bb19721b70d165b48d9891dce0338633231183 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 10:40:38 +0100 Subject: [PATCH 2/6] chore(ci): bump the npm-dependencies group in /js-rattler with 4 updates (#1132) --- js-rattler/package-lock.json | 195 +++++++++++++++++++---------------- 1 file changed, 104 insertions(+), 91 deletions(-) diff --git a/js-rattler/package-lock.json b/js-rattler/package-lock.json index 416517f85..2ab05a56e 100644 --- a/js-rattler/package-lock.json +++ b/js-rattler/package-lock.json @@ -8,9 +8,6 @@ "name": "@baszalmstra/rattler", "version": "0.1.3", "license": "BSD-3-Clause", - "dependencies": { - "tslib": "^2.8.1" - }, "devDependencies": { "@jest/globals": "^29.7.0", "@microsoft/api-extractor": "^7.50.0", @@ -27,6 +24,7 @@ "shx": "^0.3.4", "ts-jest": "^29.2.5", "ts-node": "^10.9.2", + "tslib": "^2.8.1", "typescript": "^5.6.3", "wasm-pack": "^0.13.1" } @@ -948,9 +946,9 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.51.0", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.51.0.tgz", - "integrity": "sha512-LjyQ2xljliss2kIsSo8Npu9mBv6wnaR3ikBagCU2mC7Ggn30sTAOFLzVNyMLOMiuSOFxsEbskrBO5lLn92qnZQ==", + "version": "7.51.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.51.1.tgz", + "integrity": "sha512-VoFvIeYXme8QctXDkixy1KIn750kZaFy2snAEOB3nhDFfbBcJNEcvBrpCIQIV09MqI4g9egKUkg+/12WMRC77w==", "dev": true, "license": "MIT", "dependencies": { @@ -984,6 +982,20 @@ "@rushstack/node-core-library": "5.11.0" } }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/@microsoft/tsdoc": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", @@ -1150,9 +1162,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz", + "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==", "cpu": [ "arm" ], @@ -1164,9 +1176,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz", + "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==", "cpu": [ "arm64" ], @@ -1178,9 +1190,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", "cpu": [ "arm64" ], @@ -1192,9 +1204,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", "cpu": [ "x64" ], @@ -1206,9 +1218,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz", + "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==", "cpu": [ "arm64" ], @@ -1220,9 +1232,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz", + "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==", "cpu": [ "x64" ], @@ -1234,9 +1246,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz", + "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==", "cpu": [ "arm" ], @@ -1248,9 +1260,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz", + "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==", "cpu": [ "arm" ], @@ -1262,9 +1274,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", "cpu": [ "arm64" ], @@ -1276,9 +1288,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", "cpu": [ "arm64" ], @@ -1290,9 +1302,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz", + "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==", "cpu": [ "loong64" ], @@ -1304,9 +1316,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz", + "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==", "cpu": [ "ppc64" ], @@ -1318,9 +1330,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz", + "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==", "cpu": [ "riscv64" ], @@ -1332,9 +1344,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz", + "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==", "cpu": [ "s390x" ], @@ -1346,9 +1358,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", "cpu": [ "x64" ], @@ -1360,9 +1372,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", "cpu": [ "x64" ], @@ -1374,9 +1386,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", "cpu": [ "arm64" ], @@ -1388,9 +1400,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz", + "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==", "cpu": [ "ia32" ], @@ -1402,9 +1414,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", "cpu": [ "x64" ], @@ -4949,9 +4961,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -5162,9 +5174,9 @@ } }, "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz", + "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5178,25 +5190,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@rollup/rollup-android-arm-eabi": "4.34.9", + "@rollup/rollup-android-arm64": "4.34.9", + "@rollup/rollup-darwin-arm64": "4.34.9", + "@rollup/rollup-darwin-x64": "4.34.9", + "@rollup/rollup-freebsd-arm64": "4.34.9", + "@rollup/rollup-freebsd-x64": "4.34.9", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.9", + "@rollup/rollup-linux-arm-musleabihf": "4.34.9", + "@rollup/rollup-linux-arm64-gnu": "4.34.9", + "@rollup/rollup-linux-arm64-musl": "4.34.9", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.9", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9", + "@rollup/rollup-linux-riscv64-gnu": "4.34.9", + "@rollup/rollup-linux-s390x-gnu": "4.34.9", + "@rollup/rollup-linux-x64-gnu": "4.34.9", + "@rollup/rollup-linux-x64-musl": "4.34.9", + "@rollup/rollup-win32-arm64-msvc": "4.34.9", + "@rollup/rollup-win32-ia32-msvc": "4.34.9", + "@rollup/rollup-win32-x64-msvc": "4.34.9", "fsevents": "~2.3.2" } }, @@ -5643,6 +5655,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/type-detect": { @@ -5669,9 +5682,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, "license": "Apache-2.0", "bin": { From 4a6ede9cf0ad37f1336e22999398df27387de894 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 10:40:51 +0100 Subject: [PATCH 3/6] chore(ci): bump uraimo/run-on-arch-action from 2 to 3 (#1131) --- .github/workflows/release-python.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 70ac868b2..a96b75ea0 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -160,7 +160,7 @@ jobs: manylinux: '2_28' docker-options: ${{ matrix.platform.maturin_docker_options }} args: --release --out dist --no-default-features --features rustls-tls - - uses: uraimo/run-on-arch-action@v2 + - uses: uraimo/run-on-arch-action@v3 if: matrix.platform.arch != 'ppc64' name: Test wheel with: @@ -209,7 +209,7 @@ jobs: manylinux: auto docker-options: ${{ matrix.platform.maturin_docker_options }} args: --release --out dist --no-default-features --features native-tls,vendored-openssl - - uses: uraimo/run-on-arch-action@v2 + - uses: uraimo/run-on-arch-action@v3 if: matrix.platform.arch != 'ppc64' name: Test wheel with: @@ -305,7 +305,7 @@ jobs: manylinux: musllinux_1_2 args: --release --out dist --no-default-features --features rustls-tls docker-options: ${{ matrix.platform.maturin_docker_options }} - - uses: uraimo/run-on-arch-action@v2 + - uses: uraimo/run-on-arch-action@v3 name: Test wheel with: arch: ${{ matrix.platform.arch }} From 3f484aeb413e2b18a090e3612ed8e70ef37144bc Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 4 Mar 2025 10:41:09 +0100 Subject: [PATCH 4/6] feat(js): add Gateway object (#1130) --- Cargo.lock | 7 - js-rattler/Cargo.lock | 14 ++ js-rattler/Cargo.toml | 5 + js-rattler/crate/error.rs | 10 +- js-rattler/crate/gateway.rs | 151 +++++++++++++++++++ js-rattler/crate/lib.rs | 1 + js-rattler/src/Gateway.test.ts | 64 ++++++++ js-rattler/src/Gateway.ts | 92 ++++++++++++ js-rattler/src/PackageName.test.ts | 44 ++++++ js-rattler/src/PackageName.ts | 226 +++++++++++++++++++++++++++++ js-rattler/src/Platform.ts | 137 +++++++++++++++++ js-rattler/src/index.ts | 3 + js-rattler/src/solve.test.ts | 4 +- js-rattler/src/solve.ts | 21 ++- js-rattler/src/typeUtils.ts | 61 ++++++++ 15 files changed, 828 insertions(+), 12 deletions(-) create mode 100644 js-rattler/crate/gateway.rs create mode 100644 js-rattler/src/Gateway.test.ts create mode 100644 js-rattler/src/Gateway.ts create mode 100644 js-rattler/src/PackageName.test.ts create mode 100644 js-rattler/src/PackageName.ts create mode 100644 js-rattler/src/Platform.ts create mode 100644 js-rattler/src/typeUtils.ts diff --git a/Cargo.lock b/Cargo.lock index 5915dd13c..c9ca34d54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6462,13 +6462,6 @@ dependencies = [ "wit-bindgen-rt", ] -[[package]] -name = "wasm-bin" -version = "0.1.0" -dependencies = [ - "rattler_solve", -] - [[package]] name = "wasm-bindgen" version = "0.2.100" diff --git a/js-rattler/Cargo.lock b/js-rattler/Cargo.lock index a47c0f73c..970950459 100644 --- a/js-rattler/Cargo.lock +++ b/js-rattler/Cargo.lock @@ -1545,7 +1545,10 @@ dependencies = [ "rattler_conda_types", "rattler_repodata_gateway", "rattler_solve", + "serde", + "serde-wasm-bindgen", "thiserror 2.0.11", + "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test", @@ -2928,6 +2931,17 @@ dependencies = [ "typeid", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_derive" version = "1.0.218" diff --git a/js-rattler/Cargo.toml b/js-rattler/Cargo.toml index cb9829fe7..a3643f60e 100644 --- a/js-rattler/Cargo.toml +++ b/js-rattler/Cargo.toml @@ -13,6 +13,9 @@ path = "crate/lib.rs" default = ["console_error_panic_hook"] [dependencies] +serde = { version = "1.0", features = ["derive"] } +serde-wasm-bindgen = "0.6.5" + wasm-bindgen = "0.2.95" wasm-bindgen-futures = "0.4.50" @@ -35,6 +38,8 @@ rattler_conda_types = { path = "../crates/rattler_conda_types" } rattler_repodata_gateway = { path = "../crates/rattler_repodata_gateway", features = ["gateway"] } rattler_solve = { path = "../crates/rattler_solve", default-features = false, features = ["resolvo"] } +url = "2.5.4" + # By adding the `libbz2-rs-sys` feature we ensure that bzip2 is using the rust # implementation. This is important because the C implementation is not # compatible with wasm. diff --git a/js-rattler/crate/error.rs b/js-rattler/crate/error.rs index bd3f86e49..040860e25 100644 --- a/js-rattler/crate/error.rs +++ b/js-rattler/crate/error.rs @@ -1,7 +1,7 @@ use rattler_conda_types::version_spec::ParseVersionSpecError; use rattler_conda_types::{ - ParseChannelError, ParseMatchSpecError, ParsePlatformError, ParseVersionError, - VersionBumpError, VersionExtendError, + InvalidPackageNameError, ParseChannelError, ParseMatchSpecError, ParsePlatformError, + ParseVersionError, VersionBumpError, VersionExtendError, }; use rattler_repodata_gateway::GatewayError; use rattler_solve::SolveError; @@ -28,6 +28,10 @@ pub enum JsError { GatewayError(#[from] GatewayError), #[error(transparent)] SolveError(#[from] SolveError), + #[error(transparent)] + Serde(#[from] serde_wasm_bindgen::Error), + #[error(transparent)] + PackageNameError(#[from] InvalidPackageNameError), } pub type JsResult = Result; @@ -44,6 +48,8 @@ impl From for JsValue { JsError::ParseMatchSpec(error) => JsValue::from_str(&error.to_string()), JsError::GatewayError(error) => JsValue::from_str(&error.to_string()), JsError::SolveError(error) => JsValue::from_str(&error.to_string()), + JsError::PackageNameError(error) => JsValue::from_str(&error.to_string()), + JsError::Serde(error) => error.into(), } } } diff --git a/js-rattler/crate/gateway.rs b/js-rattler/crate/gateway.rs new file mode 100644 index 000000000..bb0a1e00e --- /dev/null +++ b/js-rattler/crate/gateway.rs @@ -0,0 +1,151 @@ +use std::{collections::HashMap, path::PathBuf, str::FromStr}; + +use rattler_conda_types::{Channel, Platform}; +use rattler_repodata_gateway::{fetch::CacheAction, ChannelConfig, Gateway, SourceConfig}; +use serde::Deserialize; +use url::Url; +use wasm_bindgen::prelude::*; + +use crate::JsResult; + +#[wasm_bindgen] +#[repr(transparent)] +#[derive(Clone)] +pub struct JsGateway { + inner: Gateway, +} + +impl From for JsGateway { + fn from(value: Gateway) -> Self { + JsGateway { inner: value } + } +} + +impl From for Gateway { + fn from(value: JsGateway) -> Self { + value.inner + } +} + +impl AsRef for JsGateway { + fn as_ref(&self) -> &Gateway { + &self.inner + } +} + +#[derive(Default, Deserialize)] +#[serde(rename_all = "camelCase")] +struct JsGatewayOptions { + max_concurrent_requests: Option, + + #[serde(default)] + channel_config: JsChannelConfig, +} + +#[derive(Default, Deserialize)] +#[serde(rename_all = "camelCase")] +struct JsChannelConfig { + #[serde(default)] + default: JsSourceConfig, + #[serde(default)] + per_channel: HashMap, +} + +impl From for ChannelConfig { + fn from(value: JsChannelConfig) -> Self { + ChannelConfig { + default: value.default.into(), + per_channel: value + .per_channel + .into_iter() + .map(|(key, value)| (key, value.into())) + .collect(), + } + } +} + +fn yes() -> bool { + true +} + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +struct JsSourceConfig { + #[serde(default = "yes")] + zstd_enabled: bool, + + #[serde(default = "yes")] + bz2_enabled: bool, + + #[serde(default = "yes")] + sharded_enabled: bool, +} + +impl Default for JsSourceConfig { + fn default() -> Self { + Self { + zstd_enabled: true, + bz2_enabled: true, + sharded_enabled: true, + } + } +} + +impl From for SourceConfig { + fn from(value: JsSourceConfig) -> Self { + Self { + jlap_enabled: false, + zstd_enabled: value.zstd_enabled, + bz2_enabled: value.bz2_enabled, + sharded_enabled: value.sharded_enabled, + cache_action: CacheAction::default(), + } + } +} + +#[wasm_bindgen] +impl JsGateway { + #[wasm_bindgen(constructor)] + pub fn new(input: JsValue) -> JsResult { + let mut builder = Gateway::builder(); + let options: Option = serde_wasm_bindgen::from_value(input)?; + if let Some(options) = options { + if let Some(max_concurrent_requests) = options.max_concurrent_requests { + builder.set_max_concurrent_requests(max_concurrent_requests); + } + builder.set_channel_config(options.channel_config.into()); + }; + + Ok(Self { + inner: builder.finish(), + }) + } + + pub async fn names( + &self, + channels: Vec, + platforms: Vec, + ) -> Result, JsError> { + // TODO: Dont hardcode + let channel_config = + rattler_conda_types::ChannelConfig::default_with_root_dir(PathBuf::from("")); + + let channels = channels + .into_iter() + .map(|s| Channel::from_str(&s, &channel_config)) + .collect::, _>>()?; + let platforms = platforms + .into_iter() + .map(|p| Platform::from_str(&p)) + .collect::, _>>()?; + + Ok(self + .inner + .names(channels, platforms) + .execute() + .await? + .into_iter() + .map(|name| name.as_source().to_string()) + .collect()) + } +} diff --git a/js-rattler/crate/lib.rs b/js-rattler/crate/lib.rs index 32826b6f8..a19461337 100644 --- a/js-rattler/crate/lib.rs +++ b/js-rattler/crate/lib.rs @@ -1,4 +1,5 @@ mod error; +mod gateway; pub mod solve; mod utils; mod version; diff --git a/js-rattler/src/Gateway.test.ts b/js-rattler/src/Gateway.test.ts new file mode 100644 index 000000000..f53f3e239 --- /dev/null +++ b/js-rattler/src/Gateway.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from "@jest/globals"; +import { Gateway } from "./Gateway"; + +describe("Gateway", () => { + describe("constructor", () => { + it("works without arguments", () => { + expect(() => new Gateway()).not.toThrowError(); + expect(() => new Gateway(null)).not.toThrowError(); + expect(() => new Gateway(undefined)).not.toThrowError(); + }); + it("throws on invalid arguments", () => { + expect(() => new Gateway(true as any)).toThrowError(); + }); + it("accepts an empty object", () => { + expect(() => new Gateway({})).not.toThrowError(); + }); + it("accepts null for maxConcurrentRequests", () => { + expect( + () => + new Gateway({ + maxConcurrentRequests: null, + }), + ).not.toThrowError(); + }); + it("accepts empty channelConfig", () => { + expect( + () => + new Gateway({ + channelConfig: {}, + }), + ).not.toThrowError(); + }); + it("accepts perChannel channelConfig", () => { + expect( + () => + new Gateway({ + channelConfig: { + default: {}, + perChannel: { + "https://prefix.dev": { + bz2Enabled: false, + shardedEnabled: false, + zstdEnabled: false, + }, + }, + }, + }), + ).not.toThrowError(); + }); + }); + describe("names", () => { + const gateway = new Gateway(); + it("can query prefix.dev", () => { + return gateway + .names( + ["https://prefix.dev/emscripten-forge-dev"], + ["noarch", "emscripten-wasm32"], + ) + .then((names) => { + expect(names.length).toBeGreaterThanOrEqual(177); + }); + }); + }); +}); diff --git a/js-rattler/src/Gateway.ts b/js-rattler/src/Gateway.ts new file mode 100644 index 000000000..ea67f5fad --- /dev/null +++ b/js-rattler/src/Gateway.ts @@ -0,0 +1,92 @@ +import { JsGateway } from "../pkg"; +import { Platform } from "./Platform"; +import { NormalizedPackageName } from "./PackageName"; + +export type GatewaySourceConfig = { + /** `true` if downloading `repodata.json.zst` is enabled. Defaults to `true`. */ + zstdEnabled?: boolean; + + /** `true` if downloading `repodata.json.bz2` is enabled. Defaults to `true`. */ + bz2Enabled?: boolean; + + /** + * `true` if sharded repodata is available for the channel. Defaults to + * `true`. + */ + shardedEnabled?: boolean; +}; + +export type GatewayChannelConfig = { + /** + * The default configuration for a channel if its is not explicitly matched + * in the `perChannel` field. + */ + default?: GatewaySourceConfig; + + /** + * Configuration for a specific channel. + * + * The key refers to the prefix of a channel so `https://prefix.dev` matches + * any channel on `https://prefix.dev`. The key with the longest match is + * used. + */ + perChannel?: { + [key: string]: GatewaySourceConfig; + }; +}; + +export type GatewayOptions = { + /** + * The maximum number of concurrent requests the gateway can execute. By + * default there is no limit. + */ + maxConcurrentRequests?: number | null; + + /** Defines how to access channels. */ + channelConfig?: GatewayChannelConfig; +}; + +/** + * A `Gateway` provides efficient access to conda repodata. + * + * Repodata can be accessed through several different methods. The `Gateway` + * implements all the nitty-gritty details of repodata access and provides a + * simple high level API for consumers. + * + * The Gateway efficiently manages memory to reduce it to the bare minimum. + * + * Internally the gateway caches all fetched repodata records, running the same + * query twice will return the previous results. + * + * @public + */ +export class Gateway { + /** @internal */ + native: JsGateway; + + /** + * Constructs a new Gateway object. + * + * @param options - The options to configure the Gateway with. + */ + constructor(options?: GatewayOptions | null) { + this.native = new JsGateway(options); + } + + /** + * Returns the names of the package that are available for the given + * channels and platforms. + * + * @param channels - The channels to query + * @param platforms - The platforms to query + */ + public async names( + channels: string[], + platforms: Platform[], + ): Promise { + return (await this.native.names( + channels, + platforms, + )) as NormalizedPackageName[]; + } +} diff --git a/js-rattler/src/PackageName.test.ts b/js-rattler/src/PackageName.test.ts new file mode 100644 index 000000000..059cbf030 --- /dev/null +++ b/js-rattler/src/PackageName.test.ts @@ -0,0 +1,44 @@ +import { IsTrue, IsSame } from "./typeUtils"; +import { + PackageNameLiteral, + isPackageName, + normalizePackageName, + isNormalizedPackageName, +} from "./PackageName"; +import { expect, test } from "@jest/globals"; + +type Test1 = IsTrue, "abc">>; +type Test2 = IsTrue, never>>; +type Test3 = IsTrue, never>>; + +test("isPackageName", () => { + expect(isPackageName("abc")).toBeTruthy(); + expect(isPackageName("foo-bar")).toBeTruthy(); + expect(isPackageName("foo_bar")).toBeTruthy(); + expect(isPackageName("foo_bar.baz")).toBeTruthy(); + expect(isPackageName("Fo0_B4R-BaZ.B0b")).toBeTruthy(); + + expect(isPackageName("")).toBeFalsy(); + expect(isPackageName("!")).toBeFalsy(); + expect(isPackageName(" ")).toBeFalsy(); + expect(isPackageName("$")).toBeFalsy(); +}); + +test("isNormalizedPackageName", () => { + expect(isNormalizedPackageName("abc")).toBeTruthy(); + expect(isNormalizedPackageName("foo-bar")).toBeTruthy(); + expect(isNormalizedPackageName("foo_bar")).toBeTruthy(); + expect(isNormalizedPackageName("foo_bar.baz")).toBeTruthy(); + + expect(isNormalizedPackageName("Fo0_B4R-BaZ.B0b")).toBeFalsy(); + expect(isNormalizedPackageName("!")).toBeFalsy(); + expect(isNormalizedPackageName(" ")).toBeFalsy(); + expect(isNormalizedPackageName("$")).toBeFalsy(); + expect(isNormalizedPackageName("")).toBeFalsy(); +}); + +test("normalizePackageName", () => { + expect(normalizePackageName("abc")).toBe("abc"); + expect(normalizePackageName("aBc")).toBe("abc"); + expect(normalizePackageName("Fo0_B4R-BaZ.B0b")).toBe("fo0_b4r-baz.b0b"); +}); diff --git a/js-rattler/src/PackageName.ts b/js-rattler/src/PackageName.ts new file mode 100644 index 000000000..ec78960d9 --- /dev/null +++ b/js-rattler/src/PackageName.ts @@ -0,0 +1,226 @@ +import { NonEmptyString } from "./typeUtils"; + +/** + * Defines the allowed characters for any package name. + * + * Allowed characters: + * + * - Lowercase letters (`a-z`) + * - Uppercase letters (`A-Z`) + * - Digits (`0-9`) + * - Underscore (`_`) + * - Dash (`-`) + * - Dot (`.`) + * + * @public + */ +// prettier-ignore +export type PackageNameChar = + | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" + | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" + | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" + | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" + | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" + | "_" + | "-" + | "."; + +/** + * Checks whether a string consists only of valid package name characters. + * + * - If `S` contains only allowed characters, it resolves to `S`. + * - Otherwise, it resolves to `never`. + * + * @example + * + * ```ts + * type Valid = ContainsOnlyPackageNameChars<"valid-name">; // 'valid-name' + * type Invalid = ContainsOnlyPackageNameChars<"invalid!">; // never + * ``` + * + * @public + */ +export type ContainsOnlyPackageNameChars = S extends "" + ? "" // Empty string is valid + : S extends `${infer First}${infer Rest}` + ? First extends PackageNameChar + ? ContainsOnlyPackageNameChars extends never + ? never + : S + : never + : never; + +/** + * Ensures that a string is a valid package name. + * + * - If `S` contains only valid characters and is not empty, it resolves to `S`. + * - Otherwise, it resolves to `never`. + * + * @example + * + * ```ts + * type Valid = PackageNameLiteral<"valid-name">; // 'valid-name' + * type Invalid = PackageNameLiteral<"invalid!">; // never + * type Empty = PackageNameLiteral<"">; // never + * ``` + * + * @public + */ +export type PackageNameLiteral = + ContainsOnlyPackageNameChars & NonEmptyString; + +/** A unique symbol used for branding `PackageName` types. */ +declare const PACKAGE_NAME_BRAND: unique symbol; + +/** + * A **branded type** representing a validated package name. + * + * - This type is **enforced at runtime** using `isPackageName()`. + * - Ensures that a package name conforms to the expected format. + * + * @example + * + * ```ts + * const pkg: PackageName = "valid-package" as PackageName; + * ``` + * + * @public + */ +export type PackageName = string & { [PACKAGE_NAME_BRAND]: void }; + +/** + * A **branded type** representing a **normalized** package name. + * + * - A `NormalizedPackageName` is always **lowercase**. + * - It extends `PackageName`, ensuring that it still follows package name rules. + * - Can be obtained by calling `normalizePackageName()`. + * + * @example + * + * ```ts + * const normalized: NormalizedPackageName = + * "valid-package" as NormalizedPackageName; + * ``` + * + * @public + */ +export type NormalizedPackageName = Lowercase; + +/** + * A type that accepts: + * + * - A **PackageName** (a runtime-validated string). + * - A **string literal** that satisfies `PackageNameLiteral`. + * + * This is useful for functions that accept both validated runtime values and + * compile-time checked literals. + * + * @example + * + * ```ts + * function processPackage(name: PackageNameOrLiteral) { ... } + * + * processPackage("valid-package"); // ✅ Allowed (checked at compile-time) + * processPackage("invalid!"); // ❌ Compile-time error + * ``` + * + * @param S - The input string type. + * @public + */ +export type PackageNameOrLiteral = + | PackageName + | (S extends PackageNameLiteral ? S : never); + +/** + * A type that accepts: + * + * - A **NormalizedPackageName** (a runtime-validated string). + * - A **string literal** that satisfies `Lowercase>`. + * + * This is useful for functions that accept both validated runtime values and + * compile-time checked literals. + * + * @example + * + * ```ts + * function processNormalizedPackage(name: NormalizedPackageNameOrLiteral) { ... } + * + * processNormalizedPackage("valid-package"); // ✅ Allowed (checked at compile-time) + * processNormalizedPackage("Invalid-Package"); // ❌ Compile-time error + * ``` + * + * @param S - The input string type. + * @public + */ +export type NormalizedPackageNameOrLiteral = + | NormalizedPackageName + | (S extends Lowercase> ? S : never); + +/** + * **Normalizes a package name to lowercase.** + * + * - If given a **string literal**, it is validated at compile time. + * - If given a **runtime-validated** `PackageName`, it is accepted directly. + * - Returns a `NormalizedPackageName` with all characters converted to lowercase. + * + * @example + * + * ```ts + * const normalized = normalizePackageName("Valid-Package"); // "valid-package" + * ``` + * + * @param name - The package name to normalize. + * @returns The normalized package name. + * @public + */ +export function normalizePackageName( + name: PackageNameOrLiteral, +): NormalizedPackageName { + return name.toLowerCase() as NormalizedPackageName; +} + +/** + * **Checks if a string is a valid `PackageName`.** + * + * - Returns `true` if `input` matches the allowed package name format. + * - If `true`, TypeScript narrows the type to `PackageName`. + * + * @example + * + * ```ts + * if (isPackageName(userInput)) { + * const validName: PackageName = userInput; + * } + * ``` + * + * @param input - The string to validate. + * @returns `true` if valid, otherwise `false`. + * @public + */ +export function isPackageName(input: string): input is PackageName { + return /^[A-Za-z0-9_.-]+$/.test(input); +} + +/** + * **Checks if a string is a valid `NormalizedPackageName`.** + * + * - A normalized package name must be **lowercase**. + * - If `true`, TypeScript narrows the type to `NormalizedPackageName`. + * + * @example + * + * ```ts + * if (isNormalizedPackageName(userInput)) { + * const validNormalizedName: NormalizedPackageName = userInput; + * } + * ``` + * + * @param input - The string to validate. + * @returns `true` if valid, otherwise `false`. + * @public + */ +export function isNormalizedPackageName( + input: string, +): input is NormalizedPackageName { + return /^[a-z0-9_.-]+$/.test(input); +} diff --git a/js-rattler/src/Platform.ts b/js-rattler/src/Platform.ts new file mode 100644 index 000000000..9001d1d63 --- /dev/null +++ b/js-rattler/src/Platform.ts @@ -0,0 +1,137 @@ +/** + * All platform names supported by this library. + * + * @public + */ +export const platformNames = [ + "noarch", + "linux-32", + "linux-64", + "linux-aarch64", + "linux-armv6l", + "linux-armv7l", + "linux-ppc64le", + "linux-ppc64", + "linux-ppc", + "linux-s390x", + "linux-riscv32", + "linux-riscv64", + "osx-64", + "osx-arm64", + "win-32", + "win-64", + "win-arm64", + "emscripten-wasm32", + "wasi-wasm32", + "zos-z", +] as const; + +/** + * A type that represents a valid platform. + * + * @public + */ +export type Platform = (typeof platformNames)[number]; + +/** + * A type guard that identifies if an input value is a `Platform` + * + * @public + */ +export function isPlatform(maybePlatform: unknown): maybePlatform is Platform { + return ( + typeof maybePlatform === "string" && + platformNames.includes(maybePlatform as Platform) + ); +} + +/** + * All architecture names supported by this library. + * + * @public + */ +export const archNames = [ + "x86", + "x86_64", + "aarch64", + "arm64", + "armv6l", + "armv7l", + "ppc64le", + "ppc64", + "ppc", + "s390x", + "riscv32", + "riscv64", + "wasm32", + "z", +] as const; + +/** + * A type that represents a valid architecture. + * + * @public + */ +export type Arch = (typeof archNames)[number]; + +/** + * A type guard that identifies if an input value is an `Arch` + * + * @public + */ +export function isArch(maybeArch: unknown): maybeArch is Platform { + return ( + typeof maybeArch === "string" && archNames.includes(maybeArch as Arch) + ); +} + +/** + * Returns the architecture of a certain platform + * + * @param platform - The platform + * @public + */ +export function platformArch(platform: Platform): Arch | null { + switch (platform) { + case "noarch": + return null; + case "linux-32": + return "x86"; + case "linux-64": + return "x86_64"; + case "linux-aarch64": + return "aarch64"; + case "linux-armv6l": + return "armv6l"; + case "linux-armv7l": + return "armv7l"; + case "linux-ppc64le": + return "ppc64le"; + case "linux-ppc64": + return "ppc64"; + case "linux-ppc": + return "ppc"; + case "linux-s390x": + return "s390x"; + case "linux-riscv32": + return "riscv32"; + case "linux-riscv64": + return "riscv64"; + case "osx-64": + return "x86_64"; + case "osx-arm64": + return "arm64"; + case "win-32": + return "x86"; + case "win-64": + return "x86_64"; + case "win-arm64": + return "arm64"; + case "emscripten-wasm32": + return "wasm32"; + case "wasi-wasm32": + return "wasm32"; + case "zos-z": + return "z"; + } +} diff --git a/js-rattler/src/index.ts b/js-rattler/src/index.ts index 29f95e84b..92044f5a5 100644 --- a/js-rattler/src/index.ts +++ b/js-rattler/src/index.ts @@ -1,4 +1,7 @@ export { ParseStrictness } from "../pkg/"; export * from "./Version"; export * from "./VersionSpec"; +export * from "./Platform"; export * from "./solve"; +export * from "./PackageName"; +export * from "./typeUtils"; diff --git a/js-rattler/src/solve.test.ts b/js-rattler/src/solve.test.ts index 6937096d9..4c0270ad0 100644 --- a/js-rattler/src/solve.test.ts +++ b/js-rattler/src/solve.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from "@jest/globals"; -import { simple_solve } from "./solve"; +import { simpleSolve } from "./solve"; describe("solving", () => { it("python should yield three packages", () => { - return simple_solve( + return simpleSolve( ["python"], [ "https://prefix.dev/emscripten-forge-dev", diff --git a/js-rattler/src/solve.ts b/js-rattler/src/solve.ts index 69976fac0..6bdb8adb2 100644 --- a/js-rattler/src/solve.ts +++ b/js-rattler/src/solve.ts @@ -1 +1,20 @@ -export { simple_solve, SolvedPackage } from "../pkg"; +import { Platform } from "./Platform"; +import { simple_solve as wasm_simple_solve, SolvedPackage } from "../pkg"; + +export { SolvedPackage } from "../pkg"; + +/** + * Solve an environment + * + * @param specs - Matchspecs of packages that must be included. + * @param channels - The channels to request for repodata of packages + * @param platforms - The platforms to solve for + * @public + */ +export async function simpleSolve( + specs: string[], + channels: string[], + platforms: Platform[], +): Promise { + return await wasm_simple_solve(specs, channels, platforms); +} diff --git a/js-rattler/src/typeUtils.ts b/js-rattler/src/typeUtils.ts new file mode 100644 index 000000000..53d84b8af --- /dev/null +++ b/js-rattler/src/typeUtils.ts @@ -0,0 +1,61 @@ +/** + * Ensures that a given type is `true`. Used for compile-time assertions. + * + * @example + * + * ```ts + * type Test = IsTrue; // Passes + * type TestError = IsTrue; // Type error + * ``` + * + * @internal + */ +export type IsTrue = T; + +/** + * Ensures that a given type is `false`. Used for compile-time assertions. + * + * @example + * + * ```ts + * type Test = IsFalse; // Passes + * type TestError = IsFalse; // Type error + * ``` + * + * @internal + */ +export type IsFalse = T; + +/** + * Checks if two types `A` and `B` are exactly the same. + * + * - If `A` and `B` are identical, resolves to `true`. + * - Otherwise, resolves to `false`. + * + * @example + * + * ```ts + * type Same = IsSame<"foo", "foo">; // true + * type Different = IsSame<"foo", "bar">; // false + * ``` + * + * @internal + */ +export type IsSame = A extends B ? (B extends A ? true : false) : false; + +/** + * Ensures that a string is non-empty. + * + * - If `T` is an empty string, it resolves to `never`. + * - Otherwise, it resolves to `T`. + * + * @example + * + * ```ts + * type Valid = NonEmptyString<"hello">; // 'hello' + * type Invalid = NonEmptyString<"">; // never + * ``` + * + * @public + */ +export type NonEmptyString = T extends "" ? never : T; From 41506faaa9312b14dc3a833e4fa44dd9a131fb85 Mon Sep 17 00:00:00 2001 From: Hofer-Julian <30049909+Hofer-Julian@users.noreply.github.com> Date: Tue, 4 Mar 2025 11:23:22 +0100 Subject: [PATCH 5/6] fix: shortcut filename (#1136) Co-authored-by: Wolf Vollprecht Co-authored-by: Ruben Arts --- crates/rattler_menuinst/src/windows.rs | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/crates/rattler_menuinst/src/windows.rs b/crates/rattler_menuinst/src/windows.rs index d35fd0f09..b40530113 100644 --- a/crates/rattler_menuinst/src/windows.rs +++ b/crates/rattler_menuinst/src/windows.rs @@ -38,17 +38,6 @@ pub struct Directories { windows_terminal_settings_files: Vec, } -fn shortcut_filename(name: &str, env_name: Option<&String>, ext: Option<&str>) -> String { - let env = if let Some(env_name) = env_name { - format!(" ({env_name})") - } else { - "".to_string() - }; - - let ext = ext.unwrap_or("lnk"); - format!("{name}{env}{ext}") -} - /// On Windows we can create shortcuts in several places: /// - Start Menu /// - Desktop @@ -138,18 +127,13 @@ impl WindowsMenu { ) -> Self { let name = command.name.resolve(Environment::Base, placeholders); - let shortcut_name = shortcut_filename( - &name, - placeholders.as_ref().get("ENV_NAME"), - Some(SHORTCUT_EXTENSION), - ); + let shortcut_name = format!("{name}.{SHORTCUT_EXTENSION}"); let location = directories .start_menu .join(&shortcut_name) .with_extension(SHORTCUT_EXTENSION); - // self.menu.start_menu_location / self._shortcut_filename() Self { prefix: prefix.to_path_buf(), name, @@ -194,10 +178,6 @@ impl WindowsMenu { Ok(lines.join("\n")) } - fn shortcut_filename(&self, ext: Option<&str>) -> String { - shortcut_filename(&self.name, self.placeholders.as_ref().get("ENV_NAME"), ext) - } - fn write_script(&self, path: &Path) -> Result<(), MenuInstError> { if let Some(parent) = path.parent() { fs::create_dir_all(parent)?; @@ -210,9 +190,7 @@ impl WindowsMenu { } fn path_for_script(&self) -> PathBuf { - self.prefix - .join("Menu") - .join(self.shortcut_filename(Some("bat"))) + self.prefix.join("Menu").join(format!("{}.bat", &self.name)) } fn build_command(&self, with_arg1: bool) -> Result, MenuInstError> { From 8a92bb78b260f525f6e8b30d43ca6d4c3ff32e0c Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 4 Mar 2025 11:48:04 +0100 Subject: [PATCH 6/6] chore: release (#1137) --- Cargo.lock | 235 +++++++++--------- crates/rattler-bin/Cargo.toml | 14 +- crates/rattler/CHANGELOG.md | 6 + crates/rattler/Cargo.toml | 12 +- crates/rattler_cache/CHANGELOG.md | 6 + crates/rattler_cache/Cargo.toml | 8 +- crates/rattler_conda_types/CHANGELOG.md | 6 + crates/rattler_conda_types/Cargo.toml | 4 +- crates/rattler_index/CHANGELOG.md | 6 + crates/rattler_index/Cargo.toml | 8 +- crates/rattler_lock/Cargo.toml | 2 +- crates/rattler_menuinst/CHANGELOG.md | 7 + crates/rattler_menuinst/Cargo.toml | 4 +- crates/rattler_networking/CHANGELOG.md | 6 + crates/rattler_networking/Cargo.toml | 2 +- crates/rattler_package_streaming/CHANGELOG.md | 6 + crates/rattler_package_streaming/Cargo.toml | 8 +- crates/rattler_redaction/CHANGELOG.md | 6 + crates/rattler_redaction/Cargo.toml | 2 +- crates/rattler_repodata_gateway/CHANGELOG.md | 6 + crates/rattler_repodata_gateway/Cargo.toml | 10 +- crates/rattler_shell/Cargo.toml | 2 +- crates/rattler_solve/CHANGELOG.md | 6 + crates/rattler_solve/Cargo.toml | 4 +- crates/rattler_virtual_packages/Cargo.toml | 2 +- 25 files changed, 219 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c9ca34d54..74e8ff132 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -129,9 +129,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.96" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "arbitrary" @@ -327,9 +327,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.86" +version = "0.1.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" dependencies = [ "proc-macro2", "quote", @@ -837,7 +837,7 @@ version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -857,7 +857,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "848df95320021558dd6bb4c26de3fe66724cdcbdbbf3fa720150b52b086ae568" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", "log", "rustix", @@ -872,9 +872,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bitvec" @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "console" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", "libc", @@ -1587,9 +1587,9 @@ dependencies = [ [[package]] name = "dissimilar" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f8e79d1fbf76bdfbde321e902714bf6c49df88a7dda6fc682fc2979226962d" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" [[package]] name = "dlv-list" @@ -1754,9 +1754,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" dependencies = [ "serde", "typeid", @@ -1822,7 +1822,7 @@ dependencies = [ "itertools 0.14.0", "percent-encoding", "rstest", - "thiserror 2.0.11", + "thiserror 2.0.12", "typed-path", "url", ] @@ -2434,9 +2434,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -2534,7 +2534,7 @@ dependencies = [ "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls 0.26.2", "tower-service", "webpki-roots", ] @@ -2789,9 +2789,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.42.1" +version = "1.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1b125e30d93896b365e156c33dadfffab45ee8400afcbba4752f59de08a86" +checksum = "50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084" dependencies = [ "console", "globset", @@ -2880,9 +2880,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" @@ -2942,9 +2942,9 @@ dependencies = [ [[package]] name = "keyring" -version = "3.6.1" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f8fe839464d4e4b37d756d7e910063696af79a7e877282cb1825e4ec5f10833" +checksum = "1961983669d57bdfe6c0f3ef8e4c229b5ef751afcc7d87e4271d2f71f6ccfa8b" dependencies = [ "byteorder", "dbus-secret-service", @@ -3031,9 +3031,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", - "redox_syscall 0.5.9", + "redox_syscall 0.5.10", ] [[package]] @@ -3241,7 +3241,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases", "libc", @@ -3428,7 +3428,7 @@ version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "foreign-types", "libc", @@ -3573,7 +3573,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.9", + "redox_syscall 0.5.10", "smallvec", "windows-targets 0.52.6", ] @@ -3648,7 +3648,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.11", + "thiserror 2.0.12", "ucd-trie", ] @@ -3742,18 +3742,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", @@ -3795,9 +3795,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" @@ -3878,9 +3878,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" +checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" dependencies = [ "proc-macro2", "syn", @@ -3897,9 +3897,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -3970,7 +3970,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.23", "socket2", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -3989,7 +3989,7 @@ dependencies = [ "rustls 0.23.23", "rustls-pki-types", "slab", - "thiserror 2.0.11", + "thiserror 2.0.12", "tinyvec", "tracing", "web-time", @@ -4011,9 +4011,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -4055,7 +4055,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.2", + "rand_core 0.9.3", "zerocopy 0.8.21", ] @@ -4076,7 +4076,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.2", + "rand_core 0.9.3", ] [[package]] @@ -4105,17 +4105,16 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.21", ] [[package]] name = "rattler" -version = "0.32.3" +version = "0.32.4" dependencies = [ "anyhow", "assert_matches", @@ -4154,7 +4153,7 @@ dependencies = [ "simple_spawn_blocking", "smallvec", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tools", "tower", @@ -4191,7 +4190,7 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.3.12" +version = "0.3.13" dependencies = [ "anyhow", "assert_matches", @@ -4218,7 +4217,7 @@ dependencies = [ "serde_json", "simple_spawn_blocking", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tools", @@ -4229,7 +4228,7 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.31.2" +version = "0.31.3" dependencies = [ "assert_matches", "chrono", @@ -4267,7 +4266,7 @@ dependencies = [ "smallvec", "strum", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tools", "tracing", "typed-path", @@ -4294,7 +4293,7 @@ dependencies = [ [[package]] name = "rattler_index" -version = "0.21.1" +version = "0.21.2" dependencies = [ "anyhow", "bytes", @@ -4354,7 +4353,7 @@ dependencies = [ "serde_with", "serde_yaml", "similar-asserts", - "thiserror 2.0.11", + "thiserror 2.0.12", "typed-path", "url", ] @@ -4370,7 +4369,7 @@ dependencies = [ [[package]] name = "rattler_menuinst" -version = "0.2.1" +version = "0.2.2" dependencies = [ "chrono", "configparser", @@ -4389,7 +4388,7 @@ dependencies = [ "sha2", "shlex", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", "unicode-normalization", "which", @@ -4399,7 +4398,7 @@ dependencies = [ [[package]] name = "rattler_networking" -version = "0.22.7" +version = "0.22.8" dependencies = [ "anyhow", "async-trait", @@ -4427,7 +4426,7 @@ dependencies = [ "sha2", "temp-env", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", "url", @@ -4435,7 +4434,7 @@ dependencies = [ [[package]] name = "rattler_package_streaming" -version = "0.22.31" +version = "0.22.32" dependencies = [ "assert_matches", "bzip2", @@ -4456,7 +4455,7 @@ dependencies = [ "simple_spawn_blocking", "tar", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-util", "tools", @@ -4469,7 +4468,7 @@ dependencies = [ [[package]] name = "rattler_redaction" -version = "0.1.7" +version = "0.1.8" dependencies = [ "reqwest", "reqwest-middleware", @@ -4478,7 +4477,7 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" -version = "0.21.40" +version = "0.22.0" dependencies = [ "anyhow", "assert_matches", @@ -4527,7 +4526,7 @@ dependencies = [ "simple_spawn_blocking", "superslice", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-util", "tools", @@ -4566,13 +4565,13 @@ dependencies = [ "sysinfo", "tempdir", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", ] [[package]] name = "rattler_solve" -version = "1.3.11" +version = "1.4.0" dependencies = [ "chrono", "criterion", @@ -4593,7 +4592,7 @@ dependencies = [ "similar-asserts", "tempfile", "test-log", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", "tracing-subscriber", "url", @@ -4611,7 +4610,7 @@ dependencies = [ "rattler_conda_types", "regex", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", "winver", ] @@ -4656,11 +4655,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -4671,23 +4670,23 @@ checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", @@ -4840,7 +4839,7 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.1", + "tokio-rustls 0.26.2", "tokio-util", "tower", "tower-service", @@ -5043,7 +5042,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -5150,15 +5149,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -5248,7 +5247,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -5261,7 +5260,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -5286,9 +5285,9 @@ checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" [[package]] name = "semver" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" @@ -5301,9 +5300,9 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" dependencies = [ "erased-serde", "serde", @@ -5333,9 +5332,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "indexmap 2.7.1", "itoa", @@ -5346,9 +5345,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", @@ -5530,7 +5529,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.11", + "thiserror 2.0.12", "time", ] @@ -5650,9 +5649,9 @@ checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" dependencies = [ "proc-macro2", "quote", @@ -5685,7 +5684,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "byteorder", "enum-as-inner", "libc", @@ -5713,7 +5712,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -5827,11 +5826,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.12", ] [[package]] @@ -5847,9 +5846,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", @@ -5928,9 +5927,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -5992,9 +5991,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls 0.23.23", "tokio", @@ -6081,7 +6080,7 @@ dependencies = [ "reqwest", "tempdir", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "url", ] @@ -6108,7 +6107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "async-compression", - "bitflags 2.8.0", + "bitflags 2.9.0", "bytes", "futures-core", "futures-util", @@ -6236,9 +6235,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b812699e0c4f813b872b373a4471717d9eb550da14b311058a4d9cf4173cbca6" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" dependencies = [ "dissimilar", "glob", @@ -6258,9 +6257,9 @@ checksum = "41713888c5ccfd99979fcd1afd47b71652e331b3d4a0e19d30769e80fec76cce" [[package]] name = "typeid" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" @@ -6293,9 +6292,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -7074,7 +7073,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -7314,7 +7313,7 @@ dependencies = [ "flate2", "indexmap 2.7.1", "memchr", - "thiserror 2.0.11", + "thiserror 2.0.12", "time", "zopfli", ] diff --git a/crates/rattler-bin/Cargo.toml b/crates/rattler-bin/Cargo.toml index 5859d5f37..a629664be 100644 --- a/crates/rattler-bin/Cargo.toml +++ b/crates/rattler-bin/Cargo.toml @@ -27,14 +27,14 @@ clap = { workspace = true, features = ["derive"] } console = { workspace = true, features = ["windows-console-colors"] } indicatif = { workspace = true } once_cell = { workspace = true } -rattler = { path="../rattler", version = "0.32.3", default-features = false, features = ["indicatif"] } -rattler_conda_types = { path="../rattler_conda_types", version = "0.31.2", default-features = false } -rattler_networking = { path="../rattler_networking", version = "0.22.7", default-features = false, features = ["gcs", "s3"] } -rattler_repodata_gateway = { path="../rattler_repodata_gateway", version = "0.21.40", default-features = false, features = ["gateway"] } -rattler_solve = { path="../rattler_solve", version = "1.3.11", default-features = false, features = ["resolvo", "libsolv_c"] } +rattler = { path="../rattler", version = "0.32.4", default-features = false, features = ["indicatif"] } +rattler_conda_types = { path="../rattler_conda_types", version = "0.31.3", default-features = false } +rattler_networking = { path="../rattler_networking", version = "0.22.8", default-features = false, features = ["gcs", "s3"] } +rattler_repodata_gateway = { path="../rattler_repodata_gateway", version = "0.22.0", default-features = false, features = ["gateway"] } +rattler_solve = { path="../rattler_solve", version = "1.4.0", default-features = false, features = ["resolvo", "libsolv_c"] } rattler_virtual_packages = { path="../rattler_virtual_packages", version = "2.0.6", default-features = false } -rattler_cache = { path="../rattler_cache", version = "0.3.12", default-features = false } -rattler_menuinst = { path="../rattler_menuinst", version = "0.2.1", default-features = false } +rattler_cache = { path="../rattler_cache", version = "0.3.13", default-features = false } +rattler_menuinst = { path="../rattler_menuinst", version = "0.2.2", default-features = false } reqwest = { workspace = true } reqwest-middleware = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } diff --git a/crates/rattler/CHANGELOG.md b/crates/rattler/CHANGELOG.md index c2f18e516..0e65d11fd 100644 --- a/crates/rattler/CHANGELOG.md +++ b/crates/rattler/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.32.4](https://github.com/conda/rattler/compare/rattler-v0.32.3...rattler-v0.32.4) - 2025-03-04 + +### Other + +- update Cargo.toml dependencies + ## [0.32.3](https://github.com/conda/rattler/compare/rattler-v0.32.2...rattler-v0.32.3) - 2025-02-28 ### Other diff --git a/crates/rattler/Cargo.toml b/crates/rattler/Cargo.toml index 6f9db3b87..d2880d70a 100644 --- a/crates/rattler/Cargo.toml +++ b/crates/rattler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler" -version = "0.32.3" +version = "0.32.4" edition.workspace = true authors = ["Bas Zalmstra "] description = "Rust library to install conda environments" @@ -32,13 +32,13 @@ memchr = { workspace = true } memmap2 = { workspace = true } once_cell = { workspace = true } parking_lot = { workspace = true } -rattler_cache = { path = "../rattler_cache", version = "0.3.12", default-features = false } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_cache = { path = "../rattler_cache", version = "0.3.13", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false } -rattler_networking = { path = "../rattler_networking", version = "0.22.7", default-features = false } +rattler_networking = { path = "../rattler_networking", version = "0.22.8", default-features = false } rattler_shell = { path = "../rattler_shell", version = "0.22.22", default-features = false } -rattler_package_streaming = { path = "../rattler_package_streaming", version = "0.22.31", default-features = false, features = ["reqwest"] } -rattler_menuinst = { path = "../rattler_menuinst", version = "0.2.1", default-features = false } +rattler_package_streaming = { path = "../rattler_package_streaming", version = "0.22.32", default-features = false, features = ["reqwest"] } +rattler_menuinst = { path = "../rattler_menuinst", version = "0.2.2", default-features = false } rayon = { workspace = true } reflink-copy = { workspace = true } regex = { workspace = true } diff --git a/crates/rattler_cache/CHANGELOG.md b/crates/rattler_cache/CHANGELOG.md index efbe4d71a..1bb5cafcc 100644 --- a/crates/rattler_cache/CHANGELOG.md +++ b/crates/rattler_cache/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.13](https://github.com/conda/rattler/compare/rattler_cache-v0.3.12...rattler_cache-v0.3.13) - 2025-03-04 + +### Added + +- *(js)* compile `rattler_solve` and `rattler_repodata_gateway` ([#1108](https://github.com/conda/rattler/pull/1108)) + ## [0.3.12](https://github.com/conda/rattler/compare/rattler_cache-v0.3.11...rattler_cache-v0.3.12) - 2025-02-28 ### Other diff --git a/crates/rattler_cache/Cargo.toml b/crates/rattler_cache/Cargo.toml index b178d5941..0a083718f 100644 --- a/crates/rattler_cache/Cargo.toml +++ b/crates/rattler_cache/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_cache" -version = "0.3.12" +version = "0.3.13" description = "A crate to manage the caching of data in rattler" categories.workspace = true homepage.workspace = true @@ -21,10 +21,10 @@ fs4 = { workspace = true, features = ["fs-err3-tokio", "tokio"] } fxhash.workspace = true itertools.workspace = true parking_lot.workspace = true -rattler_conda_types = { version = "0.31.2", path = "../rattler_conda_types", default-features = false } +rattler_conda_types = { version = "0.31.3", path = "../rattler_conda_types", default-features = false } rattler_digest = { version = "1.0.7", path = "../rattler_digest", default-features = false } -rattler_networking = { version = "0.22.7", path = "../rattler_networking", default-features = false } -rattler_package_streaming = { version = "0.22.31", path = "../rattler_package_streaming", default-features = false, features = ["reqwest"] } +rattler_networking = { version = "0.22.8", path = "../rattler_networking", default-features = false } +rattler_package_streaming = { version = "0.22.32", path = "../rattler_package_streaming", default-features = false, features = ["reqwest"] } reqwest.workspace = true tempfile.workspace = true tokio = { workspace = true, features = ["macros"] } diff --git a/crates/rattler_conda_types/CHANGELOG.md b/crates/rattler_conda_types/CHANGELOG.md index b9ff16242..74ea184af 100644 --- a/crates/rattler_conda_types/CHANGELOG.md +++ b/crates/rattler_conda_types/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.31.3](https://github.com/conda/rattler/compare/rattler_conda_types-v0.31.2...rattler_conda_types-v0.31.3) - 2025-03-04 + +### Other + +- updated the following local packages: rattler_redaction + ## [0.31.2](https://github.com/conda/rattler/compare/rattler_conda_types-v0.31.1...rattler_conda_types-v0.31.2) - 2025-02-28 ### Fixed diff --git a/crates/rattler_conda_types/Cargo.toml b/crates/rattler_conda_types/Cargo.toml index 735136809..50de9524b 100644 --- a/crates/rattler_conda_types/Cargo.toml +++ b/crates/rattler_conda_types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_conda_types" -version = "0.31.2" +version = "0.31.3" edition.workspace = true authors = ["Bas Zalmstra "] description = "Rust data types for common types used within the Conda ecosystem" @@ -28,7 +28,7 @@ rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-featur "serde", ] } rattler_macros = { path = "../rattler_macros", version = "1.0.6", default-features = false } -rattler_redaction = { version = "0.1.7", path = "../rattler_redaction", default-features = false } +rattler_redaction = { version = "0.1.8", path = "../rattler_redaction", default-features = false } regex = { workspace = true } simd-json = { workspace = true, features = ["serde_impl"] } serde = { workspace = true, features = ["derive", "rc"] } diff --git a/crates/rattler_index/CHANGELOG.md b/crates/rattler_index/CHANGELOG.md index 27e2b38dd..17ef3e584 100644 --- a/crates/rattler_index/CHANGELOG.md +++ b/crates/rattler_index/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.21.2](https://github.com/conda/rattler/compare/rattler_index-v0.21.1...rattler_index-v0.21.2) - 2025-03-04 + +### Other + +- update Cargo.lock dependencies + ## [0.21.1](https://github.com/conda/rattler/compare/rattler_index-v0.21.0...rattler_index-v0.21.1) - 2025-02-28 ### Other diff --git a/crates/rattler_index/Cargo.toml b/crates/rattler_index/Cargo.toml index 6fa7fe9a8..e73cb5a13 100644 --- a/crates/rattler_index/Cargo.toml +++ b/crates/rattler_index/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_index" -version = "0.21.1" +version = "0.21.2" edition.workspace = true authors = [] description = "A crate to index conda channels and create a repodata.json file." @@ -44,10 +44,10 @@ opendal = { workspace = true, features = [ "services-s3", "services-fs", ], default-features = false } -rattler_networking = { path = "../rattler_networking", version = "0.22.7", default-features = false } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2" } +rattler_networking = { path = "../rattler_networking", version = "0.22.8", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3" } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false } -rattler_package_streaming = { path = "../rattler_package_streaming", version = "0.22.31", default-features = false } +rattler_package_streaming = { path = "../rattler_package_streaming", version = "0.22.32", default-features = false } reqwest = { workspace = true, default-features = false, features = [ "http2", "macos-system-configuration", diff --git a/crates/rattler_lock/Cargo.toml b/crates/rattler_lock/Cargo.toml index 428a4b53a..5a60f25b3 100644 --- a/crates/rattler_lock/Cargo.toml +++ b/crates/rattler_lock/Cargo.toml @@ -15,7 +15,7 @@ chrono = { workspace = true } fxhash = { workspace = true } indexmap = { workspace = true, features = ["serde"] } itertools = { workspace = true } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false } file_url = { path = "../file_url", version = "0.2.3" } pep508_rs = { workspace = true } diff --git a/crates/rattler_menuinst/CHANGELOG.md b/crates/rattler_menuinst/CHANGELOG.md index ee1fa8a18..e13cefa44 100644 --- a/crates/rattler_menuinst/CHANGELOG.md +++ b/crates/rattler_menuinst/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.2](https://github.com/conda/rattler/compare/rattler_menuinst-v0.2.1...rattler_menuinst-v0.2.2) - 2025-03-04 + +### Fixed + +- shortcut filename ([#1136](https://github.com/conda/rattler/pull/1136)) +- create test directories ([#1135](https://github.com/conda/rattler/pull/1135)) + ## [0.2.1](https://github.com/conda/rattler/compare/rattler_menuinst-v0.2.0...rattler_menuinst-v0.2.1) - 2025-02-28 ### Added diff --git a/crates/rattler_menuinst/Cargo.toml b/crates/rattler_menuinst/Cargo.toml index 10b7dce71..c44532909 100644 --- a/crates/rattler_menuinst/Cargo.toml +++ b/crates/rattler_menuinst/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_menuinst" -version = "0.2.1" +version = "0.2.2" edition.workspace = true authors = ["Wolf Vollprecht "] description = "Install menu entries for a Conda package" @@ -15,7 +15,7 @@ dirs = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } tracing = { workspace = true } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false } rattler_shell = { path = "../rattler_shell", version = "0.22.22", default-features = false } thiserror = { workspace = true } unicode-normalization = { workspace = true } diff --git a/crates/rattler_networking/CHANGELOG.md b/crates/rattler_networking/CHANGELOG.md index f568b5f08..752caaff0 100644 --- a/crates/rattler_networking/CHANGELOG.md +++ b/crates/rattler_networking/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.22.8](https://github.com/conda/rattler/compare/rattler_networking-v0.22.7...rattler_networking-v0.22.8) - 2025-03-04 + +### Added + +- *(js)* compile `rattler_solve` and `rattler_repodata_gateway` ([#1108](https://github.com/conda/rattler/pull/1108)) + ## [0.22.7](https://github.com/conda/rattler/compare/rattler_networking-v0.22.6...rattler_networking-v0.22.7) - 2025-02-28 ### Fixed diff --git a/crates/rattler_networking/Cargo.toml b/crates/rattler_networking/Cargo.toml index 5aa4bc77c..db20405b9 100644 --- a/crates/rattler_networking/Cargo.toml +++ b/crates/rattler_networking/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_networking" -version = "0.22.7" +version = "0.22.8" edition.workspace = true authors = ["Wolf Vollprecht "] description = "Authenticated requests in the conda ecosystem" diff --git a/crates/rattler_package_streaming/CHANGELOG.md b/crates/rattler_package_streaming/CHANGELOG.md index 44cec90ae..b598bd186 100644 --- a/crates/rattler_package_streaming/CHANGELOG.md +++ b/crates/rattler_package_streaming/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.22.32](https://github.com/conda/rattler/compare/rattler_package_streaming-v0.22.31...rattler_package_streaming-v0.22.32) - 2025-03-04 + +### Added + +- *(js)* compile `rattler_solve` and `rattler_repodata_gateway` ([#1108](https://github.com/conda/rattler/pull/1108)) + ## [0.22.31](https://github.com/conda/rattler/compare/rattler_package_streaming-v0.22.30...rattler_package_streaming-v0.22.31) - 2025-02-28 ### Other diff --git a/crates/rattler_package_streaming/Cargo.toml b/crates/rattler_package_streaming/Cargo.toml index e4adaa525..8d32ad7f1 100644 --- a/crates/rattler_package_streaming/Cargo.toml +++ b/crates/rattler_package_streaming/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_package_streaming" -version = "0.22.31" +version = "0.22.32" edition.workspace = true authors = ["Bas Zalmstra "] description = "Extract and stream of Conda package archives" @@ -16,10 +16,10 @@ chrono = { workspace = true } fs-err = { workspace = true } futures-util = { workspace = true } num_cpus = { workspace = true } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false } -rattler_networking = { path = "../rattler_networking", version = "0.22.7", default-features = false } -rattler_redaction = { version = "0.1.7", path = "../rattler_redaction", features = [ +rattler_networking = { path = "../rattler_networking", version = "0.22.8", default-features = false } +rattler_redaction = { version = "0.1.8", path = "../rattler_redaction", features = [ "reqwest", "reqwest-middleware", ], default-features = false } diff --git a/crates/rattler_redaction/CHANGELOG.md b/crates/rattler_redaction/CHANGELOG.md index eded2cf16..c710145cf 100644 --- a/crates/rattler_redaction/CHANGELOG.md +++ b/crates/rattler_redaction/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.1.8](https://github.com/conda/rattler/compare/rattler_redaction-v0.1.7...rattler_redaction-v0.1.8) - 2025-03-04 + +### Other + +- update Cargo.toml dependencies + ## [0.1.7](https://github.com/conda/rattler/compare/rattler_redaction-v0.1.6...rattler_redaction-v0.1.7) - 2025-02-27 ### Added diff --git a/crates/rattler_redaction/Cargo.toml b/crates/rattler_redaction/Cargo.toml index 943caa4cb..3a02d7836 100644 --- a/crates/rattler_redaction/Cargo.toml +++ b/crates/rattler_redaction/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_redaction" -version = "0.1.7" +version = "0.1.8" edition.workspace = true authors = ["Wolf Vollprecht "] description = "Redact sensitive information from URLs (ie. conda tokens)" diff --git a/crates/rattler_repodata_gateway/CHANGELOG.md b/crates/rattler_repodata_gateway/CHANGELOG.md index 381599b3d..8b2157308 100644 --- a/crates/rattler_repodata_gateway/CHANGELOG.md +++ b/crates/rattler_repodata_gateway/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.22.0](https://github.com/conda/rattler/compare/rattler_repodata_gateway-v0.21.40...rattler_repodata_gateway-v0.22.0) - 2025-03-04 + +### Added + +- *(js)* compile `rattler_solve` and `rattler_repodata_gateway` ([#1108](https://github.com/conda/rattler/pull/1108)) + ## [0.21.40](https://github.com/conda/rattler/compare/rattler_repodata_gateway-v0.21.39...rattler_repodata_gateway-v0.21.40) - 2025-02-28 ### Other diff --git a/crates/rattler_repodata_gateway/Cargo.toml b/crates/rattler_repodata_gateway/Cargo.toml index 07921fb6b..947be9b04 100644 --- a/crates/rattler_repodata_gateway/Cargo.toml +++ b/crates/rattler_repodata_gateway/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_repodata_gateway" -version = "0.21.40" +version = "0.22.0" edition.workspace = true authors = ["Bas Zalmstra "] description = "A crate to interact with Conda repodata" @@ -34,9 +34,9 @@ json-patch = { workspace = true } self_cell = { workspace = true, optional = true } parking_lot = { workspace = true, optional = true } pin-project-lite = { workspace = true } -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false, optional = true } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false, optional = true } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false, features = ["tokio", "serde"] } -rattler_networking = { path = "../rattler_networking", version = "0.22.7", default-features = false } +rattler_networking = { path = "../rattler_networking", version = "0.22.8", default-features = false } reqwest = { workspace = true, features = ["stream", "http2"] } reqwest-middleware = { workspace = true } rmp-serde = { workspace = true } @@ -53,8 +53,8 @@ tracing = { workspace = true } url = { workspace = true, features = ["serde"] } zstd = { workspace = true } retry-policies = { workspace = true } -rattler_cache = { version = "0.3.12", path = "../rattler_cache" } -rattler_redaction = { version = "0.1.7", path = "../rattler_redaction", features = ["reqwest", "reqwest-middleware"] } +rattler_cache = { version = "0.3.13", path = "../rattler_cache" } +rattler_redaction = { version = "0.1.8", path = "../rattler_redaction", features = ["reqwest", "reqwest-middleware"] } [target.'cfg(unix)'.dependencies] libc = { workspace = true } diff --git a/crates/rattler_shell/Cargo.toml b/crates/rattler_shell/Cargo.toml index 78422c279..0c8de4b43 100644 --- a/crates/rattler_shell/Cargo.toml +++ b/crates/rattler_shell/Cargo.toml @@ -15,7 +15,7 @@ enum_dispatch = { workspace = true } indexmap = { workspace = true } fs-err = { workspace = true } itertools = { workspace = true } -rattler_conda_types = { path="../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path="../rattler_conda_types", version = "0.31.3", default-features = false } serde_json = { workspace = true, features = ["preserve_order"] } shlex = { workspace = true } sysinfo = { workspace = true , optional = true } diff --git a/crates/rattler_solve/CHANGELOG.md b/crates/rattler_solve/CHANGELOG.md index dfa88ff41..da37aa8de 100644 --- a/crates/rattler_solve/CHANGELOG.md +++ b/crates/rattler_solve/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.4.0](https://github.com/conda/rattler/compare/rattler_solve-v1.3.11...rattler_solve-v1.4.0) - 2025-03-04 + +### Added + +- *(js)* compile `rattler_solve` and `rattler_repodata_gateway` ([#1108](https://github.com/conda/rattler/pull/1108)) + ## [1.3.11](https://github.com/conda/rattler/compare/rattler_solve-v1.3.10...rattler_solve-v1.3.11) - 2025-02-28 ### Other diff --git a/crates/rattler_solve/Cargo.toml b/crates/rattler_solve/Cargo.toml index 49acfe12d..b900e3ecc 100644 --- a/crates/rattler_solve/Cargo.toml +++ b/crates/rattler_solve/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rattler_solve" -version = "1.3.11" +version = "1.4.0" edition.workspace = true authors = ["Bas Zalmstra "] description = "A crate to solve conda environments" @@ -11,7 +11,7 @@ license.workspace = true readme.workspace = true [dependencies] -rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path = "../rattler_conda_types", version = "0.31.3", default-features = false } rattler_digest = { path = "../rattler_digest", version = "1.0.7", default-features = false } libc = { workspace = true, optional = true } chrono = { workspace = true } diff --git a/crates/rattler_virtual_packages/Cargo.toml b/crates/rattler_virtual_packages/Cargo.toml index 5e0726848..21ba619ba 100644 --- a/crates/rattler_virtual_packages/Cargo.toml +++ b/crates/rattler_virtual_packages/Cargo.toml @@ -14,7 +14,7 @@ readme.workspace = true libloading = { workspace = true } nom = { workspace = true } once_cell = { workspace = true } -rattler_conda_types = { path="../rattler_conda_types", version = "0.31.2", default-features = false } +rattler_conda_types = { path="../rattler_conda_types", version = "0.31.3", default-features = false } regex = { workspace = true } serde = { workspace = true, features = ["derive"] } thiserror = { workspace = true }