Skip to content

Commit 3d4f2cc

Browse files
author
Salma Elshafey
committed
Merge branch 'main' into selshafey/improve_tool_call_accuracy
2 parents e72b084 + ff8ab23 commit 3d4f2cc

File tree

4,461 files changed

+331755
-1126501
lines changed

Some content is hidden

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

4,461 files changed

+331755
-1126501
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: 4 additions & 4 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
@@ -236,10 +236,10 @@
236236
# ServiceLabel: %Durable Task Scheduler %Service Attention
237237
/sdk/durabletask/ @berndverst @kaibocai @torosent @RyanLettieri @philliphoff @cgillum
238238

239-
# AzureSdkOwners: @kashifkhan
239+
# AzureSdkOwners: @shankarsama @rajeshka
240240
# ServiceLabel: %Event Grid
241241
# PRLabel: %Event Grid
242-
/sdk/eventgrid/ @kashifkhan @l0lawrence
242+
/sdk/eventgrid/ @shankarsama @rajeshka
243243

244244
# PRLabel: %Image Analysis
245245
# ServiceLabel: %Image Analysis %Service Attention
@@ -255,7 +255,7 @@
255255

256256
# PRLabel: %AI Projects
257257
# ServiceLabel: %AI Projects %Service Attention
258-
/sdk/ai/azure-ai-projects/ @dargilco @jhakulin
258+
/sdk/ai/azure-ai-projects/ @dargilco @jhakulin @trangevi @glharper @nick863 @howieleung
259259

260260

261261
# PRLabel: %HDInsight

.github/copilot-instructions.md

Lines changed: 26 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:
@@ -280,3 +276,25 @@ Mypy: FAIL
280276
Tests - CI: FAIL
281277

282278
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

.github/workflows/dependency-checker.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,33 @@ on:
55
- cron: "0 0,12 * * *" # Runs at 00:00 and 12:00 UTC
66
workflow_dispatch: # Optional manual trigger
77

8+
permissions:
9+
issues: write # to create the Issues using API
10+
811
jobs:
9-
build-and-test:
12+
check-dependencies:
1013
runs-on: ubuntu-latest
1114
steps:
12-
- uses: actions/checkout@v2
15+
- name: Checkout repository
16+
uses: actions/checkout@v3
1317

14-
- name: Set up Python 3.11
18+
- name: Set up Python
1519
uses: actions/setup-python@v4
1620
with:
1721
python-version: 3.11
1822

1923
- name: Install Dependencies
2024
run: pip install packaging==25.0 requests==2.32.4
2125

22-
- name: Run Script
26+
- name: Install dependencies
27+
run: |
28+
python -m pip install --upgrade pip
29+
pip install packaging==25.0 requests==2.32.4
30+
31+
- name: Run major dependency update check
2332
run: python sdk/ml/azure-ai-ml/scripts/major_updates.py
33+
34+
- name: Create GitHub issues for major updates
35+
env:
36+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37+
run: python sdk/ml/azure-ai-ml/scripts/create_issue.py

.vscode/cspell.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"en-gb"
1212
],
1313
"ignorePaths": [
14+
".devcontainer/**",
1415
"eng/**",
1516
".github/CODEOWNERS",
1617
"scripts/**",

.vscode/mcp.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
"azure-sdk-python-mcp",
1111
"azure-sdk-python-mcp"
1212
],
13+
},
14+
"azure-sdk-mcp": {
15+
"type": "stdio",
16+
"command": "pwsh",
17+
"args": ["${workspaceFolder}/eng/common/mcp/azure-sdk-mcp.ps1", "-Run", "-Version","1.0.0-dev.20250630.3"]
1318
}
1419
}
1520
}

doc/dev/ai/typespec_generation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Copilot will automatically:
2424

2525
1. **Verify environment** - Check dependencies and virtual environment
2626
2. **Generate SDK** - Run TypeSpec generation (~5-6 minutes)
27-
3. **Validate code** - Run Pylint, MyPy, Pyright, Verifytypes (~3-5 minutes each)
27+
3. **Validate code** - Run Pylint, MyPy, Pyright, Verifytypes, Sphinx, Mindependency, Bandit, Black, Samples, Breaking changes (~3-5 minutes each)
2828
4. **Update docs** - Create/update CHANGELOG.md and version files
2929
5. **Commit changes** - Add, commit, and push to your branch
3030
6. **Create PR** - Generate pull request in draft mode

doc/dev/mgmt/cheatsheet.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,6 @@ python ./scripts/dev_setup.py -p $PACKAGE
3636
python -m packaging_tools.generate_sdk -v -m restapi_path/readme.md
3737
```
3838

39-
Regenerate multi-api client:<br/>
40-
`python ./scripts/multiapi_init_gen.py azure-mgmt-myservice`
41-
42-
Regenerate multi-api of multi-client package:<br/>
43-
`python ./scripts/multiapi_init_gen.py azure-mgmt-myservice#subclientname`
44-
4539
## Update packaging setup.py / MANIFEST / etc.
4640

4741
Locally:<br/>
@@ -50,7 +44,7 @@ Locally:<br/>
5044
Update a given PR (needs GH_TOKEN env variable set):<br/>
5145
`python -m packaging_tools.update_pr -v -p 3979`
5246

53-
Edit `sdk_packaging.toml` if necesseray and restart the tool.
47+
Edit `sdk_packaging.toml` if necessary and restart the tool.
5448

5549
Available options:
5650

@@ -61,7 +55,7 @@ Available options:
6155
| package_nspkg | str | namespace package name | azure-mgmt-nspkg |
6256
| package_pprint_name | str | The nice name to show on PyPI | MyService Management |
6357
| package_doc_id | str | the moniker on docs.microsoft.com (could be empty) | my-service |
64-
| is_stable | bool | Should have discriminer as stable | false |
58+
| is_stable | bool | Should have discriminator as stable | false |
6559
| is_arm | bool | needs a dependency on msrestazure | true |
6660

6761
## ChangeLog

0 commit comments

Comments
 (0)