diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 5a7b8ea..0c92e50 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,3 +1,5 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:24-bookworm
RUN npm install --global pnpm@latest-10
+
+RUN mkdir /usr/share/dotnet && chmod a+w /usr/share/dotnet
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 36260b6..24cb787 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -10,7 +10,7 @@
"ghcr.io/devcontainer-config/features/user-init:2": {},
"ghcr.io/devcontainer-config/features/dot-config:3": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
- "ghcr.io/devcontainers/features/dotnet:2": { "version": "8.0" }
+ "ghcr.io/devcontainers/features/dotnet:2": { "version": "10.0" }
},
"customizations": {
"vscode": {
diff --git a/package.json b/package.json
index 93dcd55..5b9b407 100644
--- a/package.json
+++ b/package.json
@@ -16,13 +16,13 @@
},
"dependencies": {
"@commander-js/extra-typings": "^14.0.0",
- "@devcontainers/cli": "^0.80.1",
+ "@devcontainers/cli": "^0.80.2",
"@eslint/js": "^9.39.1",
"@prettier/plugin-xml": "^3.4.2",
- "@tsconfig/node24": "^24.0.1",
+ "@tsconfig/node24": "^24.0.2",
"@vitest/eslint-plugin": "^1.4.2",
"commander": "~14.0.2",
- "cspell": "^9.3.1",
+ "cspell": "^9.3.2",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-flat-config-gitignore": "^3.0.1",
@@ -45,9 +45,9 @@
"typescript": "~5.9.3",
"typescript-eslint": "^8.46.4",
"vite": "^7.2.2",
- "vite-node": "^5.0.0",
+ "vite-node": "^5.1.0",
"vite-tsconfig-paths": "^5.1.4",
- "vitest": "^4.0.8"
+ "vitest": "^4.0.9"
},
"devDependencies": {
"@types/eslint": "^9.6.1",
diff --git a/scripts/buildx.ts b/scripts/buildx.ts
index 4c9a735..694bcd6 100644
--- a/scripts/buildx.ts
+++ b/scripts/buildx.ts
@@ -2,14 +2,14 @@ import path from "node:path";
import { $ } from "execa";
-import { projectRoot } from "@/scripts/project.js";
+import { projectRoot, workspaces } from "@/scripts/project.js";
import { $$ } from "@/scripts/shell.js";
import { getVersionTag } from "@/scripts/tasks/build.js";
import { deploy } from "@/scripts/tasks/deploy.js";
const platforms: string[] = ["linux/amd64", "linux/arm64"];
-const packagePath = path.resolve(projectRoot, ".local/docker");
+const packagePath = path.resolve(workspaces, "artifacts/package");
async function buildImage(registry: string, imageName: string, tags: string[], publish: boolean) {
console.log("Building multi-arch Docker image...");
diff --git a/setup/configs/csharp/devcontainer.ts b/setup/configs/csharp/devcontainer.ts
index c51ecdf..ec4b259 100644
--- a/setup/configs/csharp/devcontainer.ts
+++ b/setup/configs/csharp/devcontainer.ts
@@ -14,6 +14,7 @@ import { loadTemplates } from "../templates.js";
export interface CSharpDevContainerConfigs {
".devcontainer/.env": string;
".devcontainer/devcontainer.json": string;
+ ".devcontainer/Dockerfile": string;
".devcontainer/dot-config.json": string;
}
@@ -62,12 +63,19 @@ export const createCSharpDevContainerConfigs = async (
].join("\n");
})();
+ const dockerFilaPath = ".devcontainer/Dockerfile" satisfies keyof BaseConfigs;
+ const dockerFileConfig = [
+ baseConfig[dockerFilaPath],
+ "RUN mkdir /usr/share/dotnet && chmod a+w /usr/share/dotnet",
+ ].join("\n");
+
return {
".devcontainer/.env": propertiesComposer(
baseConfig[".devcontainer/.env"],
fillTemplate(templates[".devcontainer/.env"], { remoteUser }),
),
".devcontainer/devcontainer.json": devContainerConfig,
+ ".devcontainer/Dockerfile": dockerFileConfig,
".devcontainer/dot-config.json": JSON.stringify(
defaultComposer(
jsonc.parse(baseConfig[".devcontainer/dot-config.json"]) as object,
diff --git a/setup/formatting.ts b/setup/formatting.ts
index 4166538..9c29b7d 100644
--- a/setup/formatting.ts
+++ b/setup/formatting.ts
@@ -8,6 +8,7 @@ export const prettierConfig: prettier.Config = {
import.meta.resolve("prettier-plugin-packagejson"),
import.meta.resolve("@prettier/plugin-xml"),
import.meta.resolve("prettier-plugin-ini"),
+ import.meta.resolve("prettier-plugin-sh"),
],
xmlWhitespaceSensitivity: "ignore",
overrides: [
diff --git a/setup/package.json b/setup/package.json
index b4a05c5..5df6892 100644
--- a/setup/package.json
+++ b/setup/package.json
@@ -16,17 +16,18 @@
"@commander-js/extra-typings": "^14.0.0",
"@prettier/plugin-xml": "^3.4.2",
"commander": "~14.0.2",
- "cspell-lib": "^9.3.1",
+ "cspell-lib": "^9.3.2",
"dedent": "^1.7.0",
"default-composer": "^0.6.0",
- "fast-xml-parser": "^5.3.1",
+ "fast-xml-parser": "^5.3.2",
"jsonc-parser": "^3.3.1",
"lodash-es": "^4.17.21",
"oci-registry-client": "^0.2.0",
- "pacote": "^21.0.3",
+ "pacote": "^21.0.4",
"prettier": "^3.6.2",
"prettier-plugin-ini": "^1.3.0",
"prettier-plugin-packagejson": "^2.5.19",
+ "prettier-plugin-sh": "^0.18.0",
"semver": "^7.7.3",
"type-fest": "^5.2.0",
"write-file-atomic": "^7.0.0"
diff --git a/setup/templates/csharp/.config/dotnet/Packages.props b/setup/templates/csharp/.config/dotnet/Packages.props
index ff6733b..afbc5a9 100644
--- a/setup/templates/csharp/.config/dotnet/Packages.props
+++ b/setup/templates/csharp/.config/dotnet/Packages.props
@@ -3,6 +3,6 @@
true
-
+
diff --git a/setup/templates/csharp/Automation/Automation.csproj b/setup/templates/csharp/Automation/Automation.csproj
index 3f399bf..df8a98e 100644
--- a/setup/templates/csharp/Automation/Automation.csproj
+++ b/setup/templates/csharp/Automation/Automation.csproj
@@ -1,7 +1,7 @@
Exe
- net8.0
+ net10.0
diff --git a/setup/templates/typescript/package.json b/setup/templates/typescript/package.json
index c798be2..0885299 100644
--- a/setup/templates/typescript/package.json
+++ b/setup/templates/typescript/package.json
@@ -3,8 +3,8 @@
"type": "module",
"dependencies": {
"@eslint/js": "^9.39.1",
- "@tsconfig/node24": "^24.0.1",
- "cspell": "^9.3.1",
+ "@tsconfig/node24": "^24.0.2",
+ "cspell": "^9.3.2",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-flat-config-gitignore": "^3.0.1",
@@ -18,7 +18,7 @@
"typescript": "~5.9.3",
"typescript-eslint": "^8.46.4",
"vite": "^7.2.2",
- "vite-node": "^5.0.0",
+ "vite-node": "^5.1.0",
"vite-tsconfig-paths": "^5.1.4"
},
"devDependencies": {