From cf5177c268953b5bfb68ea7036b7461ea298b73a Mon Sep 17 00:00:00 2001 From: David Driscoll Date: Wed, 1 Jul 2026 15:56:40 -0400 Subject: [PATCH] syncing project settings --- .config/hk.pkl | 18 ++++ .config/mise.toml | 14 ++- .github/workflows/build.yml | 7 -- .github/workflows/close-milestone.yml | 2 +- .github/workflows/dependabot-merge.yml | 2 +- .github/workflows/deploy-docs.yml | 52 ++++++--- .github/workflows/draft-release.yml | 2 +- .github/workflows/lint.yml | 58 ++++------ .github/workflows/squad-heartbeat.yml | 6 +- .github/workflows/squad-issue-assign.yml | 6 +- .github/workflows/squad-triage.yml | 4 +- .github/workflows/sync-labels.yml | 2 +- .github/workflows/sync-squad-labels.yml | 4 +- .github/workflows/update-milestone.yml | 2 +- .gitignore | 19 ++++ Directory.Build.props | 18 +++- Directory.Build.targets | 12 +-- GitVersion.yml | 30 +++--- build/Build.cs | 1 - docs/.vitepress/config.mts | 27 ----- docs/.vitepress/theme/index.ts | 17 --- docs/.vitepress/theme/style.css | 130 ----------------------- docs/api-examples.md | 55 ---------- docs/index.md | 24 ----- docs/markdown-examples.md | 85 --------------- src/Testing.TUnit/TestRecord.Interop.cs | 1 + src/Testing/DryIocExtensions.cs | 15 +-- 27 files changed, 162 insertions(+), 451 deletions(-) delete mode 100644 docs/.vitepress/config.mts delete mode 100644 docs/.vitepress/theme/index.ts delete mode 100644 docs/.vitepress/theme/style.css delete mode 100644 docs/api-examples.md delete mode 100644 docs/index.md delete mode 100644 docs/markdown-examples.md diff --git a/.config/hk.pkl b/.config/hk.pkl index f76587bbca..cd63b0cc44 100644 --- a/.config/hk.pkl +++ b/.config/hk.pkl @@ -9,6 +9,7 @@ local excludeDiagnostics = new Listing { "CA2255" "CS0103" "CS0108" + "CS1061" "CS0246" "CS1591" "CS8602" @@ -31,6 +32,22 @@ local excludeDiagnostics = new Listing { "RS0026" } +local excludes = new Listing { + "**/obj/**/*" + "**/bin/**/*" + ".git/**/*" + ".vs/**/*" + ".vscode/**/*" + ".idea/**/*" + ".claude/**/*" + ".agents/**/*" + ".apm/**/*" + ".copilot/**/*" + ".squad/**/*" + "**/*.verified.*" + "**/*.received.*" +} + local excludedDiagnosticsString = excludeDiagnostics.join(" ") // `dotnet format` โ€” whitespace / code-style / analyzer fixes, scoped to the changed C# files. @@ -76,6 +93,7 @@ local linters = new Mapping { // ["jb-cleanupcode"] = jbCleanupCode } +exclude = excludes hooks { ["pre-commit"] { fix = true diff --git a/.config/mise.toml b/.config/mise.toml index 70ee8e93cc..d43884fd8b 100644 --- a/.config/mise.toml +++ b/.config/mise.toml @@ -4,7 +4,7 @@ "github:yvgude/lean-ctx" = { version = "v3.8.8", bin = "lean-ctx" } hk = "1.48.0" pkl = "0.31.1" -bun = "1.3.14" +node = "24.16.0" actionlint = "1.7.12" prettier = "3.8.4" @@ -20,13 +20,15 @@ dotnet = [{ version = "8.0.14", runtime = "dotnet" }, { version = "10.0.301" }] "dotnet:verify.tool" = "0.7.0" "dotnet:gitreleasemanager.tool" = "0.20.0" "dotnet:NuGet.Mcp.Server" = "1.4.3" -"npm:vitepress" = "v2.0.0-alpha.17" +"pipx:git+https://github.com/github/spec-kit.git" = "latest" +"npm:@bradygaster/squad-cli" = "0.10.0" # dotnet [tasks] build = { run = "dotnet run build/Build.cs" } -docs = { run = "vitepress dev docs" } -docs-preview = { run = "vitepress preview docs" } +docs = { run = "npm run dev --workspace docs", description = "Start Astro/Starlight dev server" } +"docs:preview" = { run = "npm run preview --workspace docs", description = "Preview built Starlight site" } +"docs:build" = { run = "npm run build --workspace docs", description = "Build the Starlight site (API reference is generated in-process by the Astro XML loader)" } "roslyn-lsp" = { run = "bash build/scripts/install-roslyn-lsp.sh", description = "Install the Microsoft Roslyn language server for this RID" } "pkl-vscode" = { run = "bash build/scripts/install-pkl-vscode.sh", description = "Install the Pkl VS Code extension (not in marketplace; installed from VSIX)" } @@ -36,6 +38,10 @@ prereleases = true [env] HK_MISE = 1 +# Keep npm's download cache inside the mise data dir so jdx/mise-action's +# cache (which caches MISE_DATA_DIR / ~/.local/share/mise) also persists npm +# tarballs across CI runs. `npm ci` still wipes node_modules, but reuses these. +npm_config_cache = "{{env.HOME}}/.local/share/mise/npm-cache" # Microsoft Roslyn language server (Microsoft.CodeAnalysis.LanguageServer), installed by the # `roslyn-lsp` task from the Azure DevOps vs-impl feed. The wrapper lands on PATH below. ROSLYN_LSP_VERSION = "4.8.0-7.26274.14" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d671b2445..8b6e63a038 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,10 +74,3 @@ jobs: with: name: event path: artifacts/event.json - # Docs are built into artifacts/docs by the canonical pipeline (DocsModule). Only the - # main branch publishes to GitHub Pages (FR-027/028, SC-010). - - name: ๐Ÿ“ค Upload Pages artifact - if: github.ref == 'refs/heads/main' - uses: actions/upload-pages-artifact@v3 - with: - path: artifacts/docs diff --git a/.github/workflows/close-milestone.yml b/.github/workflows/close-milestone.yml index 0e5c22c248..30f4b051af 100644 --- a/.github/workflows/close-milestone.yml +++ b/.github/workflows/close-milestone.yml @@ -57,7 +57,7 @@ jobs: with: title: v${{ steps.gitversion.outputs.majorMinorPatch }} - name: sync milestones - uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15 + uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.19 with: default-label: ':sparkles: mysterious' github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/dependabot-merge.yml b/.github/workflows/dependabot-merge.yml index 0c5608e19a..996c436248 100644 --- a/.github/workflows/dependabot-merge.yml +++ b/.github/workflows/dependabot-merge.yml @@ -11,6 +11,6 @@ on: jobs: comment: - uses: RocketSurgeonsGuild/actions/.github/workflows/dependabot-merge.yml@v0.3.15 + uses: RocketSurgeonsGuild/actions/.github/workflows/dependabot-merge-queue.yml@v0.3.19 secrets: RSG_BOT_TOKEN: ${{ secrets.RSG_BOT_TOKEN }} diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 318d4af969..f46029b3d8 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -1,11 +1,14 @@ name: Deploy Docs on: - workflow_run: - workflows: - - Build - types: - - completed + push: + branches: + - main + paths: + - docs/** + - src/** + - .github/workflows/deploy-docs.yml + workflow_dispatch: permissions: contents: read @@ -17,23 +20,40 @@ concurrency: cancel-in-progress: false jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v7 + with: + clean: 'false' + fetch-depth: '0' + - name: ๐Ÿ› ๏ธ Setup mise + uses: jdx/mise-action@v4 + with: + install: true + cache: true + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: ๐Ÿ“š Build docs + run: mise run docs:build + env: + GH_API_TOKEN: ${{ secrets.GH_API_TOKEN }} + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: docs/dist + deploy: - if: > - github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main' name: Deploy + needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - - name: ๐Ÿ“ฅ Download event - continue-on-error: true - uses: actions/download-artifact@v8 - with: - name: event - path: artifacts/ - run-id: ${{ github.event.workflow_run.id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 50f11fef69..478fc6bcd5 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -62,7 +62,7 @@ jobs: with: title: v${{ steps.gitversion.outputs.majorMinorPatch }} - name: sync milestones - uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15 + uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.19 with: default-label: ':sparkles: mysterious' github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fe78dd8766..892f220067 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,8 @@ -name: Lint +name: autofix.ci on: - pull_request_target: + pull_request: + push: branches: - main - next @@ -10,20 +11,11 @@ on: - main - next +# Read-only: autofix.ci pushes the fix commit server-side via its GitHub App, +# so the workflow itself never needs write access or a secret. This is what makes +# running a formatter over untrusted fork code safe. permissions: - actions: read - checks: write - contents: write - deployments: read - id-token: none - issues: write - discussions: none - packages: none - pages: none - pull-requests: write - repository-projects: none - security-events: none - statuses: write + contents: read concurrency: group: lint-${{ github.event.pull_request.number || github.run_id }} @@ -38,37 +30,33 @@ jobs: with: clean: 'false' fetch-depth: '0' - ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} - repository: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name || github.repository }} - token: ${{ secrets.RSG_BOT_TOKEN }} - - name: Get Head Commit Message - id: commit-message - run: | - echo "message=$(git show -s --format=%s)" >> "$GITHUB_OUTPUT" - name: ๐Ÿ› ๏ธ Setup mise uses: jdx/mise-action@v4 with: install: true cache: true github_token: ${{ secrets.GITHUB_TOKEN }} - - name: ๐Ÿงน Lint (hk fix) - if: github.event_name == 'pull_request_target' - run: | - hk fix --from-ref "$DEFAULT_BRANCH" --to-ref "$HEAD" - env: - DEFAULT_BRANCH: ${{ github.event.pull_request.base.sha }} - HEAD: ${{ github.event.pull_request.head.sha }} - - name: ๐Ÿงน Lint (hk check) + # merge_group: hard gate only โ€” no autofix in the merge queue. + - name: ๐Ÿงน Lint (hk check) โ€” merge_group if: github.event_name == 'merge_group' run: | hk check --from-ref "$DEFAULT_BRANCH" --to-ref "$HEAD" env: DEFAULT_BRANCH: ${{ github.event.merge_group.base_sha }} HEAD: ${{ github.event.merge_group.head_sha }} - - name: Add & Commit - if: github.event_name == 'pull_request_target' && !contains(steps.commit-message.outputs.message, 'Automatically linting code') - uses: stefanzweifel/git-auto-commit-action@v7 + # pull_request (same-repo AND fork): apply fixes into the working tree. + # autofix.ci uploads the diff and commits it back to the PR (incl. forks). + - name: ๐Ÿงน Lint (hk fix) + if: github.event_name == 'pull_request' + run: | + hk fix --from-ref "$DEFAULT_BRANCH" --to-ref "$HEAD" env: - GITHUB_TOKEN: ${{ secrets.RSG_BOT_TOKEN }} + DEFAULT_BRANCH: ${{ github.event.pull_request.base.sha }} + HEAD: ${{ github.event.pull_request.head.sha }} + # Must be the LAST step: pushes the working-tree changes back as a + # verified commit (and fails the check when a fix was needed). + - name: โœ๏ธ Apply fixes (autofix.ci) + if: github.event_name == 'pull_request' + uses: autofix-ci/action@v1.3.4 with: - commit_message: Automatically linting code + commit-message: Automatically linting code diff --git a/.github/workflows/squad-heartbeat.yml b/.github/workflows/squad-heartbeat.yml index 89857049f4..b7ed47de96 100644 --- a/.github/workflows/squad-heartbeat.yml +++ b/.github/workflows/squad-heartbeat.yml @@ -25,7 +25,7 @@ jobs: heartbeat: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Check triage script id: check-script @@ -48,7 +48,7 @@ jobs: - name: Ralph โ€” Apply triage decisions if: steps.check-script.outputs.has_script == 'true' && hashFiles('triage-results.json') != '' - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); @@ -100,7 +100,7 @@ jobs: # Copilot auto-assign step (uses PAT if available) - name: Ralph โ€” Assign @copilot issues if: success() - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: github-token: ${{ secrets.COPILOT_ASSIGN_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/squad-issue-assign.yml b/.github/workflows/squad-issue-assign.yml index 20dd287676..b55077185e 100644 --- a/.github/workflows/squad-issue-assign.yml +++ b/.github/workflows/squad-issue-assign.yml @@ -14,10 +14,10 @@ jobs: if: startsWith(github.event.label.name, 'squad:') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Identify assigned member and trigger work - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); @@ -116,7 +116,7 @@ jobs: # Separate step: assign @copilot using PAT (required for coding agent) - name: Assign @copilot coding agent if: github.event.label.name == 'squad:copilot' - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: github-token: ${{ secrets.COPILOT_ASSIGN_TOKEN }} script: | diff --git a/.github/workflows/squad-triage.yml b/.github/workflows/squad-triage.yml index 6f962a1257..2ed5c3273b 100644 --- a/.github/workflows/squad-triage.yml +++ b/.github/workflows/squad-triage.yml @@ -13,10 +13,10 @@ jobs: if: github.event.label.name == 'squad' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Triage issue via Lead agent - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index b926c0184d..9fef6817e2 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -11,4 +11,4 @@ on: jobs: sync_labels: - uses: RocketSurgeonsGuild/actions/.github/workflows/sync-labels.yml@v0.3.15 + uses: RocketSurgeonsGuild/actions/.github/workflows/sync-labels.yml@v0.3.19 diff --git a/.github/workflows/sync-squad-labels.yml b/.github/workflows/sync-squad-labels.yml index 26fd24f152..f867d7c5c7 100644 --- a/.github/workflows/sync-squad-labels.yml +++ b/.github/workflows/sync-squad-labels.yml @@ -15,10 +15,10 @@ jobs: sync-labels: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Parse roster and sync labels - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); diff --git a/.github/workflows/update-milestone.yml b/.github/workflows/update-milestone.yml index e1248e9a24..a508300ce8 100644 --- a/.github/workflows/update-milestone.yml +++ b/.github/workflows/update-milestone.yml @@ -59,7 +59,7 @@ jobs: with: title: v${{ steps.gitversion.outputs.majorMinorPatch }} - name: sync milestones - uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15 + uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.19 with: default-label: ':sparkles: mysterious' github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index cb5cd8d5f5..2a2bd4e21b 100644 --- a/.gitignore +++ b/.gitignore @@ -223,3 +223,22 @@ apm_modules/ # Pkl VS Code extension VSIX cache (installed via mise `pkl-vscode` task) .pkl-vscode/ .temp/ +# Squad: ignore runtime state (logs, inbox, sessions) +.squad/orchestration-log/ +.squad/log/ +.squad/decisions/inbox/ +.squad/sessions/ +.squad/.scratch/ +.squad/.cache/ +# Squad: SubSquad activation file (local to this machine) +.squad-workstream +dist/ +.astro/ +*.local.toml + +# Docs: auto-generated API reference (regenerated in CI via xmldocmd --clean). +# Keep the hand-written section landing page (api/index.md); ignore the generated tree. +docs/src/content/docs/api/** +!docs/src/content/docs/api/index.md +.playwright-mcp/ +docs/api/ \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 242d9325e3..922f3e0fa8 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -7,6 +7,7 @@ true images/packageicon.png LICENSE + Readme.md - + RS0017 true all moderate + $(MSBuildThisFileDirectory) + true + + + + + @@ -39,6 +52,5 @@ - diff --git a/Directory.Build.targets b/Directory.Build.targets index d132edc616..d010ede179 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,14 +1,4 @@ - - - - - + diff --git a/GitVersion.yml b/GitVersion.yml index 57c92b6549..ba1ea265f3 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -2,18 +2,18 @@ workflow: GitHubFlow/v1 semantic-version-format: Loose branches: - main: - label: beta - source-branches: - - next - pull-request: - mode: ContinuousDelivery - label: pr - source-branches: - - main - - feature - next: - mode: ContinuousDelivery - regex: ^next$ - increment: Major - label: next + main: + label: beta + source-branches: + - next + pull-request: + mode: ContinuousDelivery + label: pr + source-branches: + - main + - feature + next: + mode: ContinuousDelivery + regex: ^next$ + increment: Major + label: next diff --git a/build/Build.cs b/build/Build.cs index ffb7b30f8c..c8ec8df1a2 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -8,7 +8,6 @@ using Build; using ModularPipelines; using ModularPipelines.Plugins; -using Rocket.Surgery.Conventions; using Rocket.Surgery.ModularPipelines.Extensions; var pipelineBuilder = Pipeline.CreateBuilder(args); diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts deleted file mode 100644 index 295fcaed4b..0000000000 --- a/docs/.vitepress/config.mts +++ /dev/null @@ -1,27 +0,0 @@ -import { defineConfig } from 'vitepress'; - -// https://vitepress.dev/reference/site-config -export default defineConfig({ - title: 'Indago - Static Assembly Scanning', - description: - 'Indago is a compile-time assembly/type-scanning library for .NET. It replaces runtime reflection-based DI scanning (like Scrutor) with a Roslyn **source generator** that resolves the scan at build time and emits a strongly-typed `IIndagoProvider`. This makes scanning AOT/trimming-friendly and removes runtime reflection.', - themeConfig: { - // https://vitepress.dev/reference/default-theme-config - nav: [ - { text: 'Home', link: '/' }, - { text: 'Examples', link: '/markdown-examples' }, - ], - - sidebar: [ - { - text: 'Examples', - items: [ - { text: 'Markdown Examples', link: '/markdown-examples' }, - { text: 'Runtime API Examples', link: '/api-examples' }, - ], - }, - ], - - socialLinks: [{ icon: 'github', link: 'https://github.com/vuejs/vitepress' }], - }, -}); diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts deleted file mode 100644 index a24cda3361..0000000000 --- a/docs/.vitepress/theme/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// https://vitepress.dev/guide/custom-theme -import { h } from 'vue'; -import type { Theme } from 'vitepress'; -import DefaultTheme from 'vitepress/theme'; -import './style.css'; - -export default { - extends: DefaultTheme, - Layout: () => { - return h(DefaultTheme.Layout, null, { - // https://vitepress.dev/guide/extending-default-theme#layout-slots - }); - }, - enhanceApp({ app, router, siteData }) { - // ... - }, -} satisfies Theme; diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css deleted file mode 100644 index a4d59d8b00..0000000000 --- a/docs/.vitepress/theme/style.css +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Customize default theme styling by overriding CSS variables: - * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css - */ - -/** - * Colors - * - * Each colors have exact same color scale system with 3 levels of solid - * colors with different brightness, and 1 soft color. - * - * - `XXX-1`: The most solid color used mainly for colored text. It must - * satisfy the contrast ratio against when used on top of `XXX-soft`. - * - * - `XXX-2`: The color used mainly for hover state of the button. - * - * - `XXX-3`: The color for solid background, such as bg color of the button. - * It must satisfy the contrast ratio with pure white (#ffffff) text on - * top of it. - * - * - `XXX-soft`: The color used for subtle background such as custom container - * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors - * on top of it. - * - * The soft color must be semi transparent alpha channel. This is crucial - * because it allows adding multiple "soft" colors on top of each other - * to create a accent, such as when having inline code block inside - * custom containers. - * - * - `default`: The color used purely for subtle indication without any - * special meanings attached to it such as bg color for menu hover state. - * - * - `brand`: Used for primary brand colors, such as link text, button with - * brand theme, etc. - * - * - `tip`: Used to indicate useful information. The default theme uses the - * brand color for this by default. - * - * - `warning`: Used to indicate warning to the users. Used in custom - * container, badges, etc. - * - * - `danger`: Used to show error, or dangerous message to the users. Used - * in custom container, badges, etc. - * -------------------------------------------------------------------------- */ - -:root { - --vp-c-default-1: var(--vp-c-gray-1); - --vp-c-default-2: var(--vp-c-gray-2); - --vp-c-default-3: var(--vp-c-gray-3); - --vp-c-default-soft: var(--vp-c-gray-soft); - - --vp-c-brand-1: var(--vp-c-indigo-1); - --vp-c-brand-2: var(--vp-c-indigo-2); - --vp-c-brand-3: var(--vp-c-indigo-3); - --vp-c-brand-soft: var(--vp-c-indigo-soft); - - --vp-c-tip-1: var(--vp-c-brand-1); - --vp-c-tip-2: var(--vp-c-brand-2); - --vp-c-tip-3: var(--vp-c-brand-3); - --vp-c-tip-soft: var(--vp-c-brand-soft); - - --vp-c-warning-1: var(--vp-c-yellow-1); - --vp-c-warning-2: var(--vp-c-yellow-2); - --vp-c-warning-3: var(--vp-c-yellow-3); - --vp-c-warning-soft: var(--vp-c-yellow-soft); - - --vp-c-danger-1: var(--vp-c-red-1); - --vp-c-danger-2: var(--vp-c-red-2); - --vp-c-danger-3: var(--vp-c-red-3); - --vp-c-danger-soft: var(--vp-c-red-soft); -} - -/** - * Component: Button - * -------------------------------------------------------------------------- */ - -:root { - --vp-button-brand-border: transparent; - --vp-button-brand-text: var(--vp-c-white); - --vp-button-brand-bg: var(--vp-c-brand-3); - --vp-button-brand-hover-border: transparent; - --vp-button-brand-hover-text: var(--vp-c-white); - --vp-button-brand-hover-bg: var(--vp-c-brand-2); - --vp-button-brand-active-border: transparent; - --vp-button-brand-active-text: var(--vp-c-white); - --vp-button-brand-active-bg: var(--vp-c-brand-1); -} - -/** - * Component: Home - * -------------------------------------------------------------------------- */ - -:root { - --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff); - - --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%); - --vp-home-hero-image-filter: blur(44px); -} - -@media (min-width: 640px) { - :root { - --vp-home-hero-image-filter: blur(56px); - } -} - -@media (min-width: 960px) { - :root { - --vp-home-hero-image-filter: blur(68px); - } -} - -/** - * Component: Custom Block - * -------------------------------------------------------------------------- */ - -:root { - --vp-custom-block-tip-border: transparent; - --vp-custom-block-tip-text: var(--vp-c-text-1); - --vp-custom-block-tip-bg: var(--vp-c-brand-soft); - --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); -} - -/** - * Component: Algolia - * -------------------------------------------------------------------------- */ - -.DocSearch { - --docsearch-primary-color: var(--vp-c-brand-1) !important; -} diff --git a/docs/api-examples.md b/docs/api-examples.md deleted file mode 100644 index 691df9cc7e..0000000000 --- a/docs/api-examples.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -outline: deep ---- - -# Runtime API Examples - -This page demonstrates usage of some of the runtime APIs provided by VitePress. - -The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: - -```md - - -## Results - -### Theme Data - -
{{ theme }}
- -### Page Data - -
{{ page }}
- -### Page Frontmatter - -
{{ frontmatter }}
-``` - - - -## Results - -### Theme Data - -
{{ theme }}
- -### Page Data - -
{{ page }}
- -### Page Frontmatter - -
{{ frontmatter }}
- -## More - -Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 043f7dc608..0000000000 --- a/docs/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -# https://vitepress.dev/reference/default-theme-home-page -layout: home - -hero: - name: Indago - Static Assembly Scanning - text: Indago is a compile-time assembly/type-scanning library for .NET. It replaces runtime reflection-based DI scanning (like Scrutor) with a Roslyn **source generator** that resolves the scan at build time and emits a strongly-typed `IIndagoProvider`. This makes scanning AOT/trimming-friendly and removes runtime reflection. - tagline: My great project tagline - actions: - - theme: brand - text: Markdown Examples - link: /markdown-examples - - theme: alt - text: API Examples - link: /api-examples - -features: - - title: Feature A - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit - - title: Feature B - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit - - title: Feature C - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit ---- diff --git a/docs/markdown-examples.md b/docs/markdown-examples.md deleted file mode 100644 index f9258a5503..0000000000 --- a/docs/markdown-examples.md +++ /dev/null @@ -1,85 +0,0 @@ -# Markdown Extension Examples - -This page demonstrates some of the built-in markdown extensions provided by VitePress. - -## Syntax Highlighting - -VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: - -**Input** - -````md -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` -```` - -**Output** - -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` - -## Custom Containers - -**Input** - -```md -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: -``` - -**Output** - -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: - -## More - -Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). diff --git a/src/Testing.TUnit/TestRecord.Interop.cs b/src/Testing.TUnit/TestRecord.Interop.cs index 8a93652b4f..3dae8aba0f 100644 --- a/src/Testing.TUnit/TestRecord.Interop.cs +++ b/src/Testing.TUnit/TestRecord.Interop.cs @@ -1,3 +1,4 @@ +using System.Collections.Concurrent; using TUnit.Core.Enums; using TUnit.Core.Interfaces; diff --git a/src/Testing/DryIocExtensions.cs b/src/Testing/DryIocExtensions.cs index 8b4d4f61c4..d8f0487468 100644 --- a/src/Testing/DryIocExtensions.cs +++ b/src/Testing/DryIocExtensions.cs @@ -1,3 +1,4 @@ +using System.Collections.Concurrent; using System.Collections.Immutable; using DryIoc; using Microsoft.Extensions.Logging; @@ -20,7 +21,8 @@ public static Rules WithTestLoggerResolver(this Rules rules, Func(); return rules.WithUnknownServiceResolvers( - ( rules.UnknownServiceResolvers ?? Array.Empty() ).ToImmutableList().Add( + [ + .. ( rules.UnknownServiceResolvers ?? [] ), request => { var serviceType = request.ServiceType; @@ -41,8 +43,8 @@ public static Rules WithTestLoggerResolver(this Rules rules, Func @@ -55,7 +57,8 @@ public static Rules WithUndefinedTestDependenciesResolver(this Rules rules, Func { var dictionary = new ConcurrentDictionary(); return rules.WithUnknownServiceResolvers( - ( rules.UnknownServiceResolvers ?? Array.Empty() ).ToImmutableList().Add( + [ + .. ( rules.UnknownServiceResolvers ?? [] ), request => { var serviceType = request.ServiceType; @@ -73,7 +76,7 @@ public static Rules WithUndefinedTestDependenciesResolver(this Rules rules, Func return instance; } - ).ToArray() - ); +, + ]); } }