Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce suspenders:lint generator #1148

Merged
merged 1 commit into from
Dec 11, 2023

Commits on Dec 11, 2023

  1. Introduce 'suspenders:lint` generator

    Closes #1107
    Closes #1143
    
    Creates a holistic linting solution that covers JavaScript, CSS, Ruby
    and ERB.
    
    Introduces [scripts][] that leverage [@thoughtbot/eslint-config][],
    [@thoughtbot/stylelint-config][] and [prettier][].
    
    Also introduces `.prettierrc` based off of our [Guides][].
    
    We need to pin `stylelint` and `@thoughtbot/stlyelint-config` to
    specific versions to account for this [open issue][]. Unfortunately,
    running `yarn run lint:stylelint` results in deprecation warnings, which
    will need to be addressed separately.
    
    [scripts]: https://docs.npmjs.com/cli/v6/using-npm/scripts
    [@thoughtbot/eslint-config]: https://github.com/thoughtbot/eslint-config
    [@thoughtbot/stylelint-config]: https://github.com/thoughtbot/stylelint-config
    [prettier]: https://prettier.io
    [Guides]: https://github.com/thoughtbot/guides/blob/main/javascript/README.md#formatting
    [open issue]: thoughtbot/stylelint-config#46
    
    Introduces `rake standard` which also runs `erblint` to lint ERB files
    via [better_html][], [erb_lint][] and [erblint-github][].
    
    [better_html]: https://github.com/Shopify/better-html
    [erb_lint]: https://github.com/Shopify/erb-lint
    [erblint-github]: https://github.com/github/erblint-github
    
    A future commit will ensure these linting rules are run during CI. In an
    effort to support that future commit, we ensure to run `yarn run
    fix:prettier` and `bundle exec standard:fix_unsafely` once the generator
    is complete. Otherwise, CI would fail because of linting violations.
    
    We call `standard:fix_unsafely` since `standard:fix` returns an error
    status code on new Rails applications. Running `standard:fix_unsafely`
    fixes this issue and returns a success status code.
    
    It should be noted that we deliberately permit this generator to be
    invoked on API only applications, because those applications can still
    contain views, like ones used for mailers.
    
    Also improves the developer experience by introducing `with_test_suite`
    helper, allowing the caller to run the generator in an application using
    minitest or RSpec.
    stevepolitodesign committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    439b3ee View commit details
    Browse the repository at this point in the history