Description:
The current REST-level client emitters in TypeSpec have inconsistent support for versioning decorators. While the TypeScript autorest emitter has been updated to handle versioning decorators, the Python emitter still lacks this capability. This inconsistency creates difficulties in managing different versions of APIs, which is crucial for maintaining backward compatibility and allowing clients to transition smoothly between versions.
Impact:
Challenges in managing multiple API versions.
Increased risk of breaking existing clients when updating APIs.
Difficulty in running different versions of services in parallel.
Desired Outcome:
Emitters should fully support versioning decorators, allowing for effective version management.
This feature will enable developers to leverage TypeSpec’s versioning system and decorators, ensuring smooth transitions and upgrades for users.
Steps to Reproduce:
Define versioning decorators in a TypeSpec specification.
Generate REST-level clients using both TypeScript and Python emitters.
Observe the inconsistent handling of versioning decorators between the two emitters.
Expected Behavior:
Both TypeScript and Python emitters should handle versioning decorators consistently, generating code that supports multiple API versions effectively.
Actual Behavior:
The TypeScript emitter handles versioning decorators, but the Python emitter does not, leading to inconsistencies in version management.
Additional Context:
Proper versioning support is essential for large-scale projects where APIs need to evolve without breaking existing clients. This feature will facilitate smoother transitions and upgrades, improving the overall developer and user experience.
Requested by the London Stock Exchange Group.
Description: The current REST-level client emitters in TypeSpec have inconsistent support for versioning decorators. While the TypeScript autorest emitter has been updated to handle versioning decorators, the Python emitter still lacks this capability. This inconsistency creates difficulties in managing different versions of APIs, which is crucial for maintaining backward compatibility and allowing clients to transition smoothly between versions.
Impact:
Desired Outcome:
Steps to Reproduce:
Expected Behavior: Both TypeScript and Python emitters should handle versioning decorators consistently, generating code that supports multiple API versions effectively.
Actual Behavior: The TypeScript emitter handles versioning decorators, but the Python emitter does not, leading to inconsistencies in version management.
Additional Context: Proper versioning support is essential for large-scale projects where APIs need to evolve without breaking existing clients. This feature will facilitate smoother transitions and upgrades, improving the overall developer and user experience.
Checklist