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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃殌 [FEATURE]: List of Breaking Changes planned for V4 #827

Open
16 of 18 tasks
markwhitfeld opened this issue Feb 9, 2019 · 14 comments
Open
16 of 18 tasks

馃殌 [FEATURE]: List of Breaking Changes planned for V4 #827

markwhitfeld opened this issue Feb 9, 2019 · 14 comments
Labels
discussion An issue that discusses design decisions. not an issue An issue logged that doesn't require fixing (maybe just a question) on hold
Milestone

Comments

@markwhitfeld
Copy link
Member

markwhitfeld commented Feb 9, 2019

NGXS follows semantic versioning. As a result we will change the major version number when breaking changes are introduced. Many developers seem to have the idea that upping the major version number is a good thing because it shows progress and is a bit of a marketing opportunity. When following a semantic versioning scheme increasing the version number means that breaking changes have happened, which is not such a positive thing.
Obviously making breaking changes for critical issues should not be avoided but when there are smaller annoyances that need to be remedied then they should be collected together and released together in a single major version update.
This is one such list:

... still going to add some more to this list, saving the issue for now.

Much of this list has been sitting in my head for months. It feels good to get it out! ;-)

Please raise additional proposals for breaking changes in the comments and I will add them to this list if they are something we would like to introduce for v4.

@markwhitfeld
Copy link
Member Author

markwhitfeld commented Feb 25, 2019

@eranshmil :

Every time I want to install the devtools plugin in a project, I write NgxsDevtoolsPluginModule, instead of NgxsReduxDevtoolsPluginModule.
I suggest that we create an alias right now and in version 4, deprecate the old symbol.

We will be releasing our own dev tool in time, so I'm quite glad that we did not use NgxsDevtoolsPluginModule 馃槈

@ahnpnl
Copy link

ahnpnl commented Mar 11, 2019

Hi, are there any chances that @Dispatch can be moved from ngxs-labs into this main repo ? Personally I find dispatch is a core functionality like @Select and @Selector so I think it deserves to be in together with @Select and other decorators here.

@ngxs ngxs deleted a comment from eranshmil May 14, 2019
@ngxs ngxs deleted a comment from markwhitfeld May 14, 2019
@ngxs ngxs deleted a comment from markwhitfeld May 14, 2019
@arturovt arturovt added discussion An issue that discusses design decisions. not an issue An issue logged that doesn't require fixing (maybe just a question) labels Oct 13, 2019
@splincode splincode modified the milestones: v3.6.0, v.4.0.0 Oct 13, 2019
@splincode splincode changed the title List of Breaking Changes planned for V4 馃殌[FEATURE]: List of Breaking Changes planned for V4 Nov 4, 2019
@splincode
Copy link
Member

splincode commented Dec 6, 2019

@ngxs ngxs deleted a comment from arturovt Dec 6, 2019
@ngxs ngxs deleted a comment from marcus-sa Dec 6, 2019
@DaSchTour
Copy link

I would be great if typesafety would be improved.

  • dispatch should not take any but there should be an interface defined for actions
  • ngxsForms could provide an (generic) interface for state, that contains also the different states of status

That's the two things I recall now, but I general it feels like there is a lot of any inside NGXS.

@splincode splincode changed the title 馃殌[FEATURE]: List of Breaking Changes planned for V4 馃殌 [FEATURE]: List of Breaking Changes planned for V4 Jul 1, 2020
@splincode
Copy link
Member

@markwhitfeld @arturovt what do you think about skip VE? and older Angular versions?

@markwhitfeld
Copy link
Member Author

In v4 we could compile for the new Ivy lib format (being introduced in v12) which will drop support for ViewEngine.
We could maintain ViewEngine and backwards compatible support by publishing a @ngxs/store/viewengine subpackage with the old library format.

@markwhitfeld
Copy link
Member Author

We should also look at flattening the .d.ts files published by the lib so that deep imports are not allowed.
Before doing this we need to make sure that we are exporting all types that are typically used.
Doing this may break projects referencing internal types (hence this should be part of v4).
Here is a discussion, and a useful comment on how this can be achieved:
microsoft/TypeScript#4433 (comment)

@irowbin
Copy link

irowbin commented Jan 17, 2022

Almost after 2 years of this post, is it still on plan or already in dev? 馃 Looks like it is on hold state. 馃槙

//cc @markwhitfeld @splincode

@markwhitfeld
Copy link
Member Author

Hi @irowbin. Yes, and no馃槈.
A prerequisite for these changes is that we get schematics integrated into the @ngxs/store library so that it can facilitate a smooth transition to v4. This initiative has been kicked off about 4 times already, but due to all the disruptions of COVID, each time there has been something that has come up that with the primary contributor to the schematics initiative (such are the perils of Open Source and leveraging people's spare capacity). This initiative was kicked off again in December, I will follow up with the team to see where we are at with this. 馃憤
Once schematics is in, it will just be a few days of dev to get this all done.

@rbrzoska
Copy link

When can we expect v4 ?

@markwhitfeld
Copy link
Member Author

Hi @rbrzoska
As mentioned in my comment above the prerequisite for this is to have schematics built into the lib to facilitate easier migration to v4. The contributors to this effort have not gotten far with this, so if you do know anyone that would love to help out in this regard, please let me know.

@zip-fa
Copy link

zip-fa commented Feb 26, 2023

Hi. How about implementing newly arrived signals?

@destus90
Copy link
Contributor

destus90 commented Mar 2, 2023

Seems like with Angular@16 we will not be able to use this library until v4 is released because of this https://github.com/angular/angular/releases/tag/16.0.0-next.0

Angular Compatibility Compiler (ngcc) has been removed and as a result Angular View Engine libraries will no longer work

@markwhitfeld
Copy link
Member Author

markwhitfeld commented Mar 2, 2023

@zip-fa Support for signals will be added before v4. There is no prerequisite of any breaking changes for this. 馃憤

@destus90 We will be compiling for the Ivy format in the next minor release (it does not require v4). This would have been released a while back, but is being blocked by a TypeScript bug. We are looking at ways to detect the scenarios that would cause a user to experience this bug because it is not receiving much attention from the TS team. See this comment for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion An issue that discusses design decisions. not an issue An issue logged that doesn't require fixing (maybe just a question) on hold
Projects
None yet
Development

No branches or pull requests

9 participants