Skip to content

Commit d880fc8

Browse files
Merge branch 'main' into fix/keyvault-certificates-san-ip-uri-validator
2 parents 12fd96d + 957b750 commit d880fc8

19 files changed

Lines changed: 412 additions & 226 deletions

File tree

eng/common/pipelines/templates/steps/run-pester-tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ parameters:
1414
steps:
1515

1616
- pwsh: |
17-
Install-Module -Name Pester -Force
17+
. (Join-Path "$(Build.SourcesDirectory)" eng common scripts Helpers PSModule-Helpers.ps1)
18+
Install-ModuleIfNotInstalled "Pester" "5.7.1" | Import-Module
1819
displayName: Install Pester
1920
2021
# default test steps

eng/common/scripts/Helpers/PSModule-Helpers.ps1

Lines changed: 7 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,6 @@ function Update-PSModulePathForCI() {
4646
}
4747
}
4848

49-
function Get-ModuleRepositories([string]$moduleName) {
50-
$DefaultPSRepositoryUrl = "https://www.powershellgallery.com/api/v2"
51-
# List of modules+versions we want to replace with internal feed sources for reliability, security, etc.
52-
$packageFeedOverrides = @{
53-
'powershell-yaml' = 'https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-tools/nuget/v2'
54-
}
55-
56-
$repoUrls = if ($packageFeedOverrides.Contains("${moduleName}")) {
57-
@($packageFeedOverrides["${moduleName}"], $DefaultPSRepositoryUrl)
58-
}
59-
else {
60-
@($DefaultPSRepositoryUrl)
61-
}
62-
63-
return $repoUrls
64-
}
65-
6649
function moduleIsInstalled([string]$moduleName, [string]$version) {
6750
if (-not (Test-Path variable:script:InstalledModules)) {
6851
$script:InstalledModules = @{}
@@ -100,13 +83,13 @@ function installModule([string]$moduleName, [string]$version, $repoUrl) {
10083
Set-PSRepository -Name $repo.Name -InstallationPolicy "Trusted" | Out-Null
10184
}
10285

103-
Write-Verbose "Installing module $moduleName with min version $version from $repoUrl"
86+
Write-Verbose "Installing module $moduleName with version $version from $repoUrl"
10487
# Install under CurrentUser scope so that the end up under $CurrentUserModulePath for caching
105-
Install-Module $moduleName -MinimumVersion $version -Repository $repo.Name -Scope CurrentUser -Force -WhatIf:$false
88+
Install-Module $moduleName -RequiredVersion $version -Repository $repo.Name -Scope CurrentUser -Force -WhatIf:$false
10689
# Ensure module installed
10790
$modules = (Get-Module -ListAvailable $moduleName)
10891
if ($version -as [Version]) {
109-
$modules = $modules.Where({ [Version]$_.Version -ge [Version]$version })
92+
$modules = $modules.Where({ [Version]$_.Version -eq [Version]$version })
11093
}
11194
if ($modules.Count -eq 0) {
11295
throw "Failed to install module $moduleName with version $version"
@@ -151,26 +134,11 @@ function Install-ModuleIfNotInstalled() {
151134
$module = moduleIsInstalled -moduleName $moduleName -version $version
152135
if ($module) { return $module }
153136

154-
$repoUrls = Get-ModuleRepositories $moduleName
155-
156-
foreach ($url in $repoUrls) {
157-
try {
158-
$module = installModule -moduleName $moduleName -version $version -repoUrl $url
159-
}
160-
catch {
161-
if ($url -ne $repoUrls[-1]) {
162-
Write-Warning "Failed to install powershell module from '$url'. Retrying with fallback repository"
163-
Write-Warning $_
164-
continue
165-
}
166-
else {
167-
Write-Warning "Failed to install powershell module from $url"
168-
throw
169-
}
170-
}
171-
break
172-
}
137+
# Use internal Azure Artifacts feed only.
138+
$repoUrl = "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-tools/nuget/v2"
139+
Write-Host "Module '$moduleName' with version '$version' is not installed. Attempting to install from $repoUrl."
173140

141+
$module = installModule -moduleName $moduleName -version $version -repoUrl $repoUrl
174142
Write-Verbose "Using module '$($module.Name)' with version '$($module.Version)'."
175143
}
176144
finally {

eng/common/scripts/Verify-Resource-Ref.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
. (Join-Path $PSScriptRoot common.ps1)
2-
Install-Module -Name powershell-yaml -RequiredVersion 0.4.7 -Force -Scope CurrentUser
2+
. (Join-Path $PSScriptRoot Helpers PSModule-Helpers.ps1)
3+
Install-ModuleIfNotInstalled "powershell-yaml" "0.4.7" | Import-Module
34
$ymlfiles = Get-ChildItem $RepoRoot -recurse | Where-Object {$_ -like '*.yml'}
45
$affectedRepos = [System.Collections.ArrayList]::new()
56

sdk/agentserver/azure-ai-agentserver-githubcopilot/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release History
22

3-
## 1.0.0b2 (Unreleased)
3+
## 1.0.0b2 (2026-04-24)
44

55
### Breaking Changes
66

sdk/batch/azure-batch/CHANGELOG.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,52 @@
44

55
### Other Changes
66

7-
- This is the GA release of the features introduced in the 15.0.0 and 15.1.0 beta versions, including LRO support, job-level FIFO scheduling, CMK support on pools, IPv6 support, metadata security protocol support, IP tag support, and confidential VM enhancements. No additional changes were made from the last beta release.
7+
- This is the GA release of the features introduced in the 15.0.0 and 15.1.0 beta versions, including LRO support, job-level FIFO scheduling, CMK support on pools, IPv6 support, metadata security protocol support, IP tag support, and confidential VM enhancements.
8+
9+
### Breaking Changes
10+
11+
- Renamed `BatchNodeUserUpdateOptions` to `BatchNodeUserReplaceOptions`.
12+
- Renamed `OutputFileUploadConfig` to `OutputFileUploadConfiguration`.
13+
14+
- Removed Models:
15+
- Removed `AuthenticationTokenSettings`
16+
17+
- NameSpace changed `azure.batch.models._models`:
18+
- `BatchJobTerminateOptions`
19+
- `BatchNodeDeallocateOptions`
20+
- `BatchNodeRebootOptions`
21+
- `BatchNodeReimageOptions`
22+
23+
- Removed Enums:
24+
- Removed `BatchAccessScope`
25+
26+
- NameSpace changed `azure.batch.models._enums`:
27+
- `BatchNodeDeallocateOption`
28+
- `BatchNodeRebootKind`
29+
- `BatchNodeReimageOption`
30+
31+
- Renamed public methods:
32+
- `list_sub_tasks` -> `list_subtasks`
33+
- `get_task_file` -> `download_task_file`
34+
- `get_node_file` -> `download_node_file`
35+
36+
- Renamed parameters across all operation methods:
37+
- `timeout` -> `service_timeout`
38+
- `ocpdate` -> `ocp_date`
39+
- `starttime` -> `start_time`
40+
- `endtime` -> `end_time`
41+
- `concurrencies` -> `max_concurrency`
42+
43+
- Renamed properties in models:
44+
- `e_tag` -> `etag` in `BatchJob`, `BatchJobSchedule`, `BatchPool`, `BatchTask`, and `BatchTaskCreateResult`
45+
- `values_property` -> `error_values` in `AutoScaleRunError`, `BatchError`, and `ResizeError`
46+
- `values_property` -> `result_values` in `CollectionResult`
47+
- `values_property` -> `task_values` in `BatchTaskGroup`
48+
- `avg_memory_gi_b` -> `avg_memory_gib`, `peak_memory_gi_b` -> `peak_memory_gib`, `avg_disk_gi_b` -> `avg_disk_gib`, `peak_disk_gi_b` -> `peak_disk_gib`, `disk_read_gi_b` -> `disk_read_gib`, `disk_write_gi_b` -> `disk_write_gib`, `network_read_gi_b` -> `network_read_gib`, `network_write_gi_b` -> `network_write_gib` in `BatchPoolResourceStatistics`
49+
50+
- Removed Properties:
51+
- Removed `authentication_token_settings` from `BatchJobManagerTask`, `BatchStartTask`, and `BatchTask`
52+
- Removed `access` from `AuthenticationTokenSettings`
853

954
## 15.1.0b3 (2026-02-05)
1055

sdk/batch/azure-batch/apiview-properties.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
"azure.batch.models.OutputFile": "Azure.Batch.OutputFile",
129129
"azure.batch.models.OutputFileBlobContainerDestination": "Azure.Batch.OutputFileBlobContainerDestination",
130130
"azure.batch.models.OutputFileDestination": "Azure.Batch.OutputFileDestination",
131-
"azure.batch.models.OutputFileUploadConfig": "Azure.Batch.OutputFileUploadConfig",
131+
"azure.batch.models.OutputFileUploadConfiguration": "Azure.Batch.OutputFileUploadConfig",
132132
"azure.batch.models.OutputFileUploadHeader": "Azure.Batch.OutputFileUploadHeader",
133133
"azure.batch.models.ProxyAgentSettings": "Azure.Batch.ProxyAgentSettings",
134134
"azure.batch.models.RecentBatchJob": "Azure.Batch.RecentBatchJob",
@@ -269,16 +269,16 @@
269269
"azure.batch.aio.BatchClient.get_task": "Client.BatchClient.getTask",
270270
"azure.batch.BatchClient.replace_task": "Client.BatchClient.replaceTask",
271271
"azure.batch.aio.BatchClient.replace_task": "Client.BatchClient.replaceTask",
272-
"azure.batch.BatchClient.list_sub_tasks": "Client.BatchClient.listSubTasks",
273-
"azure.batch.aio.BatchClient.list_sub_tasks": "Client.BatchClient.listSubTasks",
272+
"azure.batch.BatchClient.list_subtasks": "Client.BatchClient.listSubTasks",
273+
"azure.batch.aio.BatchClient.list_subtasks": "Client.BatchClient.listSubTasks",
274274
"azure.batch.BatchClient.terminate_task": "Client.BatchClient.terminateTask",
275275
"azure.batch.aio.BatchClient.terminate_task": "Client.BatchClient.terminateTask",
276276
"azure.batch.BatchClient.reactivate_task": "Client.BatchClient.reactivateTask",
277277
"azure.batch.aio.BatchClient.reactivate_task": "Client.BatchClient.reactivateTask",
278278
"azure.batch.BatchClient.delete_task_file": "Client.BatchClient.deleteTaskFile",
279279
"azure.batch.aio.BatchClient.delete_task_file": "Client.BatchClient.deleteTaskFile",
280-
"azure.batch.BatchClient.get_task_file": "Client.BatchClient.getTaskFile",
281-
"azure.batch.aio.BatchClient.get_task_file": "Client.BatchClient.getTaskFile",
280+
"azure.batch.BatchClient.download_task_file": "Client.BatchClient.getTaskFile",
281+
"azure.batch.aio.BatchClient.download_task_file": "Client.BatchClient.getTaskFile",
282282
"azure.batch.BatchClient.list_task_files": "Client.BatchClient.listTaskFiles",
283283
"azure.batch.aio.BatchClient.list_task_files": "Client.BatchClient.listTaskFiles",
284284
"azure.batch.BatchClient.create_node_user": "Client.BatchClient.createNodeUser",
@@ -305,8 +305,8 @@
305305
"azure.batch.aio.BatchClient.list_node_extensions": "Client.BatchClient.listNodeExtensions",
306306
"azure.batch.BatchClient.delete_node_file": "Client.BatchClient.deleteNodeFile",
307307
"azure.batch.aio.BatchClient.delete_node_file": "Client.BatchClient.deleteNodeFile",
308-
"azure.batch.BatchClient.get_node_file": "Client.BatchClient.getNodeFile",
309-
"azure.batch.aio.BatchClient.get_node_file": "Client.BatchClient.getNodeFile",
308+
"azure.batch.BatchClient.download_node_file": "Client.BatchClient.getNodeFile",
309+
"azure.batch.aio.BatchClient.download_node_file": "Client.BatchClient.getNodeFile",
310310
"azure.batch.BatchClient.list_node_files": "Client.BatchClient.listNodeFiles",
311311
"azure.batch.aio.BatchClient.list_node_files": "Client.BatchClient.listNodeFiles"
312312
}

sdk/batch/azure-batch/azure/batch/_model_base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -821,16 +821,16 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur
821821

822822
# is it optional?
823823
try:
824-
if any(a for a in annotation.__args__ if a == type(None)): # pyright: ignore
824+
if any(a for a in annotation.__args__ if a == type(None)): # pyright: ignore # pylint: disable=unidiomatic-typecheck
825825
if len(annotation.__args__) <= 2: # pyright: ignore
826826
if_obj_deserializer = _get_deserialize_callable_from_annotation(
827-
next(a for a in annotation.__args__ if a != type(None)), module, rf # pyright: ignore
827+
next(a for a in annotation.__args__ if a != type(None)), module, rf # pyright: ignore # pylint: disable=unidiomatic-typecheck
828828
)
829829

830830
return functools.partial(_deserialize_with_optional, if_obj_deserializer)
831831
# the type is Optional[Union[...]], we need to remove the None type from the Union
832832
annotation_copy = copy.copy(annotation)
833-
annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a != type(None)] # pyright: ignore
833+
annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a != type(None)] # pyright: ignore # pylint: disable=unidiomatic-typecheck
834834
return _get_deserialize_callable_from_annotation(annotation_copy, module, rf)
835835
except AttributeError:
836836
pass

sdk/batch/azure-batch/azure/batch/_operations/_operations.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1968,7 +1968,7 @@ def build_batch_replace_task_request(
19681968
return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
19691969

19701970

1971-
def build_batch_list_sub_tasks_request(
1971+
def build_batch_list_subtasks_request(
19721972
job_id: str,
19731973
task_id: str,
19741974
*,
@@ -2139,7 +2139,7 @@ def build_batch_delete_task_file_request(
21392139
return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs)
21402140

21412141

2142-
def build_batch_get_task_file_request(
2142+
def build_batch_download_task_file_request(
21432143
job_id: str,
21442144
task_id: str,
21452145
file_path: str,
@@ -2862,7 +2862,7 @@ def build_batch_delete_node_file_request(
28622862
return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs)
28632863

28642864

2865-
def build_batch_get_node_file_request(
2865+
def build_batch_download_node_file_request(
28662866
pool_id: str,
28672867
node_id: str,
28682868
file_path: str,
@@ -8245,7 +8245,7 @@ def replace_task( # pylint: disable=inconsistent-return-statements
82458245
return cls(pipeline_response, None, response_headers) # type: ignore
82468246

82478247
@distributed_trace
8248-
def list_sub_tasks(
8248+
def list_subtasks(
82498249
self,
82508250
job_id: str,
82518251
task_id: str,
@@ -8293,7 +8293,7 @@ def list_sub_tasks(
82938293
def prepare_request(next_link=None):
82948294
if not next_link:
82958295

8296-
_request = build_batch_list_sub_tasks_request(
8296+
_request = build_batch_list_subtasks_request(
82978297
job_id=job_id,
82988298
task_id=task_id,
82998299
service_timeout=service_timeout,
@@ -8684,7 +8684,7 @@ def delete_task_file( # pylint: disable=inconsistent-return-statements
86848684
return cls(pipeline_response, None, response_headers) # type: ignore
86858685

86868686
@distributed_trace
8687-
def get_task_file(
8687+
def download_task_file(
86888688
self,
86898689
job_id: str,
86908690
task_id: str,
@@ -8744,7 +8744,7 @@ def get_task_file(
87448744

87458745
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
87468746

8747-
_request = build_batch_get_task_file_request(
8747+
_request = build_batch_download_task_file_request(
87488748
job_id=job_id,
87498749
task_id=task_id,
87508750
file_path=file_path,
@@ -10631,7 +10631,7 @@ def delete_node_file( # pylint: disable=inconsistent-return-statements
1063110631
return cls(pipeline_response, None, response_headers) # type: ignore
1063210632

1063310633
@distributed_trace
10634-
def get_node_file(
10634+
def download_node_file(
1063510635
self,
1063610636
pool_id: str,
1063710637
node_id: str,
@@ -10691,7 +10691,7 @@ def get_node_file(
1069110691

1069210692
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
1069310693

10694-
_request = build_batch_get_node_file_request(
10694+
_request = build_batch_download_node_file_request(
1069510695
pool_id=pool_id,
1069610696
node_id=node_id,
1069710697
file_path=file_path,

0 commit comments

Comments
 (0)