Skip to content

Allow older ADO Node20 execution handler/runtime#29

Merged
Arthurvdv merged 1 commit into
ALCops:mainfrom
MODUSCarstenScholling:dev-cs-allownode20ex
Jun 24, 2026
Merged

Allow older ADO Node20 execution handler/runtime#29
Arthurvdv merged 1 commit into
ALCops:mainfrom
MODUSCarstenScholling:dev-cs-allownode20ex

Conversation

@MODUSCarstenScholling

Copy link
Copy Markdown
Contributor

Would you mind adding Node20 execution to allow older ADO/agent to properly fetch the ALCops?
Unfortunately, this bad foreign language and OnPrem decision, has been following us since 2019...

That's the only thing still preventing us from enabling ADO ALCops for everyone. This will help us avoid a “big bang” when we eventually switch to AL-Go.

@Arthurvdv

Copy link
Copy Markdown
Member

Thanks for the PR. I'll merge this and cut a new release shortly.

@Arthurvdv Arthurvdv merged commit 51dcd98 into ALCops:main Jun 24, 2026
3 checks passed
Arthurvdv added a commit that referenced this pull request Jun 24, 2026
fix: correct invalid Node24 execution handler (#31)
 
 The execution blocks used "Node24_1", which is not a valid Azure Pipelines
 handler name and was therefore silently ignored by every agent. The correct
 key is "Node24". This meant tasks never ran on the Node 24 runtime and, on
 agents that recognized none of the listed handlers, failed with the misleading
 "A supported task execution handler was not found ... not compatible with your
 current operating system 'Windows(X64)'" error.
 
 task.json (all 5 tasks):
 - Rename Node24_1 -> Node24.
 - Keep Node20_1 (modern agents) and plain Node20 (on-prem ADO Server
   v3.224-v3.230, added deliberately in #29).
 - Add minimumAgentVersion 3.224.1 (release where the Node 20 handler first
   shipped, the floor of the lowest handler) so older agents get a clear
   minimum-version error instead of the cryptic handler message. This cannot
   block any agent that could otherwise run the task.
 - Normalize execution-block indentation and trailing newline.
 
 esbuild:
 - Lower target node24 -> node20. All handlers point to the same dist/index.js,
   so the single shared bundle must be valid on the lowest runtime it can run on
   (Node 20). target is a compatibility floor, not an optimization, so this has
   no effect on Node 24 execution.
 
 tests:
 - Update scaffold assertions to require Node24/Node20_1/Node20, guard against
   the invalid Node24_1 key reappearing, and assert minimumAgentVersion.
 
 docs:
 - README: add a Troubleshooting section explaining the misleading error, the
   v3.224.1 agent baseline, and the upgrade / NodeTaskRunnerInstaller@0
   workarounds (incl. on-prem).
 - Replace incorrect Node24_1 references with Node24 and note the new
   minimumAgentVersion in ARCHITECTURE.md, copilot-instructions.md, and
   CONTRIBUTING.md.
 
 Closes #31
 Refs #29
 
 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants