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

Ember upgrade #519

Merged
merged 38 commits into from
Feb 26, 2018
Merged

Ember upgrade #519

merged 38 commits into from
Feb 26, 2018

Conversation

bastimeyer
Copy link
Member

@bastimeyer bastimeyer commented Dec 12, 2017

See https://github.com/streamlink/streamlink-twitch-gui/projects/5

  • Ember 🎉
    • Upgrade to latest version
      Current version: 3.0.0
      Latest version: 3.0.0
    • Remove Bower dependency 🎉
    • Use @ember/xyz imports
      ember >= 2.16.0
      https://github.com/ember-cli/ember-rfc176-data
      • Import source modules
        Ember hasn't transitioned to its modular structure yet. Let babel-plugin-ember-modules-api-polyfill translate imports into global lookups until then. 😒🐹
      • Remove custom global ember module
    • Rewrite component tests using ember-qunit
      • Re-implement DropDownComponent and RadioButtonsComponent
    • Split initializers and instance-initializers and dynamically import them
    • Fix hotkey events
      Some components have been rewritten, needs further work to make events behave correctly again. All currently added hotkeys should be working without any issues, though.
  • Ember Data 🎉
    • Upgrade to latest version
      Current version: 2.12.2
      Latest version: 3.0.1
      Can't upgrade to a more recent version of Ember Data due to several issues regarding deleting, unloading and re-creating records which have been broken since 2.13 and are still not fixed in 3.0. 😒🐹
    • Remove Bower dependency 🎉
    • Import source modules
      Ember Data is now an Ember addon and needs to be built from source.
      Strip performance instrumentation and beta features.
      • Production builds
        Strip debug assertions.
      • Remove custom global ember-data module
    • Fix TwitchStream state errors
      Attempted to handle event notFound on twitchStream:ID while in state root.empty
  • Ember Data Model Fragments
    • Upgrade to latest compatible version
    • Remove custom global model-fragments module
    • Production builds
      Debugging methods are being imported correctly in the 3.0 release (supporting Ember Data 3.0.0) and can be removed then. For now, it's not possible without using more babel plugins, which is not worth the effort.
  • Ember Localstorage Adapter
    • Remove custom global ember-data-localstorage module

🎉🎉🎉

@bastimeyer bastimeyer mentioned this pull request Jan 14, 2018
22 tasks
- Move view:toplevel to template:application and application initializer
- Don't let webpack parse Ember and EmberData

TODO:
- Fix tests
- Fix component attribute bindings and re-rendering issues
- Change attribute name "default" to "defaultValue"
- Add common "selectable" component that binds the value attribute to
  the selection and vice versa
- Change name of RadioBtnsComponent to RadioButtonsComponent
- Change name of RadioBtnComponent to RadioButtonsItemComponent
- Add DropDownSelectionComponent and DropDownListComponent
- Set optionValuePath to "id" for both parent components
- Update class names
- Rewrite tests

TODO:
- Update templates of all routes/components using the new components
- Change component content data to match the common optionValuePath
- Fix remaining stylesheets
- Rewrite templates
- Fix content data
- Fix class names
- Rename content data variables in each settings controller

96c0ae5
- Set ember-data as an NPM dependency (ember-addon)
  and remove it from bower
- Add required ember-data build and runtime dependencies
- Upgrade ember-data-model-fragments
- Remove the now unnecessary ember-data workaround imports
- Add ember-data/version and initializer modules
- Add ember-features.json
- Strip heimdalljs and disabled features from ember-data
  and remove debug imports in production build

TODO:
- Fix warning in model tests
- Update all ember-data imports and remove custom global module
- Update ember-data-model-fragments imports as well and import its
  initializer instead of defining a custom one
- Switch ember dependency (bower) to ember-source (npm)
- Remove all Bower related files
- Update CI config, git ignore file and docs

TODO:
- Manually build Ember once it's been upgraded to a newer version.
  Ember-data is already being built manually as an ember addon.
and fix failing tests
2.14.x contained a backburner bug, resulting in failed tests which are
using sinon.useFakeTimers()
So BooleanTransform doesn't need to be imported from a private ED module
and remove custom global ember-data module
record.destroyRecord() seems to have changed between EmberData 2.12 and
2.16 and doesn't remove deleted+saved records from the store anymore.
Those records now need to be explicitly unloaded in order to let the
store return false from calling store.hasRecordForId(model, id)

FollowButtonComponent already unloads records when unfollowing, so even
if there are no tests for the unfollow action yet, nothing will break
@bastimeyer bastimeyer mentioned this pull request Feb 5, 2018
Resolves #534, #530

- Rewrite computed properties `faded` and `fadedVodcasts`
- Move `hasCustomLangFilter` logic to Settings model and rename property
  to `hasStreamsLanguagesSelection` (based on nested fragments path)
- Fix tests
revert commit f4623e7
and fix failing test

EmberData >= 2.13 introduces several issues regarding unloading and
deleting records. Don't upgrade EmberData for now...
Should have been done in aa127d9
@bastimeyer bastimeyer merged commit cced4b6 into master Feb 26, 2018
@bastimeyer bastimeyer deleted the ember-upgrade branch March 21, 2018 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant