Skip to content

Commit 14bdc6c

Browse files
committed
Merge branch 'dev' into jins-vmss-auto-repair
2 parents a40c095 + 8d8ad53 commit 14bdc6c

774 files changed

Lines changed: 816295 additions & 745224 deletions

File tree

Some content is hidden

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

.github/CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
/src/azure-cli/azure/cli/command_modules/cosmosdb/ @evelyn-ys @calvinhzy @dmakwana @kristynhamasaki
3838
/src/azure-cli/azure/cli/command_modules/databoxedge/ @evelyn-ys
3939
/src/azure-cli/azure/cli/command_modules/dls/ @jsntcy @evelyn-ys @akharit @rahuldutta90
40-
/src/azure-cli/azure/cli/command_modules/dms/ @jsntcy @temandr @binuj
40+
/src/azure-cli/azure/cli/command_modules/dms/ @jsntcy @necusjz @temandr @binuj
4141
/src/azure-cli/azure/cli/command_modules/eventgrid/ @evelyn-ys @VidyaKukke
4242
/src/azure-cli/azure/cli/command_modules/eventhubs/ @jsntcy @v-ajnava
4343
/src/azure-cli/azure/cli/command_modules/extension/ @jsntcy @kairu-ms
@@ -56,7 +56,7 @@
5656
/src/azure-cli/azure/cli/command_modules/rdbms/ @evelyn-ys @calvinhzy @arde0708 @alanenriqueo
5757
/src/azure-cli/azure/cli/command_modules/resource/ @zhoxing-ms @jsntcy @yanzhudd
5858
/src/azure-cli/azure/cli/command_modules/role/ @jiasli @evelyn-ys @bebound
59-
/src/azure-cli/azure/cli/command_modules/search/ @kairu-ms @huangbolun
59+
/src/azure-cli/azure/cli/command_modules/search/ @kairu-ms @necusjz @huangbolun
6060
/src/azure-cli/azure/cli/command_modules/servicebus/ @zhoxing-ms @jsntcy @evelyn-ys @v-ajnava
6161
/src/azure-cli/azure/cli/command_modules/serviceconnector/ @kairu-ms @yanzhudd @yungezz @houk-ms @xfz11
6262
/src/azure-cli/azure/cli/command_modules/servicefabric/ @zhoxing-ms @jsntcy @yanzhudd @QingChenmsft

.github/policies/resourceManagement.yml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ configuration:
231231
then:
232232
- mentionUsers:
233233
mentionees:
234-
- dyu1208
234+
- mbifeld
235235
- FumingZhang
236236
- andyliuliming
237237
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
@@ -1484,8 +1484,7 @@ configuration:
14841484
then:
14851485
- mentionUsers:
14861486
mentionees:
1487-
- alec-baird
1488-
- costinhagiu
1487+
- MichaelWu
14891488
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
14901489
assignMentionees: False
14911490
- if:
@@ -1761,6 +1760,7 @@ configuration:
17611760
- schaabs
17621761
- chen-karen
17631762
- chandanrr
1763+
- cheathamb36
17641764
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
17651765
assignMentionees: False
17661766
- if:
@@ -2272,6 +2272,17 @@ configuration:
22722272
- rajsell
22732273
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
22742274
assignMentionees: False
2275+
- if:
2276+
- hasLabel:
2277+
label: Service Attention
2278+
- hasLabel:
2279+
label: Neon Postgre
2280+
then:
2281+
- mentionUsers:
2282+
mentionees:
2283+
- alluri02
2284+
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
2285+
assignMentionees: False
22752286
- if:
22762287
- hasLabel:
22772288
label: Service Attention
@@ -2372,8 +2383,7 @@ configuration:
23722383
- mentionUsers:
23732384
mentionees:
23742385
- gopimsft
2375-
- gimotwanMSFT
2376-
- avripintoms
2386+
- Azure/azure-firewall
23772387
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
23782388
assignMentionees: False
23792389
- if:
@@ -2839,10 +2849,10 @@ configuration:
28392849
then:
28402850
- mentionUsers:
28412851
mentionees:
2842-
- mwesigwaguma
2843-
- a-Santamaria
2852+
- iliu816
2853+
- a-santamaria
28442854
- LukeSlev
2845-
- jkochhar
2855+
- Jkochhar
28462856
replyTemplate: Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc ${mentionees}.
28472857
assignMentionees: False
28482858
- if:

azure-pipelines.yml

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ jobs:
226226
227227
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
228228
displayName: 'SBOM'
229+
continueOnError: true
229230
inputs:
230231
BuildDropPath: 'build_scripts/windows/out/'
231232

@@ -270,6 +271,7 @@ jobs:
270271
271272
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
272273
displayName: 'SBOM'
274+
continueOnError: true
273275
inputs:
274276
BuildDropPath: 'build_scripts/windows/out/'
275277

@@ -370,6 +372,7 @@ jobs:
370372
371373
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
372374
displayName: 'SBOM'
375+
continueOnError: true
373376
inputs:
374377
BuildDropPath: $(Build.ArtifactStagingDirectory)
375378
DockerImagesToScan: 'clibuild$BUILD_BUILDNUMBER:latest'
@@ -451,6 +454,7 @@ jobs:
451454
452455
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
453456
displayName: 'SBOM'
457+
continueOnError: true
454458
inputs:
455459
BuildDropPath: $(Build.ArtifactStagingDirectory)
456460

@@ -621,6 +625,7 @@ jobs:
621625
622626
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
623627
displayName: 'SBOM'
628+
continueOnError: true
624629
inputs:
625630
BuildDropPath: $(Build.ArtifactStagingDirectory)
626631

@@ -732,6 +737,7 @@ jobs:
732737

733738
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
734739
displayName: 'SBOM'
740+
continueOnError: true
735741
inputs:
736742
BuildDropPath: $(Build.ArtifactStagingDirectory)
737743

@@ -822,6 +828,7 @@ jobs:
822828
filePath: scripts/release/rpm/pipeline.sh
823829
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
824830
displayName: 'SBOM'
831+
continueOnError: true
825832
inputs:
826833
BuildDropPath: $(Build.ArtifactStagingDirectory)
827834
- task: PublishPipelineArtifact@0
@@ -941,6 +948,7 @@ jobs:
941948

942949
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
943950
displayName: 'SBOM'
951+
continueOnError: true
944952
inputs:
945953
BuildDropPath: $(Build.ArtifactStagingDirectory)
946954

@@ -1014,7 +1022,7 @@ jobs:
10141022
displayName: "Check CLI Style"
10151023
timeoutInMinutes: 120
10161024
pool:
1017-
name: ${{ variables.ubuntu_pool }}
1025+
name: ${{ variables.ubuntu_multi_core_pool }}
10181026
steps:
10191027
- task: UsePythonVersion@0
10201028
displayName: 'Use Python 3.12'
@@ -1076,7 +1084,7 @@ jobs:
10761084
displayName: "Check CLI Linter"
10771085

10781086
pool:
1079-
name: ${{ variables.ubuntu_pool }}
1087+
name: ${{ variables.ubuntu_multi_core_pool }}
10801088
steps:
10811089
- task: UsePythonVersion@0
10821090
displayName: 'Use Python 3.12'
@@ -1126,8 +1134,9 @@ jobs:
11261134
exit 1
11271135
fi
11281136
1129-
11301137
- job: CodegenCoverage
1138+
condition: in(variables['Build.Reason'], 'BatchedCI', 'IndividualCI')
1139+
timeoutInMinutes: 180
11311140
displayName: "Codegen Coverage"
11321141
continueOnError: true
11331142
pool:
@@ -1147,14 +1156,29 @@ jobs:
11471156
azdev extension repo add ./azure-cli-extensions
11481157
pip install setuptools==70.0.0 wheel==0.30.0
11491158
azdev extension add "*"
1159+
pip install msrestazure markupsafe==2.0.1
11501160
# Some extension will change the dependence, so run `azdev setup` again after all extensions installed.
1151-
azdev setup -c $CLI_REPO_PATH -r ./azure-cli-extensions
1152-
# CLI repo only
1153-
azdev statistics list-command-table CLI --statistics-only
1154-
# CLI + EXT repos
1155-
pip install jinja2 -U
1156-
azdev statistics list-command-table --statistics-only > /tmp/codegen_report.json
1157-
python s/scripts/ci/codegen_report.py
1161+
azdev setup -c ./s -r ./azure-cli-extensions
1162+
1163+
mkdir -p /tmp/module_stats
1164+
1165+
find /mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/ -mindepth 1 -maxdepth 1 -type d -printf "%f\n" | grep -v '^__pycache__$' > /mnt/vss/_work/1/s/scripts/ci/core_modules.txt
1166+
echo "=== Core Modules ==="
1167+
cat /mnt/vss/_work/1/s/scripts/ci/core_modules.txt
1168+
1169+
find /mnt/vss/_work/1/azure-cli-extensions/src/ -mindepth 1 -maxdepth 1 -type d -printf "%f\n" | grep -v '^__pycache__$' > /mnt/vss/_work/1/s/scripts/ci/extension_modules.txt
1170+
echo "=== Extension Modules ==="
1171+
cat /mnt/vss/_work/1/s/scripts/ci/extension_modules.txt
1172+
1173+
for module in $(cat /mnt/vss/_work/1/s/scripts/ci/core_modules.txt); do
1174+
azdev statistics list-command-table $module --statistics-only > /tmp/module_stats/${module}.json || true
1175+
done
1176+
1177+
for module in $(cat /mnt/vss/_work/1/s/scripts/ci/extension_modules.txt); do
1178+
azdev statistics list-command-table $module --statistics-only > /tmp/module_stats/${module}.json || true
1179+
done
1180+
azdev statistics list-command-table --statistics-only > /tmp/codegen_report.json || true
1181+
python /mnt/vss/_work/1/s/scripts/ci/codegen_report.py
11581182
env:
11591183
BUILD_ID: $(Build.BuildId)
11601184
BUILD_BRANCH: $(Build.SourceBranchName)

doc/how_to_introduce_breaking_changes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,13 @@ This way, the pre-announcement wouldn't be displayed unless running into the bra
319319
Before you publish the breaking changes, you need to make sure that the announcement is ready for the Upcoming Breaking Change Documentation. To do that, run this command:
320320

321321
```commandline
322-
azdev genereate-breaking-change-report
322+
azdev generate-breaking-change-report
323323
```
324324

325325
If your breaking change is not for the next breaking change window, you can see all the announcements by using `--target-version None` like this:
326326

327327
```commandline
328-
azdev genereate-breaking-change-report --target-version None
328+
azdev generate-breaking-change-report --target-version None
329329
```
330330

331331
The output should be a JSON object including the pre-announcement you made.
@@ -347,5 +347,5 @@ The Upcoming Breaking Change Documentation includes:
347347
The documentation is generated through `azdev` tool. You can preview the documentation locally through the following command.
348348

349349
```commandline
350-
azdev genereate-breaking-change-report CLI --output-format markdown
350+
azdev generate-breaking-change-report CLI --output-format markdown
351351
```

doc/sphinx/azhelpgen/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,3 @@
22
# Copyright (c) Microsoft Corporation. All rights reserved.
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
5-
import pkg_resources
6-
pkg_resources.declare_namespace(__name__)

doc/sphinx/cligroup/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,3 @@
22
# Copyright (c) Microsoft Corporation. All rights reserved.
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
5-
import pkg_resources
6-
pkg_resources.declare_namespace(__name__)

linter_exclusions.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,9 @@ cloud register:
12481248
endpoint_active_directory_resource_id:
12491249
rule_exclusions:
12501250
- option_length_too_long
1251+
endpoint_microsoft_graph_resource_id:
1252+
rule_exclusions:
1253+
- option_length_too_long
12511254
endpoint_resource_manager:
12521255
rule_exclusions:
12531256
- option_length_too_long
@@ -1257,6 +1260,9 @@ cloud register:
12571260
endpoint_vm_image_alias_doc:
12581261
rule_exclusions:
12591262
- option_length_too_long
1263+
skip_endpoint_discovery:
1264+
rule_exclusions:
1265+
- option_length_too_long
12601266
suffix_acr_login_server_endpoint:
12611267
rule_exclusions:
12621268
- option_length_too_long
@@ -1289,6 +1295,9 @@ cloud update:
12891295
endpoint_active_directory_resource_id:
12901296
rule_exclusions:
12911297
- option_length_too_long
1298+
endpoint_microsoft_graph_resource_id:
1299+
rule_exclusions:
1300+
- option_length_too_long
12921301
endpoint_resource_manager:
12931302
rule_exclusions:
12941303
- option_length_too_long
@@ -1298,6 +1307,9 @@ cloud update:
12981307
endpoint_vm_image_alias_doc:
12991308
rule_exclusions:
13001309
- option_length_too_long
1310+
skip_endpoint_discovery:
1311+
rule_exclusions:
1312+
- option_length_too_long
13011313
suffix_acr_login_server_endpoint:
13021314
rule_exclusions:
13031315
- option_length_too_long

scripts/ci/codegen_report.py

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,88 @@
1919
BUILD_ID = os.environ.get('BUILD_ID', None)
2020
BUILD_BRANCH = os.environ.get('BUILD_BRANCH', None)
2121

22+
def load_module_stats():
23+
stats_dir = "/tmp/module_stats"
24+
all_stats = {}
25+
26+
with open("/mnt/vss/_work/1/s/scripts/ci/core_modules.txt", "r") as f:
27+
core_modules = [line.strip() for line in f.readlines()]
28+
29+
with open("/mnt/vss/_work/1/s/scripts/ci/extension_modules.txt", "r") as f:
30+
extension_modules = [line.strip() for line in f.readlines()]
31+
32+
for module in core_modules + extension_modules:
33+
stats_file = os.path.join(stats_dir, f"{module}.json")
34+
if os.path.exists(stats_file):
35+
with open(stats_file, "r") as f:
36+
try:
37+
stats = json.load(f)
38+
codegenV1 = stats.get("codegenV1", 0)
39+
codegenV2 = stats.get("codegenV2", 0)
40+
total = stats.get("total", 0)
41+
manual = total - codegenV1 - codegenV2
42+
all_stats[module] = {
43+
"codegenV1": codegenV1,
44+
"codegenV2": codegenV2,
45+
"manual": manual,
46+
"total": total,
47+
"type": "core" if module in core_modules else "extension"
48+
}
49+
except json.JSONDecodeError:
50+
logger.info(f"Warning: Could not parse {stats_file}")
51+
return all_stats
52+
53+
def analyze_stats(all_stats):
54+
counters = {
55+
"manual": {"core": 0, "extension": 0},
56+
"mixed": {"core": 0, "extension": 0},
57+
"codegen": {"core": 0, "extension": 0},
58+
"codegenV1": {"core": 0, "extension": 0},
59+
"total": {"core": 0, "extension": 0}
60+
}
61+
for _, stats in all_stats.items():
62+
module_type = stats["type"]
63+
counters["total"][module_type] += 1
64+
if stats["manual"] > 0 and (stats["codegenV1"] > 0 or stats["codegenV2"] > 0):
65+
counters["mixed"][module_type] += 1
66+
if stats["codegenV1"] > 0 or stats["codegenV2"] > 0:
67+
counters["codegen"][module_type] += 1
68+
if stats["codegenV1"] > 0:
69+
counters["codegenV1"][module_type] += 1
70+
counters["manual"]["core"] = counters["total"]["core"] - counters["codegen"]["core"]
71+
counters["manual"]["extension"] = counters["total"]["extension"] - counters["codegen"]["extension"]
72+
return counters
73+
74+
def print_results(counters):
75+
logger.info("\n===== Codegen Coverage Report =====")
76+
logger.info("\n1. Manual Modules:")
77+
logger.info(f" Core: {counters['manual']['core']}")
78+
logger.info(f" Extension: {counters['manual']['extension']}")
79+
logger.info("\n2. Mixed Modules:")
80+
logger.info(f" Core: {counters['mixed']['core']}")
81+
logger.info(f" Extension: {counters['mixed']['extension']}")
82+
logger.info("\n3. Codegen Modules:")
83+
logger.info(f" Core: {counters['codegen']['core']}")
84+
logger.info(f" Extension: {counters['codegen']['extension']}")
85+
logger.info("\n4. CodegenV1 Modules:")
86+
logger.info(f" Core: {counters['codegenV1']['core']}")
87+
logger.info(f" Extension: {counters['codegenV1']['extension']}")
88+
logger.info("\n5. Total Modules:")
89+
logger.info(f" Core: {counters['total']['core']}")
90+
logger.info(f" Extension: {counters['total']['extension']}")
91+
92+
def analyze_and_report():
93+
all_stats = load_module_stats()
94+
counters = analyze_stats(all_stats)
95+
print_results(counters)
96+
output = {
97+
"detailed_stats": all_stats,
98+
"summary": counters
99+
}
100+
logger.info("\n=== Detailed JSON Output ===")
101+
logger.info(json.dumps(output, indent=2))
102+
with open("/tmp/module_stats_summary.json", "w") as f:
103+
json.dump(output, f, indent=2)
22104

23105
def generate_csv():
24106
data = []
@@ -31,9 +113,11 @@ def generate_csv():
31113
is_release = True if BUILD_BRANCH == 'release' else False
32114
date = (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime("%Y-%m-%d")
33115
data.append([BUILD_ID, manual, codegenv1, codegenv2, total, is_release, date])
34-
logger.info(f'Finish generate data for codegen report: {data}')
116+
logger.info('Finish generate data for codegen report:')
117+
logger.info("BUILD_ID, manual, codegenv1, codegenv2, total, is_release, date")
118+
logger.info(f'{data}')
35119
return data
36120

37-
38121
if __name__ == '__main__':
122+
analyze_and_report()
39123
generate_csv()

0 commit comments

Comments
 (0)