Move Vally eval suite to repo-root azsdk-evals#16367
Conversation
|
Azure Pipelines: Successfully started running 2 pipeline(s). 63 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
This PR relocates the Vally MCP-tool/workflow eval suite from tools/azsdk-cli/Azure.Sdk.Tools.Vally/ to a new repo-root azsdk-evals/ folder and updates CI/pipelines and relative paths accordingly, keeping eval assets alongside other cross-cutting repo-root resources.
Changes:
- Moved and re-rooted the eval suite into
azsdk-evals/(config, eval specs, and fixtures) and adjusted depth-sensitive relative paths. - Updated
workflow-eval.yml/live-eval.ymland the eval fixture discovery test to usevallyRoot: azsdk-evals. - Bumped
@microsoft/vally-cliused by the eval runner scripts to0.7.0(with corresponding lockfile updates).
Reviewed changes
Copilot reviewed 15 out of 33 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| eng/common/scripts/eval/test/init-eval-git-fixtures.test.ts | Updates the invariant fixture discovery test to point at azsdk-evals. |
| eng/common/scripts/eval/package.json | Bumps @microsoft/vally-cli devDependency to 0.7.0. |
| eng/common/scripts/eval/package-lock.json | Updates lockfile for @microsoft/vally-cli@0.7.0 and transitive deps. |
| eng/common/scripts/allow-relative-links.txt | Allows relative links under azsdk-evals/** for link validation. |
| eng/common/pipelines/workflow-eval.yml | Updates trigger paths and vallyRoot to run eval CI from azsdk-evals. |
| eng/common/pipelines/live-eval.yml | Updates vallyRoot for the live eval pipeline tier. |
| azsdk-evals/README.md | Renames/rewrites docs for the new repo-root eval suite layout and commands. |
| azsdk-evals/fixtures/README.md | Adds guidance for referencing fixtures via environment.files. |
| azsdk-evals/fixtures/Microsoft.Widget/Widget/tspconfig.yaml | Adds TypeSpec fixture config for widget ARM project. |
| azsdk-evals/fixtures/Microsoft.Widget/Widget/main.tsp | Adds TypeSpec fixture for widget ARM provider namespace + versions. |
| azsdk-evals/fixtures/Microsoft.Widget/Widget/employee.tsp | Adds TypeSpec fixture defining sample ARM resource and operations. |
| azsdk-evals/fixtures/analyze-pipeline/QueueClientOptionsTests/code/QueueClientOptionsTests.cs | Adds C# test fixture used by pipeline analysis/fix scenarios. |
| azsdk-evals/fixtures/analyze-pipeline/QueueClientOptionsTests/code/QueueClientOptions.cs | Adds C# source fixture containing the version-parser bug under test. |
| azsdk-evals/evals/workflow-scenarios/mock/typespec-generation-step02.eval.yaml | Adjusts repo-root-relative skill/git paths after moving the suite. |
| azsdk-evals/evals/workflow-scenarios/mock/rename-client-property.eval.yaml | Adjusts repo-root-relative skill/git paths after moving the suite. |
| azsdk-evals/evals/workflow-scenarios/mock/release-planner-workflows.eval.yaml | Adjusts repo-root-relative skill/git paths across multiple stimuli. |
| azsdk-evals/evals/workflow-scenarios/mock/multi-turn-release-workflows.eval.yaml | Adjusts repo-root-relative skill/git paths for multi-turn routing scenario. |
| azsdk-evals/evals/workflow-scenarios/mock/fix-pipeline.eval.yaml | Adjusts skill path depth for the pipeline-fix scenario. |
| azsdk-evals/evals/workflow-scenarios/mock/check-public-repo-then-validate.eval.yaml | Adjusts repo-root-relative skill/git paths after moving the suite. |
| azsdk-evals/evals/workflow-scenarios/mock/analyze-failed-pipeline.eval.yaml | Adjusts skill path depth for the pipeline-analysis scenario. |
| azsdk-evals/evals/workflow-scenarios/live/release-planner.eval.yaml | Adjusts repo-root-relative skill/git paths for live workflow scenario. |
| azsdk-evals/evals/tools/prompt-to-tool-verify.eval.yaml | Adds/relocates tool-invocation eval coverage for azsdk_verify_setup. |
| azsdk-evals/evals/tools/prompt-to-tool-typespec.eval.yaml | Adds/relocates tool-invocation eval coverage for TypeSpec tools. |
| azsdk-evals/evals/tools/prompt-to-tool-releaseplan.eval.yaml | Adds/relocates tool-invocation eval coverage for release-plan tools. |
| azsdk-evals/evals/tools/prompt-to-tool-pipeline.eval.yaml | Adds/relocates tool-invocation eval coverage for pipeline tools. |
| azsdk-evals/evals/tools/prompt-to-tool-package.eval.yaml | Adds/relocates tool-invocation eval coverage for package tools. |
| azsdk-evals/evals/tools/prompt-to-tool-github.eval.yaml | Adds/relocates tool-invocation eval coverage for GitHub tools. |
| azsdk-evals/evals/tools/prompt-to-tool-engsys.eval.yaml | Adds/relocates tool-invocation eval coverage for engsys tools. |
| azsdk-evals/evals/tools/prompt-to-tool-config.eval.yaml | Adds/relocates tool-invocation eval coverage for service-label/config tools. |
| azsdk-evals/evals/tools/prompt-to-tool-apiview.eval.yaml | Adds/relocates tool-invocation eval coverage for APIView tools. |
| azsdk-evals/evals/tools/add-arm-resource.eval.yaml | Adds/relocates an end-to-end TypeSpec authoring scenario with fixtures. |
| azsdk-evals/.vally.yaml | Re-roots MCP server build/output paths for the new azsdk-evals location. |
| azsdk-evals/.gitignore | Ignores local eval output folders under the new root. |
Files not reviewed (1)
- eng/common/scripts/eval/package-lock.json: Generated file
Comments suppressed due to low confidence (3)
azsdk-evals/README.md:81
- This command will fail as-written because
sync-eval-git-repo.tscontains TypeScript type annotations (e.g.,args: string[]) and Node needs--experimental-strip-types(or a TS runner) to execute it.
azsdk-evals/README.md:177 - This example will fail as-written because
sync-eval-git-repo.tsincludes TypeScript syntax; run it withnode --experimental-strip-types(matching how the eval scripts run TS elsewhere).
azsdk-evals/README.md:252 - This example will fail as-written because
sync-eval-git-repo.tsincludes TypeScript syntax; run it withnode --experimental-strip-types.
|
@helen229 curious the motivation to move this to repo root. Would |
|
The following pipelines have been queued for testing: |
Sync eng/common directory with azure-sdk-tools for PR Azure/azure-sdk-tools#16367 See [eng/common workflow](https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/README.md#workflow) Co-authored-by: helen229 <gaoh@microsoft.com>
Sync eng/common directory with azure-sdk-tools for PR Azure/azure-sdk-tools#16367 See [eng/common workflow](https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/README.md#workflow) Co-authored-by: helen229 <gaoh@microsoft.com>
|
What
Moves the Vally eval suite from
tools/azsdk-cli/Azure.Sdk.Tools.Vally/to a top-levelazsdk-evals/folder, so the evals live at the repo root alongside other cross-cutting assets rather than nested under the CLI tool.Supersedes #16333, which accumulated stray merge commits that broke the
sync-eng-commonpatch-apply step (patches are generated per-commit against the commit's own parent, so an old commit referencing pre-rename.jseval test files kept resurfacing even after merging main). This PR is a clean, single squashed commit rebased on currentmain.Changes
git mvof the tracked eval config, eval specs, and fixtures:.vally.yaml,.gitignore,README.mdevals/**(13 eval specs)fixtures/**(Microsoft.Widget TypeSpec fixtures).vally.yamlMCP build/run paths (../artifacts/...,../tools/azsdk-cli/...)*.eval.yamlgitsource:and skill-mount paths (6-up -> 4-up)eng/common/pipelines/workflow-eval.ymlandlive-eval.yml(vallyRoot: azsdk-evals+ trigger/PR path filters).eng/common/scripts/eval/test/init-eval-git-fixtures.test.ts(vallyRoot->azsdk-evals).README.mdtitle, layout tree, and root-relative links.Validation
node --testineng/common/scripts/eval)..vally.yamlparses cleanly; no remainingAzure.Sdk.Tools.Vallyreferences or wrong-depth (../../../../../../) paths in tracked files..slnreferences to the old path exist.Notes
{project-root}/../../../../common-typestoken infixtures/.../tspconfig.yamlis a TypeSpec project-root path (not filesystem-repo-relative) and is intentionally left unchanged.scratch/output remains physically under the old folder (gitignored dev artifacts); not part of this PR.