Skip to content

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

Draft
aamos-company wants to merge 2 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 2 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 appservic

Verifies  az webapp list-runtimes returns NODE|26 for both operating systems.


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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

 copilot-assisted: list-runtimes  "config" column no longer contains a usable config value (Linux). Today that value is copy-pasteable into  az webapp config set --linux-fx-version ; after this change  NODE|26  is displayed but the platform expects  NODE|26-lts . That's a silent breaking change for scripts using  --linux-fx-version  / raw ARM. Consider either keeping  config  as the true fx version, or only aliasing in  resolve()  without altering displayed output.

@@ -7901,7 +7618,7 @@ def remove_delimiters(cls, runtime):
return cls.DEFAULT_DELIMETER.join(filter(None, runtime))

def resolve(self, display_name, linux=False):
display_name = display_name.lower()
display_name = self._standardize_node_runtime_name(display_name).lower()

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

copilot-assisted: az webapp deployment github-actions add  cosmetic mismatch.  _get_app_runtime_info  sets  display_name  from the raw  linux_fx_version  ( NODE|26-lts ), then it's string-compared against the user's  --runtime  ( NODE|26 ) around line 12002 → spurious "app runtime does not match" warning. Run normalization there.

@@ -7990,6 +7707,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

Choose a reason for hiding this comment

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

defensive: Duplicate rows / ambiguous resolution. Node 26 is Current until Oct 2026; the stacks API may expose  NODE|26  now and  NODE|26-lts  later, or both. Both normalize to  NODE|26 , producing two identical  display_name  entries —  resolve()  silently picks the first ( next(...) ), and the table shows a dup. The Linux Java path already has a  seen_runtimes  guard; the non-Java branch has none. Worth deduping after normalization. Only matters during the active -> lts transition

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