Skip to content

Releases: angular-eslint/angular-eslint

v18.0.1

30 May 09:18
Compare
Choose a tag to compare

18.0.1 (2024-05-30)

🩹 Fixes

  • 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.

❤️ Thank You

v18.0.0

29 May 16:31
Compare
Choose a tag to compare

18.0.0 (2024-05-29)

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:

image


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 latest version of ESLint v9, with the latest default so called "flat config" (eslint.config.js) alongside the latest prerelease of typescript-eslint v8 (https://typescript-eslint.io/blog/announcing-typescript-eslint-v8-beta)
    OR
  • 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.

E.g.
image

Here are example "after" root package.json files from the two scenarios:

1. No eslint devDependency specified before running ng add, use the default ESLint v9 setup. This will use the new angular-eslint and typescript-eslint core packages, so you will see much fewer individual devDependencies added:

image

2. eslint v8 devDependency is specified before running ng-add. Use ESlint 8.57.0 and the traditional @typescript-eslint/ and @angular-eslint/ packages.

image


🚀 Features

  • ⚠️ update to Angular v18, drop support for Angular v17 (#1830)
  • ⚠️ deprecate no-host-metadata-property rule and remove from recommended config of @angular-eslint/eslint-plugin (#1830)
  • ⚠️ drop support for ESLint v7 (#1830)
  • ⚠️ migrate test related utils out of @angular-eslint/utils into new @angular-eslint/test-utils package (#1830)
  • add support for ESLint v9 (maintaining support for the final version of ESLint v8 - 8.57.0). (#1830)
  • add the new angular-eslint core package for use in ESLint v9 workspaces (#1830)
  • generate new configs as the new default flat config with ESLint v9 and typescript-eslint v8 prereleases (#1830)

🩹 Fixes

  • update links from angular.io to angular.dev (#1830)

⚠️ Breaking Changes

  • ⚠️ update to Angular v18, drop support for Angular v17 (#1830)
  • ⚠️ deprecate no-host-metadata-property rule and remove from recommended config of @angular-eslint/eslint-plugin (#1830)
  • ⚠️ drop support for ESLint v7 (#1830)
  • ⚠️ migrate test related utils out of @angular-eslint/utils into new @angular-eslint/test-utils package (#1830)

❤️ Thank You

v17.5.2

28 May 15:15
Compare
Choose a tag to compare

17.5.2 (2024-05-28)

🩹 Fixes

  • update typescript-eslint packages to v7.11.0 (#1846)

v17.5.1

23 May 12:57
Compare
Choose a tag to compare

17.5.1 (2024-05-23)

🩹 Fixes

  • update dependency @angular/compiler to v17.3.10 (#1835)

v17.5.0

22 May 12:06
Compare
Choose a tag to compare

17.5.0 (2024-05-22)

🚀 Features

  • eslint-plugin: [use-lifecycle-interface] add fixer for the rule (#1691)
  • eslint-plugin-template: [i18n] add allowMarkupInContent option (#1795)

🩹 Fixes

  • update dependency @angular/compiler to v17.3.9 (#1821)
  • update typescript-eslint packages to v7.10.0 (#1822)
  • eslint-plugin: [no-input-rename] incorrectly triggers on input transforms (#1809)
  • eslint-plugin-template: [label-has-associated-control] check id's in the for attribute of a label for existence (#1761)

❤️ Thank You

v17.4.1

15 May 10:26
Compare
Choose a tag to compare

17.4.1 (2024-05-15)

🩹 Fixes

  • update dependency @angular/compiler to v17.3.8 (#1797)
  • schematics: ignore nx cache (#1816)

❤️ Thank You

v17.4.0

07 May 12:35
Compare
Choose a tag to compare

17.4.0 (2024-05-07)

🚀 Features

  • eslint-plugin: [no-duplicates-in-metadata-arrays] new rule (#1779)

🩹 Fixes

  • update dependency @angular/compiler to v17.3.4 (#1750)
  • update dependency eslint-scope to v8.0.1 (#1762)
  • update dependency @angular/compiler to v17.3.6 (#1775)
  • update typescript-eslint packages to v7.8.0 (#1786)
  • eslint-plugin: [sort-ngmodule-metadata-arrays] deprecate rule (#1781)
  • eslint-plugin-template: [attributes-order] calculate valueless structural directive start/end positions correctly (#1726)
  • schematics: update schema.json with latest from Angular (a5adbfc)

❤️ Thank You

v17.3.0

15 Mar 21:43
Compare
Choose a tag to compare

17.3.0 (2024-03-15)

🚀 Features

  • eslint-plugin: add consistent-component-styles rule (#1710)
  • eslint-plugin: add prefer-standalone rule for checking all components, directives and pipes (#1627)

🩹 Fixes

  • update dependency tmp to v0.2.3 (#1734)
  • migrate to nx 18 (#1732)
  • update dependency ignore to v5.3.1 (#1733)
  • update dependency eslint to v8.57.0 (#1739)
  • update typescript-eslint packages to v7 (major) (#1742)
  • update dependency @angular/compiler to v17.3.0 (#1713)
  • output declaration files in all packages (#1724)
  • eslint-plugin-template: [eqeqeq] calculate offset to find true absolute source span (#1709)

❤️ Thank You

v17.2.1

20 Jan 19:49
Compare
Choose a tag to compare

17.2.1 (2024-01-20)

🩹 Fixes

  • update typescript-eslint packages to v6.18.1 (#1685)
  • update typescript-eslint packages to v6.19.0 (#1703)
  • update dependency @angular/compiler to v17.1.0 (#1689)
  • eslint-plugin-template: [no-call-expression] False negative with the new control flow syntax (#1677)
  • eslint-plugin-template: handle i18n tags on structural direcives (#1662)

❤️ Thank You

v17.2.0

06 Jan 20:33
Compare
Choose a tag to compare

17.2.0 (2024-01-06)

🚀 Features

  • eslint-plugin: [no-async-lifecycle-method] add rule (#1643)

🩹 Fixes

  • update dependency eslint to v8.56.0 (#1657)
  • update typescript-eslint packages to v6.18.0 (#1682)
  • update dependency @angular/compiler to v17.0.8 (#1618)
  • update dependency eslint-scope to v8 (#1683)
  • eslint-plugin-template: fix control flow syntax with i18n rule (#1656)

❤️ Thank You