move typescript-eslint packages to peerDeps, consistently allow v7 and v8 (#1856)
As part of the v18 release, support for typescript-eslint v8 prereleases was added. For authors of custom rules that consume the @angular-eslint/utils or new @angular-eslint/test-utils packages, the initial way this was set up with dependencies could cause type conflicts between v7 and v8. To resolve this the @angular-eslint/* packages now depend on @typescript-eslint/* packages via a peerDependency which permits both v7 and v8 prereleases.
As always we recommend that you update your existing workspaces by using ng update as we provide some helpful schematics to help migrate your workspaces to the latest and greatest. Running the following will update Angular, the Angular CLI and angular-eslint together:
ng update @angular/core @angular/cli @angular-eslint/schematics
NOTE: There will not be any migration of your setup to ESLint v9 or flat configs for existing workspaces in v18.
The ESLint team are working on auto-migrate tooling which we will leverage in an opt-in conversion generator once it is ready in a v18 minor release and consider full auto-migration in v19 in six months (aligned with Angular major release schedule as always).
If you want to manually migrate your workspace to use ESLint v9, typescript-eslint v8, and flat config you are welcome to and it should be fully supported in v18.
If you are going to attempt this, we strongly recommended creating a fresh Angular v18 workspace and adding angular-eslint to it per the instructions below and then copying the dependencies and configs that it applies into your existing workspace
Here is an example of what the new flat config with angular-eslint v18, typescript-eslint v8, and ESLint v9 looks like:
Adding to New Angular Workspaces in v18
There is a decision to be made when adding to new Angular v18 workspaces.
Just as before, if you want to add angular-eslint to a workspace with no existing lint setup, you leverage ng add with the @angular-eslint/schematics package.
The difference is in v18, you have the option of using either:
the final stable version of ESLint v8, with the legacy so called "eslintrc" config (.eslintrc.json) and the latest stable version of typescript-eslint v7
The ESLint v9 option is the default scenario if you simply run ng add with no other changes. If you want to signal to angular-eslint that you instead want to go with the ESLint v8 option, simply add an eslint v8 (the exact version does not matter, it just needs to be less than 9) devDependency in your package.json before running the ng add. That's it - you don't even need to install the eslint package, it just needs to be listed there.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/GoogleCloudPlatform/fda-mystudies/network/alerts).
Bumps braces to 3.0.3 and updates ancestor dependencies braces, webpack, @angular-devkit/build-angular and @angular-eslint/builder. These dependencies need to be updated together.
Updates
braces
from 3.0.2 to 3.0.3Commits
74b2db2
3.0.388f1429
update eslint. lint, fix unit tests.415d660
Snyk js braces 6838727 (#40)190510f
fix tests, skip 1 test in test/braces.expand716eb9f
readme bumpa5851e5
Merge pull request #37 from coderaiser/fix/vulnerability2092bd1
feature: braces: add maxSymbols (https://github.com/micromatch/braces/issues/...9f5b4cf
fix: vulnerability (https://security.snyk.io/vuln/SNYK-JS-BRACES-6838727)98414f9
remove funding file665ab5d
update keepEscaping doc (#27)Updates
webpack
from 4.42.0 to 5.91.0Release notes
Sourced from webpack's releases.
... (truncated)
Commits
60daca5
chore(release): 5.91.08dad9ce
chore(deps-dev): bump@babel/preset-react
from 7.23.3 to 7.24.1a3229f9
chore(deps-dev): bump@babel/core
from 7.24.0 to 7.24.140c2e44
chore(deps-dev): bump@types/node
from 20.11.29 to 20.11.30a04faba
chore(deps-dev): bump memfs from 4.7.7 to 4.8.08f22221
chore(deps): bump es-module-lexer from 1.4.1 to 1.4.28df6912
chore(deps): bump es-module-lexer from 1.4.1 to 1.4.2711c618
chore(deps-dev): bump memfs from 4.7.7 to 4.8.0c462bb3
chore(deps-dev): bump@types/node
from 20.11.29 to 20.11.30f0d3e3e
chore(deps-dev): bump@babel/preset-react
from 7.23.3 to 7.24.1Maintainer changes
This version was pushed to npm by evilebottnawi, a new releaser for webpack since your current version.
Updates
@angular-devkit/build-angular
from 0.901.13 to 18.0.3Release notes
Sourced from
@angular-devkit/build-angular
's releases.... (truncated)
Changelog
Sourced from
@angular-devkit/build-angular
's changelog.... (truncated)
Commits
Updates
@angular-eslint/builder
from 0.0.1-alpha.32 to 18.0.1Release notes
Sourced from
@angular-eslint/builder
's releases.... (truncated)
Changelog
Sourced from
@angular-eslint/builder
's changelog.... (truncated)
Commits
f36d027
chore(release): publish 18.0.1fd69e8e
fix: move typescript-eslint packages to peerDeps, consistently allow v7 and v...c8dff2f
chore(release): publish 18.0.07c84ab7
feat!: angular-eslint v18 (#1830)05e8cf9
chore(release): publish 17.5.2b2b0700
fix: update typescript-eslint packages to v7.11.0 (#1846)82b1b7c
chore(release): publish 17.5.14efe5e9
chore(release): publish 17.5.082e28c7
fix: update typescript-eslint packages to v7.10.0 (#1822)5b7f1f3
chore(release): publish 17.4.1Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show