v13.0.0
Release (2026-04-20)
- eslint-plugin-ember 13.0.0 (major)
💥 Breaking Change
eslint-plugin-ember
🚀 Enhancement
eslint-plugin-ember- #2702 feat: add (opt-in ember-template-lint parity) template-lint-migration config (@johanrd)
- #2631 Update ember-eslint-parser (@NullVoxPopuli)
- #2562 Extract rule: template-no-passed-in-event-handlers (@NullVoxPopuli)
- #2567 Extract rule: template-no-redundant-fn (@NullVoxPopuli)
- #2570 Extract rule: template-no-restricted-invocations (@NullVoxPopuli)
- #2575 Extract rule: template-no-this-in-template-only-components (@NullVoxPopuli)
- #2583 Extract rule: template-no-unknown-arguments-for-builtin-components (@NullVoxPopuli)
- #2601 Extract rule: template-require-context-role (@NullVoxPopuli)
- #2620 Extract rule: template-sort-invocations (@NullVoxPopuli)
- #2563 Extract rule: template-no-positional-data-test-selectors (@NullVoxPopuli)
- #2564 Extract rule: template-no-positive-tabindex (@NullVoxPopuli)
- #2565 Extract rule: template-no-potential-path-strings (@NullVoxPopuli)
- #2566 Extract rule: template-no-quoteless-attributes (@NullVoxPopuli)
- #2569 Extract rule: template-no-redundant-role (@NullVoxPopuli)
- #2571 Extract rule: template-no-route-action (@NullVoxPopuli)
- #2572 Extract rule: template-no-scope-outside-table-headings (@NullVoxPopuli)
- #2573 Extract rule: template-no-shadowed-elements (@NullVoxPopuli)
- #2574 Extract rule: template-no-splattributes-with-class (@NullVoxPopuli)
- #2576 Extract rule: template-no-trailing-spaces (@NullVoxPopuli)
- #2579 Extract rule: template-no-triple-curlies (@NullVoxPopuli)
- #2580 Extract rule: template-no-unavailable-this (@NullVoxPopuli)
- #2581 Extract rule: template-no-unbalanced-curlies (@NullVoxPopuli)
- #2582 Extract rule: template-no-unbound (@NullVoxPopuli)
- #2584 Extract rule: template-no-unnecessary-component-helper (@NullVoxPopuli)
- #2585 Extract rule: template-no-unnecessary-concat (@NullVoxPopuli)
- #2587 Extract rule: template-no-unnecessary-curly-parens (@NullVoxPopuli)
- #2588 Extract rule: template-no-unnecessary-curly-strings (@NullVoxPopuli)
- #2589 Extract rule: template-no-unsupported-role-attributes (@NullVoxPopuli)
- #2590 Extract rule: template-no-unused-block-params (@NullVoxPopuli)
- #2591 Extract rule: template-no-valueless-arguments (@NullVoxPopuli)
- #2592 Extract rule: template-no-whitespace-for-layout (@NullVoxPopuli)
- #2593 Extract rule: template-no-whitespace-within-word (@NullVoxPopuli)
- #2594 Extract rule: template-no-with (@NullVoxPopuli)
- #2595 Extract rule: template-no-yield-block-params-to-else-inverse (@NullVoxPopuli)
- #2596 Extract rule: template-no-yield-only (@NullVoxPopuli)
- #2597 Extract rule: template-no-yield-to-default (@NullVoxPopuli)
- #2598 Extract rule: template-quotes (@NullVoxPopuli)
- #2599 Extract rule: template-require-aria-activedescendant-tabindex (@NullVoxPopuli)
- #2600 Extract rule: template-require-button-type (@NullVoxPopuli)
- #2602 Extract rule: template-require-each-key (@NullVoxPopuli)
- #2603 Extract rule: template-require-form-method (@NullVoxPopuli)
- #2604 Extract rule: template-require-has-block-helper (@NullVoxPopuli)
- #2605 Extract rule: template-require-iframe-src-attribute (@NullVoxPopuli)
- #2606 Extract rule: template-require-iframe-title (@NullVoxPopuli)
- #2607 Extract rule: template-require-input-label (@NullVoxPopuli)
- #2608 Extract rule: template-require-lang-attribute (@NullVoxPopuli)
- #2609 Extract rule: template-require-mandatory-role-attributes (@NullVoxPopuli)
- #2610 Extract rule: template-require-media-caption (@NullVoxPopuli)
- #2611 Extract rule: template-require-presentational-children (@NullVoxPopuli)
- #2612 Extract rule: template-require-splattributes (@NullVoxPopuli)
- #2613 Extract rule: template-require-strict-mode (@NullVoxPopuli)
- #2614 Extract rule: template-require-valid-alt-text (@NullVoxPopuli)
- #2625 Extract rule: template-require-valid-form-groups (@NullVoxPopuli)
- #2616 Extract rule: template-require-valid-named-block-naming-format (@NullVoxPopuli)
- #2617 Extract rule: template-self-closing-void-elements (@NullVoxPopuli)
- #2618 Extract rule: template-simple-modifiers (@NullVoxPopuli)
- #2619 Extract rule: template-simple-unless (@NullVoxPopuli)
- #2621 Extract rule: template-splat-attributes-only (@NullVoxPopuli)
- #2622 Extract rule: template-style-concatenation (@NullVoxPopuli)
- #2623 Extract rule: template-table-groups (@NullVoxPopuli)
- #2624 Extract rule: template-template-length (@NullVoxPopuli)
- #2578 Add native class support for order-in-controllers (@RobbieTheWagner)
- #2561 Add native class support for order-in-routes (@RobbieTheWagner)
- #2560 Add native class support for order-in-models and no-empty-attrs (@RobbieTheWagner)
- #2472 Extract rule: template-no-invalid-link-text (@NullVoxPopuli)
- #2551 Add
no-tracked-built-insrule and ember-source version utility (@Copilot) - #2552 Add
no-modifier-argument-destructuringrule (@Copilot) - #2529 Skip builtin-component-arguments in GJS/GTS when not imported from @ember/component (@johanrd)
- #2413 Extract rule: template-no-builtin-form-components (@NullVoxPopuli)
- #2419 Extract rule: template-no-duplicate-attributes (@NullVoxPopuli)
- #2427 Extract rule: template-no-duplicate-landmark-elements (@NullVoxPopuli)
- #2418 Extract rule: template-no-down-event-binding (@NullVoxPopuli)
- #2426 Extract rule: template-no-duplicate-id (@NullVoxPopuli)
- #2409 Extract rule: template-no-bare-strings (@NullVoxPopuli)
- #2452 Extract rule: template-modifier-name-case (@NullVoxPopuli)
- #2435 Extract rule: template-no-forbidden-elements (@NullVoxPopuli)
- #2455 Extract rule: template-no-args-paths (@NullVoxPopuli)
- #2451 Extract rule: template-deprecated-render-helper (@NullVoxPopuli)
- #2456 Extract rule: template-no-at-ember-render-modifiers (@NullVoxPopuli)
- #2457 Extract rule: template-no-bare-yield (@NullVoxPopuli)
- #2460 Extract rule: template-no-curly-component-invocation (@NullVoxPopuli)
- #2450 Extract rule: template-deprecated-inline-view-helper (@NullVoxPopuli)
- #2441 Extract rule: template-no-inline-linkto (@NullVoxPopuli)
- #2438 Extract rule: template-no-html-comments (@NullVoxPopuli)
- #2461 Extract rule: template-attribute-indentation (@NullVoxPopuli)
- #2453 Extract rule: template-no-action-on-submit-button (@NullVoxPopuli)
- #2439 Extract rule: template-no-index-component-invocation (@NullVoxPopuli)
- #2462 Extract rule: template-block-indentation (@NullVoxPopuli)
- #2459 Extract rule: template-no-class-bindings (@NullVoxPopuli)
- #2464 Extract rule: template-eol-last (@NullVoxPopuli)
- #2465 Extract rule: template-linebreak-style (@NullVoxPopuli)
- #2467 Extract rule: template-no-dynamic-subexpression-invocations (@NullVoxPopuli)
- #2468 Extract rule: template-no-extra-mut-helper-argument (@NullVoxPopuli)
- #2469 Extract rule: template-no-implicit-this (@NullVoxPopuli)
- #2470 Extract rule: template-no-input-block (@NullVoxPopuli)
- #2471 Extract rule: no-invalid-aria-attributes (@NullVoxPopuli)
- #2473 Extract rule: template-no-invalid-link-title (@NullVoxPopuli)
- #2474 Extract rule: template-no-invalid-meta (@NullVoxPopuli)
- #2475 Extract rule: template-no-invalid-role (@NullVoxPopuli)
- #2477 Extract rule: template-no-link-to-positional-params (@NullVoxPopuli)
- #2479 Extract rule: template-no-model-argument-in-route-templates (@NullVoxPopuli)
- #2480 Extract rule: template-no-multiple-empty-lines (@NullVoxPopuli)
- #2481 Extract rule: template-no-mut-helper (@NullVoxPopuli)
- #2482 Extract rule: template-no-negated-comparison (@NullVoxPopuli)
- #2476 Extract rule: template-no-jsx-attributes (@NullVoxPopuli)
- #2478 Extract rule: template-no-link-to-tagname (@NullVoxPopuli)
- #2483 Extract rule: template-no-negated-condition (@NullVoxPopuli)
- #2484 Extract rule: template-no-nested-interactive (@NullVoxPopuli)
- #2485 Extract rule: template-no-nested-landmark (@NullVoxPopuli)
- #2486 Extract rule: template-no-nested-splattributes (@NullVoxPopuli)
- #2487 Extract rule: template-no-obscure-array-access (@NullVoxPopuli)
- #2488 Extract rule: template-no-obsolete-elements (@NullVoxPopuli)
- #2489 Extract rule: template-no-only-default-slot (@NullVoxPopuli)
- #2490 Extract rule: template-no-outlet-outside-routes (@NullVoxPopuli)
- #2491 Extract rule: template-no-page-title-component (@NullVoxPopuli)
- #2440 Extract rule: template-no-inline-event-handlers (@NullVoxPopuli)
- #2442 Extract rule: template-no-inline-styles (@NullVoxPopuli)
- #2444 Extract rule: template-no-input-placeholder (@NullVoxPopuli)
- #2447 Extract rule: template-no-invalid-interactive (@NullVoxPopuli)
- #2445 Extract rule: template-no-input-tagname (@NullVoxPopuli)
- #2448 Add rule: ember/template-no-deprecated (@wagenet)
- #1 Add base configurations (@michalsnik)
- #2430 Extract rule: template-no-empty-headings (@NullVoxPopuli)
- #2434 Extract rule: template-no-chained-this (@NullVoxPopuli)
- #2437 Extract rule: template-no-heading-inside-button (@NullVoxPopuli)
- #2429 Extract rule: template-no-element-event-actions (@NullVoxPopuli)
- #2414 Extract rule: template-no-capital-arguments (@NullVoxPopuli)
- #2407 Extract rule: template-no-attrs-in-components (@NullVoxPopuli)
- #2412 Extract rule: template-no-block-params-for-html-elements (@NullVoxPopuli)
- #2408 Extract rule: template-no-autofocus-attribute (@NullVoxPopuli)
- #2421 Extract rule: template-no-array-prototype-extensions (@NullVoxPopuli)
- #2404 Extract rule: template-no-aria-hidden-body (@NullVoxPopuli)
- #2424 Extract rule: template-no-action-modifiers (@NullVoxPopuli)
- #2403 Extract rule: template-no-arguments-for-html-elements (@NullVoxPopuli)
- #2405 Extract rule: template-no-aria-unsupported-elements (@NullVoxPopuli)
- #2423 Extract rule: template-no-action (@NullVoxPopuli)
- #2420 Add strict-gjs and strict-gts configs so that users could opt in to these new rules from ember-template-lint before we do our next major (@NullVoxPopuli)
- #2398 Extract rule: template-no-abstract-roles (@NullVoxPopuli)
- #2399 Extract rule: template-no-accesskey-attribute (@NullVoxPopuli)
- #2396 Extract rule: template-link-rel-noopener (@NullVoxPopuli)
- #2395 Extract rule: template-link-href-attributes (@NullVoxPopuli)
- #2391 Extract rule: template-builtin-component-arguments (@NullVoxPopuli)
- #2390 Extract rule: template-attribute-order (@NullVoxPopuli)
- #2383 Port template-no-debugger rule from PR #2371 (@Copilot)
- #2381 Port template-no-log rule from PR #2371 (@Copilot)
🐛 Bug Fix
eslint-plugin-ember- #2676 Post-merge-review: use scope manager for block-param tracking in template-no-obsolete-elements (@johanrd)
- #2689 Post-merge-review: extend allowlist with svg-tags on template-no-block-params-for-html-elements (@johanrd)
- #2662 Post-merge-review: fix template-no-passed-in-event-handlers ignore-config format and event list (@johanrd)
- #2687 Post-merge-review: Fix template-no-arguments-for-html-elements: add svg and mathml elements (@johanrd)
- #2683 Post-merge-review: Fix template-require-lang-attribute: validate every BCP47 subtag from 'language-tags' (@johanrd)
- #2694 Post-merge-review: Fix template-no-nested-landmark: drop port-only section/region (@johanrd)
- #2688 Post-merge-review: Fix template-no-attrs-in-components: align detection with upstream (@johanrd)
- #2698 Post-merge-review: Fix template-require-form-method: throw on bad config; default enabled (@johanrd)
- #2709 remove: template-no-negated-comparison (@johanrd)
- #2681 Post-merge-review: Fix template-no-whitespace-for-layout false positive on attribute values (@johanrd)
- #2693 Post-merge-review: template-no-negated-comparison: document name-clash; drop non-standard 'ne' (@johanrd)
- #2704 chore: add originallyFrom metadata to 26 ported rules (@johanrd)
- #2707 Post-merge-review: template-no-implicit-this support regex patterns in allow option (@johanrd)
- #2708 restore: template-no-negated-condition (accidentally deleted in 133a16f) (@johanrd)
- #2652 Post-merge-review: Fix
template-no-link-to-tagname: only flag@tagName, not baretagName, on angle-bracket<LinkTo>(@johanrd) - #2684 Post-merge-review: Fix template-require-iframe-title: split messageIds; report each duplicate with index (@johanrd)
- #2700 Post-merge-review: Fix template-require-media-caption: skip caption check when muted is dynamic (@johanrd)
- #2690 Post-merge-review: Set templateMode: 'both' on template-no-invalid-interactive (@johanrd)
- #2691 Post-merge-review: Fix template-no-model-argument-in-route-templates: lint .gjs/.gts and unknown paths (@johanrd)
- #2692 Post-merge-review: Fix template-no-mut-helper: templateMode 'both' and unwrap setterAlternative (@johanrd)
- #2695 Post-merge-review: Fix template-no-shadowed-elements: align HTML-element detection with upstream (@johanrd)
- #2685 Post-merge-review: Add autofix to template-no-unknown-arguments-for-builtin-components: rename args and migrate events (@johanrd)
- #2696 Post-merge-review: Fix template-quotes: accept boolean root config (@johanrd)
- #2697 Post-merge-review: Fix template-require-aria-activedescendant-tabindex: autofix for non-div tags (@johanrd)
- #2686 Post-merge-review: Fix template-require-context-role: align aria-hidden scope and report oc with upstream (@johanrd)
- #2699 Post-merge-review: Fix template-require-mandatory-role-attributes: read StringLiteral .value not .original (@johanrd)
- #2701 Post-merge-review: Fix template-table-groups: align with upstream's table semantics (@johanrd)
- #2664 Post-merge-review: Fix
template-no-at-ember-render-modifiers: detect GJS/GTS imports (@johanrd) - #2654 Post-merge-review: Fix
template-no-action-modifiersautofix: skip when hash pairs are present (@johanrd) - #2680 Post-merge-review: Fix template-no-invalid-link-text: skip when link contains non-text children (@johanrd)
- #2677 Post-merge-review: Fix
template-no-actionfalse positive in GJS/GTS (@johanrd) - #2675 Post-merge-review: Fix
template-no-unnecessary-component-helper: skip autofix for invalid GJS/GTS identifiers (@johanrd) - #2682 Post-merge-review: Fix template-no-duplicate-landmark-elements false positive on dynamic aria-label (@johanrd)
- #2660 Post-merge-review: Fix
template-no-invalid-aria-attributes: reject boolean strings for string-typed ARIA attributes (@johanrd) - #2659 Post-merge-review: Fix
template-no-implicit-this: callee detection, block-param scoping, bare{{this}}(@johanrd) - #2658 Post-merge-review: Fix
template-no-dynamic-subexpression-invocationsfalse positive on body-positionthis.*mustaches (@johanrd) - #2657 Post-merge-review: Fix
template-no-curly-component-invocation: preservethis./@/local names in suggestions, and skip JS scope bindings (@johanrd) - #2656 Post-merge-review: Fix
template-no-chained-thisautofix: also update the closing tag (@johanrd) - #2679 Post-merge-review: Fix
template-no-inline-linktofalse positive in GJS/GTS (@johanrd) - #2668 Post-merge-review: Fix
template-no-unboundfalse positive in GJS/GTS (@johanrd) - #2661 Post-merge-review: Fix
template-no-multiple-empty-lines: detect trailing empty lines and fix reported location (@johanrd) - #2663 Post-merge-review: Fix
template-no-empty-headings: recognize<this.X>,<@x>,<ns.X>as accessible content (@johanrd) - #2665 Post-merge-review: Fix
template-deprecated-render-helperfalse positive in GJS/GTS (@johanrd) - #2666 Post-merge-review: Fix
template-deprecated-inline-view-helperfalse positive in GJS/GTS (@johanrd) - #2667 Post-merge-review: Fix
template-no-class-bindingsfalse positive in GJS/GTS (@johanrd) - #2670 Post-merge-review: Fix
template-no-logfalse positive on JS scope bindings in GJS/GTS (@johanrd) - #2671 Post-merge-review: Fix
template-no-outlet-outside-routesfalse positive on importedoutlet(@johanrd) - #2673 Post-merge-review: Fix
template-require-has-block-helper: skip JS scope bindings (@johanrd) - #2674 Post-merge-review: Fix
template-no-invalid-link-title: track@ember/routingLinkTo import (@johanrd) - #2672 Post-merge-review: Fix
template-require-input-labelmustache branch: apply strict-mode guard (@johanrd) - #2669 Post-merge-review: Fix
template-no-input-tagnamefalse positive in GJS/GTS (@johanrd) - #2678 Post-merge-review: Fix
template-no-input-blockfalse positive in GJS/GTS (@johanrd) - #2651 Post-merge-review: Fix
template-no-invalid-interactive: align interactive element detection with upstream (@johanrd) - #2647 Post-merge-review: Restore autofix for
template-simple-unless(@johanrd) - #2650 Post merge-review: Fix
template-no-quoteless-attributesfalse positive on quoted values (@johanrd) - #2646 Post-merge-review: Restore autofix for template-no-positional-data-test-selectors (@johanrd)
- #2645 Post-merge-review: Fix
template-no-this-in-template-only-components: detect.hbsfiles with backing class on disk (@johanrd) - #2648 Post-merge-review: Restore autofix for
template-no-redundant-fn(@johanrd) - #2649 Post-merge-review: Restore autofix for template-sort-invocations (@johanrd)
- #2644 Post-merge-review: Fix
template-no-unused-block-params: detect angle-bracket block params and walk modifiers (@johanrd) - #2637 Fix rule: ember/template-no-invalid-link-text (@tcjr)
- #2636 Fix rule: ember/template-no-unused-block-params (@tcjr)
- #2633 Remove new configs introduced in template-lint extraction (@NullVoxPopuli)
- #2630 Post-merge cleanup of eslint 10 copmpat to match with #2492 (@johanrd)
- #2626 Delete rules that never existed or have overlap with other rules (@NullVoxPopuli)
- #2549 [BUGFIX]:
no-test-import-exportfalse positive on non-test files ending in -test (@johanrd) - #2536 Restore autofix:
template-block-indentation(@johanrd) - #2523 Post-merge review of #2461 (
template-attribute-indentation) (@johanrd) - #2524 Post-merge review of #2427 (
template-no-duplicate-landmark-elements) (@johanrd) - #2525 Post-merge review of #2450 (
template-deprecated-inline-view-helper) (@johanrd) - #2526 Post-merge review of #2460 (
template-no-curly-component-invocation) (@johanrd) - #2527 Post-merge review of #2426 (
template-no-duplicate-id) (@johanrd) - #2528 Skip reporting for submit buttons (@johanrd)
- #2530 Restore autofix:
template-no-action-modifiers(@johanrd) - #2531 Restore autofix:
template-no-array-prototype-extensions(@johanrd) - #2532 Restore autofix:
template-no-multiple-empty-lines(@johanrd) - #2533 Restore autofix:
no-negated-condition(@johanrd) - #2534 Restore autofix:
template-no-obscure-array-access(@johanrd) - #2537 Restore autofix:
template-no-curly-component-invocation(@johanrd) - #2535 Restore autofix:
template-attribute-order(@johanrd) - #2538 [BUGFIX legacy]:
avoid-leaking-state-in-ember-objectsfalse positives with TypeScript type assertions (@johanrd) - #2540 [BUGFIX]: Recognize
import { service }in order-in-* rules andno-implicit-injections(@johanrd) - #2541 [BUGFIX legacy]: Broaden mirage.js
findByexclusion inno-array-prototype-extensions(@johanrd) - #2542 [BUGFIX]:
no-tracked-properties-from-argscrash on method calls (@johanrd) - #2544 [BUGFIX]:
no-empty-glimmer-component-classesfalse positive ondeclare class(@johanrd) - #2545 [BUGFIX]:
no-test-import-exportfalse positive on package imports (@johanrd) - #2539 [BUGFIX legacy]:
require-computed-macrosself-referential autofix (@johanrd) - #2550 [BUGFIX legacy] Fix no-implicit-injections crash with mixins and empty class bodies (@johanrd)
- #2546 [BUGFIX legacy]:
no-deprecated-router-transition-methodscrash with mixins (@johanrd) - #2548 [BUGFIX]:
no-actions-hashcrash on TypeScript declare properties (@johanrd) - #2543 [BUGFIX]:
no-computed-properties-in-native-classeswhen file mixes native and classic classes (@johanrd) - #2508 Fix locals tracking for deprecated-inline-view (@NullVoxPopuli)
- #2496 Post-merge review of #2408 (
template-no-autofocus-attribute) (@johanrd) - #2500 Post-merge review of #2424 (
template-no-action-modifiers) (@johanrd) - #2504 Post-merge review of #2484 (
template-no-nested-interactive) (@johanrd) - #2501 Post-merge review of #2471 (
template-no-invalid-aria-attributes) (@johanrd) - #2498 Post-merge review of #2475 (
template-no-invalid-role) (@johanrd) - #2495 Post-merge review of #2469 (
template-no-implicit-this) (@johanrd) - #2497 Post-merge review of #2477 (
template-no-link-to-positional-params) (@johanrd) - #2494 Post-merge review of #2395 (
template-link-href-attributes) (@johanrd) - #2503 Post-merge review of #2396 (
template-link-rel-noopener) (@johanrd) - #2499 Post-merge review of #2414 (
template-no-capital-arguments) (@johanrd) - #2502 Post-merge review of #2381 (
template-no-log) (@johanrd) - #2505 Post-merge review of #2429 (
template-no-element-event-actions) (@johanrd) - #2506 Post-merge review of #2423 (
template-no-action) (@johanrd) - #2507 Post-merge review of #2490 (
template-no-outlet-outside-routes) (@johanrd) - #2493 Post-merge review of #2442 (
template-no-inline-styles) (@johanrd)
🏠 Internal
eslint-plugin-ember- #2705 Post-merge-review: add missing tests from ember-template-lint test suite (@johanrd)
- #2703 Post-merge-review: cleanup redundant upstream comments (@johanrd)
- #2632 Add mitata benchmark for recommended config linting (@NullVoxPopuli-ai-agent)
- #2520 Revert "Update devDependencies (major)" (@NullVoxPopuli)
- #2519 Revert "Update devDependencies" (@NullVoxPopuli)
- #2518 Revert "Lock file maintenance" (@NullVoxPopuli)
- #2466 Add editor config utils (@NullVoxPopuli)
- #2463 Update the docs-generator to handle the 'templateMode: loose' in rules from nvp/port-ember-template-lint-for-gjs-gts (@NullVoxPopuli)
- #2449 Upgrade parser (@NullVoxPopuli)
- #2382 Cleanup unused snapshots (@NullVoxPopuli)
- #2368 We have prettier (and thus editors detect and run it), but what we check in CI is different (@NullVoxPopuli)
Committers: 8
- @NullVoxPopuli's reduced-access machine account for AI usage (@NullVoxPopuli-ai-agent)
- Copilot [Bot] (@copilot-swe-agent)
- Michał Sajnóg (@michalsnik)
- Peter Wagenet (@wagenet)
- Robbie Wagner (@RobbieTheWagner)
- Tom Carter (@tcjr)
- @NullVoxPopuli
- @johanrd