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

Add a customized runtime(include action and schema) sample #2824

Closed
11 tasks
luhan2017 opened this issue Apr 29, 2020 · 3 comments
Closed
11 tasks

Add a customized runtime(include action and schema) sample #2824

luhan2017 opened this issue Apr 29, 2020 · 3 comments
Assignees
Labels
P1 Painful if we don't fix, won't block releasing R9-RC Type: Sample

Comments

@luhan2017
Copy link
Contributor

luhan2017 commented Apr 29, 2020

Describe the bug

Synced with Brenda and Dong, here is our proposal.

We can create a sample(bot template) folder with the customization part of the runtime. Here is the bot looks like:

bot
  /bot.dialog
  /language-generation
  /language-understanding
  /dialogs 
     /custmozedDialogs
  /runtime
     /customizedCode
  /schemas
     customized.schema

With all the customization part in the template, when user create a bot from that template, we will help user copy all the assets above, and user can configure use custom schema, we will help user merge the default bot runtime with the customized code. then we can directly run it. We need to explain all the details in docs.

Here are the actions items:

  • create a sample for customized action and schema. -Lu
  • update the plugin to enable the merge of default runtime with customized part. -Wenyi
  • design the name, description and icon of the new template -Marc?
  • docs -Yan

@cwhitten and @benbrown, please help to review the above proposal.

Version

Browser

  • Chrome
  • Safari
  • Firefox
  • Edge

OS

  • macOS
  • Windows
  • Ubuntu

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

Screenshots

Additional context

@luhan2017 luhan2017 added Type: Bug Something isn't working Needs-triage A new issue that require triage labels Apr 29, 2020
@hibrenda hibrenda removed the Needs-triage A new issue that require triage label Apr 29, 2020
@cwhitten cwhitten added Type: Enhancement Type: Sample and removed Type: Bug Something isn't working labels Apr 29, 2020
@benbrown
Copy link
Contributor

A few thoughts:

  • Bundling code in the templates is not currently well supported. Seems this would require the bot to start out of the box with the ejected runtime.
  • I don't think it is a good idea to introduce some way to magically merge codebases. If this is not going to run the normal "managed" runtime, it should be ejected.
  • If this is important functionality to demonstrate to our developers, why hide it in a sample? Why not make this part of the default runtime template? If the point is showing how to build and expose custom actions, the sample custom action can be something simple, like a console.log type action.

@boydc2014
Copy link
Contributor

A few thoughts:

  • Bundling code in the templates is not currently well supported. Seems this would require the bot to start out of the box with the ejected runtime.
  • I don't think it is a good idea to introduce some way to magically merge codebases. If this is not going to run the normal "managed" runtime, it should be ejected.
  • If this is important functionality to demonstrate to our developers, why hide it in a sample? Why not make this part of the default runtime template? If the point is showing how to build and expose custom actions, the sample custom action can be something simple, like a console.log type action.

We just discussed this in today's standup, the intended user experience is for user, just choose a "customized schema sample" and it just work. That's the first thing to clarify.

So, in order to make this experience work, what's required would be

  1. update the ejection to be merge instead of "replace"
  2. trigger an auto-ejection after creation. This is one is tricky, because our ejection requiring a choice for a list of runtime available, auto doing that and hard coding a version after creation sounds very weird.

To achieve the similar user experience, one option, i would recommend, probably this is @benbrown referred by "hiding", we can just make it into the CSharp project we shipped, with code + schema, so, user just need an ejection (a button click), and everything is put in the right place. The "sideeffects" of this, is any ejection will bring this for any samples, which is fine to me, i mean, once they eject, one more action is OK.

Another option, is do nothing in code, just doc, which I think it's acceptable for a developer, because worse case is just ejection + 2 file download and move.

@cwhitten
Copy link
Member

We talked about it tonight--everyone is in agreement that adding a boilerplate custom action to the base runtime template is a good idea. it's much easier and we think a better all-around customer experience.

Great ideas!

@cwhitten cwhitten added the R9-RC label May 5, 2020
@cwhitten cwhitten added P0 Must Fix. Release-blocker P1 Painful if we don't fix, won't block releasing and removed P0 Must Fix. Release-blocker labels May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 Painful if we don't fix, won't block releasing R9-RC Type: Sample
Projects
None yet
Development

No branches or pull requests

5 participants