nebular icon indicating copy to clipboard operation
nebular copied to clipboard

feat: update to angular16

Open Eslam-Gaber645 opened this issue 1 year ago • 5 comments

Please read and mark the following check list before creating a pull request:

Short description of what this resolves:

feat: update to angular 16

  • update typescript and tslib
  • update eslint and eslint plugins
  • update zone.js and angular packages
  • update 'peerDependencies' versions in @nebular/* packages
  • migrate playground, packages-smoke and @nebular packages to angular 16

fix(theme/styles): add a space after '+' operator

  • fix the warning that was showing due to 'strict unary operators'

fix(NbSelectWithAutocompleteComponent/spec): fix test spec

  • fix fakeAsync tests
  • fix binding properties name for 'nb-select-with-autocomplete'

build(gulp): remove incorrect 'typeRoots' from tsconfig

fix(schematics): fix project schematics issues

  • fix broken schematics test specs
  • use getAppModulePath util from '@schematics/angular' instead of defining our own
  • use runSchematic instead of runSchematicAsync method because it is deprecated
  • use runExternalSchematic instead of runExternalSchematicAsync method because it is deprecated

refactor(playground): fix linting issues

  • change components selectors to start with 'npg' prefix instead of 'nb'
  • use @HostBinding decorator instead of the host property
  • fix negated async pipes
  • ~~remove duplicated routes in 'playground-routing.module'~~
  • format unformatted code with prettier

refactor(framework/theme): fix linting issues

  • use @HostBinding decorator instead of the host property
  • use 'eslint-disable-next-line' comment to disable some rules without breaking changes
  • format unformatted code with prettier

refactor(framework/auth): refactor to pass linter

  • use strict equality instead of loose equality in the component's template
  • format unformatted code with prettier

refactor(docs): refactor to pass linter

  • use strict equality instead of loose equality in the component's template
  • format unformatted code with prettier
  • remove unnecessary @input alias
  • fix un-safe takeUntil 'rxjs'
  • add missing components name suffixes
  • fix shadow variables '@typescript-eslint/no-shadow'

Eslam-Gaber645 avatar Jul 02 '23 16:07 Eslam-Gaber645

@elupanov @azaiko-akveo I was wondering if someone could give me feedback on this PR.

Eslam-Gaber645 avatar Jul 05 '23 18:07 Eslam-Gaber645

Will there be any comments?

Voldemat avatar Sep 15 '23 13:09 Voldemat

Will there be any comments?

@denStrigo @sashaqred

Eslam-Gaber645 avatar Sep 18 '23 22:09 Eslam-Gaber645

Hi.

I'm not an active maintainer here, just occasionally fixing some bugs.

The only comment I can give is that there are a loooooot of changes: 837 files and 38k of changed lines. Also, not all of the changes are about angular update. It will be hard to review that. Actually, I think that it'll be simpler to perform such an update manually from scratch than to review 38k+ changes.

I suggest you try a workaround for installing nebular with angular v16: use overrides in package.json https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides. So if npm is throwing errors after you install nebular with the latest angular, try to override nebular's dependencies. Like:

  "overrides": {
    "@nebular/theme": {
      "@angular/core": "^16.0.0"
    }
  }

I hope that this will help.

sashaqred avatar Sep 21 '23 13:09 sashaqred

I've tried overrides in my project, such config works great

  "overrides": {
    "@nebular/auth": {
      "@angular/common": "$@angular/common",
      "@angular/core": "$@angular/core",
      "@angular/forms": "$@angular/forms",
      "@angular/router": "$@angular/router"
    },
    "@nebular/security": {
      "@angular/common": "$@angular/common",
      "@angular/core": "$@angular/core",
      "@angular/router": "$@angular/router"
    },
    "@nebular/theme": {
      "@angular/animations": "$@angular/animations",
      "@angular/cdk": "$@angular/cdk",
      "@angular/common": "$@angular/common",
      "@angular/core": "$@angular/core",
      "@angular/router": "$@angular/router"
    }
  },

sashaqred avatar Sep 21 '23 17:09 sashaqred