To a certain extent, I can understand the reasons behind locking @angular/* dependencies' versions (though, I wonder why not declaring ranged dependencied, instead). But could someone explain why is rxjs fixed? It's been targeting 5.1.1, a months old release, since Angular 2.4.8 came out. This is especially intriguing since Angular itself _does not_ lock its rxjs dependency version (it fact, it doesn't for any of its dependecies).
The reason I'm asking this is because today, I stumbled upon an issue while using rxjs related to fromPromise input type - which was solved, merged and released in latest 5.4.0. I upgraded my local rxjs version and, while everything worked just fine, npm expectedly complains about a missing peer dependency.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
Is there something in ionic that would justify forcing this particular version?
Hello, good question! In the past, we did not have all of our deps fixed, but this began to create issues around the latest releases of things having breaking changes or bugs that caused apps created with the ionic-cli to break right out of the box (obviously an issue for developer experience). Because of this, we decided to pin all of our dependencies to specific versions that we had done all of our testing with so that we could be sure that an out of the box ionic app worked as expected. So, while this meant that we would not always be on the latest and greatest by default, we were able to ensure a working experience. Now that things have stabilized in the Angular world, we have been updating dependencies faster and will continue to make sure we keep our deps as close to the latest as possible to get all the latest bug fixes in these libs.
@jgw96 Hello and thanks for taking the time to explain me this!
I understand your points and was expecting something along those lines - but, to be honest, you didn't really answer my question which was:
Is there something in
ionicthat would justify forcing this particular version?
Also,
In the past, we did not have all of our deps fixed
You still don't. zonejs targets ^0.8.10.
It seems to me that, in this case, locking is more like a "conceptual" practice rather than answering to a practical need. A practice that is hindering development for Ionic users.
@jgw96 Sorry to insist on this, but today this bit me once again. A bug in timeout operator, that was fixed in April and included in a May release of rxjs, had me scratching my head the whole morning.
You should _really_ consider unlocking versions for this case. Or, at the very least, depend on a more recent one?
Also, I honestly don't understand why you closed the issue, since you didn't address the problem and you haven't fully answered the questions that it brought.
@jgw96 Is there any update here? Can't you at lock down to rxjs: ~5.4.0 so that minor patches can be consumed? Or at the very minimum remove the peer dependency so that builds do not break when using a version of rxjs other than 5.4.0.
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.
Most helpful comment
@jgw96 Sorry to insist on this, but today this bit me once again. A bug in
timeoutoperator, that was fixed in April and included in a May release ofrxjs, had me scratching my head the whole morning.You should _really_ consider unlocking versions for this case. Or, at the very least, depend on a more recent one?
Also, I honestly don't understand why you closed the issue, since you didn't address the problem and you haven't fully answered the questions that it brought.