Skip to content

Commit 04b37e1

Browse files
authored
Merge branch 'Azure:main' into main
2 parents 77a576c + 248ec43 commit 04b37e1

File tree

13,176 files changed

+913940
-1745914
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

13,176 files changed

+913940
-1745914
lines changed

.devcontainer/devcontainer.json

Lines changed: 61 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,62 @@
11
{
2-
"name": "GitHub Codespaces (Default)",
3-
"settings": {
4-
"terminal.integrated.profiles.linux": {
5-
"bash": {
6-
"path": "/bin/bash",
7-
"args": []
8-
}
9-
},
10-
"terminal.integrated.defaultProfile.linux": "bash",
11-
"go.useGoProxyToCheckForToolUpdates": false,
12-
"go.useLanguageServer": true,
13-
"go.gopath": "/go",
14-
"go.goroot": "/usr/local/go",
15-
"go.toolsGopath": "/go/bin",
16-
"python.defaultInterpreterPath": "/opt/python/latest/bin/python",
17-
"lldb.executable": "/usr/bin/lldb",
18-
"files.watcherExclude": {
19-
"**/target/**": true
20-
}
21-
},
22-
"remoteUser": "codespace",
23-
"overrideCommand": false,
24-
"workspaceMount": "source=${localWorkspaceFolder},target=/home/codespace/workspace,type=bind,consistency=cached",
25-
"workspaceFolder": "/home/codespace/workspace",
26-
"mounts": [ "source=/var/run/docker.sock,target=/var/run/docker-host.sock,type=bind" ],
27-
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", "--privileged" ],
28-
29-
// Add the IDs of extensions you want installed when the container is created.
30-
"extensions": [
31-
"GitHub.vscode-pull-request-github",
32-
"MS-vsliveshare.vsliveshare",
33-
"VisualStudioExptTeam.vscodeintellicode"
34-
]
35-
36-
// Use 'forwardPorts' to make a list of ports inside the container available locally.
37-
// "forwardPorts": [],
38-
39-
// Use 'postCreateCommand' to run commands after the container is created.
40-
// "postCreateCommand": "uname -a"
41-
}
2+
"name": "GitHub Codespaces (Default)",
3+
"remoteUser": "codespace",
4+
"overrideCommand": false,
5+
"workspaceMount": "source=${localWorkspaceFolder},target=/home/codespace/workspace,type=bind,consistency=cached",
6+
"workspaceFolder": "/home/codespace/workspace",
7+
"mounts": [
8+
"source=/var/run/docker.sock,target=/var/run/docker-host.sock,type=bind"
9+
],
10+
"runArgs": [
11+
"--cap-add=SYS_PTRACE",
12+
"--security-opt",
13+
"seccomp=unconfined",
14+
"--privileged"
15+
],
16+
"postCreateCommand": "bash .devcontainer/init.sh",
17+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
18+
// "forwardPorts": [],
19+
"customizations": {
20+
"codespaces": {
21+
"repositories": {
22+
"Azure/azure-sdk-assets": {
23+
"permissions": {
24+
"contents": "write"
25+
}
26+
}
27+
}
28+
},
29+
"vscode": {
30+
"settings": {
31+
"terminal.integrated.shell.linux": "/bin/bash",
32+
"go.useGoProxyToCheckForToolUpdates": false,
33+
"go.useLanguageServer": true,
34+
"go.gopath": "/go",
35+
"go.goroot": "/usr/local/go",
36+
"go.toolsGopath": "/go/bin",
37+
"python.pythonPath": "/opt/python/latest/bin/python",
38+
"python.linting.enabled": true,
39+
"python.linting.pylintEnabled": true,
40+
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
41+
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
42+
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
43+
"python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
44+
"python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
45+
"python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
46+
"python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
47+
"python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
48+
"python.linting.pylintPath": "/usr/local/py-utils/bin/pylint",
49+
"lldb.executable": "/usr/bin/lldb",
50+
"files.watcherExclude": {
51+
"**/target/**": true
52+
}
53+
},
54+
// Add the IDs of extensions you want installed when the container is created.
55+
"extensions": [
56+
"GitHub.vscode-pull-request-github",
57+
"MS-vsliveshare.vsliveshare",
58+
"VisualStudioExptTeam.vscodeintellicode"
59+
]
60+
}
61+
}
62+
}

.devcontainer/init.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
3+
# Install and use nvm version from .nvmrc
4+
source $NVM_DIR/nvm.sh
5+
nvm install
6+
nvm use
7+
# Set default node to version we just installed so that new shells start with it
8+
nvm alias default $(node --version)
9+
10+
# Install utilities
11+
npm install -g autorest @typespec/compiler @azure-tools/typespec-client-generator-cli
12+
13+
# Install PowerShell. PowerShell is needed for the test proxy asset sync migration scripts,
14+
# and is also useful for running scripts in eng/common/scripts and eng/common/TestResources.
15+
# Update the list of packages
16+
sudo apt-get update
17+
# Install pre-requisite packages.
18+
sudo apt-get install -y wget apt-transport-https software-properties-common
19+
# Download the Microsoft repository GPG keys
20+
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
21+
# Register the Microsoft repository GPG keys
22+
sudo dpkg -i packages-microsoft-prod.deb
23+
# Delete the the Microsoft repository GPG keys file
24+
rm packages-microsoft-prod.deb
25+
# Update the list of packages after we added packages.microsoft.com
26+
sudo apt-get update
27+
# Install PowerShell
28+
sudo apt-get install -y powershell
29+
30+
# Install Python tooling
31+
# init env
32+
python -m pip install -U pip > /dev/null
33+
python scripts/dev_setup.py -p azure-core > /dev/null
34+
pip install tox==4.15.0 > /dev/null
35+
pip install wheel==0.43.0 > /dev/null
36+
pip install setuptools==78.1.0 > /dev/null
37+
pip install setuptools-scm==8.3.0 > /dev/null

.github/CODEOWNERS

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393

9494
# ServiceLabel: %Communication - Call Automation
9595
# PRLabel: %Communication - Call Automation
96-
/sdk/communication/azure-communication-callautomation/ @minwoolee-msft
96+
/sdk/communication/azure-communication-callautomation/ @minwoolee-msft @fhaghbin-msft @juntuchen-msft @v-dharmarajv
9797

9898
# ServiceLabel: %Communication - Chat
9999
# PRLabel: %Communication - Chat
@@ -157,12 +157,12 @@
157157
# PRLabel: %Cognitive - Health Insights
158158
/sdk/healthinsights/ @tomsft @koen-mertens
159159

160-
# AzureSdkOwners: @mccoyp
160+
# AzureSdkOwners: @mccoyp @Azure/azure-sdk-write-keyvault
161161
# ServiceLabel: %KeyVault
162-
# ServiceOwners: @cheathamb36 @chen-karen @lgonsoulin
162+
# ServiceOwners: @cheathamb36 @chen-karen @Azure/azure-sdk-write-keyvault
163163

164164
# PRLabel: %KeyVault
165-
/sdk/keyvault/ @mccoyp
165+
/sdk/keyvault/ @mccoyp @Azure/azure-sdk-write-keyvault
166166

167167
# PRLabel: %Load Test Service
168168
/sdk/loadtesting/azure-developer-loadtesting/ @prativen @mitsha-microsoft @ninallam
@@ -181,6 +181,9 @@
181181
# PRLabel: %Monitor
182182
/sdk/monitor/azure-monitor-query/ @pvaneck @Azure/azure-sdk-write-monitor-data-plane
183183

184+
# PRLabel: %Monitor
185+
/sdk/monitor/azure-monitor-querymetrics/ @Azure/azure-sdk-write-monitor-query-metrics
186+
184187
# PRLabel: %Monitor
185188
/sdk/monitor/* @pvaneck
186189

@@ -236,10 +239,10 @@
236239
# ServiceLabel: %Durable Task Scheduler %Service Attention
237240
/sdk/durabletask/ @berndverst @kaibocai @torosent @RyanLettieri @philliphoff @cgillum
238241

239-
# AzureSdkOwners: @kashifkhan
242+
# AzureSdkOwners: @shankarsama @rajeshka
240243
# ServiceLabel: %Event Grid
241244
# PRLabel: %Event Grid
242-
/sdk/eventgrid/ @kashifkhan @l0lawrence
245+
/sdk/eventgrid/ @shankarsama @rajeshka
243246

244247
# PRLabel: %Image Analysis
245248
# ServiceLabel: %Image Analysis %Service Attention
@@ -255,7 +258,7 @@
255258

256259
# PRLabel: %AI Projects
257260
# ServiceLabel: %AI Projects %Service Attention
258-
/sdk/ai/azure-ai-projects/ @dargilco @jhakulin
261+
/sdk/ai/azure-ai-projects/ @dargilco @jhakulin @trangevi @glharper @nick863 @howieleung
259262

260263

261264
# PRLabel: %HDInsight
@@ -349,7 +352,7 @@
349352
# ServiceOwners: @mattgotteiner
350353

351354
# PRLabel: %Search
352-
/sdk/search/ @xiangyan99
355+
/sdk/search/ @xiangyan99 @Azure/azsdk-search
353356

354357
# PRLabel: %Service Fabric
355358
/sdk/servicefabric/ @QingChenmsft @samedder
@@ -381,19 +384,19 @@
381384
# PRLabel: %Health Deidentification
382385
/sdk/healthdataaiservices/ @alexathomases @Azure/healthdatadeidentification
383386

384-
# AzureSdkOwners: @bojunehsu @vkurpad
387+
# AzureSdkOwners: @yungshinlintw @vkurpad
385388
# ServiceLabel: %Cognitive - Form Recognizer
386-
# ServiceOwners: @bojunehsu @vkurpad
389+
# ServiceOwners: @yungshinlintw @vkurpad
387390

388391
# PRLabel: %Cognitive - Form Recognizer
389-
/sdk/formrecognizer/ @bojunehsu @vkurpad
392+
/sdk/formrecognizer/ @yungshinlintw @vkurpad
390393

391-
# AzureSdkOwners: @bojunehsu @vkurpad
394+
# AzureSdkOwners: @yungshinlintw @vkurpad
392395
# ServiceLabel: %Document Intelligence
393-
# ServiceOwners: @bojunehsu @vkurpad
396+
# ServiceOwners: @yungshinlintw @vkurpad
394397

395398
# PRLabel: %Document Intelligence
396-
/sdk/documentintelligence/ @bojunehsu @vkurpad
399+
/sdk/documentintelligence/ @yungshinlintw @vkurpad
397400

398401
# AzureSdkOwners: @xiangyan99
399402
# ServiceLabel: %Cognitive - Metrics Advisor

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
44

5-
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
5+
If an SDK is being regenerated based on a new API spec, a link to the pull request containing these API spec changes should be included above.
66

77
# All SDK Contribution checklist:
88
- [ ] **The pull request does not introduce [breaking changes]**

.github/copilot-instructions.md

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ curl -s "https://api.github.com/repos/Azure/azure-rest-api-specs/commits?path=<p
7373
## EXECUTION SEQUENCE - 7 MANDATORY STEPS
7474

7575
**ESTIMATED TOTAL TIME: 10-15 minutes**
76-
- SDK Generation: 5-6 minutes
77-
- Static Validation: 3-5 minutes
78-
- Documentation & Commit: 2-4 minutes
76+
- SDK Generation: ~2 minutes
77+
- Static Validation: ~3-5 minutes
78+
- Documentation & Commit: ~2-4 minutes
7979

8080
**ALWAYS inform users of time expectations before starting any long-running operations.**
8181

@@ -89,18 +89,14 @@ IF missing dependencies:
8989

9090
### STEP 2: SDK GENERATION
9191
```
92-
ACTION: Use azure-sdk-python-mcp sdk generation server tools (init, init_local)
93-
TIMING: ALWAYS inform user before starting: "This SDK generation step will take approximately 5-6 minutes to complete."
94-
IF local path provided:
95-
USE local mcp tools with tspconfig.yaml path
92+
ACTION: Use azure-sdk-python-mcp sdk generation server tools (init for new packages, update for existing packages)
9693
IF commands fail:
9794
ANALYZE error messages
9895
DIRECT user to fix TypeSpec errors in source repo
9996
```
10097

10198
### STEP 3: STATIC VALIDATION (SEQUENTIAL)
10299
```
103-
TIMING: Inform user: "Static validation will take approximately 3-5 minutes for each step."
104100
FOR EACH validation step:
105101
RUN validation (tox mcp tool)
106102
IF errors/warnings found:
@@ -122,6 +118,24 @@ tox -e pyright -c [path to tox.ini] --root .
122118

123119
# Step 3d: Verifytypes
124120
tox -e verifytypes -c [path to tox.ini] --root .
121+
122+
# Step 3e: Sphinx
123+
tox -e sphinx -c [path to tox.ini] --root .
124+
125+
# Step 3f: Mindependency
126+
tox -e mindependency -c [path to tox.ini] --root .
127+
128+
# Step 3g: Bandit
129+
tox -e bandit -c [path to tox.ini] --root .
130+
131+
# Step 3h: Black
132+
tox -e black -c [path to tox.ini] --root .
133+
134+
# Step 3i: Samples
135+
tox -e samples -c [path to tox.ini] --root .
136+
137+
# Step 3j: Breaking
138+
tox -e breaking -c [path to tox.ini] --root .
125139
```
126140

127141
**REQUIREMENTS:**
@@ -262,3 +276,25 @@ Mypy: FAIL
262276
Tests - CI: FAIL
263277

264278
This library is failing two release blocking checks - Mypy and Tests - CI. The library needs attention primarily due to Pylint warnings, disabled sample tests, and open customer-reported issues.
279+
280+
---
281+
282+
## SDK release
283+
284+
There are two tools to help with SDK releases:
285+
- Check SDK release readiness
286+
- Release SDK
287+
288+
### Check SDK Release Readiness
289+
Run `CheckPackageReleaseReadiness` to verify if the package is ready for release. This tool checks:
290+
- API review status
291+
- Change log status
292+
- Package name approval(If package is new and releasing a preview version)
293+
- Release date is set in release tracker
294+
295+
### Release SDK
296+
Run `ReleasePackage` to release the package. This tool requires package name and language as inputs. It will:
297+
- Check if the package is ready for release
298+
- Identify the release pipeline
299+
- Trigger the release pipeline.
300+
User needs to approve the release stage in the pipeline after it is triggered.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
mode: 'agent'
3+
tools: ['CheckPackageReleaseReadiness']
4+
description: 'This prompt is designed to check the release readiness of a SDK package.'
5+
---
6+
## Goal
7+
Check the release readiness of an SDK package by collecting the required information from the user and executing the readiness check.
8+
9+
## Instructions
10+
1. **Collect Required Information**:
11+
- Prompt the user for the exact package name
12+
- Prompt the user to select the programming language from the following options (case sensitive):
13+
- Python
14+
- Java
15+
- JavaScript
16+
- .NET
17+
- Go
18+
19+
2. **Execute Readiness Check**:
20+
- Use the `CheckPackageReleaseReadiness` tool with the provided package name and selected language
21+
- Do not check for existing pull requests to run this step.
22+
- Do not ask the user to create a release plan to run this step.
23+
24+
3. **Present Results**:
25+
- If the package is ready for release, highlight and provide the link to the release pipeline
26+
- If the package is not ready, display the specific issues that need to be resolved
27+
28+
4. **Follow-up Actions**:
29+
- Provide clear next steps based on the readiness status
30+
- If issues are found, offer guidance on how to resolve them
31+
32+
## Expected User Interaction Flow
33+
1. Ask: "What is the exact name of the package you want to check for release readiness?"
34+
2. Ask: "Please select the programming language for this package: Python, Java, JavaScript, .NET, or Go"
35+
3. Execute the readiness check using the provided information
36+
4. Display results and next steps

0 commit comments

Comments
 (0)