Skip to content

[AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier. - #33864

Draft
aamos-company wants to merge 3 commits into
Azure:devfrom
aamos-company:developer/amberamos/standardizenode
Draft

[AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier.#33864
aamos-company wants to merge 3 commits into
Azure:devfrom
aamos-company:developer/amberamos/standardizenode

Conversation

@aamos-company

@aamos-company aamos-company commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

az webapp create,  az webapp list-runtimes

Description

Use  NODE|26 as the standard Node.js 26 runtime identifier for both Windows and Linux App Service plans by dropping LTS / -lts from the identifier. LTS is lifecycle metadata, not part of the Node version itself. Existing identifiers for Node.js 24 and earlier remain unchanged and supported.

Previously:
image

Testing Guide

azdev test TestStackRuntimeNodeStandardization
azdev style appservice

The added tests verify:

• Node 26 displays as  NODE|26  on both platforms.
• Linux configuration is exactly  NODE|26 .
• Windows configuration remains  ~26 .
•  NODE|26-lts  and  NODE|26LTS  resolve successfully.
• Node 24 identifiers remain unchanged.
• Current and LTS API entries are deduplicated.
• GitHub Actions returns  NODE|26  and version  26.x .


This checklist is used to make sure that common guidelines for a pull request are followed.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service microsoft-github-policy-service Bot added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Aug 7, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

Thank you for your contribution aamos-company! We will review the pull request and get back to you soon.

@aamos-company
aamos-company force-pushed the developer/amberamos/standardizenode branch from 514c768 to eb2b19b Compare August 7, 2026 15:35
@aamos-company
aamos-company force-pushed the developer/amberamos/standardizenode branch from eb2b19b to 216e574 Compare August 7, 2026 15:59
@aamos-company aamos-company changed the title Standardize Node Runtime for Windows and Linux [AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier . Aug 7, 2026
@aamos-company aamos-company changed the title [AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier . [AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier. Aug 7, 2026
@yonzhan

Copy link
Copy Markdown
Collaborator

AppService

Comment thread src/azure-cli/azure/cli/command_modules/appservice/custom.py
Comment thread src/azure-cli/azure/cli/command_modules/appservice/custom.py Outdated
Comment thread src/azure-cli/azure/cli/command_modules/appservice/custom.py Outdated
@@ -7990,6 +7716,13 @@ def _format_windows_display_text(cls, display_text):
t = re.sub(r"\(.*\)", "", t) # remove "(LTS)"
return t.replace(" ", "|", 1).replace(" ", "")

@staticmethod
def _standardize_node_runtime_name(runtime_name):

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

recognizes these case-insensitive forms:
NODE|26
NODE|26-lts
NODE|26LTS

All become:
NODE|26'

For all versions >=26

@@ -8302,7 +8036,7 @@ def _parse_major_version_linux(self, major_version, parsed_results, seen_runtime
major_version, linux=True, java=False, include_eol=self._include_eol)
for minor_version in minor_versions:
settings = minor_version.stack_settings.linux_runtime_settings
runtime_name = settings.runtime_version
runtime_name = self._standardize_node_runtime_name(settings.runtime_version)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the stacks API returns:

NODE|26-lts

the resulting runtime object is:

display_name: NODE|26
configs:
linux_fx_version: NODE|26
github_actions_version: 26.x

@aamos-company
aamos-company force-pushed the developer/amberamos/standardizenode branch from 8cbfc20 to c15b129 Compare August 13, 2026 23:27
@aamos-company

Copy link
Copy Markdown
Contributor Author

Note:
az webapp config set --linux-fx-version NODE|26-lts
 --linux-fx-version NODE|26-lts bypasses runtime resolution and sends that value directly as  linuxFxVersion in the ARM update request

It's made clear in the help output that --runtime canonicalizes the input. This is not the same case for the --linux-fx-version which is taken as a raw string. I am hesitant to change that, but open to feedback. From my understanding of the email thread, ARM will continue to accept lts so this should not be an issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

customer-reported Issues that are reported by GitHub users external to the Azure organization.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants