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

Manage schema and sample through runtime plugin #2563

Closed
boydc2014 opened this issue Apr 8, 2020 · 1 comment
Closed

Manage schema and sample through runtime plugin #2563

boydc2014 opened this issue Apr 8, 2020 · 1 comment
Assignees
Labels
R9 Release 9 - May 15th, 2020

Comments

@boydc2014
Copy link
Contributor

boydc2014 commented Apr 8, 2020

Is your feature request related to a problem? Please describe.

We decoupled runtime code from Composer core with the plugin architecture, that leaves us the questions of how should we manage schemas files for bot.

Do we attach that at the beginning of creation bot or do we leave it later when ejecting the runtime?

Describe the solution you'd like

Given schema is more close to runtime, and attaching schema at very beginning don't really support user to do customization without code ejected there. So it make sense to put them together when ejecting the bot.

Then it also make sense to let the runtime plugin to provide schema since it manage the code, so we need a way to let runtime plugin to provide the schema.

The design is

  1. Put a "version" field in bot settings
  2. Plugin system allow the extension to register a lookup method to look up schema based on version
  3. Server will call this method and get the schema and merged the schema found in bot folder and sent to client.

the version can be just "latest" or "lastest_csharp" before we version it very precisely.

Samples

A sample may not have to bind into one specific runtime version, so it make sense to support adding sample for multiple versions.

For example, i would vision a sample extension API like this.

Composer.AddSample(sample: SampleDef)

Interface SampleDef
{
  id: string
  description: string
  path: string
  type: basic | advanced
  tags: []
  runtimes: string[]   // a list of versions of runtime this sample supports
}
@boydc2014 boydc2014 added Type: Enhancement Needs-triage A new issue that require triage labels Apr 8, 2020
@boydc2014 boydc2014 self-assigned this Apr 8, 2020
@boydc2014 boydc2014 added R9 Release 9 - May 15th, 2020 and removed Needs-triage A new issue that require triage labels Apr 8, 2020
@hibrenda hibrenda added this to PlugIn/Multi-User/Publishing/PVA in R9 Apr 8, 2020
@benbrown
Copy link
Contributor

What would the runtimes field be holding?

@hibrenda hibrenda added this to To do in Sprint 27 via automation Apr 27, 2020
@hibrenda hibrenda moved this from To do to In progress in Sprint 27 Apr 27, 2020
@cwhitten cwhitten closed this as completed May 6, 2020
R9 automation moved this from PlugIn/Multi-User/Publishing/PVA to Done May 6, 2020
Sprint 27 automation moved this from In progress to Done May 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
R9 Release 9 - May 15th, 2020
Projects
No open projects
R9
  
Done
Sprint 27
  
Done
Development

No branches or pull requests

3 participants