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

Glimmer Big-Picture Integration Checklist #12907

Closed
chancancode opened this issue Feb 3, 2016 · 2 comments

Comments

Projects
None yet
4 participants
@chancancode
Copy link
Member

commented Feb 3, 2016

We will try to keep this up-to-date during integration. It enumerates the big-picture integration items.

If you hit a not-yet-completed item on this list while trying to help, it's probably better to wait for the initial integration work to finish. On the flip side, if initial integration work for a given feature has finished, it's probably fine to smooth out edge cases and do polish work.

  • top-level templates
    • {{foo.bar}} for basic POJOs #12901
    • {{foo.bar}} using Ember.get (computed properties, etc.) #12901
    • Handle {{foo}} where foo resolves to undefined, null, etc #13141
    • Align glimmer and ember semantics for attrs vs props
  • syntax
    • {{#if}} #12912, #12914 (need help reviewing/porting the rest of the tests)
    • {{#unless}} #12912, #12914 (need help reviewing/porting the rest of the tests)
    • {{#with}} #12919, #12927
    • {{#each}} #13048
    • {{#each-in}}
  • helpers
  • components
    • curly components #12948 #12962 (need help reviewing/porting the rest of the tests – note that a lot of features, are not implemented yet: see below)
    • glimmer components (<angle-brackets>)
    • {{component}} #13057
    • view state transition #13008
    • view hierarchy #12978
    • teardown #13008
    • old lifecycle hooks (didInsertElement, etc.) #13156 #13168
    • new lifecycle hooks (willRender, etc.)
    • attributeBindings, classNameBindings, classNames #13160
    • tagName #13145
    • this.element #12975
    • this.$() #13008
    • {{yield}}-ing block arguments
  • partials
  • {{render}}
  • element helpers ({{action}} etc.)
  • legacy functionality when using addons
  • {{outlet}} #13067
  • runloop integration (auto rerender after set, etc – this is shimmed by forcing a rerender inside this.runTask in the test cases, so it shouldn't be an immediate blocker)
  • framework-level integration (using ember-glimmer to render route templates, injecting the ember-glimmer renderer to components/views etc)
  • make it possible to switch between the two engines in apps by toggling the feature flag

Available to work on (roughly ordered from easiest to most difficult):

  • Add tests for rending false, undefined, null etc in content-test.js, similar to
    const BASIC_TRUTHY_TESTS = {
    cases: [
    true,
    ' ',
    'hello',
    'false',
    'null',
    'undefined',
    1,
    ['hello'],
    emberA(['hello']),
    {},
    { foo: 'bar' },
    EmberObject.create(),
    EmberObject.create({ foo: 'bar' }),
    /*jshint -W053 */
    new String('hello'),
    new String(''),
    new Boolean(true),
    new Boolean(false),
    new Date()
    /*jshint +W053 */
    ],
    generate(value) {
    return {
    [`@test it should consider ${JSON.stringify(value)} truthy`]() {
    this.renderValues(value);
    this.assertText('T1');
    this.inZone(() => this.rerender());
    this.assertText('T1');
    this.inZone(() => set(this.context, 'cond1', false));
    this.assertText('F1');
    this.inZone(() => set(this.context, 'cond1', value));
    this.assertText('T1');
    }
    };
    }
    };
    . This would fail in glimmer atm, so it needs to be @htmlbars.
  • Implement inline if/else helpers (see comments in #12914).
  • Port remaining built-in helpers. Should be similar to #12910. Some helpers are easier than the others.
  • Implement {{#with}} (this is slightly more difficult, but generally follows the footsteps of glimmerjs/glimmer-vm#61 and #12914).
  • Review and port remaining tests in if_unless_test.js (see comments in #12914). This requires carefully analysis of the tests and git history digging.

@chancancode chancancode changed the title Glimmer integration checklist Glimmer Big-Picture Integration Checklist Feb 3, 2016

@GavinJoyce GavinJoyce referenced this issue Feb 7, 2016

Merged

[Glimmer2] inline if #12920

15 of 15 tasks complete

@chadhietala chadhietala referenced this issue Feb 7, 2016

Merged

with-tests #12919

@chadhietala

This comment has been minimized.

Copy link
Member

commented Feb 16, 2016

{{#with}} should be updated to reflect #12927

@chancancode

This comment has been minimized.

Copy link
Member Author

commented Jul 23, 2016

I think we are done here 😁

See #13644 for remaining edge-cases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.