Skip to content

Port over all ember-template-lint rules#2371

Closed
NullVoxPopuli wants to merge 2 commits intomasterfrom
nvp/port-ember-template-lint-for-gjs-gts
Closed

Port over all ember-template-lint rules#2371
NullVoxPopuli wants to merge 2 commits intomasterfrom
nvp/port-ember-template-lint-for-gjs-gts

Conversation

@NullVoxPopuli
Copy link
Copy Markdown
Contributor

@NullVoxPopuli NullVoxPopuli commented Jan 31, 2026

Previously iterated on in #2365

In gjs/gts projects, after this PR is merged, projects without hbs will no longer need ember-template-lint.

And in the next major of eslint-plugin-ember, I propose all of these rules become default for gjs/gts files.

@NullVoxPopuli NullVoxPopuli force-pushed the nvp/port-ember-template-lint-for-gjs-gts branch from 15d9f8d to c0e3d77 Compare January 31, 2026 19:14
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR ports ember-template-lint rules to eslint-plugin-ember to support gjs/gts projects. The goal is to enable projects without .hbs files to no longer need ember-template-lint as a separate dependency, consolidating template linting into ESLint.

Changes:

  • Adds numerous template-* rules covering accessibility, best practices, deprecations, and style
  • Introduces strict-gjs and strict-gts configurations
  • Updates the rule generation script to support these new configurations

Reviewed changes

Copilot reviewed 298 out of 428 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
tests/lib/rules/template-*.js Test files for newly added template linting rules
lib/rules/template-*.js Implementation of template linting rules ported from ember-template-lint
docs/rules/template-*.md Documentation for each new rule
scripts/update-rules.js Updated to generate strict-gjs and strict-gts rule configurations
lib/config/strict-gjs.js New strict configuration for .gjs files
lib/config/strict-gts.js New strict configuration for .gts files
lib/config-legacy/strict-gjs.js Legacy format strict configuration for .gjs files
lib/config-legacy/strict-gts.js Legacy format strict configuration for .gts files
lib/recommended-rules.js Updated with new recommended template rules

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/rules/template-simple-unless.js Outdated
Comment on lines +15 to +16
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +15
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +16
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment thread lib/rules/template-require-each-key.js Outdated
Comment on lines +14 to +15
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +15
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +17 to +18
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +15
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +15
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment on lines +17 to +18
strictGjs: true,
strictGts: true,
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the messages object but should be at the meta level. They should be moved outside of messages to be sibling properties of type, docs, schema, and messages.

Copilot uses AI. Check for mistakes.
Comment thread lib/rules/template-no-bare-yield.js Outdated
Comment on lines +9 to +11
strictGjs: true,
strictGts: true,
},
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strictGjs and strictGts properties are defined inside the docs object but should be at the meta level. They should be moved outside of docs to be sibling properties of type, docs, schema, and messages.

Suggested change
strictGjs: true,
strictGts: true,
},
},
strictGjs: true,
strictGts: true,

Copilot uses AI. Check for mistakes.
NullVoxPopuli added a commit that referenced this pull request Feb 16, 2026
@github-actions github-actions bot mentioned this pull request Feb 16, 2026
Copilot AI added a commit that referenced this pull request Feb 16, 2026
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
NullVoxPopuli added a commit that referenced this pull request Feb 16, 2026
…rom-pr-2371

Port template-no-debugger rule from PR #2371
Copilot AI added a commit that referenced this pull request Feb 16, 2026
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Copilot AI added a commit that referenced this pull request Feb 16, 2026
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
@NullVoxPopuli NullVoxPopuli force-pushed the nvp/port-ember-template-lint-for-gjs-gts branch from c0e3d77 to f496f76 Compare February 17, 2026 15:29
@NullVoxPopuli NullVoxPopuli force-pushed the nvp/port-ember-template-lint-for-gjs-gts branch 3 times, most recently from 64cf92e to ea04d83 Compare February 17, 2026 23:39
This was referenced Mar 18, 2026
@NullVoxPopuli
Copy link
Copy Markdown
Contributor Author

Closing this, because I think we're near done and when the last few merge, I want to re-check against template-lint

@NullVoxPopuli NullVoxPopuli deleted the nvp/port-ember-template-lint-for-gjs-gts branch March 21, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants