diff --git a/eng/mgmt/automation/generate_data.py b/eng/mgmt/automation/generate_data.py index 15ed2fc4e086..0147377ef772 100755 --- a/eng/mgmt/automation/generate_data.py +++ b/eng/mgmt/automation/generate_data.py @@ -17,7 +17,7 @@ from utils import update_root_pom from utils import ListIndentDumper -from generate_utils import generate_typespec_project +from generate_utils import generate_typespec_project, clean_sdk_folder_if_swagger GROUP_ID = "com.azure" DPG_ARGUMENTS = "--sdk-integration --generate-samples --generate-tests" @@ -35,6 +35,15 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: tsp_project, sdk_root, spec_root, head_sha, repo_url ) + if not succeeded: + # check whether this is migration from Swagger + clean_sdk_folder_succeeded = clean_sdk_folder_if_swagger(sdk_root, sdk_folder) + if clean_sdk_folder_succeeded: + # re-generate + succeeded, require_sdk_integration, sdk_folder, service, module = generate_typespec_project( + tsp_project, sdk_root, spec_root, head_sha, repo_url + ) + if succeeded: # TODO (weidxu): move to typespec-java if require_sdk_integration: @@ -45,6 +54,21 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: # compile succeeded = compile_package(sdk_root, GROUP_ID, module) + if not succeeded: + # check whether this is migration from Swagger + clean_sdk_folder_succeeded = clean_sdk_folder_if_swagger(sdk_root, sdk_folder) + if clean_sdk_folder_succeeded: + # re-generate + succeeded, require_sdk_integration, sdk_folder, service, module = generate_typespec_project( + tsp_project, sdk_root, spec_root, head_sha, repo_url + ) + if require_sdk_integration: + set_or_default_version(sdk_root, GROUP_ID, module) + update_service_ci_and_pom(sdk_root, service, GROUP_ID, module) + update_root_pom(sdk_root, service) + # compile + succeeded = compile_package(sdk_root, GROUP_ID, module) + # output if sdk_folder and module and service: artifacts = ["{0}/pom.xml".format(sdk_folder)] @@ -238,7 +262,7 @@ def generate( autorest: str, use: str, autorest_options: str = "", - readme: str = None + readme: str = None, ) -> bool: namespace = "com.{0}".format(module.replace("-", ".")) output_dir = os.path.join(sdk_root, "sdk", service, module) diff --git a/eng/mgmt/automation/generate_utils.py b/eng/mgmt/automation/generate_utils.py index 2de10f4c3800..73efce243c1e 100644 --- a/eng/mgmt/automation/generate_utils.py +++ b/eng/mgmt/automation/generate_utils.py @@ -465,7 +465,28 @@ def find_sdk_folder(sdk_root: str): tsp_location_item: str = git_items[0] sdk_folder = tsp_location_item[1:].strip()[0 : -len("/tsp-location.yaml")] - cmd = ["git", "reset", "."] + cmd = ["git", "reset", ".", "-q"] check_call(cmd, sdk_root) return sdk_folder + + +def clean_sdk_folder_if_swagger(sdk_root: str, sdk_folder: str) -> bool: + succeeded = False + # try to find the sdk_folder + if not sdk_folder: + sdk_folder = find_sdk_folder(sdk_root) + if sdk_folder: + sdk_path = os.path.join(sdk_root, sdk_folder) + # check whether this is migration from Swagger + if os.path.exists(os.path.join(sdk_path, "swagger")): + logging.info(f"[GENERATE] Delete folder: {sdk_folder}") + print( + "Existing package in SDK was from Swagger. It cannot be automatically converted to package from TypeSpec. Generate a fresh package from TypeSpec.", + file=sys.stderr, + ) + # delete the folder + shutil.rmtree(sdk_path, ignore_errors=True) + + succeeded = True + return succeeded diff --git a/sdk/resourcemanager/docs/SINGLE_SERVICE_PACKAGES.md b/sdk/resourcemanager/docs/SINGLE_SERVICE_PACKAGES.md index 21f9285a4213..bae2c90f1ad6 100644 --- a/sdk/resourcemanager/docs/SINGLE_SERVICE_PACKAGES.md +++ b/sdk/resourcemanager/docs/SINGLE_SERVICE_PACKAGES.md @@ -355,6 +355,8 @@ service
confidentialledger +* [package-preview-2023-06](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/confidentialledger/resource-manager#tag-package-preview-2023-06) + * [1.0.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-confidentialledger/1.0.0-beta.4) * [package-preview-2023-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/confidentialledger/resource-manager#tag-package-preview-2023-01) * [1.0.0-beta.3](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-confidentialledger/1.0.0-beta.3) * [1.0.0-beta.2](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-confidentialledger/1.0.0-beta.2) @@ -403,6 +405,8 @@ service
containerservicefleet +* [package-2024-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet#tag-package-2024-04) + * [1.1.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-containerservicefleet/1.1.0) * [package-2024-02-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet#tag-package-2024-02-preview) * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-containerservicefleet/1.1.0-beta.1) * [package-2023-10](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet#tag-package-2023-10) @@ -514,6 +518,7 @@ service datafactory * [package-2018-06](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/datafactory/resource-manager#tag-package-2018-06) + * [1.0.0-beta.28](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-datafactory/1.0.0-beta.28) * [1.0.0-beta.27](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-datafactory/1.0.0-beta.27) * [1.0.0-beta.26](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-datafactory/1.0.0-beta.26) * [1.0.0-beta.25](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-datafactory/1.0.0-beta.25) @@ -632,6 +637,8 @@ service
devcenter +* [package-2024-02](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/devcenter/resource-manager#tag-package-2024-02) + * [1.0.0-beta.7](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-devcenter/1.0.0-beta.7) * [package-preview-2023-10](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/devcenter/resource-manager#tag-package-preview-2023-10) * [1.0.0-beta.6](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-devcenter/1.0.0-beta.6) * [package-2023-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/devcenter/resource-manager#tag-package-2023-04) @@ -668,6 +675,14 @@ service * [1.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-deviceprovisioningservices/1.0.0)
+
+
+ deviceregistry + +* [package-preview-2023-11](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/deviceregistry/resource-manager#tag-package-preview-2023-11) + * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-deviceregistry/1.0.0-beta.1) +
+
deviceupdate @@ -748,6 +763,14 @@ service * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-edgeorder/1.0.0-beta.1)
+
+
+ edgezones + +* [package-2024-04-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/edgezones/resource-manager#tag-package-2024-04-01-preview) + * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-edgezones/1.0.0-beta.1) +
+
education @@ -788,6 +811,8 @@ service
eventgrid +* [package-2024-06-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/eventgrid/resource-manager#tag-package-2024-06-preview) + * [1.2.0-beta.6](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-eventgrid/1.2.0-beta.6) * [package-2023-12-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/eventgrid/resource-manager#tag-package-2023-12-preview) * [1.2.0-beta.5](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-eventgrid/1.2.0-beta.5) * [package-2023-06-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/eventgrid/resource-manager#tag-package-2023-06-preview) @@ -926,6 +951,10 @@ service
hybridcompute +* [package-preview-2024-03](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/hybridcompute/resource-manager#tag-package-preview-2024-03) + * [1.0.0-beta.5](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-hybridcompute/1.0.0-beta.5) +* [package-preview-2023-10](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/hybridcompute/resource-manager#tag-package-preview-2023-10) + * [1.0.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-hybridcompute/1.0.0-beta.4) * [package-preview-2023-06](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/hybridcompute/resource-manager#tag-package-preview-2023-06) * [1.0.0-beta.3](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-hybridcompute/1.0.0-beta.3) * [package-preview-2021-03](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/hybridcompute/resource-manager#tag-package-preview-2021-03) @@ -1154,6 +1183,8 @@ service
maintenance +* [package-preview-2023-10](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/maintenance/resource-manager#tag-package-preview-2023-10) + * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-maintenance/1.1.0-beta.1) * [package-2023-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/maintenance/resource-manager#tag-package-2023-04) * [1.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-maintenance/1.0.0) * [package-2021-05](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/maintenance/resource-manager#tag-package-2021-05) @@ -1301,6 +1332,8 @@ service
mysqlflexibleserver +* [package-flexibleserver-2023-12-30](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/mysql/resource-manager#tag-package-flexibleserver-2023-12-30) + * [1.0.0-beta.5](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-mysqlflexibleserver/1.0.0-beta.5) * [package-flexibleserver-2022-09-30-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/mysql/resource-manager#tag-package-flexibleserver-2022-09-30-preview) * [1.0.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-mysqlflexibleserver/1.0.0-beta.4) * [package-flexibleserver-2021-12-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/mysql/resource-manager#tag-package-flexibleserver-2021-12-01-preview) @@ -1314,6 +1347,8 @@ service
netapp +* [package-netapp-2023-11-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager#tag-package-netapp-2023-11-01) + * [1.2.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-netapp/1.2.0) * [package-netapp-2023-07-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager#tag-package-netapp-2023-07-01) * [1.1.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-netapp/1.1.0) * [package-preview-2023-05](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager#tag-package-preview-2023-05) @@ -1395,6 +1430,8 @@ service
nginx +* [package-2024-01-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/nginx/resource-manager#tag-package-2024-01-01-preview) + * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-nginx/1.1.0-beta.1) * [package-2023-04-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/nginx/resource-manager#tag-package-2023-04-01) * [1.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-nginx/1.0.0) * [package-2022-08-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/nginx/resource-manager#tag-package-2022-08-01) @@ -1431,6 +1468,14 @@ service * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-operationsmanagement/1.0.0-beta.1)
+
+
+ oracledatabase + +* [package-2023-09-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/oracle/resource-manager#tag-package-2023-09-01-preview) + * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-oracledatabase/1.0.0-beta.1) +
+
orbital @@ -1498,6 +1543,8 @@ service
postgresqlflexibleserver +* [package-flexibleserver-2023-12-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/postgresql/resource-manager#tag-package-flexibleserver-2023-12-01-preview) + * [1.1.0-beta.3](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-postgresqlflexibleserver/1.1.0-beta.3) * [package-flexibleserver-2023-06-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/postgresql/resource-manager#tag-package-flexibleserver-2023-06-01-preview) * [1.1.0-beta.2](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-postgresqlflexibleserver/1.1.0-beta.2) * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-postgresqlflexibleserver/1.1.0-beta.1) @@ -1566,6 +1613,8 @@ service
quota +* [package-2023-06-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/quota/resource-manager#tag-package-2023-06-01-preview) + * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-quota/1.1.0-beta.1) * [package-2023-02-01](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/quota/resource-manager#tag-package-2023-02-01) * [1.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-quota/1.0.0) * [1.0.0-beta.3](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-quota/1.0.0-beta.3) @@ -1578,6 +1627,8 @@ service
recoveryservices +* [package-2024-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservices/resource-manager#tag-package-2024-04) + * [1.3.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-recoveryservices/1.3.0) * [package-2023-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservices/resource-manager#tag-package-2023-04) * [1.2.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-recoveryservices/1.2.0) * [package-2023-02](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservices/resource-manager#tag-package-2023-02) @@ -1599,6 +1650,8 @@ service
recoveryservicesbackup +* [package-2024-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservicesbackup/resource-manager#tag-package-2024-04) + * [1.4.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-recoveryservicesbackup/1.4.0) * [package-2023-06](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservicesbackup/resource-manager#tag-package-2023-06) * [1.3.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-recoveryservicesbackup/1.3.0) * [package-2023-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/recoveryservicesbackup/resource-manager#tag-package-2023-04) @@ -1645,6 +1698,8 @@ service
redisenterprise +* [package-preview-2024-03](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/redisenterprise/resource-manager#tag-package-preview-2024-03) + * [2.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-redisenterprise/2.1.0-beta.1) * [package-2023-11](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/redisenterprise/resource-manager#tag-package-2023-11) * [2.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-redisenterprise/2.0.0) * [package-preview-2023-03](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/redisenterprise/resource-manager#tag-package-preview-2023-03) @@ -1740,6 +1795,7 @@ service security * [package-composite-v3](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/security/resource-manager#tag-package-composite-v3) + * [1.0.0-beta.7](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-security/1.0.0-beta.7) * [1.0.0-beta.6](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-security/1.0.0-beta.6) * [1.0.0-beta.5](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-security/1.0.0-beta.5) * [1.0.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-security/1.0.0-beta.4) @@ -1752,7 +1808,7 @@ service
securitydevops -* [package-2022-09-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/securitydevops/resource-manager#tag-package-2022-09-01-preview) +* package-2022-09-01-preview * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-securitydevops/1.0.0-beta.1)
@@ -1773,6 +1829,9 @@ service
selfhelp +* [package-2024-03-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/help/resource-manager#tag-package-2024-03-01-preview) + * [1.1.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-selfhelp/1.1.0-beta.4) + * [1.1.0-beta.3](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-selfhelp/1.1.0-beta.3) * [package-2023-09-01-preview](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/help/resource-manager#tag-package-2023-09-01-preview) * [1.1.0-beta.2](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-selfhelp/1.1.0-beta.2) * [1.1.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-selfhelp/1.1.0-beta.1) @@ -1869,6 +1928,14 @@ service * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-sqlvirtualmachine/1.0.0-beta.1)
+
+
+ standbypool + +* [package-preview-2023-12](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/standbypool/resource-manager#tag-package-preview-2023-12) + * [1.0.0-beta.1](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-standbypool/1.0.0-beta.1) +
+
storageactions @@ -1881,6 +1948,8 @@ service
storagecache +* [package-2024-03](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/storagecache/resource-manager#tag-package-2024-03) + * [1.0.0-beta.11](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-storagecache/1.0.0-beta.11) * [package-preview-2023-11](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/storagecache/resource-manager#tag-package-preview-2023-11) * [1.0.0-beta.10](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-storagecache/1.0.0-beta.10) * [package-2023-05](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/storagecache/resource-manager#tag-package-2023-05) @@ -1960,6 +2029,8 @@ service
support +* [package-2024-04](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/support/resource-manager#tag-package-2024-04) + * [1.0.0](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-support/1.0.0) * [package-preview-2023-06](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/support/resource-manager#tag-package-preview-2023-06) * [1.0.0-beta.4](https://repo1.maven.org/maven2/com/azure/resourcemanager/azure-resourcemanager-support/1.0.0-beta.4) * [package-preview-2022-09](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/support/resource-manager#tag-package-preview-2022-09)