ember-light-table icon indicating copy to clipboard operation
ember-light-table copied to clipboard

The Module Unification Compatibility Odyssee

Open billybonks opened this issue 7 years ago • 6 comments

Ember unification modules does not support slashes in module names that mean's that this will not work

https://github.com/offirgolan/ember-light-table/blob/5ebc87115839e2e1ab9775f2ea8e5c63e97fe713/addon/templates/components/lt-row.hbs#L2

could we make a change where I can set a setting on the table to not concat the path and use the absolute path for the cellType component

billybonks avatar Jul 12 '17 16:07 billybonks

This is unfortunate. Thanks for being on the bleeding edge and reporting this.

could we make a change where I can set a setting on the table to not concat the path and use the absolute path for the cellType component

Is an option. Another option is to add another property that takes precedence over cellType and will be absolute and will fallback on the concat behavior with cellType.

I'm curious what the greater vision is here though. Would we basically want packages (thinking in Java terms) where we could support protected components, that are specific to particular addons (packages), and can be resolved functionally like private component lookup, but are provided in by a consuming app.

alexander-alvarez avatar Jul 12 '17 17:07 alexander-alvarez

We might be able to use local lookup components.

Useful blog post: https://madhatted.com/2017/7/12/embercamp-module-unification-update

buschtoens avatar Jul 12 '17 17:07 buschtoens

where we could support protected components, that are specific to particular addons (packages), and can be resolved functionally like private component lookup, but are provided in by a consuming app.

This is very interesting not sure if has been thought about, would be like creating a local lookup for light table but produced by the application using light table. @mixonic would love to hear your thoughts on this.

do you think we can use Custom collections and types to solve this problem?

billybonks avatar Jul 12 '17 17:07 billybonks

First of all, we have not documented or created a migration path for addons yet. This conversation is slightly premature. You could try porting this addon to a src/ dir, but I don't really know what would happen. I almost certainly wouldn't be the same as our final goal.

Local lookup seems like the correct pattern here. Given:

ember-light-table/src/ui/components/lt-row/template.hbs
ember-light-table/src/ui/components/lt-row/cells-base/template.hbs

You can invoke via local lookup:

{{! ember-light-table/src/ui/components/lt-row/template.hbs }}
{{component (concat 'cells-' cellType)}}

If the case was appropriate you could also yield a closure component. local lookup components are indeed "protected". They can only be invoked from a single template, in the case of {{cells-base}} from the template of {{lt-row}}.

mixonic avatar Jul 13 '17 16:07 mixonic

Another aspect I would love to see covered in a migration plan is backwards compatibility with non-MU apps, if that is possible at all.

buschtoens avatar Jul 13 '17 20:07 buschtoens

@buschtoens yeah that is something we need to figure out for the migration path. We want as much compatibility as possible to ensure everyone can make the migration without blocking others (both apps and addons)

mixonic avatar Jul 13 '17 20:07 mixonic