Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDK Automation Tooling's Enhancements #8039

Closed
62 of 63 tasks
raych1 opened this issue Apr 9, 2024 · 1 comment
Closed
62 of 63 tasks

SDK Automation Tooling's Enhancements #8039

raych1 opened this issue Apr 9, 2024 · 1 comment

Comments

@raych1
Copy link
Member

raych1 commented Apr 9, 2024

Overview
This issue is created to track all the work items related to the Enhancements-to-SDK-Automation specification.

1. Support Scenarios

  • TypeSpec green field services.
    This is currently supported by all four languages (.NET, Java, Python, JS).
    Add the support for Go language.
  • TypeSpec brown field services.
    Generation strategy to handle the existing customized SDK code:
    • option 1: keep the existing customized SDK code and generate the SDK code based on TypeSpec specs.
      If the customized SDK code is not compatible with the new specs, the generation should fail in the build/compile step providing the comprehensive error message, such as "The SDK has customized SDK code and might not be compatible with the new specs, the service team may need to update the customized code or the new specs."
    • option 2: remove the existing customized code then generate the SDK code from scratch based on the TypeSpec specs
  • Service group with a mix of service using TypeSpec and service using the Swagger.
    The prerequisite is each service must have individual SDK package.

2. Define the Required Steps
There are a bunch of steps to be executed during the SDK generation process. Take .NET for example, it includes the following steps:

  • Environment setup
  • SDK generation
  • SDK code building, which include test/sample code building
  • SDK code packing
  • API export
  • Breaking change validation
  • API View generating

Any failure of the above steps would cause the SDK generation CI check fail. We will need to identify the required steps to run in the spec pull request phase for each SDK language. It's important to note that the required steps may vary across languages, as the requirement could differ from one language to another.

3. Breaking Change Detection
The automation should be able to detect the breaking changes against SDK API level.

Tasks

Preview Give feedback
  1. Automation Tool
    msyyc
  2. 5 of 5
    Automation Tool P0
    wanlwanl
  3. Automation Tool
    XiaofeiCao

4. tsp-client adoption
Adopt tsp-client to replace the common powershell script to interact with tsp-config.yaml, fetch the TypeSpec specs, and run TypeSpec language emitters.
This could improve the logging experience for the steps tsp-client tool covers.

Tasks

Preview Give feedback
  1. Automation Tool
    msyyc
  2. SDK Automation
    kazrael2119 wanlwanl
  3. 1 of 1
    Automation Tool
    chunyu3
  4. Automation Tool
    weidongxu-microsoft

5. Logging Improvement
Refine the error logs to enhance clarity and conciseness, provide guidance on corrective actions, and include relevant document links as necessary. The logging should include three parts information if possible.

  • error code or error message
  • next steps or suggested actions
  • associated document links if have

Tasks

Preview Give feedback
  1. Automation Tool
    MaryGao
  2. P0 SDK Automation
    raych1
  3. Automation Tool
    weidongxu-microsoft
  4. Automation Tool
    weidongxu-microsoft
  5. Automation Tool
    msyyc
  6. Automation Tool P0
    wanlwanl
  7. Automation Tool
    raych1
  8. Automation Tool
    raych1
  9. Automation Tool P0
    raych1
  10. Automation Tool
    raych1
  11. Automation Tool Spec PR Tools
    chunyu3
  12. Automation Tool
    raych1
  13. Automation Tool
  14. Automation Tool
    raych1
  15. Automation Tool
    raych1
  16. Automation Tool
    Alancere

6. Bugs identified

Tasks

Preview Give feedback
  1. Automation Tool SDK Automation
    MaryGao raych1
  2. Central-EngSys P1 SDK Automation Spec PR Tools
    raych1
  3. Automation Tool
    chunyu3
  4. P0 Spec PR Tools
    raych1
  5. Automation Tool
    wanlwanl
  6. Automation Tool P0
    msyyc
  7. Automation Tool
    kazrael2119 qiaozha
    wanlwanl
  8. Automation Tool
    kazrael2119 wanlwanl
  9. Automation Tool
    raych1
  10. Automation Tool
    haolingdong-msft
  11. Automation Tool
    msyyc
  12. Automation Tool SDK Automation
    raych1
  13. Central-EngSys SDK Automation Spec PR Tools bug
    raych1
  14. SDK Automation
    raych1
  15. SDK Automation
    raych1
  16. SDK Automation
    raych1
  17. Automation Tool SDK Automation
    raych1
  18. Mgmt v3
    chunyu3

7. Documentation
Provide documentation of error definitions and suggestions for the fixes for each language and the common SDK automation framework.

8. Additional Tasks

Tasks

Preview Give feedback
  1. Automation Tool P1
    raych1
  2. SDK Automation
    raych1
  3. Automation Tool
    raych1
  4. Automation Tool
    raych1
  5. Automation Tool
    raych1
@raych1
Copy link
Member Author

raych1 commented Jan 7, 2025

All of the linked tasks have been completed except for the one to add how-to-fix suggestions for .NET. I will close this EPIC and track that in API to SDK automation board separately.

@raych1 raych1 closed this as completed Jan 7, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in API to SDK automation Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

1 participant