fix: pick up @alcops/core 0.2.0 (AL 18 flat VSIX layout); correct version docs - #48
Merged
Merged
Conversation
…docs The task log header showed `Version: 1.0.5` while the extension shipped as 2.0.5. Both "Stamp task versions" steps (`.github/workflows/ci.yml` for the dev publish and `.github/workflows/release.yml` for the production release) only stamped `.version.Minor` and `.version.Patch` from GitVersion, so the `Major` stayed at the hardcoded `1` in `tasks/*/task.json` and never followed the extension version. Add `.version.Major` from `steps.gitversion.outputs.major` to both jq expressions and set `"Major": 2` in all five `tasks/*/task.json` so local and trial builds match what CI stamps. Note for reviewers: the task `Major` is the `@N` that consumers reference in YAML, so this makes the next release `ALCopsDownloadAnalyzers@2`. See the PR description for the open decision. Docs: - `README.md`: the `version` input accepts `latest` / `prerelease`, not `latest` / `preview` (matches `tasks/download/task.json`). - `README.md` and `overview.md`: note that the AL 18+ (BC 29) flat `extension/bin/` VSIX layout is supported from `@alcops/core` 0.2.1, and that compiling with AL 18 needs a .NET 10 runtime on the agent. - `CONTRIBUTING.md` and `.github/ARCHITECTURE.md`: describe the new Major + Minor + Patch stamping. Refs: #47 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…oning Reverts the task `Major` stamping from 29fae26. In Azure Pipelines the task `Major` is the `@N` consumers reference in YAML, so stamping it from GitVersion would publish `ALCopsDownloadAnalyzers@2` and break every pipeline pinned to `@1`. `Version: 1.x.y` in the log header is the task's own version and is intentionally independent of the extension version on the Marketplace (2.x.y), as `.github/ARCHITECTURE.md` already documented. - `.github/workflows/ci.yml` and `.github/workflows/release.yml`: restore the original Minor/Patch-only jq expressions. - `tasks/*/task.json`: restore `"Major": 1` in all five tasks. - `CONTRIBUTING.md` and `.github/ARCHITECTURE.md`: keep the Major-pinned wording and spell out why, plus the task-vs-extension version relationship. - `README.md`: new "Versioning" subsection under the task reference, and `overview.md`: one-line note, both explaining that `Version: 1.x.y` on a 2.x extension is expected rather than a mismatch. The docs fixes from 29fae26 stay: the `version` input accepts `prerelease` (not `preview`), and the AL 18+ (BC 29) flat `extension/bin/` VSIX layout / .NET 10 runtime notes. Refs: #47 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@alcops/core 0.2.0 probes extension/bin/ before extension/bin/Analyzers/ when reading the CodeAnalysis DLL from the AL Language VSIX, which fixes `detectFrom: marketplace` on AL 18+. Docs updated to reference 0.2.0. Refs: #47 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Arthurvdv
marked this pull request as ready for review
September 9, 2026 10:24
Resolves package.json / package-lock.json conflicts with the dependabot bumps on main; keeps @alcops/core at ^0.2.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Picks up the AL 18 flat VSIX layout fix from
@alcops/core0.2.0 and fixes three documentation issues surfaced while diagnosing #47. Diff againstmain:package.json,package-lock.json,README.md,overview.md,CONTRIBUTING.md,.github/ARCHITECTURE.md. No workflow ortask.jsonchanges.Problem
detectFrom: marketplacefails on AL Language 18.0.2668733 because the VSIX movedMicrosoft.Dynamics.Nav.CodeAnalysis.dllfromextension/bin/Analyzers/to a flatextension/bin/([Bug]: Entry not found in ZIP: extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.dll #47). The task bundles@alcops/core0.1.2, which only knows the legacy path.Version: 1.0.5while the extension on the Marketplace is2.0.5, which looks like a version mismatch. It is not a bug: the taskMajoris deliberately pinned, and nothing documented that for users.README.mddocumented theversioninput aslatest/preview, but the task actually acceptslatest/prerelease(seetasks/download/task.jsonhelpMarkDown).What was considered and rejected
The first commit on this branch (29fae26) stamped
.version.Majorfrom GitVersion and set"Major": 2in all fivetask.jsonfiles, so the header would read2.0.6. That is a breaking change: in Azure Pipelines the taskMajoris the@Nin- task: ALCopsDownloadAnalyzers@1, so the next release would publish@2and every pipeline pinned to@1would fail to resolve the task unless a major-1 copy kept shipping alongside.9d4fced reverts it. The task version stays independent of the extension version, matching what
.github/ARCHITECTURE.mdalready described, and the behaviour is now explained in the user-facing docs instead.Changes
package.json/package-lock.json:@alcops/core^0.1.2→^0.2.0(fix: support AL 18 flat VSIX bin layout for marketplace/bc-artifact TFM detection npm-package#7). The lockfile change is limited to the@alcops/coreentry.README.md:versioninput row now readslatest,prerelease.README.md+overview.md: note that both VSIX layouts of the AL Language extension are supported from@alcops/core0.2.0 (the flatextension/bin/used by AL 18+ / BC 29 and the legacyextension/bin/Analyzers/), plus a heads-up that compiling with AL 18 needs a .NET 10 runtime on the agent (out of scope here).README.md: new Versioning subsection under the task reference explaining that@1is the task major version, thatVersion: 1.x.yin the log is the task's own version, and that it is intentionally independent of the 2.x extension version.overview.md: one-line version of the same note under Quick Start, where the Marketplace shows the 2.x extension version next to YAML that says@1..github/ARCHITECTURE.md+CONTRIBUTING.md: spell out why taskMajoris pinned and what that means for the log header.Verification
Run locally on Windows against the final branch state (after the bump):
npx eslint shared/ tasks/*/src/(expanded paths) — clean.npm run lintitself fails on Windows because npm shells out throughcmd.exe, which does not expand thetasks/*/src/glob; unaffected on the Linux CI runners.npx vitest run— 45/46 pass. The one failure,tests/download/task-runner.test.ts > calls executeDownload with detectUsing input, is pre-existing onmainand Windows-only: the test assertsoutputDir: '/build/src/.alcops'whilepath.joinyields\build\src\.alcops. Not touched here.npm run build— clean.npm run bundle— 5 task bundles produced;tasks/download/dist/index.jscontains the new multi-candidate VSIX probing from core 0.2.0.npm ls @alcops/core→@alcops/core@0.2.0.npx tfx extension create --manifest-globs vss-extension.json --output-path ./out— VSIX created successfully (run before the bump; CI repeats it).Release
Merging and running "Release: Azure DevOps Extension" publishes 2.0.6 with the fix. The task header stays
Version: 1.x.yby design.Fixes #47
🤖 Generated with Claude Code