From cdb2ed1e059bf6e6709e1a4aef1e5202a213f2e8 Mon Sep 17 00:00:00 2001 From: Xiaogang Date: Tue, 11 May 2021 21:46:15 +0800 Subject: [PATCH] Add a doc which compares sdkbased modules vs autogen modules (#14815) * Add a doc which compares sdkbased modules vs autogen modules * Follow up some comments --- .../development-docs/images/autogen.PNG | Bin 0 -> 23611 bytes .../development-docs/images/sdkbased.PNG | Bin 0 -> 18313 bytes .../development-docs/sdkbased-vs-autogen.md | 101 ++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 documentation/development-docs/images/autogen.PNG create mode 100644 documentation/development-docs/images/sdkbased.PNG create mode 100644 documentation/development-docs/sdkbased-vs-autogen.md diff --git a/documentation/development-docs/images/autogen.PNG b/documentation/development-docs/images/autogen.PNG new file mode 100644 index 0000000000000000000000000000000000000000..6463b2f68a177bbe40048a3134adf5319ea31b3c GIT binary patch literal 23611 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 literal 0 HcmV?d00001 diff --git a/documentation/development-docs/images/sdkbased.PNG b/documentation/development-docs/images/sdkbased.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f9db6fae7ab36f08550e6692678ce0d08df262b2 GIT binary patch literal 18313 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]* parameter for get-* cmdlets and add for *[-SubscriptionId ]* parameter for the others +- Do not support breaking change warning yet +- Pipeline + - Do not support to pipe in parent resource + - Unify two types (through *-InputObject and -ResourceId*) of pipeline into one *-InputObject,* Users could either pipe in the resourceId or resource object +# Implementation + +## Process + +### SDK-based Module + +- Design review +- Get a released management SDK for Dotnet +- Implement cmdlets in C# based on management SDK for Dotnet +- Implement testcases +- Generate docs, and populate them with examples +- Create a PR in master branch for code review + +### Auto-gen Module + +- Design review +- Write a readme.md as the autorest.powershell configuration for the module, and normally, it should contains + - links to swaggers in [azure-rest-api-specs](https://github.com/Azure/azure-rest-api-specs) (should pin to specific version through commit id to avoid potential breaking changes) + - A reference to readme.azure.noprofile.md to inline common configurations + - Module specific configurations, e.g. *module-version, title, subject-prefix...* + - directive +- customization +- Implement testcases +- Generate docs and populate them with examples +- Create a PR in **generation** branch for code review +- Azure team members will help merge code from generation branch to master branch + +## Customization + +### SDK-based Module + +Since the cmdlets are handcrafted by developers, no special customization mechanism is required. + +### Auto-gen Module + +Customization could be done through three ways. + +- Through directive in readme.md, please see [directives.md](https://github.com/Azure/autorest.powershell/blob/master/docs/directives.md) for details +- Through PowerShell script, please see [customization.md](https://github.com/Azure/autorest.powershell/blob/master/docs/customization.md) for details +- Through C# code + +## Hero Scenario + +### SDK-based Module + +If your module relies on some other modules, you will need to rely on dotnet SDK of these modules, which could put in your module if only your module depends on them or in Az.Accouts they are some common modules required by several modules. + +### Auto-gen Module + +Generally speaking, hero scenarios are implemented through customization through PowerShell script above. Regarding to third party dependencies, there are two ways to handle it. + +- Add the swaggers of the dependencies to readme.md either directly or by adding related helpers defined src/helpers if they are common shared modules +- Rely on related Azure PowerShell modules, in this case, it is better you could add the logic to check whether the modules you rely on have installed or not + +## Docs and Examples + +### SDK-based Module + +Docs are generated through playPS, please see [platyPS](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/help-generation.md#Installing-platyPS) for details. And developers should populate generated docs with examples. + +### Auto-gen Module + +Autorest.powershell will generate example stubs in the examples folder, which should be populated by the developers manually. When building, examples in the examples folder will be automatically merged into docs. + +## Test + +### SDK-based Module + +Tests are written in C# code. + +### Auto-gen Module + +Tests are written in PowerShell script. And we will leverage PowerShell test framework [Pester](https://github.com/pester/Pester). + +# Others + +## Data plane support + +We are still working on bringing data plane to auto-gen. \ No newline at end of file