cibernox / ember-power-select

The extensible select component built for ember.
http://www.ember-power-select.com
Other
540 stars 377 forks source link

Make compatible with ember-concurrency 3.1.1 #1855

Closed bmaehr closed 1 month ago

bmaehr commented 1 month ago

Make compatible with ember-concurrency 3.1.1

Rant: The dependency hell of Ember libraries is the biggest I have ever seen. I just wanted to update ember-power-select today from 6.0.1 to 8.2.0 and broke up this journey after 8 hours feeling like Asterix with Permit A 38 ( https://asterix.fandom.com/wiki/The_Place_That_Sends_You_Mad ).

mkszepp commented 1 month ago

There is not planned to introduce ember-concurrency support v3.x. As ember-concurrency v4 is compatible with all our supported versions (starting with v3.28), there is no reason to support older version. The upgrade to v4 is simple because there is only one braking change (see doc).

If you like to use v3.x of ember-concurrency you need to use latest v7.x of EPS & EBD. If you have a issue with other addon which still doesn't support ember-concurrency v4 you need to open a PR in other repository or making a fork if there is not anymore maintained.

You need to understand that holding maximum support of dependency packages is always more maintainace cost for all addon maintainers. For this reason in general all packages (not only ember-addons) do drop support dependency packages supports on major updates

bmaehr commented 1 month ago

"The upgrade to v4 is simple". You must be joking. As I said I spent just 8 hours upgrading it without success.

For example ember-bootstrap doesn't support ember-concurrency v4.

mkszepp commented 1 month ago

If a addon is atm not supporting the version, yon can try to make a override inside you app to force latest

In general ember bootstrap isn't supporting right now latest power select.

I think you need to stay in v7 and open a PR to get support for power v8 with bootstrap and ember concurrency

bmaehr commented 1 month ago

@mkszepp Thank you for your suggestion about doing an override. I'm not sure if it is possible, it seams to be an explicit check when loading the component, at least I don't know how.

I'm developer (a very experienced) but not a plugin developer. I usually develop Java and have used (additionally to Ember) Frontend frameworks like JSP, Struts, vaadin, Angular but never had such a hassle like with Ember during the last 6 years. For a developer of plugins all these special options and technical settings might to be clear, for a developer who just want's to use the components it is a pain in the ass. And even if I really like your component - because of the Ember ecosystem with so much hassle on upgrading components, incompatibilities and so on, I will never again use Ember in a project. This way Ember might stay interesting for some playground projects but not for real business.

"In general ember bootstrap isn't supporting right now latest power select." Why should ember-bootstrap need to "support" ember-power-select?

mkszepp commented 1 month ago

Using overrides depends on you package manager and npm version if its supported or not.

I dont know which packages you are using exaclty but for ember bootstrap there is also a package for power select, if you dont use this so its already easier to use power select v8

If you have only a issue with ember-concurrency you can try to use overrides in package.json

For npm looks like:

"overrides": {
    "ember-concurrency": "^4.0.0"
 }

Btw: If you need any help, you can join the discord channel of emberjs and post under help your issue, so the community can help you. https://discord.gg/emberjs

mkszepp commented 1 month ago

Btw... ember is very super for business... our company is using ember since begin and we make alsp new apps on ember, because the back compatibily and also migration to next major is easier as in other tools and can be done step by step

bmaehr commented 1 month ago

we make alsp new apps on ember

I think that might be just the kind of apps I meant as playground apps. The Ember UI of my project has more than 50k lines of code (without tests) and the development time for the UI was between 6 and 8 man years and the application is designed to run 20+ years. That is the size of applications I'm talking about.