Changelog
Release (2025-06-07)
ember-template-lint 7.9.0 (minor)
:rocket: Enhancement
ember-template-lint
- #3276 performance: process files in main thread too (for workers case) (@lifeart)
:bug: Bug Fix
ember-template-lint
- #3290 Fix the ability to specify checkHbsTemplateLiterals: false in the template-lintrc to opt in to disable parsing js and ts (@NullVoxPopuli)
Committers: 2
Release (2025-06-02)
ember-template-lint 7.8.1 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-06-02)
ember-template-lint 7.8.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
:house: Internal
ember-template-lint
- #3232 [performance] bundle bin, worker and index files (@lifeart)
Committers: 2
Release (2025-05-06)
ember-template-lint 7.7.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
ember-template-lint
- #3249 bugfix: no-nested-interactive - improve summary handing inside details (@lifeart)
- #3246 improve no-bare-strings rule config (@lifeart)
Committers: 3
Release (2025-05-05)
ember-template-lint 7.6.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
ember-template-lint
- #3239 fix [no-bare-strings] regression (@lifeart)
- #3240 fix: no-this-in-template-only-components should early exit in gjs/gts (skipping this lint) (@lifeart)
:memo: Documentation
:house: Internal
Committers: 2
Release (2025-05-04)
ember-template-lint 7.5.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
Committers: 2
Release (2025-05-03)
ember-template-lint 7.4.1 (patch)
:bug: Bug Fix
ember-template-lint
- #2867 [BUGFIX] Update no-redundant-role: Allow combobox ARIA role (@samridhivig)
- #2475 Add test and implementation for plugin using
exports
in package.json
. (@rwjblue)
- #3212 fix: Crash in block indentation auto-fixer (@lifeart)
Committers: 3
Release (2025-05-03)
ember-template-lint 7.4.0 (minor)
:rocket: Enhancement
Committers: 2
Release (2025-05-03)
ember-template-lint 7.3.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
Committers: 3
Release (2025-04-25)
ember-template-lint 7.2.0 (minor)
:rocket: Enhancement
ember-template-lint
- #3183 Closes #2969 allow no-invalid-link-text to be configured for custom link… (@lifeart)
:bug: Bug Fix
Committers: 1
Release (2025-04-25)
ember-template-lint 7.1.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
Committers: 1
Release (2025-04-16)
ember-template-lint 7.0.8 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-04-13)
ember-template-lint 7.0.7 (patch)
:bug: Bug Fix
ember-template-lint
- #3163 [js, ts] Fix columnOffset of embedded 'backtick' template from 'return' (@robinborst95)
Committers: 1
Release (2025-04-11)
ember-template-lint 7.0.6 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-04-10)
ember-template-lint 7.0.5 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-04-04)
ember-template-lint 7.0.4 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-04-03)
ember-template-lint 7.0.3 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-03-31)
ember-template-lint 7.0.2 (patch)
:bug: Bug Fix
Committers: 1
Release (2025-03-05)
ember-template-lint 7.0.1 (patch)
:bug: Bug Fix
ember-template-lint
- #3133 Correctly handled file extensions like .d.ts and .css.d.ts (@ijlee2)
Committers: 1
Release (2025-02-28)
ember-template-lint 7.0.0 (major)
:boom: Breaking Change
ember-template-lint
- #3021 Remove template-imports, add content-tag, drop support for the hbs template literals from ember-template-imports (keeping support for ember-cli-htmlbars) (@NullVoxPopuli)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
Committers: 3
Release (2025-01-17)
ember-template-lint 6.1.0 (minor)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
:house: Internal
Committers: 4
v6.0.0 (2024-03-29)
:boom: Breaking Change
- #3029 Enable more
recommended
rules: no-action-on-submit-button
, no-at-ember-render-modifiers
, no-builtin-form-components
, no-unnecessary-curly-parens
, no-unnecessary-curly-strings
, simple-modifiers
(@bmish)
- #3031 Replace
4-x-recommended
config with 5-x-recommended
(@bmish)
- #3023 Drop support for Node 14, 16, 19 (@Techn1x)
- #2913 Add additional elements to
DOCUMENT_STRUCTURE_ROLES
for no-invalid-role
rule (@mrloop)
- #2729 Add
param
to obsolete list in no-obsolete-elements
rule (@geneukum)
:house: Internal
Committers: 4
Tracking issue: https://github.com/ember-template-lint/ember-template-lint/issues/2712
v6.0.0-alpha.0 (2024-02-15)
:boom: Breaking Change
- #3029 Enable more
recommended
rules: no-action-on-submit-button
, no-at-ember-render-modifiers
, no-builtin-form-components
, no-unnecessary-curly-parens
, no-unnecessary-curly-strings
, simple-modifiers
(@bmish)
- #3031 Replace
4-x-recommended
config with 5-x-recommended
(@bmish)
- #3023 Drop support for Node 14, 16, 19 (@Techn1x)
- #2913 Add additional elements to
DOCUMENT_STRUCTURE_ROLES
for no-invalid-role
rule (@mrloop)
- #2729 Add
param
to obsolete list in no-obsolete-elements
rule (@geneukum)
:house: Internal
Committers: 4
v5.13.0 (2023-11-21)
:rocket: Enhancement
Committers: 1
v5.12.0 (2023-11-04)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
Committers: 4
v5.11.2 (2023-08-12)
:bug: Bug Fix
- #2954 Don't require redundant role for
<img alt="" />
in require-valid-alt-text
rule (@HeroicEric)
- #2955 Update @lint-todo/utils to 3.1.1 (@Techn1x)
Committers: 2
v5.11.1 (2023-07-19)
:bug: Bug Fix
Committers: 1
v5.11.0 (2023-06-27)
:rocket: Enhancement
Committers: 1
v5.10.3 (2023-06-17)
:bug: Bug Fix
Committers: 1
v5.10.2 (2023-06-16)
:bug: Bug Fix
- #2914 Fix
aria-query
related crash in no-unsupported-role-attributes
rule (@bmish)
- #2907 Fix location reporting in
block-indentation
rule (@judithhinlung)
:house: Internal
Committers: 3
v5.10.1 (2023-06-07)
:bug: Bug Fix
Committers: 3
v5.10.0 (2023-05-25)
:rocket: Enhancement
- #2895 Add autofixer to
no-unnecessary-curly-strings
rule (@lin-ll)
- #2894 Add autofixer to
no-trailing-spaces
rule (@lin-ll)
Committers: 1
v5.9.0 (2023-05-24)
:rocket: Enhancement
- #2754 Add options for different
html
/ hbs
quote styles in quotes
rule (@robclancy)
Committers: 1
v5.8.0 (2023-05-23)
:rocket: Enhancement
:bug: Bug Fix
Committers: 2
v5.7.3 (2023-04-28)
:bug: Bug Fix
- #2339 Convert path to URL before import of config/plugin for Windows support (@lifeart)
Committers: 1
v5.7.2 (2023-03-28)
:bug: Bug Fix
Committers: 1
v5.7.1 (2023-03-16)
:bug: Bug Fix
Committers: 2
v5.7.0 (2023-03-15)
:bug: Bug Fix
Committers: 3
v5.6.0 (2023-02-24)
:rocket: Enhancement
- #2818 Add
additionalNonSemanticTags
option to require-presentational-children
rule (@Techn1x)
:bug: Bug Fix
- #2819 Allow intermediate presentation role before context in
require-context-role
rule (@Techn1x)
- #2820 Allow presentation role for
li
in no-invalid-role
rule (@Techn1x)
Committers: 1
v5.5.1 (2023-02-10)
:bug: Bug Fix
- #2802 Rename
no-unnecessary-curly-literals
rule to no-unnecessary-curly-strings
(@bmish)
Committers: 1
v5.5.0 (2023-02-08)
:rocket: Enhancement
Committers: 1
v5.4.0 (2023-02-08)
:rocket: Enhancement
Committers: 1
v5.3.3 (2023-01-27)
:bug: Bug Fix
- #2780 Ignore
{{(unique-id)}}
helper variation in no-duplicate-id
rule (@lifeart)
Committers: 1
v5.3.2 (2023-01-22)
:bug: Bug Fix
Committers: 1
v5.3.1 (2023-01-06)
:bug: Bug Fix
- #2765 Throw the more-helpful, original exception when encountering an ESM plugin/config loading error (@jsturgis)
:memo: Documentation
- #2760 Document how to write rule test cases for fatal errors (@bmish)
- #2759 Improve snapshot test documentation (@bmish)
:house: Internal
Committers: 3
v5.3.0 (2022-12-14)
:rocket: Enhancement
Committers: 1
v5.2.0 (2022-12-07)
:rocket: Enhancement
:bug: Bug Fix
Committers: 1
v5.1.1 (2022-12-05)
:bug: Bug Fix
- #2731 Allow nested
menuitem
s in no-nested-interactive
rule (@geneukum)
:memo: Documentation
- #2732 Link to "skipping helpers" part of the codemod doc in
no-curly-component-invocation
rule doc (@geneukum)
Committers: 1
v5.1.0 (2022-12-04)
:rocket: Enhancement
:bug: Bug Fix
- #2726 Allow passing only
@model
or @models
for <LinkTo>
in no-unknown-arguments-for-builtin-components
rule (@geneukum)
:memo: Documentation
- #2727 Add note about
title
property limitations to require-valid-alt-text
rule doc (@geneukum)
Committers: 2
v5.0.2 (2022-11-28)
:bug: Bug Fix
- #2722 Fix autofixer bug with
firstObject
inside a MustacheStatement
in no-array-prototype-extensions
rule (@tgvrssanthosh)
Committers: 1
v5.0.1 (2022-11-21)
:bug: Bug Fix
- #2714 Allow
role=list
on <ul>
and <ol>
in no-redundant-role
rule (@Turbo87)
Committers: 1
v5.0.0 (2022-11-19)
:boom: Breaking Change
- #2669 Drop Node 12 and 17 support (@bmish)
- #2606 Lint embedded templates by default (@NullVoxPopuli)
- #2671 Enabled additional
recommended
rules no-aria-unsupported-elements
, no-array-prototype-extensions
, no-invalid-aria-attributes
, no-obscure-array-access
, no-scope-outside-table-headings
, no-unsupported-role-attributes
, require-aria-activedescendant-tabindex
, require-mandatory-role-attributes
, require-media-caption
(@bmish)
- #2675 Rename
no-redundant-landmark-role
rule to no-redundant-role
and change checkAllHTMLElements
option default to true
(@bmish)
- #2054 Rename and narrow rule
no-down-event-binding
to no-pointer-down-event-binding
(@jfdnc)
- #2674 Change
validateValues
option default to true
in require-lang-attribute
rule (@bmish)
- #2673 Change
simplifyHelpers
option default to true
in no-negated-condition
rule (@bmish)
- #2672 Change
maxHelpers
option default to 1
in simple-unless
rule (@bmish)
- #2657 Include modifiers in
no-restricted-invocations
rule (@achambers)
Committers: 4
v5.0.0-alpha.0 (2022-11-03)
:boom: Breaking Change
- #2669 Drop Node 12 and 17 support (@bmish)
- #2606 Lint embedded templates by default (@NullVoxPopuli)
- #2671 Enabled additional
recommended
rules no-aria-unsupported-elements
, no-array-prototype-extensions
, no-invalid-aria-attributes
, no-obscure-array-access
, no-scope-outside-table-headings
, no-unsupported-role-attributes
, require-aria-activedescendant-tabindex
, require-mandatory-role-attributes
, require-media-caption
(@bmish)
- #2675 Rename
no-redundant-landmark-role
rule to no-redundant-role
and change checkAllHTMLElements
option default to true
(@bmish)
- #2054 Rename and narrow rule
no-down-event-binding
to no-pointer-down-event-binding
(@jfdnc)
- #2674 Change
validateValues
option default to true
in require-lang-attribute
rule (@bmish)
- #2673 Change
simplifyHelpers
option default to true
in no-negated-condition
rule (@bmish)
- #2672 Change
maxHelpers
option default to 1
in simple-unless
rule (@bmish)
- #2657 Include modifiers in
no-restricted-invocations
rule (@achambers)
:house: Internal
Committers: 4
v4.18.2 (2022-11-17)
:bug: Bug Fix
Committers: 1
v4.18.1 (2022-11-15)
:bug: Bug Fix
- #2701 Fix autofixer for value-less attributes and comment order in
attribute-order
rule (@rob-long)
:memo: Documentation
:house: Internal
Committers: 4
v4.18.0 (2022-11-08)
Related note: The first v5 preview release is available for testing: v5.0.0-alpha.0.
:rocket: Enhancement
Committers: 1
v4.17.0 (2022-10-29)
:rocket: Enhancement
- #2653 Add
simplifyHelpers
option in no-negated-condition
rule (@godric3)
:house: Internal
Committers: 3
v4.16.1 (2022-10-18)
:bug: Bug Fix
- #2648 Allow negation with multiple parameters in
no-negated-condition
rule (@godric3)
Committers: 1
v4.16.0 (2022-10-18)
:rocket: Enhancement
- #2639 Add autofix for case with helpers to
simple-unless
rule (@godric3)
:memo: Documentation
- #2643 Clarify default
maxHelpers
option value for simple-unless
rule (@bmish)
- #2636 Add link to RFC for
no-array-prototype-extensions
rule (@bmish)
:house: Internal
Committers: 3
v4.15.0 (2022-10-10)
:rocket: Enhancement
- #2629 Add autofixer to
simple-unless
rule for simplest case (@godric3)
:house: Internal
Committers: 2
v4.14.0 (2022-09-01)
:rocket: Enhancement
:bug: Bug Fix
:house: Internal
- #2605 Add
concurrency
setup to GitHub Actions workflow (@rwjblue)
- #2602 Update GitHub Actions setup to volta-cli/action@v3 (@rwjblue)
Committers: 2
v4.13.0 (2022-08-30)
:rocket: Enhancement
- #2583 Add autofixer to
self-closing-void-elements
rule (@locks)
- #2581 Add autofixer to
no-html-comments
rule (@locks)
- #2582 Add autofixer to
no-quoteless-attributes
rule (@locks)
:bug: Bug Fix
- #2589 Remove
<s>
and <u>
from no-obsolete-elements
(@sukima)
- #2593 Add
unique-id
to allowed built-in helpers in no-curly-component-invocation
and no-implicit-this
rules (@geneukum)
:house: Internal
Committers: 5
v4.12.0 (2022-08-05)
:rocket: Enhancement
- #2574 Add autofixer to
no-unnecessary-component-helper
rule (@bmish)
- #2573 Add autofixer to
modifier-name-case
rule (@bmish)
- #2569 Add autofixer to
require-valid-named-block-naming-format
rule (@locks)
:memo: Documentation
Committers: 3
v4.11.0 (2022-08-03)
:rocket: Enhancement
- #2568 Add autofixer to
no-unnecessary-concat
rule (@locks)
Committers: 1
v4.10.1 (2022-06-26)
:bug: Bug Fix
- #2541 Fix helper used by several rules for dasherizing multi-level nested component names (@nulle)
- #2535 Clarify violation message for
no-dynamic-subexpression-invocations
rule (@chrisrng)
- #2527 Add route action name to error message in
no-route-action
rule (@tylerbecks)
:memo: Documentation
Committers: 4
v4.10.0 (2022-05-26)
:rocket: Enhancement
Committers: 1
v4.9.1 (2022-05-19)
:bug: Bug Fix
- #2516 Fix crash in
no-unsupported-role-attributes
rule when an element has no implicit role (@bertdeblock)
Committers: 1
v4.9.0 (2022-05-18)
:rocket: Enhancement
:bug: Bug Fix
Committers: 2
v4.8.0 (2022-05-13)
:rocket: Enhancement
:bug: Bug Fix
- #2503 Fixes issue where lint-todos add blank lines in .lint-todo storage file (@scalvert)
:house: Internal
Committers: 2
v4.7.0 (2022-05-10)
:rocket: Enhancement
Committers: 1
v4.6.0 (2022-04-28)
:rocket: Enhancement
- #2487 Add
checkAllHTMLElements
option to no-redundant-landmark-role
rule to lint against all HTML elements with default ARIA roles (@judithhinlung)
Committers: 1
v4.5.0 (2022-04-22)
:rocket: Enhancement
:house: Internal
Committers: 3
v4.4.2 (2022-04-19)
:bug: Bug Fix
- #2465 Better handling of dashes in
no-whitespace-within-word
rule (@mydea)
Committers: 1
v4.4.1 (2022-04-15)
:bug: Bug Fix
- #2474 Ensure
--compact-todo
functions properly (@scalvert)
- #2468 Ensure configuration can be resolved from a parent directory when no
--config-path
override is present (e.g. within a monorepo with .template-lintrc.js
in the monorepo root). (@scalvert)
- #2466 Remove validation of mustache statements in
no-invalid-aria-attributes
rule (@judithhinlung)
:memo: Documentation
- #2469 Add missing "forbids" sentence in
no-array-prototype-extensions
rule doc (@bertdeblock)
:house: Internal
- #2473 Add tests for monorepos with shared configuration in monorepo root (@rwjblue)
- #2471 Add tests for plugin resolution within a monorepo setup (@rwjblue)
- #2472 Fixes incorrectly invoked tests (non-awaited async) (@scalvert)
Committers: 4
v4.4.0 (2022-04-12)
:rocket: Enhancement
:bug: Bug Fix
- #2449 Updates
require-context-role
rule to accept table
as a valid parent role
and rowgroup
(@judithhinlung)
- #2421 Handle dashes in
no-whitespace-within-word
rule (@mydea)
- #2433 Fix
require-presentational-children
rule to report violation on correct node (@scalvert)
:house: Internal
- #2419 Use async
write()
instead of deprecated writeSync()
in tests (@mydea)
Committers: 5
v4.3.0 (2022-03-08)
:rocket: Enhancement
:house: Internal
- #2407 Update
fixturify-project
to v4 (@dcyriller)
- #2401 Change formatters to return string output rather than outputting to stdout/output files (@scalvert)
- #2406 Relax coverage thresholds to allow for some small drift (@rwjblue)
Committers: 3
v4.2.0 (2022-02-22)
:rocket: Enhancement
:bug: Bug Fix
Committers: 2
v4.1.0 (2022-02-14)
:rocket: Enhancement
:bug: Bug Fix
- #2348 Support the
modifier
helper in the modifier-name-case
rule (@bertdeblock)
- #2332 Fix bug with newlines and cleanup
no-unbalanced-curlies
rule (@pablobm)
:house: Internal
- #2361 Don't include prototype information in jest snapshots (@scalvert)
Committers: 5
v4.0.0 (2022-01-05)
Also see the v4 migration guide.
:boom: Breaking Change
- #2208 Add
exports
to package.json to restrict access to private internals (@bmish)
- #2238 Config Files: Disallow extending an invalid configuration (@bmish)
- #2239 Config Files: Disallow invalid plugin in configuration file (@bmish)
- #2236 Config Files: Disallow unexpected properties at top-level of configuration file (@bmish)
- #2262 Convert to ESM (@bmish)
- #2245 Disallow specifying non-existent files on CLI (@bmish)
- #2261 Disallow unknown CLI options (@bmish)
- #2193 Remove CLI option
--json
(@bmish)
- #2207 Remove CLI option
--print-pending
(@bmish)
- #2252 Remove deprecated pending functionality (@scalvert)
- #2191 Remove rule
deprecated-each-syntax
(@bmish)
- #2188 Remove rule
no-invalid-block-param-definition
(@dcyriller)
- #2176 Require Node
^12.22.0 || ^14.17.0 || >=16.0.0
(@dcyriller)
- #2211 Rule Configs: Add additional
recommended
rules for v4 (@bmish)
- #2237 Rule Configs: Remove config
2-x-recommended
and add 3-x-recommended
config (@bmish)
- #2192 Rule Configs: Remove config
octane
(@bmish)
- #2242 Rule Reporting: When logging a rule violation, require passing
message
(@bmish)
- #2228 Rule Reporting: When logging a rule violation, require passing the node or all loc properties (@bmish)
- #2279 Testing: Disallow duplicate test cases (@bmish)
- #2240 Testing: Disallow identical
template
and fixedTemplate
in a test case (@bmish)
- #2216 Testing: Disallow unexpected properties in rule test cases (@bmish)
- #2230 Testing: Only fixable test cases are allowed to assert
fixedTemplate
(@bmish)
- #2217 Testing: Require auto-fixable test cases to assert the fixed template (@bmish)
- #2255 Todos: Convert to single file storage (@scalvert)
- #2241 Update
no-bare-strings
rule options to augment instead of replace the default config (@bmish)
- #2089 Update
no-bare-strings
rule to check the arguments to {{page-title ...}}
helper (@bertdeblock)
- #2278 Update
no-element-event-actions
rule to set requireActionHelper
option default to false
(@bmish)
- #2195 Update
no-invalid-link-text
rule to set allowEmptyLinks
option default to false
(@bmish)
- #1881 Update
no-invalid-link-title
rule to check for link title being substring of link text (@bertdeblock)
- #2172 Upgrade
ember-template-recast
to v6 (@dcyriller)
- #2293 Upgrade
find-up
to v6 (@bmish)
- #2294 Upgrade
get-stdin
to v9 (@bmish)
- #2296 Upgrade
globby
to v6 (@bmish)
- #2197 Upgrade
yargs
dependency to v17 (@bertdeblock)
:rocket: Enhancement
:memo: Documentation
Committers: 7
v4.0.0-beta.3 (2021-12-29)
Also see the v4 migration guide.
:bug: Bug Fix
- #2303 Update @lint-todos/utils to fix bug with non-normalized paths (@scalvert)
- #2301 Fix false positives with non-serializable rule configs in duplicate test case check (@bmish)
:memo: Documentation
Committers: 2
v4.0.0-beta.2 (2021-12-23)
Also see the v4 migration guide.
:boom: Breaking Change
:rocket: Enhancement
:memo: Documentation
:house: Internal
Committers: 1
v4.0.0-beta.1 (2021-12-15)
Also see the v4 migration guide.
:boom: Breaking Change
- #2278 Disable
requireActionHelper
option on no-element-event-actions
rule (@bmish)
- #2279 Disallow duplicate test cases (@bmish)
:bug: Bug Fix
- #2277 Updates @lint-todo/utils to latest version for read isolation (@scalvert)
Committers: 2
v4.0.0-beta.0 (2021-12-03)
Also see the v4 migration guide.
:boom: Breaking Change
- #2261 Disallow unknown CLI options (@bmish)
- #2245 Disallow specifying non-existent files on CLI (@bmish)
- #2256 Rule Configs: Add
no-autofocus-attribute
to recommended
config (@bmish)
- #2242 Rule Reporting: When logging a rule violation, require passing
message
(@bmish)
- #2255 Todos: Convert to single file storage (@scalvert)
- #2252 Remove deprecated pending functionality (@scalvert)
:rocket: Enhancement
:memo: Documentation
:house: Internal
Committers: 4
v4.0.0-alpha.0 (2021-11-24)
Also see the v4 migration guide.
:boom: Breaking Change
- #2208 Add
exports
to package.json to restrict access to private internals (@bmish)
- #2238 Config Files: Disallow extending an invalid configuration (@bmish)
- #2239 Config Files: Disallow invalid plugin in configuration file (@bmish)
- #2236 Config Files: Disallow unexpected properties at top-level of configuration file (@bmish)
- #2193 Remove CLI option
--json
(@bmish)
- #2207 Remove CLI option
--print-pending
(@bmish)
- #2191 Remove rule
deprecated-each-syntax
(@bmish)
- #2188 Remove rule
no-invalid-block-param-definition
(@dcyriller)
- #2176 Require Node
^12.22.0 || ^14.17.0 || >=16.0.0
(@dcyriller)
- #2211 Rule Configs: Add additional
recommended
rules for v4 (@bmish)
- #2237 Rule Configs: Remove config
2-x-recommended
and add 3-x-recommended
config (@bmish)
- #2192 Rule Configs: Remove config
octane
(@bmish)
- #2240 Testing: Disallow identical
template
and fixedTemplate
in a test case (@bmish)
- #2216 Testing: Disallow unexpected properties in rule test cases (@bmish)
- #2230 Testing: Only fixable test cases are allowed to assert
fixedTemplate
(@bmish)
- #2217 Testing: Require auto-fixable test cases to assert the fixed template (@bmish)
- #2241 Update
no-bare-strings
rule options to augment instead of replace the default config (@bmish)
- #2089 Update
no-bare-strings
rule to check the arguments to {{page-title ...}}
helper (@bertdeblock)
- #2195 Update
no-invalid-link-text
rule to set allowEmptyLinks
option default to false
(@bmish)
- #1881 Update
no-invalid-link-title
rule to check for link title being substring of link text (@bertdeblock)
- #2172 Upgrade
ember-template-recast
to v6 (@dcyriller)
- #2197 Upgrade
yargs
dependency to v17 (@bertdeblock)
- #2228 When logging a rule violation, require passing the node or all loc properties (@bmish)
:house: Internal
Committers: 3
v3.16.0 (2022-01-05)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
Committers: 2
v3.15.0 (2021-12-16)
:rocket: Enhancement
- #2269 Add
requireActionHelper
config option to no-element-event-actions
(@jamescdavis)
:memo: Documentation
:house: Internal
- #2254 Remove misleading
await
from project.dispose()
in tests (@courajs)
Committers: 5
v3.14.0 (2021-11-24)
:rocket: Enhancement
- #2209 Expose
generateRuleTests
as named export in public NodeJS API (@bmish)
:bug: Bug Fix
- #2210 Ensure
--print-pending
works with --format=json
(@bmish)
:house: Internal
- #2235 Remove unused helper
remove-configuration-html-comments
(@bmish)
- #2234 Remove unused helper
calculate-location-display
(@bmish)
- #2215 Fix Node version on CI (@ddzz)
Committers: 3
v3.13.0 (2021-11-13)
:rocket: Enhancement
:bug: Bug Fix
- #2174 Fix false negative with
always
setting and template ending with non-text in eol-last
rule (@bmish)
:house: Internal
Committers: 2
v3.12.0 (2021-11-04)
:rocket: Enhancement
- #2162 Ensure test harness setup in custom plugins is correct (@rwjblue)
:bug: Bug Fix
- #2167 Slightly loosening requires for log method parameter requirements (@scalvert)
- #2165 Adding ruleId to deprecation message to track its origin (@scalvert)
- #2164 Noops the console when using the SARIF formatter (@scalvert)
:memo: Documentation
- #2156 Move workflow examples out of README into separate doc (@bmish)
- #2157 Ensure rules with options include a
Configuration
section in their rule doc (@bmish)
Committers: 3
v3.11.0 (2021-10-27)
:rocket: Enhancement
- #2151 Add
endLine
/ endColumn
to generated rule test results (@scalvert)
:bug: Bug Fix
- #2140 Update
no-empty-headings
rule to only check for valid element & text nodes (@glnster)
:house: Internal
Committers: 4
v3.10.0 (2021-10-13)
:rocket: Enhancement
- #2126 Add new rule
no-empty-headings
(@glnster)
- #2127 Add
allowEmptyLinks
option (default true
) to no-invalid-link-text
rule (@glnster)
:bug: Bug Fix
- #2137 Skip SVG elements in
require-presentational-children
rule (@mydea)
Committers: 2
v3.9.0 (2021-10-05)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
:house: Internal
Committers: 6
v3.8.0 (2021-10-01)
:rocket: Enhancement
- #2115 Converting --clean-todo to a default, providing --no-clean-todo option (@scalvert)
- #2020 Add
--fix
support for eol-last
rule (@rwjblue)
:bug: Bug Fix
- #2051 Bugfix: resolved issue with incorrect button type in form during template fix (@lifeart)
- #2088 Bugfix: fixes fuzzy messages arguments suggestion (@lifeart)
- #1863 Fix
undefined
error message for no-link-to-positional-params
rule (@bertdeblock)
:memo: Documentation
- #2116 Slight tweak to explanation in
no-negated-condition
doc (@bmish)
- #2104 Mention package.json keywords for plugin discoverability (@bmish)
- #2099 Add ember/lint keywords to package.json (@bmish)
:house: Internal
Committers: 5
v3.7.0 (2021-09-07)
:rocket: Enhancement
:bug: Bug Fix
- #2052 Ensure
deprecated-inline-view-helper
allows named blocks named "view"
(@lifeart)
Committers: 3
v3.6.0 (2021-08-15)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
:house: Internal
- #2065 Export rules and configs using
requireindex
(@bmish)
Committers: 5
v3.5.1 (2021-07-23)
:bug: Bug Fix
- #2032 Fixes the SARIF formatter to correctly filter output by severity (@scalvert)
:memo: Documentation
- #2031 Switch from github emojis to standard emojis (@bmish)
Committers: 3
v3.5.0 (2021-06-16)
:rocket: Enhancement
- #1972 Adding extra tests to no-invalid-role rule (@faith-or)
- #1993 feat(todos): Adds support for configuring todo decay days by rule (@scalvert)
:bug: Bug Fix
- #1994 Fix
require-input-label
to allow inputs within a <label>
to have an id
attribute (@MelSumner)
- #1992 Resolved issue where test was looking for directories incorrectly (@MelSumner)
:memo: Documentation
:house: Internal
Committers: 6
v3.4.2 (2021-05-11)
:bug: Bug Fix
- #1947 Moves expired todo removal under the
--clean-todo
flag (@scalvert)
Committers: 1
v3.4.1 (2021-05-10)
:bug: Bug Fix
:memo: Documentation
Committers: 2
v3.4.0 (2021-05-07)
:rocket: Enhancement
- #1933 Adds
--clean-todo
option to provide separate functionality to cleanup stale and expired todos (@MelSumner)
:bug: Bug Fix
- #1933 Adds
--clean-todo
option to provide separate functionality to cleanup stale and expired todos (@MelSumner)
:memo: Documentation
Committers: 1
v3.3.1 (2021-04-29)
:bug: Bug Fix
- #1922 Allows SARIF output to always write to a file if outputFile is present (@scalvert)
:house: Internal
- #1919 Adds @microsoft/jest-sarif to validate SARIF file format (@scalvert)
Committers: 2
v3.3.0 (2021-04-26)
:rocket: Enhancement
- #1907 Deprecate
--json
option in favor of --format=json
. (@rwjblue)
- #1895 Updating stale todo message with more targeted --fix instructions (@scalvert)
:bug: Bug Fix
- #1904 Ensures we always emit output file even with empty results (@scalvert)
- #1897 Allow words containing redundant words for
require-valid-alt-text
rule (@bertdeblock)
:memo: Documentation
Committers: 6
v3.2.0 (2021-03-23)
:rocket: Enhancement
:bug: Bug Fix
- #1862 Fix
require-has-block-helper
rule autofix when multiple parameters present (@bertdeblock)
- #1850 Only catch exact matches of title and link text in
no-invalid-link-title
rule (@bmish)
- #1823 Fix suggestions for deprecated events and argument names in
no-unknown-built-in-component-arguments
(@lifeart)
- #1824 Add missing ARIA roles to
no-invalid-role
(@Windvis)
- #1822 Prevent
no-duplicate-landmark-elements
false positive for non-landmark roles (@rwjblue)
:memo: Documentation
:house: Internal
Committers: 10
v3.1.1 (2021-03-07)
:bug: Bug Fix
- #1823 Fix suggestions for deprecated events and argument names in
no-unknown-built-in-component-arguments
(@lifeart)
- #1824 Add missing ARIA roles to
no-invalid-role
(@Windvis)
Committers: 2
v3.1.0 (2021-03-07)
:rocket: Enhancement
:bug: Bug Fix
- #1822 Prevent
no-duplicate-landmark-elements
false positive for non-landmark roles (@rwjblue)
:memo: Documentation
Committers: 3
v3.0.1 (2021-03-03)
:bug: Bug Fix
- #1807 Remove
deprecated-each-syntax
from recommended
config (@rwjblue)
- #1806 Ensure
no-bare-strings
check's placeholder
attribute for <Input />
and <Textarea />
(@lifeart)
- #1805 Ensure
no-unknown-arguments-for-builtin-components
allows @query
only <LinkTo>
's (@lifeart)
Committers: 3
v3.0.0 (2021-03-02)
Highlights
- :rocket: Added new todo feature. Allows for 'stashing' lint violations away to be fixed at a later date. Read more in our docs!
- :boom: JavaScript API Changes
- Allow rules to have async
visitor
functions
- Change the internal linter class's
.verify
/.verifyAndFix
methods to be asynchronous
- :boom: Changes to configuration (adding more rules)
- Promoted "octane" config to be "recommended"
- Added the following to
recommended
builtin-component-arguments
deprecated-each-syntax
deprecated-inline-view-helper
no-accesskey-attribute
no-action
no-arguments-for-html-elements
no-aria-hidden-body
no-block-params-for-html-elements
no-down-event-binding
no-duplicate-id
no-duplicate-landmark-elements
no-forbidden-elements
no-heading-inside-button
no-invalid-block-param-definition
no-invalid-link-title
no-link-to-positional-params
no-nested-landmark
no-nested-splattributes
no-passed-in-event-handlers
no-positional-data-test-selectors
no-potential-path-strings
no-redundant-fn
no-redundant-landmark-role
no-unbalanced-curlies
no-unknown-arguments-for-builtin-components
no-yield-only
require-has-block-helper
require-input-label
require-lang-attribute
splat-attributes-only
:boom: Breaking Change
- #1714 Update recommended config to include 'no-down-event-binding' (@MelSumner)
- #1697 Allow rule visitor to be an async function (remove
env
argument) (@lifeart)
- #1388 Remove automatic
TextNode
unwrapping by attributeValue
functions in ast-node-info
helper (@josephdsumner)
- #1643 Enable more
recommended
rules (@bmish)
- #1642 Update
noImplicitThis
option default to true and requireDash
option default to false in no-curly-component-invocation
rule (@bmish)
- #1639 Promote
octane
rules to recommended
config and delete octane
config (@bmish)
- #1638 Add more rules to
stylistic
config (@bmish)
- #1586 Add
no-aria-hidden-body
and table-groups
rules to a11y
config (@MelSumner)
- #1549 Add
<textarea>
and <select>
support to require-input-label
rule (@zelaznik)
- #1553 Convert
Linter.prototype.verify
and Linter.prototype.verifyAndFix
to be async. (@scalvert)
- #1532 Add
s
and u
elements to no-obsolete-elements
rule elements list (@bmish)
- #1535 Remove support for deprecated rule names (@bmish)
- #1534 Enable
catchNonexistentRoles
by default on no-invalid-role
rule (@bmish)
- #1513 Fix
extends
overriding order (@Turbo87)
- #1490 remove deprecated
whitelist
& blacklist
configurations (@jaydgruber)
- #1463 ast-node-info: Remove trivial
isNode()
helpers (@Turbo87)
- #1460 ast-node-info: Remove trivial
isElement()
helpers (@Turbo87)
- #1452 Drop support for Node 13 (@MelSumner)
- #1549 Add
<textarea>
and <select>
support to require-input-label
rule (@zelaznik)
- #1513 / #1687 Fix
extends
overriding order (@Turbo87) / (@renatoi)
:rocket: Enhancement
Committers: 14
v2.21.0 (2021-02-26)
:rocket: Enhancement
:bug: Bug Fix
Committers: 2
v2.20.0 (2021-02-23)
:rocket: Enhancement
Committers: 5
v2.19.0 (2021-02-18)
:rocket: Enhancement
:memo: Documentation
- #1738 Removes duplicate main from
no-duplicate-landmarks
documentation (@skaterdav85)
:house: Internal
- #1758 chore: fix require-has-block-helper readme linting error (@lifeart)
- #1735 Add test to
no-invalid-meta
for ember-cli default value (@rwjblue)
Committers: 8
v2.18.1 (2021-02-02)
:bug: Bug Fix
- #1727 Fix
no-dynamic-subexpression-invocations
handling of {{1}}
(@rwjblue)
Committers: 2
v2.18.0 (2021-01-28)
:rocket: Enhancement
Committers: 2
v2.17.0 (2021-01-21)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
- #1693 Add link to Ember.js issue for no-model-argument-in-route-templates rule (@SergeAstapov)
:house: Internal
Committers: 6
v2.16.0 (2021-01-06)
:rocket: Enhancement
:bug: Bug Fix
:memo: Documentation
:house: Internal
- #1670 Remove lerna-changelog dependency since it is provided and handled by release-it-lerna-changelog (@bmish)
Committers: 6
v2.15.0 (2020-12-10)
:boom: Breaking Change
- #1586 Add
no-aria-hidden-body
and table-groups
rules to a11y
config (@MelSumner)
:rocket: Enhancement
:bug: Bug Fix
- #1606 Fix false positive with content within
{{#if}}
/{{else}}
blocks in no-duplicate-id
rule (@MelSumner)
- #1605 Fix false positive in
no-invalid-link-title
when using a dynamic value surrounded by whitespace. (@josephdsumner)
- #1137 Prevent
no-unused-block-params
from flagging locals that are used within {{template-lint-disable}}
ed content (@lifeart)
:memo: Documentation
Committers: 7
v2.14.0 (2020-10-11)
:rocket: Enhancement
:bug: Bug Fix
- #1566 Allow
itemprop
use in meta tags in no-invalid-meta
rule (@sukima)
- #1554 Ensure globbing is only used when using a globlike pattern (@rwjblue)
- #1541 Allow nested landmarks of different types in
no-nested-landmark
rule (@zelaznik)
- #1548 Upgrade ember-template-recast to reduce memory pressure while linting (@dcyriller)
:house: Internal
Committers: 7
v2.13.0 (2020-09-27)
:rocket: Enhancement
:bug: Bug Fix
- #1516
no-whitespace-within-word
rule should ignore <style> elements (@mydea)
- #1540
require-input-label
rule should ignore hidden inputs (@bmish)
- #1543
no-invalid-block-param-definition
rule should ignore comments (@bmish)
- #1533 Add missing
keygen
element to no-obsolete-elements
rule elements list (@bmish)
- #1495 Ensure
overrides
config parsing is idempotent (@bobisjan)
:house: Internal
- #1537 Remove unnecessary deprecations folder for rules (@bmish)
Committers: 6
v2.12.1 (2020-09-11)
:bug: Bug Fix
:house: Internal
Committers: 2
v2.12.0 (2020-09-09)
:boom: Breaking Change
:rocket: Enhancement
:bug: Bug Fix
- #1497 Avoid validating text within attributes in
no-whitespace-within-word
(@zelaznik)
:memo: Documentation
Committers: 5
v2.11.0 (2020-08-27)
:rocket: Enhancement
:bug: Bug Fix
- #1136
no-curly-component-invocation
: update rule to ignore ember-cli-app-version usage (@lifeart)
:memo: Documentation
:house: Internal
Committers: 12
v2.10.0 (2020-08-07)
:rocket: Enhancement
:bug: Bug Fix
:house: Internal
Committers: 3
v2.9.1 (2020-07-15)
:bug: Bug Fix
:memo: Documentation
Committers: 2
v2.9.0 (2020-06-29)
:rocket: Enhancement
- #1400 Refactor
no-restricted-invocations
rule to significantly improve performance (@bmish)
- #1389 Rename
invocable-blacklist
rule to no-restricted-invocations
(backwards-compatible) (@bmish)
- #1372 Allow specifying a custom error message in
no-restricted-invocations
rule (@bmish)
- #1392 Add configuration options for allowing components as table children in
table-groups
rule (@mongoose700)
:bug: Bug Fix
- #1393 Fix table groups ordering enforcement when whitespace is present in
table-groups
rule (@mongoose700)
- #1370 Update
no-restricted-invocations
rule to handle nested angle bracket component invocation (@bmish)
- #1369 Update
no-restricted-invocations
rule to disallow empty config array (@bmish)
- #1362 Handle
unless
in no-positive-tabindex
rule (@bmish)
:memo: Documentation
- #1394 Add autogenerated rule table for README (@bmish)
- #1399 Improve package.json
description
field (@bmish)
- #1387 Improve message for
no-implicit-this
to mention using angle bracket invocation (@chriskrycho)
:house: Internal
- #1350 Add eslint-plugin-unicorn with recommended rules (@bmish)
- #1355 Add a test for fixing from stdin (provided a --filename is given) (@dcyriller)
Committers: 4
v2.8.0 (2020-05-22)
:rocket: Enhancement
:bug: Bug Fix
- #1347 Add additional built-in helpers to
no-implicit-this
(e.g. array
, concat
, query-params
, etc) (@jaydgruber)
:memo: Documentation
- #1338 Clarify recommended fix for
no-negated-condition
rule (@bmish)
:house: Internal
- #1349 chore(dev-deps): update to eslint 7 (@bmish)
- #1333 Ensure
<MyComponent @prop={{can.do}} />
triggers no-implicit-this
error. (@rwjblue)
Committers: 4
v2.7.0 (2020-05-11)
:rocket: Enhancement
- #927 Add
no-arguments-for-html-elements
rule (@lifeart)
- #1320 Add
catchNonexistentRoles
option (default false) to no-invalid-role
rule (@rajasegar)
- #1222 Add new rule:
no-unbalanced-curlies
(@pablobm)
:bug: Bug Fix
- #1324 Ensure
require-valid-alt-text
can handle a dynamic role
attribute (@gabrielcsapo)
- #1317 Avoid glob matching when no-glob is present (e.g. globs have already been replaced by shell expansion) (@gabrielcsapo)
:memo: Documentation
- #1313 Update documentation and examples for
no-positive-tabindex
(@MelSumner)
:house: Internal
- #1323 Refactor
no-invalid-role
rule to better support future additions (@bmish)
- #1298 Add shell-specific tests for reading from stdin (@dcyriller)
Committers: 7
v2.6.0 (2020-04-28)
:rocket: Enhancement
:bug: Bug Fix
- #1303 Update ember-template-recast to remove extraneous whitespace in
--fix
for inline-link-to
rule (@dcyriller)
- #1297 Fix reading from stdin on Windows (@dcyriller)
:memo: Documentation
- #1305 Fix example in no-invalid-role documentation (@MelSumner)
- #1304 Tweak Installation section of
README.md
to clarify that ember-template-lint
is installed by default (@MelSumner)
- #1308 Add Node 14 as supported platform (@dcyriller)
- #1306 Fix invalid URL in documentation reference for
no-invalid-link-title
rule (@MelSumner)
:house: Internal
Committers: 7
v2.5.2 (2020-04-11)
:bug: Bug Fix
- #1264 Ensure
--json
argument can be used anywhere on the command line. (@dcyriller)
:house: Internal
Committers: 1
v2.5.1 (2020-04-09)
:rocket: Enhancement
- #1260 Expose
ember-template-recast
API on main entry point (e.g. require('ember-template-lint').recast
) (@dcyriller)
Committers: 1
v2.5.0 (2020-04-08)
:rocket: Enhancement
- #1251 Pass
env
from ember-template-recast
to rules so they can use env.syntax.builders.*
during ember-template-lint **/*.hbs --fix
. (@dcyriller)
- #1238 Add new rule:
require-form-method
(@raido)
:bug: Bug Fix
- #1257 Ensure GitHub Action annotations are not emitted for warnings. (@eramod)
:memo: Documentation
- #1250 Update each rule doc to mention what config enables the rule (@bmish)
Committers: 5
v2.4.1 (2020-03-25)
:bug: Bug Fix
- #1229 Ensure template parsing errors are only reported once (not once per-rule) (@lifeart)
- #1210 Fix invalid failure for invalid block param definition (@lifeart)
:memo: Documentation
- #1220 Ensure each rule documentation file has the right title and an examples section (@bmish)
:house: Internal
- #1212 Re-run
npm init rwjblue-release-it-setup --update
. (@rwjblue)
Committers: 3
v2.4.0 (2020-03-08)
:rocket: Enhancement
- #1200 Add
--ignore-pattern
and --no-ignore-pattern
command line flags (@kangax)
:memo: Documentation
Committers: 2
v2.3.0 (2020-03-04)
:rocket: Enhancement
- #1179 inline-link-to: Implement
fix
mode (@Turbo87)
- #1160 Add severity support (off, warn, error) to rule configuration (via both
.template-lintrc.js
and inline configuration). (@suchitadoshi1987)
:memo: Documentation
:house: Internal
Committers: 5
v2.2.0 (2020-03-02)
:rocket: Enhancement
:bug: Bug Fix
- #1189 Ensure resolvable plugins work when the config is not resolved. (@rwjblue)
:house: Internal
- #1188 Ensure
yarn new
emits the expected TODO format (@MelSumner)
- #1181 Ensure the exported class name matches the rule name (@bmish)
Committers: 5
v2.1.0 (2020-02-28)
:rocket: Enhancement
:bug: Bug Fix
- #1167 Ensure accessing
this.editorConfig
in a rule instance does not error. (@rwjblue)
:memo: Documentation
- #1159 Rewrite documentation for
link-href-attributes
rule to explain motivation and migration (@MelSumner)
- #1154 Fix CI badge in README (@rwjblue)
:house: Internal
- #1177 Add
new
command for generating a new rule from CLI (@MelSumner)
- #1173 Update minimum version of ember-template-recast to 4.1.1. (@rwjblue)
- #1166 Refactor
cli-test.js
to remove usage of fixtures in favor of using fixturify-project
(@suchitadoshi1987)
- #1157 Refactor rule logging to track results locally. (@rwjblue)
- #1156 Extract
Linter.prototype.buildRule
internal helper method to build rule instances. (@rwjblue)
Committers: 5
v2.0.1 (2020-02-24)
:rocket: Enhancement
- #935 Implement more plumbing for
--fix
support (add Linter.prototype.verifyAndFix
) (@dcyriller)
:bug: Bug Fix
- #1153 Ensure plugins are resolved relative to config file location. (@rwjblue)
- #1072 Ensure
editorconfig
integration always uses the real file path not module name (add's new filePath
property for rules to access). (@bobisjan)
:house: Internal
Committers: 3
v2.0.0 (2020-02-22)
See the migration guide for this release.
:boom: Breaking Change
- #1067 Remove deprecated
templateEnvironmentData
rule property (@bmish)
- #1060 Add more rules to
stylistic
config (@bmish)
- #1061 Remove deprecated rule
no-trailing-dot-in-path-expression
(@bmish)
- #1059 Add
no-index-component-invocation
to recommended
configuration. (@rwjblue)
- #1053 Add
no-invalid-role
and no-negated-condition
rules to recommended
preset (@bmish)
- #1052 Change
allowDynamicStyles
option to default to true in no-inline-styles
rule (@bmish)
- #1055 Remove deprecated array config for
no-nested-interactive
rule (@bmish)
- #1054 Remove deprecated rule
no-meta-redirect-with-time-limit
which was replaced by no-invalid-meta
(@bmish)
- #1047 Add
no-args-path
, no-invalid-link-text
, no-invalid-meta
, require-button-type
into recommended
configuration. (@rwjblue)
- #1023 Drop NodeJs v8 support (@dcyriller)
- #918 Use
.editorconfig
to choose default value for block-indentation
(@lifeart)
- #919 Use
.editorconfig
to choose default value for linebreak-style
(@lifeart)
- #899 Update recommended config (@rwjblue)
- #844 Remove HTML comment config (@initram)
- #885 Drop support for NodeJs v6 and v11 (@dcyriller)
:rocket: Enhancement
- #1126 Add new rule
no-invalid-block-param-definition
(@lifeart)
- #1138 Automatically discover
.template-lintrc.js
when running linter from a project subdirectory (e.g. a monorepo's package, with linting configuration in the project root). (@lifeart)
- #1134 Add
ignoredTags
option to no-invalid-interactive
rule (@bmish)
- #1086 Update
block-indentation
rule to add new ignoreComments
option (@akashdsouza)
- #1060 Add more rules to
stylistic
config (@bmish)
- #1062 Add support for detecting
eol-last
from .editorconfig
(@rwjblue)
- #1059 Add
no-index-component-invocation
to recommended
configuration. (@rwjblue)
- #1053 Add
no-invalid-role
and no-negated-condition
rules to recommended
preset (@bmish)
- #1052 Change
allowDynamicStyles
option to default to true in no-inline-styles
rule (@bmish)
- #1048 Add
stylistic
configuration (@bmish)
- #1047 Add
no-args-path
, no-invalid-link-text
, no-invalid-meta
, require-button-type
into recommended
configuration. (@rwjblue)
- #1045 Remove no-implicit-this from
recommended
config. (@rwjblue)
- #918 Use
.editorconfig
to choose default value for block-indentation
(@lifeart)
- #919 Use
.editorconfig
to choose default value for linebreak-style
(@lifeart)
- #906 Add utility function to allow reading from
.editorconfig
(@lifeart)
- #873 Leverage ember-template-recast (@dcyriller)
:bug: Bug Fix
- #1123 Fix issues introduced by ember-template-recast@4.0.1. (@rwjblue)
- #1051 Fix configuration of
quotes
rule in stylistic
preset (@bmish)
- #1049 Bring
no-implicit-this
back into the octane
config (@rwjblue)
- #920 Ensure
no-bare-strings
consider literals in mustaches (e.g. {{"foo"}}
) (@lifeart)
- #923 Allow
getLocalName
to work with number literals (@alexlafroscia)
- #913 Update
no-unnecessary-component-helper
rule to allow the component
helper as an angle bracket component argument (@buschtoens)
- #908 Update
no-bare-strings
to ignore contents within elements that are not translated (e.g. <script>
,<style>
, and <pre>
). (@lifeart)
- #905 Ensure configuration ordering does not matter with
no-bare-strings
(@lifeart)
- #904 Update
block-indentation
to ignore children of <template>
and <textarea>
(@lifeart)
:memo: Documentation
- #1140 Add markdownlint and fix violations (@bmish)
- #1133 Don't mention
ember-cli-template-lint
in README (@dcyriller)
- #1050 Add presets list to README (@bmish)
- #911 Update documentation for
require-valid-alt-text
to clarify that logo
and spacer
are forbidden words (@gojefferson)
:house: Internal
- #1147 Use updated mechanism to disable chalk. (@rwjblue)
- #1146 Update execa from 1.x to 4.0.0. (@rwjblue)
- #1145 Update dependencies & devDependencies to latest. (@rwjblue)
- #1141 Replace
minimatch
with micromatch
#1139 (@lifeart)
- #1067 Remove deprecated
templateEnvironmentData
rule property (@bmish)
- #1061 Remove deprecated rule
no-trailing-dot-in-path-expression
(@bmish)
- #1055 Remove deprecated array config for
no-nested-interactive
rule (@bmish)
- #1054 Remove deprecated rule
no-meta-redirect-with-time-limit
which was replaced by no-invalid-meta
(@bmish)
- #1046 Update
octane
config to extend from recommended
. (@rwjblue)
- #1023 Drop NodeJs v8 support (@dcyriller)
- #941 Leverage static class fields for SEVERITY constants (@dcyriller)
- #933 Linter class: Use named severity (@dcyriller)
- #932 Move main linter engine to stand alone file. (@dcyriller)
- #876 Begin migrating tests to inline fixtures (via
broccoli-test-helper
) (@lifeart)
- #898 Update dependencies to latest (requiring Node 8+). (@rwjblue)
Committers: 9
v2.0.0-beta.5 (2020-01-15)
This release includes all the changes that went into v1.12.1 - v1.13.1.
:boom: Breaking Change
- #1067 Remove deprecated
templateEnvironmentData
rule property (@bmish)
- #1060 Add more rules to
stylistic
config (@bmish)
- #1061 Remove deprecated rule
no-trailing-dot-in-path-expression
(@bmish)
- #1059 Add
no-index-component-invocation
to recommended
configuration. (@rwjblue)
- #1053 Add
no-invalid-role
and no-negated-condition
rules to recommended
preset (@bmish)
- #1052 Change
allowDynamicStyles
option to default to true in no-inline-styles
rule (@bmish)
- #1055 Remove deprecated array config for
no-nested-interactive
rule (@bmish)
- #1054 Remove deprecated rule
no-meta-redirect-with-time-limit
which was replaced by no-invalid-meta
(@bmish)
- #1047 Add
no-args-path
, no-invalid-link-text
, no-invalid-meta
, require-button-type
into recommended
configuration. (@rwjblue)
- #1023 Drop NodeJs v8 support (@dcyriller)
:rocket: Enhancement
- #1060 Add more rules to
stylistic
config (@bmish)
- #1062 Add support for detecting
eol-last
from .editorconfig
(@rwjblue)
- #1059 Add
no-index-component-invocation
to recommended
configuration. (@rwjblue)
- #1053 Add
no-invalid-role
and no-negated-condition
rules to recommended
preset (@bmish)
- #1052 Change
allowDynamicStyles
option to default to true in no-inline-styles
rule (@bmish)
- #1048 Add
stylistic
configuration (@bmish)
- #1047 Add
no-args-path
, no-invalid-link-text
, no-invalid-meta
, require-button-type
into recommended
configuration. (@rwjblue)
- #1045 Remove no-implicit-this from
recommended
config. (@rwjblue)
:bug: Bug Fix
- #1051 Fix configuration of
quotes
rule in stylistic
preset (@bmish)
- #1049 Bring
no-implicit-this
back into the octane
config (@rwjblue)
:memo: Documentation
:house: Internal
- #1067 Remove deprecated
templateEnvironmentData
rule property (@bmish)
- #1061 Remove deprecated rule
no-trailing-dot-in-path-expression
(@bmish)
- #1055 Remove deprecated array config for
no-nested-interactive
rule (@bmish)
- #1054 Remove deprecated rule
no-meta-redirect-with-time-limit
which was replaced by no-invalid-meta
(@bmish)
- #1046 Update
octane
config to extend from recommended
. (@rwjblue)
- #1023 Drop NodeJs v8 support (@dcyriller)
Committers: 3
v1.14.0 (2020-02-20)
:rocket: Enhancement
:bug: Bug Fix
- #1108 Update
no-bare-strings
rule to allow –
(@jrjohnson)
- #1090 Update
no-curly-component-invocation
rule to ignore all usages of the yield
helper (@wagenet)
:memo: Documentation
:house: Internal
- #1121 Update dependencies to latest allowed versions. (@rwjblue)
- #1107 Simplify a few rules by using the
path
visitor argument (@Turbo87)
Committers: 6
v1.13.2 (2020-01-18)
:bug: Bug Fix
- #1087 Fix crash from missing
content
attribute in no-invalid-meta
rule (@bmish)
:memo: Documentation
Committers: 1
v1.13.1 (2020-01-15)
:bug: Bug Fix
- #1071 Update
no-invalid-interactive
to allow change
event with <form>
elements (@lifeart)
:memo: Documentation
- #1076 Normalize handlebars comments to {{!-- syntax (@locks)
- #1068 no-curly-component-invocation: Document default config (@dcyriller)
Committers: 3
v1.13.0 (2020-01-07)
:rocket: Enhancement
:memo: Documentation
:house: Internal
Committers: 4
v2.0.0-beta.4 (2019-12-13)
This release includes all the changes that went into v1.10.0 - v1.12.0.
v2.0.0-beta.3 (2019-12-04)
This release includes all the changes that went into v1.9.0.
:house: Internal
Committers: 1
v2.0.0-beta.2 (2019-11-17)
:boom: Breaking Change
- #918 Use
.editorconfig
to choose default value for block-indentation
(@lifeart)
- #919 Use
.editorconfig
to choose default value for linebreak-style
(@lifeart)
:rocket: Enhancement
- #918 Use
.editorconfig
to choose default value for block-indentation
(@lifeart)
- #919 Use
.editorconfig
to choose default value for linebreak-style
(@lifeart)
- #906 Add utility function to allow reading from
.editorconfig
(@lifeart)
:bug: Bug Fix
- #920 Ensure
no-bare-strings
consider literals in mustaches (e.g. {{"foo"}}
) (@lifeart)
- #923 Allow
getLocalName
to work with number literals (@alexlafroscia)
- #913 Update
no-unnecessary-component-helper
rule to allow the component
helper as an angle bracket component argument (@buschtoens)
- #908 Update
no-bare-strings
to ignore contents within elements that are not translated (e.g. <script>
,<style>
, and <pre>
). (@lifeart)
- #905 Ensure configuration ordering does not matter with
no-bare-strings
(@lifeart)
- #904 Update
block-indentation
to ignore children of <template>
and <textarea>
(@lifeart)
:memo: Documentation
- #911 Update documentation for
require-valid-alt-text
to clarify that logo
and spacer
are forbidden words (@gojefferson)
:house: Internal
- #876 Begin migrating tests to inline fixtures (via
broccoli-test-helper
) (@lifeart)
Committers: 5
v2.0.0-beta.1 (2019-11-04)
:boom: Breaking Change
:rocket: Enhancement
:house: Internal
- #898 Update dependencies to latest (requiring Node 8+). (@rwjblue)
Committers: 3
v1.12.3 (2019-12-23)
:bug: Bug Fix
- #1032 no-curly-component-invocation: Ignore built-ins and fix nested key scoped variable scenario (@Turbo87)
- #1031 no-passed-in-event-handlers: Ignore built-in
input
and textarea
components (@Turbo87)
Committers: 1
v1.12.2 (2019-12-23)
:bug: Bug Fix
- #1027 Refactor
no-curly-component-invocation
to reduce the occurrences of false positives (@Turbo87)
- #1019 Adding error when individual pending rules are passing (@gmurphey)
- #954 Update
--print-pending
logic to ignore existing pending modules that have no linting errors (@gmurphey)
:memo: Documentation
:house: Internal
- #1011 Add test cases for
{{!-- template-lint-disable --}}
comments (@Turbo87)
Committers: 4
v1.12.1 (2019-12-13)
:bug: Bug Fix
- #1013 Fix missing
Linter.errorsToMessages()
API for ember-cli-template-lint (@Turbo87)
Committers: 1
v1.12.0 (2019-12-13)
:rocket: Enhancement
:bug: Bug Fix
- #1009 Ensure
require-valid-alt-text
does not flag <img ...attributes>
. (@rwjblue)
- #1006 no-curly-component-invocation: Ignore all curly invocations with positional arguments (@Turbo87)
- #1005 no-curly-component-invocation: Ignore block invocations with inverse blocks (@Turbo87)
- #1002 no-whitespace-for-layout: Ignore whitespace at the start and end of the line (@Turbo87)
:memo: Documentation
:house: Internal
Committers: 3
v1.11.1 (2019-12-12)
:bug: Bug Fix
- #998 Ensure
no-invalid-meta
does not error on non-meta elements. (@rwjblue)
:house: Internal
- #994 Use
Template
and Block
nodes instead of Program
fallback (@Turbo87)
Committers: 2
v1.11.0 (2019-12-12)
:rocket: Enhancement
Committers: 2
v1.10.0 (2019-12-07)
:rocket: Enhancement
- #966 Report errors as GitHub Actions Annotations (@Turbo87)
- #930 Updated
require-valid-alt-text
to ensure <img ... role="presentation">
or <img ... role="none">
must have an empty alt
attribute (@MelSumner)
- #980 Add
no-invalid-role
rule (@MelSumner)
:bug: Bug Fix
- #986 no-multiple-empty-lines: Fix
parseConfig()
implementation (@Turbo87)
:house: Internal
Committers: 2
v1.9.0 (2019-12-04)
:rocket: Enhancement
- #971 no-curly-component-invocation: Do not warn for MustacheStatements with positional arguments (@Turbo87)
- #964 Implement
no-passed-in-event-handlers
rule (@Turbo87)
- #950 Implement
require-button-type
rule (@Turbo87)
- #951 Implement
no-multiple-empty-lines
rule (@Turbo87)
:bug: Bug Fix
- #944 Fix
no-invalid-interactive
to allow {{on "load"...}}
and {{on "error"...}}
for <img>
(@lifeart)
:house: Internal
Committers: 4
v1.8.2 (2019-11-17)
:bug: Bug Fix
- #920 Ensure
no-bare-strings
consider literals in mustaches (e.g. {{"foo"}}
) (@lifeart)
- #923 Allow
getLocalName
to work with number literals (@alexlafroscia)
- #913 Update
no-unnecessary-component-helper
rule to allow the component
helper as an angle bracket component argument (@buschtoens)
- #908 Update
no-bare-strings
to ignore contents within elements that are not translated (e.g. <script>
,<style>
, and <pre>
). (@lifeart)
- #905 Ensure configuration ordering does not matter with
no-bare-strings
(@lifeart)
- #904 Update
block-indentation
to ignore children of <template>
and <textarea>
(@lifeart)
:memo: Documentation
- #911 Update documentation for
require-valid-alt-text
to clarify that logo
and spacer
are forbidden words (@gojefferson)
Committers: 5
v1.8.1 (2019-11-04)
:bug: Bug Fix
- #902 Do not validate indentation within
<pre>
,<script>
, or <style>
. (@rwjblue)
Committers: 1
v1.8.0 (2019-11-04)
:rocket: Enhancement
:bug: Bug Fix
- #884 Fix
no-curly-component-invocation
to not warn about invocations within an existing angle bracket invocation (@lifeart)
- #870 Fix issue preventing running a subset of rules (@lifeart)
:house: Internal
- #896 Pass
moduleName
and rawSource
to Rule
upon creation. (@rwjblue)
- #892 Remove reliance on
preprocess
(from @glimmer/syntax
) ability to accept an array of AST plugins (@rwjblue)
- #890 Remove TransformDotComponentInvocation. (@rwjblue)
Committers: 4
v1.7.0 (2019-10-31)
:rocket: Enhancement
Committers: 2
v1.6.2 (2019-10-30)
:bug: Bug Fix
- #887 Ensure
no-action
does not error when encountering literals (StringLiteral, BooleanLiteral, etc). (@lifeart)
- #882 Fix issues when converting dasherized curly component invocation into angle bracket invocation (@suchitadoshi1987)
:memo: Documentation
- #877 Document requirement on Node.js >= 6 (@bmish)
Committers: 3
v1.6.1 (2019-10-28)
:bug: Bug Fix
- #864 Update
no-invalid-interactive
to check for on
modifier (in addition to action
). (@lifeart)
:house: Internal
- #874 test-harness: Make it available for (external) plugins (@dcyriller)
Committers: 2
v1.6.0 (2019-10-22)
:rocket: Enhancement
- #862 ✨Add option --print-pending from ember-cli-template-lint (@TristanToye)
- #858 Add
no-action
to octane
preset configuration. (@rwjblue)
- #853 Add
no-action
rule (@lifeart)
- #783 Add support for reading a file to lint from
process.stdin
(e.g cat some-file.hbs | ember-template-lint
) (@sukima)
:bug: Bug Fix
- #861 Update
no-curly-component-invocation
to allow non-component yielded values to be used with mustaches (@patocallaghan)
- #849 Improve
require-valid-alt-text
rule to catch additional common failure scenarios (@MelSumner)
- #846 Update
table-groups
to enforce required ordering of table children (@initram)
- #845 Fixed
attribute-indentation
when using triple curlies (non-escaped MustacheStatement
) (@initram)
- #836 Expose internal errors from erroneous config when consuming it (@ygongdev)
:house: Internal
- #859 Remove
testem
setup. (@rwjblue)
- #856 Use @glimmer/syntax directly. (@rwjblue)
- #843 Test interactivity of onload for img tags (@joankaradimov)
- #832 Add eslint-plugin-import and enable most rules internally (@bmish)
- #830 Enable optional eslint rules internally (@bmish)
- #829 Add eslint-plugin-eslint-comments internally (@bmish)
- #828 Add eslint-plugin-filenames to enforce kebab-case filenames internally (@bmish)
- #827 Add CI check to ensure yarn.lock is up-to-date (@bmish)
- #826 Start testing with Node 12 (@bmish)
Committers: 11
v1.5.3 (2019-08-20)
:bug: Bug Fix
- #805 Update
no-action-modifiers
and no-element-event-actions
rules to suggest using the on
modifier (@bmish)
- #803 Add 'octane' config to export list so it can be used in
.template-lintrc.js
(@pgengler)
Committers: 3
v1.5.2 (2019-08-12)
:bug: Bug Fix
:house: Internal
- #798 Ensure that fundamental setup (docs, tests, exports, etc) is correct when adding new rules (@lifeart)
Committers: 2
v1.5.1 (2019-08-06)
:rocket: Enhancement
:bug: Bug Fix
- #796 Allow
{{#-in-element}}
and {{#in-element}}
for no-curly-component-invocation
rule (@mydea)
- #791 Ensure table-group rule allows
each
, each-in
, let
, and comments (@mongoose700)
Committers: 4
v1.5.0 (2019-07-31)
:rocket: Enhancement
:bug: Bug Fix
- #788 Add support for handling
<button tabindex={{if this.foo 0 -1}}><button>
to no-positive-tabindex rule (@lifeart)
- #779 Allow <img onload={{action 'foo'}}> in no-invalid-interactive rule (@joankaradimov)
- #762 Ensure no-outlet-outside-routes allows apps or routes named "components" (@marcoow)
:memo: Documentation
- #775 Add rule documentation to missing rule to docs/rules.md. (@bmish)
Committers: 5
v1.4.0 (2019-07-12)
:rocket: Enhancement
- #759 Deprecate
img-alt-attributes
rule in favor of require-valid-alt-text
(@bmish)
- #753 Add
no-unnecessary-component-helper
rule (@bmish)
- #518 Add blacklist support to simple-unless rule (@mattbalmer)
:bug: Bug Fix
- #772 Fix
no-element-event-actions
rule to ignore case when checking the DOM event attribute name (should handle either onclick
or ONCLICK
) (@bmish)
- #773 Fix
no-invalid-interactive
rule to consider any DOM event attribute usage as adding interactivity to an element (@bmish)
Committers: 3
v1.3.0 (2019-06-19)
:rocket: Enhancement
- #742 Update
table-groups
rule to allow {{#some-component tagName="tbody"}}{{/some-component}}
to be a child of table
(@bmish)
:bug: Bug Fix
- #750 Ensure custom rules can be disabled with inline comments. (@rwjblue)
:memo: Documentation
- #744 Tweak error message for
no-element-event-actions
rule. (@bmish)
- #740 Fix rule ordering and incorrect rule name in plugin documentation (@bmish)
:house: Internal
- #738 Add support for new node types to the AST (@CvX)
Committers: 4
v1.2.0 (2019-06-12)
:rocket: Enhancement
- #733 Add new rule:
no-obsolete-elements
(@MelSumner)
- #714 Expose rule test harness for use by custom rule authors. (@gabrielcsapo)
- #631 Add rule: [A11y]
require-iframe-title
(@lifeart)
- #681 Update
table-groups
rule to allow {{yield}}
inside <table>
(@sohara)
- #633 Add rule: [A11y]
no-positive-tabindex
(@lifeart)
- #624 Add rule: [A11y]
require-valid-alt-text
(@lifeart)
- #628 Add rule: [A11y]
no-abstract-roles
(@lifeart)
- #721 Allow
{{some-component tagName="tbody"}}
to be a child of a table
(@raycohen)
- #672 Add
allowDynamicStyles
option to no-inline-styles
lint rule (@bmish)
- #638 Update
table-groups
rule to allow comments inside <table>
(@lifeart)
- #614 Add rule:
no-element-event-actions
(@bmish)
:bug: Bug Fix
- #737 Allow
onerror
for img
elements in no-invalid-interactive
rule (@elidupuis)
- #730 Ensure console output is completed before exiting
ember-template-lint
executable (@john-kurkowski)
- #709 Update
@glimmer/compiler
to avoid errors when forwarding element modifiers to component invocations (@dmzza)
- #639 Fix
no-bare-strings
to allow whitelisting empty string (@lifeart)
- #618 Allow
{{else}} {{#unless ...}}
in the simple-unless
and no-negated-condition
rules (@bmish)
- #613 Avoid suggesting
unless
with helpers in condition in no-negated-condition
rule (@bmish)
:memo: Documentation
- #678 Add documentation on how to ignore modules when using ember-template-lint and ember-cli-template-lint together (@DingoEatingFuzz)
- #695 Fixed 404 URL in
sourceForNode
comment (@kevinansfield)
- #686 Fix link to spec in
self-closing-void-elements
documentation (@woprandi)
- #675 Add allowed example to
no-bare-strings
rule documentation (@bmish)
- #671 Add command for generating pending list to README (@TristanToye)
- #670 Fix a typo in the
style-concatenation
rule documentation (@dmzza)
- #652 Update documentation to show
no-element-event-actions
and no-action-modifiers
as related rules (@keanedawg)
- #641 Add template for writing documentation for new rules (@bmish)
:house: Internal
- #627 Add
-test
suffix to some test files that were not running in CI (@bmish)
Committers: 16
v1.1.0 (2019-01-16)
:rocket: Enhancement
- #609 Add 'no-negated-condition' rule (@bmish)
- #573 Allow RegExp's with no-implicit-this (@iki6)
:bug: Bug Fix
- #559 Added video and audio with control attribute as interactive elements (@HenryVonfire)
- #607 Always ignore dist, tmp, node_modules by default. (@jasonmit)
- #600 Add {{welcome-page}} to default allowed list for no-implicit-this. (@rwjblue)
:memo: Documentation
- #608 Improve clarity of descriptions and examples in rule docs. (@bmish)
- #606 Fix typo in 'no-unnecessary-concat' doc migration regexp. (@bmish)
:house: Internal
Committers: 5
v1.0.0 (2019-01-08)
:boom: Breaking Change
- #599 Remove attribute-indentation from recommended config. (@rwjblue)
:rocket: Enhancement
- #598 Add lerna-changelog for changelog generation. (@rwjblue)
- #582 Ensure absolute paths are normalized when checking modules for "pending" status (@xcambar)
- #584 feat: add rule 'no-extra-mut-helper-argument'. (@bmish)
- #528 Add option to executable for specifying a custom config path (@krivaten)
- #535 Add no-action-modifiers rule (@bendemboski)
:bug: Bug Fix
- #597 Fix config resolution with Yarn PnP. (@rwjblue)
- #592 fix: errors from 'simple-unless' rule with empty unless usage (@bmish)
- #591 feat: update 'style-concatenation' rule to catch an unsafe usage of the 'concat' helper. (@bmish)
- #580 Ensure failure when invalid config path is provided. (@xcambar)
- #568 Fix contextual component error message in attribute-indentation and block-indentation rules (@HodofHod)
:memo: Documentation
- #590 docs: improve organization, formatting, and consistency for rule docs. (@bmish)
- #589 docs: reorganize, reformat, add links, and add examples to improve doc for 'style-concatenation' rule. (@bmish)
- #574 Fix typo in no-implicit-this documentation (@efx)
- #564 Removed ember-i18n recommendation in no-bare-string documentation (@Alonski)
- #563 Add an example of how to ignore files to the README (@h2blake)
- #547 Fix typo in table-groups rule documentation (@evoactivity)
- #544 Fix attribute-indentation rule documentation to comply with default config (@benmurden)
- #541 Fix attribute-indentation rule documentation to comply with default config (@benmurden)
- #540 Small tweaks to
no-shadowed-elements
docs (@sduquej)
- #515 Add documentation for no-shadowed-elements rule (@Willibaur)
- #538 Fix links and markdown styling (@scottwernervt)
:house: Internal
- #570 TravisCI: Remove deprecated
sudo: false
option (@Turbo87)
Committers: 16
v1.0.0-beta.6
- Fix a number of issues with attribute-indentation:
- Ensure contextual component indentation / closing indentation is properly enforced.
- Ensure block opening indentation is properly detected when the block itself is indented.
- Ensure element modifiers are handled and do cause elements to fail
attribute-indentation (note: this requires that all element modifiers are
after all attributes).
v1.0.0-beta.5
- Refactor
linebreak-style
rule to add:
system
setting which enforces current system native line endings
true
value now prevents mixing line endings (as opposed to enforcing a specific one)
- Fix a number of issues with
attribute-indentation
:
- Ensure that using a value-less attribute does not cause following attributes to be considered the wrong indentation
- Ensure that mustache invocation from within an ElementNode uses the correct indentation
- Add configuration to control where the
>
/ />
or }}
of the open element/mustache go
- 'new-line' - requires the closing symbol on a new line (outdented)
- 'last-attribute' - requires the closing symbol to be directly after the last attribute
- Ensure invalid config errors are properly bubbled to the console
- Update
simple-unless
to allow either maxHelpers
or whitelist
or both together
v1.0.0-beta.4
- Ensure the
no-implicit-this
rule allows hasBlock
/ has-block
without arguments.
- Ensure
no-ambiguous-elements
rule does not mark angle bracket invocation of yielded block param paths as invalid.
v1.0.0-beta.3
- Fix issue causing
node_modules
to be scanned when running ember-template-lint .
.
v1.0.0-beta.2
v0.8.23
- Fix regression in
no-unused-block-params
rule.
- Add support for element validation to
attribute-indentation
rule (enableable via the process-elements
configuration option).
v0.8.22
- Add
link-href-attributes
rule to forbid a
elements without an href
attribute.
v0.8.21
- Add
--quiet
option to command line interface. Similar to the same option in eslint
the --quiet
prevents warnings from being printed.
- Fix issue with block param scope tracking (from
BlockStatement
s) included in prior versions.
v0.8.20
- Fix issue with using literals in mustaches (e.g.
{{false}}
).
v0.8.19
Bugfixes
- Update to latest
@glimmer/compiler
(0.35.5).
- Correct naming of
no-attrs-in-components
rule (deprecating no-attr-in-components
).
- Add line/column information to fatal / parsing errors.
- Deprecate
no-trailing-dot-in-path-expression
rule (it is now directly enforced by Glimmer itself).
- Update
invocation-blacklist
rule to accommodate angle bracket invocation.
- Update
no-unused-block-param
rule to accommodate angle bracket invocation.
- Add
Plugin.prototype.isLocal
to test if a given node is derived from a block param.
- Add ability to configure the indentation level for
attribute-indentation
rule.
New Rules
- Add
no-implicit-this
rule. See the documentation for more details.
- Add
no-shadowed-elements
rule.
0.8.18
- Ensure
no-nested-interactive
rule does not flag angle bracket invoked components.
0.8.17
- Fix issue with rule deprecation (introduced in 0.8.16). This was causing
deprecated rules that were configured properly to "loose" their config.
- Ensure reported errors include line and column numbers.
0.8.16
- Add
invocable-blacklist
rule allowing specific invokables to be disabled
(e.g. you want to forbid a stinky-garbage
component or helper from usage in
your app).
- Fix various ordering issues with
link-rel-noopener
rule (combinations of
noreferrer
and noopener
would incorrectly be marked as invalid).
- Fix issues with templates with a string literal inside mustaches (e.g.
{{"foo"}}
).
- Remove
tabpanel
from being considered an interactive element.
- Add
aria-label
, aria-placeholder
, aria-roledescription
,
aria-valuetext
to be considered as part of the no-bare-strings
rule.
- Rename a number of rules for consistency. A deprecation message will be
emitted when the deprecated name is used in your applications configuration:
inline-styles
-> no-inline-styles
bare-strings
-> no-bare-strings
html-comments
-> no-html-comments
invalid-interactive
-> no-invalid-interactive
nested-interactive
-> no-nested-interactive
triple-curlies
-> no-triple-curlies
unused-block-params
-> no-unused-block-params
0.8.15
- add whitelist to simple-unless #356
- add no-partial rule #369
- unused-block-params: Disable rule when partial is used in scope #368
- Remove unused
lodash
dependency #367
- add no-unnecessary-concat rule #365
- update @glimmer/compiler to version 0.32.3 #362
- Remove explicit
@glimmer/syntax
dependency #363
- add no-outlet-outside-routes rule #359
- add no-input-block and no-input-tagname rules #361
- add no-unbound rule #360
- fix attribute-indentation) #358
- fix eol-last #344
- fix attribute-indentation #334
- Allow form elements to have reset actions #355
- No trailing dot(s) in a path expression #342
- Allow sharing and extending configs #322
- table-groups improvements #335
0.8.14
- Ensure that the configuration objects are not mutated.
0.8.13
- Add new
quotes
rule. Examples:
Enforce either:
<div class="my-class">test</div>
{{my-helper "hello there"}}
or:
<div class='my-class'>test</div>
{{my-helper 'hello there'}}
You can read more about the rule in the documentation.
0.8.12
- Ensure packages required by the executable script are dependencies. This fixes issues when using
ember-template-lint
as a globally installed package.
0.8.11
- Fix issue with
attribute-indentation
rule (reporting incorrect indentation for multiple valid invocations).
0.8.10
- Add new
no-trailing-spaces
rule. Examples:
Bad:
<div>test</div>//••
//•••••
Good:
<div>test</div>//
//
You can read more about the rule in the documentation.
- Add new
eol-last
rule. Examples:
Enforce either:
<div>test</div>
or:
<div>test</div>
You can read more about the rule in the documentation.
0.8.9
- Add support for
colgroup
and caption
to table-groups
rule.
- Colorize the error severity in the console output.
0.8.8
- Add new
table-groups
rule. Examples:
The rule forbids the following:
<table>
<tr>
<td></td>
</tr>
</table>
<table>
{{some-thing content=content}}
</table>
Instead, you should write your table as:
<table>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
<table>
<tbody>
{{some-thing content=content}}
</tbody>
</table>
You can read more about the rule in the documentation.
0.8.7
- Ensure that the contents of else blocks (a.k.a.
inverse
blocks) are checked for indentation.
0.8.6
- Fix error in
simple-unless
rule when an {{if
or {{unless
block was empty.
0.8.5
- Add new
template-length
rule. When enabled, this rule restricts the total number of lines in a template file to the configured number. You can read more about the rule (and configuration) in the documentation.
0.8.4
- Add new
attribute-indentation
rule. Examples:
{{! good }}
{{foo-bar baz="bat" derp="qux"}}
{{foo-bar
baz="bat"
derp="qux"
}}
{{
baz="bat"
derp="qux"
as |foo|}}
stuff here
{{/foo-bar}}
{{
stuff here
{{/foo-bar}}
{{! bad }}
{{foo-bar baz="bat"
derp="qux"
}}
{{foo-bar
baz="bat"
derp="qux"
}}
{{foo-bar
baz="bat"
derp="qux"}}
You can read more about the rule (and configuration) in the documentation.
0.8.3
- Update @glimmer packages to 0.27.0.
- Update
block-indentation
rule to allow {{#if foo}}stuff{{else}}stuff{{/if}}
.
- Fix error being thrown by
linebreak-style
rule when dynamic attributes were being used (e.g. <img alt="example" src={{some/thing here}}>
).
0.8.2
- Add new rule
no-duplicate-attributes
to prevent duplicating the same attributes in a single mustache/block/element. Read the documentation for more details.
- Add new rule
linkbreak-style
to ensure all templates use the same style of linebreaks throughout the template. Read the documentation for more details.
0.8.1
- Fix issue with console output formatting to avoid noisy console output when no errors are present.
0.8.0
- Refactor the console output formatter to be a much closer match to ESLint output (changes the signature of
Linter.errorsToMessages
).
0.7.4
- Cleanup dependencies (remove unused, update versions to latest, etc).
- Move rule documentation out of the
README.md
and into docs/rules/<rule-name>.md
to make it simpler to reason about and link to documentation by rule.
- Add
require
as an option to self-closing-void-elements
. Use this value if you would like to require that all void elements are self closing (e.g. you require <img />
).
0.7.3
- Move
strip-bom
to dependencies
(was mistakenly a devDependency
).
0.7.2
- Prevent errors when using contextual components.
0.7.1
- Prevent errors within the
bare-strings
rule for <input placeholder="{{foo}}.">
0.7.0
- Add support for user supplied rules and configuration. Please review the documentation for more details.
- Add
ember-template-lint
command line script. This enable much easier running of the linter from the command line, editor plugins, etc. Supports --json
flag to enable easier consumption by tools. See documentation for more details.
- Allow
rel=noreferrer
to satisfy the link-rel-noopener
rule.
- Add
inline-styles
rule, which forbids using the style
attribute in HTML elements.
- Drop support for Node < 4.
- Fix a number of issues with
block-indentation
rule when using "whitespace control" characters (e.g. {{~if foo~}}
).
- Add support for globs in
.template-lintrc.js
's ignore
option.
Add simple-unless
rule which forbids using {{unless
with an inverse (or from an inverse), and with complex helper invocations as the predicate.
`
hbs
{{! good }}
{{#unless something}}
{{/unless}}
{{! bad }}
{{#unless something}}
{{else}}
{{/unless}}
{{#unless (complex (helper (invocation)))}}
{{/unless}}
- Add `simple-unless` to the recommended configuration.
- Allow `<form onsubmit={{action 'foo'}}></form>` from the `invalid-interactive` rule.
- Remove `deprecated-each-syntax` from `recommended` config.
- Add configurable option to `link-rel-noopener` to require **both** `noopener` and `noreferrer`. See the [documentation](https://github.com/ember-template-lint/ember-template-lint#link-rel-noopener) for more details.
- Update to leverage ES2015 features that are supported in Node 4.
- Added `no-log` and `no-debugger` rules. These rules forbid usage of `{{log}}` and `{{debugger}` helpers, which should be used only for local debugging and never checked in.
- Fix issues around templates including a [Byte Order Mark](https://en.wikipedia.org/wiki/Byte_order_mark).
- Upgrade underlying engine to leverage `@glimmer/compiler@0.25.1`. Includes much smaller footprint, better location support, easier to use plugin API.
- Change API around `Rule` definition. A simple `class extends Rule { }` is all that is required.
## v0.6.3
- Add support for Handlebars comments.
A few new types of control statements are now available:
* `{{! template-lint-enable some-rule-name }}` - This will enable the rule `some-rule-name` with the default configuration (from `.template-lintrc.js`) or `true` (if not present in the config file). This can be ran for multiple rules at once (i.e. `{{! template-lint-enable bare-strings some-other-thing }}`).
* `{{! template-lint-disable some-rule-name }}` - This will disable the rule `some-rule-name`. Multiple rules can be provided at once (i.e. `{{! template-lint-disable bare-strings some-other-thing }}`).
* `{{! template-lint-configure some-rule-name { "whitelist": ["some", "valid", "json"] } }}` - This configures the rule `some-rule-name` with the `JSON.parse()`'ed result of the second argument. The configure instruction only applies toa single rule at a time.
These configuration instructions do not modify the rule for the rest of the template, but instead only modify it within whatever DOM scope the comment instruction appears.
An instruction will apply to all later siblings and their descendants:
```hbs
{{! disable for <p> and <span> and their contents, but not for <div> or <hr> }}
<div>
<hr>
{{! template-lint-disable }}
<p>
<span>Hello!</span>
</p>
</div>
An in-element instruction will apply to only that element:
{{! enable for <p>, but not for <div>, <hr> or <span> }}
<div>
<hr>
<p {{! template-lint-enable }}>
<span>Hello!</span>
</p>
</div>
An in-element instruction with the -tree suffix will apply to that element and all its descendants:
{{! configure for <p>, <span> and their contents, but not for <div> or <hr> }}
<div>
<hr>
<p {{! template-lint-configure-tree block-indentation "tab" }}>
<span>Hello!</span>
</p>
</div>
- Deprecate using HTML comments for enabling/disabling rules. Support for HTML comments will be removed in v0.7.0.
v0.6.2
- Add
ignore
to allowed configuration values. ignore
is an array of moduleId's that are to be completely ignored. This is similar (but different) from pending
.
- Add
unused-block-params
rule. The following example would fail this rule (since it has an unused block param index
):
{{
{{bar}}
{{/each}}
- Update
img-alt-attributes
rule to allow <img alt>
and <img alt="">
.
- Update
invalid-interactive
rule to allow <form {{action 'foo' on="submit"}}>
.
v0.6.1
- Fix issue with new
deprecated-inline-view-helper
(throwing error when parsing mustache statements).
v0.6.0
- Add
invalid-interactive
to recommended rules.
- Add
img-alt-attributes
to recommended rules.
- Add
style-concatenation
to recommended rules.
- Add
deprecated-inline-view-helper
to recommended rules.
- Add
link-rel-noopener
to recommended rules.
- Remove support for Node 0.10.
v0.5.18
- Add
deprecated-inline-view-helper
rule. Usage of {{view
/ {{#view
helper and {{view.path.here}}
were deprecated in Ember 1.13, and subsequently removed in Ember 2.0.
This rule flags these usages.
v0.5.17
- Fix issue with the
invalid-interactive
rule not honoring the documented additonalInteractiveTags
option.
v0.5.16
- Fix issue with
link-rel-noopener
rule when using properly with a listing (i.e. rel="noopener noreferrer"
).
- Add
inline-link-to
rule to prevent usage of inline {{link-to
.
- Add
style-concatenation
rule. This prevents the usage of <div style="{{make-background url}}">
(quoted value with any dynamic segments) but allows
<div style={{make-background url}}>
.
v0.5.15
- Fix issue causing
<iframe>
to be detected as {{#if
.
- Add
link-rel-noopener
rule. This rule requires that any <a target="_blank">
have a rel="noopener"
. This prevents the newly opened window from having access
to the opener (and helps prevent a number of phishing attacks).
v0.5.14
- Fix
invalid-indentation
rule to allow scenarios where the opening and closing elements can have no space between. For example:
<textarea
class="form-control"
id="job-instructions"
rows="3"
placeholder="Do it well"
value={{job.instructions}}
oninput={{action 'updateInstructions' value='target.value'}}></textarea>
If the above </textarea>
had been after a newline and indented properly, the default contents of the textarea would then include that whitespace. The rule now enforces
that there be no child elements within a given block.
- Remove a few ARIA roles that were incorrectly flagging things as interactive elements (i.e.
dialog
and alertdialog
).
v0.5.13
- Fix bug with
invalid-interactive
rule incorrectly flagging valid elements.
v0.5.12
- Change
nested-interactive
rule to ignore elements using tabindex
when determining if a parent element is interactive. tabindex
is still used
for detecting all child elements once already inside of another interactive element.
- Fix various issues with
nested-interactive
and <label>
.
- Consider
<label>
an interactive element.
- Specifically handle the various edge cases of having
<label><input></label>
.
- Prevent multiple interactive elements inside of a
<label>
.
- Fix bugs with the
invalid-indentation
around escaped mustaches and raw blocks.
Add invalid-interactive
rule (full documentation).
Adding interactivity to an element that is not naturally interactive content leads to a very poor experience for
users of assistive technology (i.e. screen readers). In order to ensure that screen readers can provide useful information
to their users, we should add an appropriate role
attribute when the underlying element would not have made that
role obvious.
This rule forbids the following:
<div {{action 'foo'}}></div>
Instead, you should add a role
to the element in question so that the A/T is aware that it is interactive:
<div role="button" {{action "foo"}}></div>
Add img-alt-attributes
rule (full documentation).
An <img>
without an alt
attribute is essentially invisible to assistive technology (i.e. screen readers).
In order to ensure that screen readers can provide useful information, we need to ensure that all <img>
elements
have an alt
specified. See WCAG Suggestion H37.
The rule forbids the following:
<img src="rwjblue.png">
Instead, you should write the template as:
<img src="rwjblue.png" alt="picture of Robert Jackson">
v0.5.11
- Add internal helper for determining if a given element is an interactive element.
- Update
nested-interactive
rule to use the new isInteractiveElement
helper function.
- Change
nested-interactive
configuration. Now uses an object (instead of an array). Example:
rules: {
'nested-interactive': {
ignoredTags: ['a', 'button'],
ignoreTabindex: true,
ignoreUsemapAttribute: ['img', 'object'],
additionalInteractiveTags: ['some-custom-tag'],
}
}
v0.5.10
- Add ability to mark specific rules as pending for a module. Given the following
.template-lintrc.js
file, the foo/bar/baz
module would have only its indentation related issues labeled as warnings:
module.exports = {
extends: 'recommended',
pending: [
{ moduleId: 'foo/bar/baz', only: ['block-indentation']}
]
}
All other rules with errors in the foo/bar/baz
template would still be reported as errors.
v0.5.9
- Update internals to use better API for traversing nodes in template AST.
- Lock down parser version (should make package more stable as loose deps won't break consumers).
v0.5.8
- Fix various issues with
block-indentation
rule:
- Ensure that usage of whitespace control in end block does not trigger an error. Before this:
{{#if foo}}{{~/if}}
would error.
- Validate indentation for block inverse (aka
{{else}}
).
v0.5.7
- Fix a bug with
block-indentation
rule that would throw an error if a block contained a comment.
- Fixed bugs upstream in HTMLBars that caused location information to be incorrect for attributes and comments.
v0.5.6
- Remove
bare-strings
from recommended
configuration. See #27 for more details.
v0.5.5
- Fix invalid rule name in
recommended
configuration.
- Add ability to mark files as
pending
in the .template-lintrc.js
configuration file. When a module is listed in the pending
list, it will be checked but any errors detected will be marked as warnings (and will not trigger a failing test when using ember-cli-template-lint). If there are no errors detected when checking a pending file, a new error will be triggered. The goal of this process is to allow large existing projects begin utilizing ember-template-lint
/ ember-cli-template-lint
and slowly fix their template files to comply with the rules here. Feedback welcome on this idea/process...
v0.5.4
Move rule configuration into rules
property inside .template-lintrc.js
. Configuration in the root is still supported,
but triggers a deprecation warning. Migration should be very straightforward.
Before:
module.exports = {
'bare-strings': true
}
After:
module.exports = {
rules: {
'bare-strings': true
}
}
v0.5.3
- Add ability to extend from internally managed configurations.
- Add
recommended
configuration, which can be used via the following in your .template-lintrc.js
:
module.exports = {
extends: 'recommended'
}
v0.5.2
- Add
fix
information to the results object for:
html-comments
self-closing-void-elements
deprecated-each-syntax
- Add support for context shifting
{{#each
(i.e. {{#each posts}}
) to the deprecated-each-syntax
.
v0.5.1
- Bring back rules lost during migration from ember-cli-template-lint (deprecated-each, self-closing-void-elements).
v0.5.0
- Initial migration of plugins from ember-cli-template-lint.
- Implement new node API for the Linter.
- Implement new result objects.