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

Feature: Multi-language support via aws/jsii #51

Open
KyleTryon opened this issue Oct 16, 2021 · 0 comments
Open

Feature: Multi-language support via aws/jsii #51

KyleTryon opened this issue Oct 16, 2021 · 0 comments
Labels
backlog enhancement New feature or request

Comments

@KyleTryon
Copy link
Contributor

Enable support to utilize the CircleCI Config SDK with multiple target languages beyond TypeScript and JavaScript by utilizing aws/jsii.

Language Support

JSII build support is targeted for the 1.0.0 release of the CircleCI Config SDK. Language support is dependant on the current availability in the library.

Language Version
TypeScript 1.0.0
JavaScript 1.0.0
Python 1.0.0
Java 1.0.0
C# 1.0.0
Kotlin TBD
Go TBD

(https://aws.github.io/jsii/overview/features/#target-languages)

🚨 Blocking Issue 🚨

Current patterns utilized in the Config SDK which are appropriate for TypeScript are not available in the JSII build system due to compatibility with .NET Core 3.1.

In the current design, Components are extended from an abstract class where a generate() function is defined. This function will return the JSON schema of the component. Components such as jobs, commands, executors and workflows all extend Component, but each carry more specific definitions for their generate() function. This overriding of type of the generate() command is allowed in TypeScript as long as the types overlap, however in JSII this functionality is not available.

Issues on aws/jsii

Alternative Solutions:

An alternative design pattern must be considered to resolve the issue described above, allowing the use of JSII, without losing type defintions.

@KyleTryon KyleTryon added enhancement New feature or request and removed feature request labels Aug 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant