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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future of ui-router? #934

Closed
sebastian-zarzycki-apzumi opened this issue Jul 14, 2021 · 6 comments
Closed

Future of ui-router? #934

sebastian-zarzycki-apzumi opened this issue Jul 14, 2021 · 6 comments
Labels

Comments

@sebastian-zarzycki-apzumi

Is this project still alive? For quite some time, the great @christopherthielen has been introducing updates and changes, keeping it up to date and adding functionality. But there's no update for Angular 12 for a few months now, which is concerning.

In the meantime, there are more and more solutions that tend to base on Angular's default router - Ionic, server side rendering, etc. This alienates ui-router even more in Angular world, despite ui-router being a vastly superior technology. Are there / were there any plans to reach out to Angular team and attempt to merge these codebases somehow? I fear it's the only long-term solution for ui-router to survive.

@christopherthielen
Copy link
Member

Hi @sebastian-zarzycki-es

I've been avoiding calling the ui-router project dead, but it's effectively in maintenance mode.

Personally, I still use ui-router at my day job, but only the AngularJS and React modules, not Angular (which is part of the reason why we haven't seen a release targeting Angular 12). I would be happy to merge a PR supporting Angular 12 but this does involve some no-obvious steps such as updating the angular-hybrid modules, and bumping the Angular version of the sample apps, etc.

I have no plans to engage the Angular team. They showed no interest in leveraging ui-router code or concepts in the early days of Angular, and I don't see any reason they would be interested in doing that now. I think that would be a losing battle, and not one that I have any interest in championing.

I've been solo on maintenance of the overall ui-router suite for many years now. We added @wawyed as a maintainer of this particular library (@uirouter/angular) and that has been great! I don't want to see the project come to a complete end, but I also am not motivated to continue investing my personal time, beyond basic fixes. What this project really needs, if it is to continue, is the addition of new maintainers.

I still have thoughts about moving the suite of projects forward (were it to continue) including:

  • lerna and monorepo for all the repos (core, angular, angularjs, react, sticky-states, visualizer, etc). This would help illuminate the dependencies between packages.
  • first class plugin api for url handlers (for example extracting the Angular or AngularJS url handling)
  • first class plugin api for view renderers
  • first class hybrid framework support (see the core-v7 branches). This would eliminate most of the need for the separate angular-hybrid and react-hybrid modules.

Most of these bullets are intended to demystify some parts of the uirouter suite and lower the barrier to entry, perhaps helping to attract more collaborators.

@dereekb
Copy link

dereekb commented Jul 15, 2021

I've been using UI-Router for the past several years and would definitely be effected if this repo died. I don't have much repo maintenance experience, but would be be down to help in some limited capacity.

It does seems like this project is plenty mature though. It sounds like the main issue is making it easier to push updates and testing cross-repo changes since there are a number of them.

Is there a way to start small on the monorepo and go from there?

@christopherthielen
Copy link
Member

Is there a way to start small on the monorepo and go from there?

A proof of concept monorepo would be helpful. To get started, we could import the various ui-router repositories into a main monorepo repository using git subtree or git submodule. The proof of concept should allow all the packages to be built and tested.

Some things to be considered (off the top of my head):

  • Unit Tests (do we run all tests, or only tests for changed packages, etc)
  • Downstream Tests (@uirouter/core is built into @uirouter/angularjs/angular/react and then those package's tests are run. Those packages are then built into their respective sample applications and the sample apps' tests are run)
  • Releases (Currently I release packages locally from my laptop, but this should be done by github actions, perhaps using something like release-please from google)
  • Migration of existing issues and/or pulls
  • How to triage incoming issues to respective packages
  • Docs that explain how to navigate the monorepo for new contributors

We recently migrated my day-job's repo to yarn workspaces and lerna, so I have a fairly fresh idea of what needs to happen, but there is simply a lot of housekeeping to do. In my experience, these kinds of migrations can be a bit painful to drag across the line.

@ngehlert ngehlert mentioned this issue Aug 3, 2021
@dimmreaper
Copy link

Chris,

I just want to say how much I appreciate the effort you've put in to make UI-Router what it is. I've used it for many years, both on AngularJS projects and Angular projects. A very big thanks to you and the other contributors.

Hopefully more maintainers (and not just one) show up to keep this going, and take the weight off of you.

I would love to help, but don't want to volunteer hastily. I'll think about it.

gkalpak added a commit to angular/ngcc-validation that referenced this issue Sep 30, 2021
The removal of the deprecated `NgModuleFactoryLoader` from
`@angular/core` (in (angular/angular@361273fad5030c900c83) breaks the
`@uirouter/angular` package (and packages that depend on it). See
ui-router/angular#949 for more details.

Since it is not clear whether the issue will be fixed in
`@uirouter/angular` (based on the discussion in ui-router/angular#934),
this commit adds affected projects to the list of failing projects to
unblock updating to the latest framework version.
gkalpak added a commit to angular/ngcc-validation that referenced this issue Sep 30, 2021
The removal of the deprecated `NgModuleFactoryLoader` from
`@angular/core` (in (angular/angular@361273fad5030c900c83) breaks the
`@uirouter/angular` package (and packages that depend on it). See
ui-router/angular#949 for more details.

Since it is not clear whether the issue will be fixed in
`@uirouter/angular` (based on the discussion in ui-router/angular#934),
this commit adds affected projects to the list of failing projects to
unblock updating to the latest framework version.

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: George Kalpakas <kalpakas.g@gmail.com>
@stale
Copy link

stale bot commented Apr 16, 2022

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.

@stale stale bot added the stale label Apr 16, 2022
@stale stale bot closed this as completed Apr 30, 2022
@Martin-Eckleben
Copy link

Martin-Eckleben commented Sep 9, 2022

Thank you @christopherthielen for the huge amount of work that you donated to the world!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants