-
-
Notifications
You must be signed in to change notification settings - Fork 131
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
Converts ES6 native classes to ember objects #701
Conversation
Would it help to release a codemod for this too? I'm also unsure of what to do about the docs as ELT's aren't versioned. Could we enable something like http://offirgolan.github.io/ember-cp-validations/ so we can maintain 1.x and 2.x versions? |
Looks like as of Ember 3.11 the changes in this branch are now mandatory, i.e. master of ember-light-table doesn't function with
The good news is that this branch is working well in my testing so far 👍. |
@richard-viney any chance you could help me fix this back to 2.18 then I can merge! |
@alexander-alvarez any thoughts on the best way to handle the docs? I'm keen to get this merged ASAP as without it, ELT doesn't work with Ember 3.11+. Should we just put a note in the readme on the 2.x branch for now - we'll need to do something more permanent before 2.x release though |
👍 |
@fran-worley I would have thought that the The native class polyfill only supports Ember 3.4/3.5, as native class support was added in 3.6. It doesn't claim to work on 2.18 though, not sure if there were technical limitations preventing this from being possible. It would be nice to support 2.18 if we can, though it does appear to be out of extended support so maybe it's not necessary: https://emberjs.com/releases/. |
@richard-viney I didn't think we'd need it as if you look at the PR we're not using 'native classes' as such. I've converted it back to more traditional Ember Objects largely due to the limited support for the polyfill. |
Ok, in that case is there a reason to keep writing export default class Table extends EmberObject.extend({
// ...
}) {}; instead of const Table = EmberObject.extend({
// ...
});
export default Table; Is writing |
@richard-viney I honestly have no idea - I did this so long ago now and it was a bit of a stretch as javascript is not my first language and the intricacies of classes vs ember objects hasn't ever really sunk into my brain! I'll take another look this week and see if I can work it out. |
To throw a spanner in the works... I discussed this issue with @pzuraq this afternoon on Discord after I came across it in my app when upgrading to Ember By using native classes, it's also not a breaking API change since However, I suppose it would be a breaking change since it drops support for at least Ember 2.18 (or whenever the native class polyfill goes back to). |
@lougreenwood we talked about going down this route initially but with the native polyfill support being limited (and I've seen other addons encounter issues with it) and with the intention of this addon to move to conventional .create syntax (see #444 ) we decided that the easiest option was to 'break' the api to use convention ember objects. The road to pure native classes in ember is likely to be a while longer yet and depending on how it is implemented may end up 'breaking' our API anyway. |
@lvegerano Are you configuring the |
@lougreenwood in addition to @richard-viney suggestion angle bracket syntax is as yet untested and I know people have reported issues with it. Our aim is to get the PR merged ASAP and then work on Angle Bracket Syntax support. |
@richard-viney not really, everything is default |
I'm trying to use this branch in an ember 3.11.0 app however the same error occurs... Do understand it correctly it should fix the 'not instantiated correctly' problem? package.json "ember-light-table": "offirgolan/ember-light-table#refs/pull/701/head", |
@basz This is what I'm using in
|
Sorry for the silence on my part - I'm taking an executive decision to press ahead with this fix and therefore withdrawing support for Ember 2.18 (at least for the time being). With ember 3.12 having just been released as the new LTS I think it's more important we support the future than the past. I believe the compile error issue you're experiencing is likely due to #693 where I moved ember-composable-helpers to a dev dependency so I'll restore it and see where we get to. I'm hoping to get this merged and a new beta release out this weekend and from there we can move onto to looking at Angle Bracket syntax etc. @alexander-alvarez what is the situation with the documentation site as this change breaks the API. For now the best I can do is update the readme and put a warning notice on the master readme to advice people of the change in the v2x branch but we should update the main docs sooner rather than later |
@fran-worley once docs are updated pushing to |
I added this to my package.json and ran npm install. But got the same error. I deleted node_modules and reinstalled. Still the same issue though. Is there anything I am missing? |
@jking6884 Do you any of the admins you're using depend on |
This is a breaking change as it converts the new Class() syntax to Class.create(). In addition, the only way I could get these to work was to convert the positional arguments to named args in an options hashes: `new Table(columns, rows)` => `Table.create(columns: columns, rows: rows)` `new Row(content, options)` => `Row.create({ content: })` `new Column(opts)` => `Column.create(opts)` We’ve had to replace the native constructor methods with emberObject init methods as per the official docs which should also fix #699. As a result we’ve removed the Ember 2.12 ‘hacks’ which shouldn’t be an issue as we’ve bumped ember version minimum version to 2.18.
c0c31b5
to
bf2fcde
Compare
@alexander-alvarez is it possible to have 2 doc sites? one for the 1.x branch and another for the 2.x branch? I can see the 2.x branch deviating even further as we look to support angle bracket syntax etc. |
Isn't this site intended to be 'documentation' of how to use the addon: https://offirgolan.github.io/ember-light-table/
|
@jking6884 that covers v1 of the admin. This PR changes the API to be compliant with ember 3.11. See #701 (comment) . Docs will be updated in due course but as we're all 'volunteers' please be patient!! 😅 |
Hi! Firstly, thanks for working on these issues. We really appreciate it. I am a little confused if
but the created table is empty, and only my |
@Kira-Pilot91 hey - it is but per the first comment #701 (comment) you need to change how you initialise your tables. We still need to update the docs. |
My bad, I just noticed I wasn't passing in the arguments in the correct format. Sorry about that and thanks for the quick reply. |
Will this also be merged into 1.x of ember-light table? Sorry for the late question but I just ran across this issue after upgrading to Ember.js 3.11. |
I upgraded // app/components/tables/-overview-table.js
import classic from 'ember-classic-decorator';
import Component from '@ember/component';
import Table from 'ember-light-table';
@classic
export default class OverviewTable extends Component {
init() {
this._super(...arguments);
let table = Table.create({ columns: this.get('columns'), rows: this.get('model') });
this.set('table', table);
}
} But I still get the error: Uncaught Error: Assertion Failed: You must call Am I doing anything wrong, or is it related to this issue? |
I found the issue, it is an issue of Update |
Is there a reason to use EmberObject instead of native classes? I thought that the latest version of Ember recommends using native classes, isn't it? |
Time!! Our maintainers have very little of it! |
* replace `sendAction` with modern callable methods * make easy jquery fixes * Release v2.0.0-beta.0 * Release v2.0.0-beta.1 * removed jquery * yarn upgrade * Update ember-scrollable * Assert and Test compatibility with LTS 3.4 * Officially drop support for node 4 in package.json * bump vertical-collection to v1.0.0-beta.13 * Replace merge with assign (#673) * bump vertical-collection to v1.0.0-beta.13 * replace merge with assign * ensure ember-scrollable updates when rows are updated (#677) * refactor: Remove sendAction() calls (#686) * release 2.0.0-beta.3 * Replace propertyWillChange/propertyDidChange with notifyPropertyChange and add polyfill for < Ember 3.1 (#692) Fixes #660 * update changelog for 2.x * Update ember-in-viewport, ember-wormhole, move ember-composable-helpers to devDependencies (#693) * move ember composable helpers to dev dependencies and bump version see #524 * bump ember wormhole * add ember lts 3.8 to travis * remove ember-native-dom-helpers testing add-on * update multiple table test from 1-x branch to remove native-dom-helpers add-on * [breaking] rename inViewport closure action to enterViewport paving the way to update ember-in-viewport dependency * fixes infinite loop on onScrolledToBottom * remove unused rows property from lt-infinity * bump ember-in-viewport version and refactor lt-infinity component not to use mixin * make lt-body.inViewport event deprecated in favour of enterViewport and test * Drop node 6 support as end of line Apr 2019 (#698) LGTM! Node 8 it latest Maintenance LTS and will be EOL in December * Bump Ember CLI to 3.8 and update other dependencies (#696) * bump ember cli to lts 3.8 update other dev dependencies also apply some ember add-on blueprint changes * fix handlebar lint errors Note - unsure why 'no-inline-styles' config isn’t being applied. For now I’ve manually disabled the rule in applicable templates * disable js no-observer rule * update eslint-plugin-ember-suave and fix lint errors * upgrade ember-mirage (used for dummy app) * upgrade remaining addons * set minimum supported ember version at 2.18 (#700) see community survey results - https://emberjs.com/ember-community-survey-2019/ * migrate to using lerna-changelog (#697) * update changelog [ci skip] * BREAKING drop support for ember 2.18 (#713) * [BREAKING] drop support for ember 2.18 * fix travis - ember release can fail * as we use the compute helper we need to restore ember-composable-helpers as a dependency (#714) * [BREAKING] fixes #444 #662 converts ES6 native classes to ember objects (#701) This is a breaking change as it converts the new Class() syntax to Class.create(). In addition, the only way I could get these to work was to convert the positional arguments to named args in an options hashes: `new Table(columns, rows)` => `Table.create(columns: columns, rows: rows)` `new Row(content, options)` => `Row.create({ content: })` `new Column(opts)` => `Column.create(opts)` We’ve had to replace the native constructor methods with emberObject init methods as per the official docs which should also fix #699. As a result we’ve removed the Ember 2.12 ‘hacks’ which shouldn’t be an issue as we’ve bumped ember version minimum version to 2.18. * Bump to ember cli 3.12 and update dependencies (#716) * bump addons * update ember cli to 3.12 * drop ember-release from allowed travis failures * use yarn not npm and remove unused ember-cli-changelog * update ember changelog * [ci skip] fix dummy app port following update to ember cli 3.12 see ember-cli/ember-cli#8794 * release v2.0.0-beta.4 * [ci-skip] update changelog for beta 4 release * replace volatile computed properties with native getters (#718) * Add a guard to check if scaffolding cells exist * Always render scaffolding row in table header * Test lt-scaffolding-row * Update ember-scrollable version to jquery-less * bump ember-code-snippet for dummy app * update travis to include recent LTS versions of ember * fix lint issues * bump ember cli to 3.16.1 and fix/ warn easy js lint errors disable other rules * bump dependency addons * [ci skip] bump changelog and yuidoc addons * [ci-skip] update changelog * fix deprecation warning for overridden rowspan cp * remove unsafe style attribute warnings * make compute own helper then drop ember-composable-helpers as dependency * Remove debugging line in compute helper * Drop support to Ember 3.4 and 3.5 Related #739 * add testing for ember 3.20 * bump addons * drop ember-suave eslint to fix travis # Conflicts: # package.json # yarn.lock * [ci-skip] update ember version in readme * v3.16.1...v3.20.0 * drop support for ember <3.12 * drop this.get Co-authored-by: Donald Wasserman <[email protected]> Co-authored-by: Alex Alvarez <[email protected]> Co-authored-by: Gaurav Munjal <[email protected]> Co-authored-by: Fran Worley <[email protected]> Co-authored-by: Michal Bryxí <[email protected]> Co-authored-by: mmadsen2 <[email protected]> Co-authored-by: Tomasz Węgrzyn <[email protected]> Co-authored-by: Richard Viney <[email protected]> Co-authored-by: gorzas <[email protected]>
* replace `sendAction` with modern callable methods * make easy jquery fixes * Release v2.0.0-beta.0 * Release v2.0.0-beta.1 * removed jquery * yarn upgrade * Update ember-scrollable * Assert and Test compatibility with LTS 3.4 * Officially drop support for node 4 in package.json * bump vertical-collection to v1.0.0-beta.13 * Replace merge with assign (#673) * bump vertical-collection to v1.0.0-beta.13 * replace merge with assign * ensure ember-scrollable updates when rows are updated (#677) * refactor: Remove sendAction() calls (#686) * release 2.0.0-beta.3 * Replace propertyWillChange/propertyDidChange with notifyPropertyChange and add polyfill for < Ember 3.1 (#692) Fixes #660 * update changelog for 2.x * Update ember-in-viewport, ember-wormhole, move ember-composable-helpers to devDependencies (#693) * move ember composable helpers to dev dependencies and bump version see #524 * bump ember wormhole * add ember lts 3.8 to travis * remove ember-native-dom-helpers testing add-on * update multiple table test from 1-x branch to remove native-dom-helpers add-on * [breaking] rename inViewport closure action to enterViewport paving the way to update ember-in-viewport dependency * fixes infinite loop on onScrolledToBottom * remove unused rows property from lt-infinity * bump ember-in-viewport version and refactor lt-infinity component not to use mixin * make lt-body.inViewport event deprecated in favour of enterViewport and test * Drop node 6 support as end of line Apr 2019 (#698) LGTM! Node 8 it latest Maintenance LTS and will be EOL in December * Bump Ember CLI to 3.8 and update other dependencies (#696) * bump ember cli to lts 3.8 update other dev dependencies also apply some ember add-on blueprint changes * fix handlebar lint errors Note - unsure why 'no-inline-styles' config isn’t being applied. For now I’ve manually disabled the rule in applicable templates * disable js no-observer rule * update eslint-plugin-ember-suave and fix lint errors * upgrade ember-mirage (used for dummy app) * upgrade remaining addons * set minimum supported ember version at 2.18 (#700) see community survey results - https://emberjs.com/ember-community-survey-2019/ * migrate to using lerna-changelog (#697) * update changelog [ci skip] * BREAKING drop support for ember 2.18 (#713) * [BREAKING] drop support for ember 2.18 * fix travis - ember release can fail * as we use the compute helper we need to restore ember-composable-helpers as a dependency (#714) * [BREAKING] fixes #444 #662 converts ES6 native classes to ember objects (#701) This is a breaking change as it converts the new Class() syntax to Class.create(). In addition, the only way I could get these to work was to convert the positional arguments to named args in an options hashes: `new Table(columns, rows)` => `Table.create(columns: columns, rows: rows)` `new Row(content, options)` => `Row.create({ content: })` `new Column(opts)` => `Column.create(opts)` We’ve had to replace the native constructor methods with emberObject init methods as per the official docs which should also fix #699. As a result we’ve removed the Ember 2.12 ‘hacks’ which shouldn’t be an issue as we’ve bumped ember version minimum version to 2.18. * Bump to ember cli 3.12 and update dependencies (#716) * bump addons * update ember cli to 3.12 * drop ember-release from allowed travis failures * use yarn not npm and remove unused ember-cli-changelog * update ember changelog * [ci skip] fix dummy app port following update to ember cli 3.12 see ember-cli/ember-cli#8794 * release v2.0.0-beta.4 * [ci-skip] update changelog for beta 4 release * replace volatile computed properties with native getters (#718) * Add a guard to check if scaffolding cells exist * Always render scaffolding row in table header * Test lt-scaffolding-row * Update ember-scrollable version to jquery-less * bump ember-code-snippet for dummy app * update travis to include recent LTS versions of ember * fix lint issues * bump ember cli to 3.16.1 and fix/ warn easy js lint errors disable other rules * bump dependency addons * [ci skip] bump changelog and yuidoc addons * [ci-skip] update changelog * fix deprecation warning for overridden rowspan cp * remove unsafe style attribute warnings * make compute own helper then drop ember-composable-helpers as dependency * Remove debugging line in compute helper * Drop support to Ember 3.4 and 3.5 Related #739 * add testing for ember 3.20 * correct travis * bump addons * v3.16.1...v3.20.0 * bump ember version to 3.20 * fix travis.yml * fix eslintrc * replace one-way-controls with ember-power-select and ember input * convert to angle bracket syntax * fix ember data deprecations * fix ember-power-select commit * replace actions for fn/on non shared table * replace table-shared mixin with base-table component * convert action to fn for base-table actions * replace remainder of action with on/fn * bump dummy app addons * Drop support to Ember 3.4 and 3.5 Related #739 * add testing for ember 3.20 * bump addons * drop ember-suave eslint to fix travis # Conflicts: # package.json # yarn.lock * [ci-skip] update ember version in readme * v3.16.1...v3.20.0 * drop support for ember <3.12 * drop this.get * Released 3.0.0-beta.0 * ci: Add github actions with embroider test scenarios * build: Drop Ember 3.12 support BREAKING CHANGE: Dropped support for Ember 3.12 * Node 12 * fix: Fix linting errors * ci: Allow embroider tests to fail Tests pass locally but not in when running with GitHub actions * docs: Remove Embroider safe and optimized from readme CI fails in GitHub actions * fix: Change to @faker/fakerjs to fix missing avatars * Revert "fix: Change to @faker/fakerjs to fix missing avatars" @faker/fakerjs requires Node 14. This reverts commit 81ba515. Co-authored-by: Donald Wasserman <[email protected]> Co-authored-by: Alex Alvarez <[email protected]> Co-authored-by: Gaurav Munjal <[email protected]> Co-authored-by: Fran Worley <[email protected]> Co-authored-by: Michal Bryxí <[email protected]> Co-authored-by: mmadsen2 <[email protected]> Co-authored-by: Tomasz Węgrzyn <[email protected]> Co-authored-by: Richard Viney <[email protected]> Co-authored-by: gorzas <[email protected]> Co-authored-by: maxwondercorn <[email protected]> Co-authored-by: Robert Wagner <[email protected]>
This is a breaking change as it converts the new Class() syntax to Class.create().
In addition, the only way I could get these to work was to convert the positional arguments to named args in an options hashes:
new Table(columns, rows)
=>Table.create(columns: columns, rows: rows)
new Row(content, options)
=>Row.create({ content: content })
new Column(opts)
=>Column.create(opts)
We’ve had to replace the native constructor methods with emberObject init methods as per the official docs which should also fix #699. As a result we’ve removed the Ember 2.12 ‘hacks’ which shouldn’t be an issue as we’ve bumped ember version minimum version to 2.18.
Clearly there are issues with ember 2.18 that need resolving but @alexander-alvarez what are your thoughts so far?