[AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier. - #33864
[AppService] az webapp create/list-runtimes: Change Node.js 26 runtime identifier.#33864aamos-company wants to merge 2 commits into
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution aamos-company! We will review the pull request and get back to you soon. |
514c768 to
eb2b19b
Compare
eb2b19b to
216e574
Compare
7b56e06 to
dca47d4
Compare
|
AppService |
There was a problem hiding this comment.
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() | |||
There was a problem hiding this comment.
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): | |||
There was a problem hiding this comment.
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
az webapp create,az webapp list-runtimesDescription
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:

Testing Guide
azdev test TestStackRuntimeNodeStandardization
azdev style appservic
Verifies
az webapp list-runtimesreturnsNODE|26for both operating systems.This checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.