Comments (13)
Hey folks, great discussion and thanks for contributing! I'm open to switching ui-router to the proposed version scheme.
Background:
UI-Router for Angular has always supported the latest version of Angular, plus one previous version, i.e., we now support ng13 [latest] and ng12 [latest - 1] in ui-router/angular version 9.x. IIRC this mimicked the ng support scheme offered by other libraries at the time. UI-Router has always been built using the previous version of angular (latest - 1) which I believe was intended to provide compatibility with both [latest] and [latest - 1]. However, as I think about it now it doesn't really buy the end user any extra flexibility because it only allows them to upgrade ui-router while remaining on an older version of Angular. More likely they're driving this process from the other direction (upgrading to the latest Angular on a 6 month cycle).
Going forward:
I think going forward, we can drop the 2 version support, and simply target the latest Angular version. I'm also OK with synchronizing the library major version number with the angular version it supports (although I am wary of this on principle because it means the library stops being semver and complicates breaking changes in @uirouter/core
for example).
We will still have the problem of updating the sample apps and angular-hybrid but that process may be made simpler by supporting only a single angular version. (for details on the nasty process of bumping versions, read the notes I took about a year ago when upgrading to ng11). This entire version bumping process would be much simpler in a monorepo. Being able to bump all the versions in a single PR and then publish packages after the fact would be 💯 .
from angular.
As the Monorepo is quite some work which need further planning before jumping in, I started an issue with general informations and current ideas / decisions flying around in other issues.
from angular.
I second this proposition to drop older versions and make a new major version whenever the supported angular major version changes. I also find the proposed synced version number intuitive and declarative.
However, going this direction means an overhead as you need to follow angular ~ every 6 months and as history has shown, most projects are not that active - ui-router included. I think this would be nice to have, as long as there are active maintainers for the project (not necessarily actively developed, but maintained).
from angular.
Sounds reasonable.
Hopefully bumping version of the project is not a very big task as long it's straightforward and not including extending test suite to test again all obsolete version.
So i think community could help with that. So the project wouldn't be abandoned as long as there are projects using it (at least we use it in our app and it's quite hard for now and in closest future to migrate to something else)
from angular.
It would probably also mean, that angular-hybrid, angular, the sample apps and maybe others i forgot to mention would be moving along with the version bumps while core, angularjs and react stay at the current scheme.
from angular.
I've been using ui-router for about 6 years with first angular 1 then with angular 2. I maintain a very large application and sometimes get a few angular versions behind before I have time to upgrade. Having synchronized versioning would be a a great help--I'd no longer have to do the research to find which ui-router version is compatible. So, I put my hand up for this.
from angular.
It makes sense to just target the latest version now, there's not exactly any groundbreaking features to worry about anymore so people won't be too upset about it.
from angular.
I think it's okay to make @uirouter/angular follow angular version but the fact that relies on other libraries such as @uirouter/core and @uirouter/rx would mean that any breaking change would need to align with angular upgrade version which makes me a little bit vary of doing so.
from angular.
@wawyed not sure I understood you correctly.
Do you mean that by aligning to angular versions, you can only make breaking changes when angular is updated to another version?
Or do you mean, that if @uirouter/.. has a breaking change, you would also need to update angular to the latest version in order to get the change?
from angular.
Do you mean that by aligning to angular versions, you can only make breaking changes when angular is updated to another version?
This, yes.
from angular.
Ah, yes.
I've seen some sort oft "soft alignment" (not sure what to call it), it is quite common.
- Project has its own Version number, not e.G. 13, same as Angular 13 (current).
- Project updates to new Major when Angular Major updates
- Project updates to new Major when breaking change, regardless of Angular Major update
It still is aligned somewhat with Angular, as 1 major version only targets 1 Angular major version, but you are free to make necessary breaking changes if needed. However you would need a sort of table in the docs to map which ui-router version is targeting which angular version.
Would that be a better strategy in your opinion?
from angular.
Processing legacy "View Engine" libraries:
- @uirouter/core [module/esm5] (https://github.com/ui-router/core.git)
@wawyed this warning would show indefinitely if /core isn't updated to conform though..
from angular.
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
This does not mean that the issue is invalid. Valid issues
may be reopened.
Thank you for your contributions.
from angular.
Related Issues (20)
- Support Angular 11 HOT 1
- Angular 12 HOT 8
- Future of ui-router? HOT 6
- Error: State 'quizzes' is already defined HOT 2
- uiSref doesn't work unless matching "name". Can't use full path/name. HOT 2
- How to lazy load with chunks HOT 11
- Incompatibility with Angular v13 - removal of `NgModuleFactoryLoader` HOT 1
- [Discussion] Monorepo requirements for ui-router packages HOT 11
- Redirects on local anchor reference HOT 2
- onError not redirecting HOT 1
- Angular v14 support HOT 2
- [bug(?)]: future state declaration's data not passed/merged to/with loaded child state HOT 1
- Angular 15 support HOT 5
- MergeInjector breaks normal Angular DI priority HOT 3
- [question] Lazy loaded module empty after creating
- Breaks when building with Angular 16
- Angular 16 support HOT 9
- Angular 17 support HOT 4
- Incorrect Ui Routing on iOS 17 safari private browsing mode.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angular.