Skip to content

Commit 6911660

Browse files
[Automation] Generate SDK based on TypeSpec 0.41.0 (#48314)
* [Automation] Generate SDK based on TypeSpec 0.41.0 * update autorest.java * update tsp generate * update swagger generate --------- Co-authored-by: xiaofeicao <xiaofeicao@microsoft.com> Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com>
1 parent b215f08 commit 6911660

114 files changed

Lines changed: 3239 additions & 979 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.

eng/automation/generate.py

Lines changed: 0 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import glob
77
import logging
88
import argparse
9-
import shutil
109
from typing import List
1110

1211
pwd = os.getcwd()
@@ -33,7 +32,6 @@
3332
update_spec,
3433
generate_typespec_project,
3534
is_mgmt_premium,
36-
copy_folder_recursive_sync,
3735
)
3836

3937
os.chdir(pwd)
@@ -337,9 +335,6 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict:
337335
# compile
338336
succeeded = compile_arm_package(sdk_root, module)
339337
if succeeded:
340-
if is_mgmt_premium(module):
341-
move_premium_samples(sdk_root, service, module)
342-
update_azure_resourcemanager_pom(sdk_root, module, current_version)
343338
# For output breaking changes, useful in sdk validation pipeline
344339
logging.info("[Changelog] Start breaking change detection for SDK automation.")
345340
breaking, changelog, breaking_change_items = compare_with_maven_package(
@@ -427,122 +422,6 @@ def update_changelog_version(sdk_root: str, output_folder: str, current_version:
427422
os.chdir(pwd)
428423

429424

430-
def move_premium_samples(sdk_root: str, service: str, module: str):
431-
package_path = "com/" + module.replace("-", "/")
432-
source_sample_dir = os.path.join(
433-
sdk_root, "sdk", service, module, "src", "samples", "java", package_path, "generated"
434-
)
435-
target_sample_dir = os.path.join(
436-
sdk_root, "sdk", "resourcemanager", "azure-resourcemanager", "src", "samples", "java", package_path
437-
)
438-
logging.info(f"Moving samples from {source_sample_dir} to {target_sample_dir}.")
439-
copy_folder_recursive_sync(source_sample_dir, target_sample_dir)
440-
shutil.rmtree(source_sample_dir, ignore_errors=True)
441-
442-
443-
def update_azure_resourcemanager_pom(sdk_root: str, module: str, current_version: str):
444-
"""
445-
Updates azure-resourcemanager pom for premium package split:
446-
1. Add unreleased entry in eng/versioning/version_client.txt
447-
2. Update dependency in azure-resourcemanager/pom.xml to use unreleased dependency
448-
"""
449-
# 1. Add unreleased entry to version_client.txt
450-
version_file = os.path.join(sdk_root, "eng/versioning/version_client.txt")
451-
group_id = "com.azure.resourcemanager"
452-
project = "{0}:{1}".format(group_id, module)
453-
454-
# Check if unreleased entry already exists
455-
unreleased_project = "unreleased_{0}".format(project)
456-
unreleased_exists = False
457-
with open(version_file, "r", encoding="utf-8") as fin:
458-
content = fin.read()
459-
if unreleased_project in content:
460-
unreleased_exists = True
461-
logging.info("[UNRELEASED][Skip] Unreleased entry already exists for %s", module)
462-
463-
if not unreleased_exists:
464-
# Find the unreleased section and add the entry
465-
with open(version_file, "r", encoding="utf-8") as fin:
466-
lines = fin.read().splitlines()
467-
468-
# Find the unreleased section start
469-
unreleased_section_start = -1
470-
for i, line in enumerate(lines):
471-
if "# Unreleased dependencies:" in line:
472-
unreleased_section_start = i
473-
break
474-
475-
if unreleased_section_start == -1:
476-
logging.error("[UNRELEASED][Skip] Cannot find unreleased section in version_client.txt")
477-
return
478-
479-
# Determine insertion point: append to the end of the unreleased section
480-
# by locating the first blank line after the last 'unreleased_' entry.
481-
last_unreleased_idx = -1
482-
end_of_section_idx = -1
483-
seen_unreleased = False
484-
for i in range(unreleased_section_start + 1, len(lines)):
485-
line = lines[i]
486-
if line.startswith("unreleased_"):
487-
seen_unreleased = True
488-
last_unreleased_idx = i
489-
continue
490-
if seen_unreleased:
491-
# First blank line after we started seeing unreleased entries marks end of section
492-
if line.strip() == "":
493-
end_of_section_idx = i # insert before this blank line
494-
break
495-
# Or a new header line also marks the end
496-
if line.startswith("# "):
497-
end_of_section_idx = i
498-
break
499-
500-
if last_unreleased_idx != -1:
501-
insert_index = end_of_section_idx if end_of_section_idx != -1 else last_unreleased_idx + 1
502-
else:
503-
# No existing unreleased entries, insert after header comments and optional blank line
504-
insert_index = unreleased_section_start + 1
505-
while insert_index < len(lines) and lines[insert_index].startswith("#"):
506-
insert_index += 1
507-
if insert_index < len(lines) and lines[insert_index].strip() == "":
508-
insert_index += 1
509-
510-
# Insert the unreleased entry
511-
unreleased_entry = "unreleased_{0};{1}".format(project, current_version)
512-
lines.insert(insert_index, unreleased_entry)
513-
514-
with open(version_file, "w", encoding="utf-8") as fout:
515-
fout.write("\n".join(lines))
516-
fout.write("\n")
517-
518-
logging.info("[UNRELEASED][Success] Added unreleased entry: %s", unreleased_entry)
519-
520-
# 2. Update azure-resourcemanager pom.xml
521-
pom_file = os.path.join(sdk_root, "sdk/resourcemanager/azure-resourcemanager/pom.xml")
522-
if not os.path.exists(pom_file):
523-
logging.error("[POM][Skip] Cannot find azure-resourcemanager pom.xml")
524-
return
525-
526-
with open(pom_file, "r", encoding="utf-8") as fin:
527-
pom_content = fin.read()
528-
529-
# Pattern to find the dependency and its version comment
530-
dependency_pattern = r"(<groupId>{0}</groupId>\s*<artifactId>{1}</artifactId>\s*<version>)[^<]+(</version>\s*<!-- {{x-version-update;){2}(;dependency}} -->)".format(
531-
re.escape(group_id), re.escape(module), re.escape(project)
532-
)
533-
534-
# Replace current with unreleased dependency
535-
replacement = r"\g<1>" + current_version + r"\g<2>unreleased_" + project + r"\g<3>"
536-
updated_pom_content = re.sub(dependency_pattern, replacement, pom_content, flags=re.DOTALL)
537-
538-
if updated_pom_content != pom_content:
539-
with open(pom_file, "w", encoding="utf-8") as fout:
540-
fout.write(updated_pom_content)
541-
logging.info("[POM][Success] Updated azure-resourcemanager pom.xml to use unreleased dependency of %s", module)
542-
else:
543-
logging.warning("[POM][Skip] Could not find dependency for %s in azure-resourcemanager pom.xml", module)
544-
545-
546425
def main():
547426
(parser, args) = parse_args()
548427
args = vars(args)
@@ -553,7 +432,6 @@ def main():
553432
base_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
554433
sdk_root = os.path.abspath(os.path.join(base_dir, SDK_ROOT))
555434
api_specs_file = os.path.join(base_dir, API_SPECS_FILE)
556-
premium = False
557435

558436
if args.get("tsp_config"):
559437
tsp_config = args["tsp_config"]
@@ -562,8 +440,6 @@ def main():
562440
tsp_project=tsp_config, sdk_root=sdk_root, remove_before_regen=True, group_id=GROUP_ID, **args
563441
)
564442

565-
premium = is_mgmt_premium(module)
566-
567443
stable_version, current_version = set_or_increase_version(sdk_root, GROUP_ID, module, **args)
568444
args["version"] = current_version
569445

@@ -612,9 +488,6 @@ def main():
612488
if succeeded:
613489
succeeded = compile_arm_package(sdk_root, module)
614490
if succeeded:
615-
if premium:
616-
move_premium_samples(sdk_root, service, module)
617-
update_azure_resourcemanager_pom(sdk_root, module, current_version)
618491
latest_release_version = get_latest_release_version(stable_version, current_version)
619492
compare_with_maven_package(sdk_root, GROUP_ID, service, latest_release_version, current_version, module)
620493

eng/automation/parameters.py

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

1818
SDK_ROOT = "../../" # related to file dir
1919
AUTOREST_CORE_VERSION = "3.9.7"
20-
AUTOREST_JAVA = "@autorest/java@4.1.62"
20+
AUTOREST_JAVA = "@autorest/java@4.1.63"
2121
DEFAULT_VERSION = "1.0.0-beta.1"
2222
GROUP_ID = "com.azure.resourcemanager"
2323
API_SPECS_FILE = "api-specs.yaml"

eng/emitter-package-lock.json

Lines changed: 44 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/emitter-package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
{
22
"main": "dist/src/index.js",
33
"dependencies": {
4-
"@azure-tools/typespec-java": "0.40.0"
4+
"@azure-tools/typespec-java": "0.41.0"
55
},
66
"devDependencies": {
7-
"@azure-tools/openai-typespec": "^1.11.0",
7+
"@azure-tools/openai-typespec": "1.11.0",
88
"@azure-tools/typespec-autorest": "0.65.0",
99
"@azure-tools/typespec-azure-core": "0.65.0",
1010
"@azure-tools/typespec-azure-resource-manager": "0.65.0",
1111
"@azure-tools/typespec-azure-rulesets": "0.65.0",
12-
"@azure-tools/typespec-client-generator-core": "0.65.3",
12+
"@azure-tools/typespec-client-generator-core": "0.65.4",
1313
"@azure-tools/typespec-liftr-base": "0.12.0",
1414
"@typespec/compiler": "1.9.0",
15-
"@typespec/http": "1.9.0",
15+
"@typespec/http": "1.9.1",
1616
"@typespec/openapi": "1.9.0",
1717
"@typespec/rest": "0.79.0",
1818
"@typespec/versioning": "0.79.0",

0 commit comments

Comments
 (0)