{"id":13747315,"url":"https://github.com/standardrb/standard","last_synced_at":"2025-08-20T16:04:02.290Z","repository":{"id":33258347,"uuid":"156555906","full_name":"standardrb/standard","owner":"standardrb","description":"Ruby's bikeshed-proof linter and formatter 🚲","archived":false,"fork":false,"pushed_at":"2025-04-08T20:18:38.000Z","size":1116,"stargazers_count":2806,"open_issues_count":56,"forks_count":218,"subscribers_count":48,"default_branch":"main","last_synced_at":"2025-04-20T11:02:15.330Z","etag":null,"topics":["formatter","linter","rubocop","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/standardrb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-07T14:08:51.000Z","updated_at":"2025-04-18T15:48:43.000Z","dependencies_parsed_at":"2023-10-04T23:04:03.407Z","dependency_job_id":"e23f756e-67f0-48fc-b631-5596c4a9bba6","html_url":"https://github.com/standardrb/standard","commit_stats":{"total_commits":873,"total_committers":121,"mean_commits":7.214876033057851,"dds":0.4616265750286369,"last_synced_commit":"3f865570b9f59ba3226848d2dc8a9e2a204c94f1"},"previous_names":["testdouble/standard"],"tags_count":179,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/standardrb%2Fstandard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/standardrb%2Fstandard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/standardrb%2Fstandard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/standardrb%2Fstandard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/standardrb","download_url":"https://codeload.github.com/standardrb/standard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253217135,"owners_count":21873018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formatter","linter","rubocop","ruby"],"created_at":"2024-08-03T06:01:24.844Z","updated_at":"2025-08-20T16:04:02.281Z","avatar_url":"https://github.com/standardrb.png","language":"Ruby","readme":"\u003cimg src=\"https://user-images.githubusercontent.com/79303/233717126-9fd13e6d-9a66-4f1c-b40c-fe875cb1d1b4.png\" style=\"width: 100%\"/\u003e\n\n[![Tests](https://github.com/standardrb/standard/actions/workflows/test.yml/badge.svg)](https://github.com/standardrb/standard/actions/workflows/test.yml)\n[![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/standardrb/standard)\n[![Gem Version](https://badge.fury.io/rb/standard.svg)](https://rubygems.org/gems/standard)\n\nThe `standard` gem brings the ethos of [StandardJS](https://standardjs.com) to\nRuby. It's a linter \u0026 formatter built on\n[RuboCop](https://github.com/rubocop/rubocop) and provides an **unconfigurable\nconfiguration** to all of RuboCop's built-in rules as well as those included in\n[rubocop-performance](https://github.com/rubocop/rubocop-performance). It also\nsupports plugins built with\n[lint_roller](https://github.com/standardrb/lint_roller), like\n[standard-rails](https://github.com/standardrb/standard-rails) and\n[standard-sorbet](https://github.com/standardrb/standard-sorbet).\n\nStandard Ruby was created and is maintained by the team at [Test\nDouble](https://testdouble.com), because we appreciate the importance of\nbalancing predictable, consistent code with preserving developer autonomy. 💚\n\nTopics covered in this README:\n\n* [Wait, what?!](#wait-did-you-say-unconfigurable-configuration)\n* [Basic usage](#usage)\n* [Editor \u0026 CI integrations](#integrating-standard-into-your-workflow)\n* [Ignoring errors](#ignoring-errors)\n* [Configuration options](#configuring-standard)\n* [Plugins and extensions](#extending-standard)\n* [Community](#who-uses-standard-ruby)\n\n## Wait, did you say unconfigurable configuration?\n\nYes, Standard is unconfigurable. See, pretty much every developer can agree that\nautomatically identifying and fixing slow, insecure, and error-prone code is a\ngood idea. People also agree it's easier to work in codebases that exhibit a\nconsistent style and format. So, what's the problem? **No two developers will\never agree on what all the rules and format should be.**\n\nThis has resulted in innumerable teams arguing about how to configure their linters\nand formatters over literal decades. Some teams routinely divert time and energy\nfrom whatever they're building to reach consensus on where commas should go.\nOther teams have an overzealous tech lead who sets up everything _his favorite\nway_ and then imposes his will on others. It's not uncommon to witness\npassive-aggressive programmers change a contentious rule back-and-forth,\nresulting in both acrimony and git churn (and acrimony _about_ git churn).\nStill, most developers give way to whoever cares more, often resulting in an\ninconsistent configuration that nobody understands and isn't kept up-to-date\nwith changes to their linter and its target language. Whatever the approach,\ntime spent\n[bikeshedding](https://blog.testdouble.com/posts/2019-09-17-bike-shed-history/)\nis time wasted.\n\n**But you can't configure Standard Ruby.** You can take it or leave it. If this\nseems presumptive, constraining, and brusque: you're right, it usually does feel\nthat way at first. But [since\n2018](https://www.youtube.com/watch?v=uLyV5hOqGQ8), the Ruby community has\ndebated Standard Ruby's ruleset, ultimately landing us on a\n[sensible](/config/base.yml)\n[set](https://github.com/standardrb/standard-performance/blob/main/config/base.yml)\nof\n[defaults](https://github.com/standardrb/standard-custom/blob/main/config/base.yml)\nthat—_while no one person's favorite way to format Ruby_—seems to be good enough\nfor most of the ways people use Ruby, most of the time.\n\nIf you adopt Standard Ruby, what's in it for you? Time saved that would've been\nspent arguing over how to set things up. Also, seamless upgrades: we stay on top\nof each new RuboCop rule and update our configuration on a monthly release\ncadence. But the best part of adopting Standard as your linter and formatter?\n**You'll spend a whole lot less time thinking about linters and formatters.**\n\nSo please, give Standard Ruby a try. If you're like [these\nfolks](#who-uses-standard-ruby), you'll soon realize that the value of a linter\nis in using one at all and not in the particulars of how it's configured.\n\n## Usage\n\n### Install\n\nGetting started is as easy as `gem install standard` or throwing it in your\nproject's Gemfile and running `bundle install`:\n\n```ruby\ngem \"standard\"\n```\n\n### Running Standard Ruby\n\nOnce installed, you can run Standard from the command line via its built-in\nexecutable or as a Rake task.\n\nStandard Ruby's binary is named `standardrb` to distinguish it from\n[StandardJS](https://github.com/standard/standard):\n\n```\n$ standardrb\n```\n\nAnd the Rake task can be run if your Rakefile includes `require\n\"standard/rake\"`.  This will load the `standard` task, allowing you to run:\n\n```\n$ rake standard\n```\n\nEither way, Standard will inspect any Ruby files found in the current directory\ntree. If any errors are found, it'll report them. If your code is\nstandard-compliant, it will get out of your way by quietly exiting code 0.\n\n### Fixing errors\n\nA majority of Standard's rules can be safely fixed automatically.\n\n```\n# CLI\n$ standardrb --fix\n\n# Rake\n$ rake standard:fix\n```\n\nBecause we're confident Standard's fixes won't change the behavior of our code,\nwe typically run with fix enabled _all the time_ because it saves us from having\nto look at and think about problems the computer can solve for us.\n\n### Applying unsafe fixes\n\nThere are a number of other rules that can be automatically remedied, but not\nwithout the risk of changing your code's behavior. While we wouldn't recommend\nrunning it all the time, if the CLI suggests that additional errors can be fixed\n_unsafely_, here's how to do that:\n\n```\n# CLI\n$ standardrb --fix-unsafely\n\n# Rake\n$ rake standard:fix_unsafely\n```\n\nSo long as your code is checked into source control, there's no mortal harm in\nrunning with unsafe fixes enabled. If the changes look good to you and your\ntests pass, then it's probably no more error prone than manually editing\nevery change by hand.\n\n## Integrating Standard into your workflow\n\nBecause code formatting is so integral to programming productivity and linter\nviolations risk becoming bugs if released into production, tools like\nStandard Ruby are only as useful as their integration into code editors and\ncontinuous integration systems.\n\n### Editor support\n\nWe've added a number of editing guides for getting started:\n\n- [Atom](https://github.com/standardrb/standard/wiki/IDE:-Atom)\n- [emacs](https://www.flycheck.org/en/latest/languages.html#syntax-checker-ruby-standard)\n- [Helix](https://github.com/helix-editor/helix/wiki/Formatter-configurations#standardrb)\n- [neovim](https://github.com/standardrb/standard/wiki/IDE:-neovim)\n- [Nova](https://codeberg.org/edwardloveall/nova-standard)\n- [RubyMine](https://www.jetbrains.com/help/ruby/rubocop.html#disable_rubocop)\n- [vim](https://github.com/standardrb/standard/wiki/IDE:-vim)\n- [VS Code](https://github.com/standardrb/standard/wiki/IDE:-vscode)\n- [Zed](https://zed.dev/docs/languages/ruby#setting-up-ruby-lsp)\n- [Sublime Text](https://github.com/standardrb/standard/wiki/IDE:-Sublime-Text)\n\nIf you'd like to help by creating a guide, please draft one [in an\nissue](https://github.com/standardrb/standard/issues/new) and we'll get it\nadded!\n\n#### Language Server Protocol support\n\nIf you don't see your preferred editor above, Standard Ruby also offers robust\n[language server](https://microsoft.github.io/language-server-protocol/) support,\nin two ways, both included with the `standard` gem:\n\n1. A [Ruby LSP](https://github.com/Shopify/ruby-lsp) add-on, which (if\nthe `standard` gem is in your `Gemfile`) will be loaded automatically\n2. A language server executable, which can be run from the command line\n   with `standardrb --lsp`\n\n| Capability  | Ruby LSP Add-on | Internal Server |\n| ------------- | ------------- | ------------- |\n| Diagnostics (Linting) | ✅ ([Pull](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics)) | ✅ ([Push](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics)) |\n| [Formatting](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_formatting)  | ✅ | ✅ |\n| [Code Actions](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_codeAction) | ✅ | ❌ |\n| Everything else  | ❌  | ❌ |\n\nDue to the advantages of Pull diagnostics and its inclusion of Code Actions\n(\"Quick Fixes\" in VS Code parlance), we recommend using Standard's [Ruby LSP\nadd-on](https://github.com/standardrb/standard/wiki/IDE:-vscode#using-ruby-lsp)\nwhere possible.\n\nRegardless of which language server you use, many editors have added LSP\nsupport, with each bringing their own approach to configuration. Many LSP\nfeatures should \"just work\", but when in doubt, please consult our [editor\nguides above](#editor-support) as well as your editor's own documentation on how\nto configure LSP formatters and linters.\n\n### CI support\n\nVarious continuous integration and quality-checking tools have been made to\nsupport Standard Ruby, as well.\n\n* [GitHub Actions](https://github.com/standardrb/standard-ruby-action)\n* [Code Climate](https://github.com/standardrb/standard/wiki/CI:-Code-Climate)\n* [Pronto](https://github.com/julianrubisch/pronto-standardrb)\n* [Danger](https://github.com/ashfurrow/danger-rubocop/)\n\nOf course, no special plugin is necessary to run Standard Ruby in a CI\nenvironment, as `standardrb` and `rake standard` work just fine on their own!\n\n### Other tools\n\nThese tool integrations are also available:\n\n* [Guard](https://github.com/JodyVanden/guard-standardrb)\n* [Spring](https://github.com/lakim/spring-commands-standard)\n\n## Ignoring errors\n\nWhile Standard is very strict in how each formatting and linting rule is configured,\nit's mercifully flexible when you need to ignore a violation to focus on a higher\npriority (like, say, keeping the build running). There are a number of ways to\nignore any errors, with the right answer depending on the situation.\n\n### Ignoring a line with a comment\n\nIndividual lines can be ignored with a comment directive at the end of the line.\nAs an example, the line `text = 'hi'` violates two rules,\n[Lint/UselessAssignment](https://docs.rubocop.org/rubocop/cops_lint.html#lintuselessassignment)\nand\n[Style/StringLiterals](https://docs.rubocop.org/rubocop/cops_style.html#stylestringliterals).\n\nYou could ignore one, both, or all errors with the following comments:\n\n```ruby\n# Disable one error but keep Lint/UselessAssignment\ntext = 'hi' # standard:disable Style/StringLiterals\n\n# Disable both errors explicitly\ntext = 'hi' # standard:disable Style/StringLiterals, Lint/UselessAssignment\n\n# Disable all errors on the line with \"all\"\ntext = \"hi\" # standard:disable all\n```\n\n### Ignoring multiple lines with comments\n\nSimilarly to individual lines, you can also disable multiple lines by wrapping\nthem in comments that disable and re-enable them:\n\n```ruby\n# standard:disable Style/StringLiterals, Lint/UselessAssignment\ntext = \"hi\"\nputs 'bye'\n# standard:enable Style/StringLiterals, Lint/UselessAssignment\n```\n\n### Ignoring entire files and globs\n\nYou can ignore entire files and file patterns by adding them to `ignore:` in\nyour project's `.standard.yml` file:\n\n```yaml\nignore:\n  - 'some/file/in/particular.rb'\n  - 'a/whole/directory/**/*'\n```\n\n### Ignoring specific rules in files and globs\n\nFor a given file or glob, you can even ignore only specific rules by nesting an\narray of the rules you'd like to ignore:\n\n```yaml\nignore:\n  - 'test/**/*':\n    - Layout/AlignHash\n```\n\n### Ignoring every violation and converting them into a todo list\n\nIf you're adopting Standard in a large codebase and you don't want to convert\neverything all at once, you can work incrementally by generating a \"todo\" file\nwhich will cause Standard to ignore every violation present in each file of the\ncodebase.\n\nThis way, you can gradually work through the todo list, removing ignore\ndirectives and fixing any associated errors, while also being alerted to any\nregressions if they're introduced into the project.\n\nHere are the commands you might run to get started:\n\n```\n# Start by clearing any auto-fixable errors:\n$ standardrb --fix\n\n# Generate a `.standard_todo.yml' to work from\n$ standardrb --generate-todo\n```\n\n## Configuring Standard\n\nWhile the rules aren't configurable, Standard offers a number of options that\ncan be configured as CLI flags and YAML properties.\n\n### CLI flags\n\nThe easiest way to summarize the available CLI flags is to invoke `standardrb -h`:\n\n```\nUsage: standardrb [--fix] [--lsp] [-vh] [--format \u003cname\u003e] [--] [FILE]...\n\nOptions:\n\n  --fix             Apply automatic fixes that we're confident won't break your code\n  --fix-unsafely    Apply even more fixes, including some that may change code behavior\n  --no-fix          Do not automatically fix failures\n  --format \u003cname\u003e   Format output with any RuboCop formatter (e.g. \"json\")\n  --generate-todo   Create a .standard_todo.yml that lists all the files that contain errors\n  --lsp             Start a LSP server listening on STDIN\n  -v, --version     Print the version of Standard\n  -V, --verbose-version   Print the version of Standard and its dependencies.\n  -h, --help        Print this message\n  FILE              Files to lint [default: ./]\n\nStandard also forwards most CLI arguments to RuboCop. To see them, run:\n\n  $ rubocop --help\n```\n\nIf you run Standard via Rake, you can specify your CLI flags in an environment\nvariable named `STANDARDOPTS` like so:\n\n```\n$ rake standard STANDARDOPTS=\"--format progress\"\n```\n\n### YAML options\n\nIn addition to CLI flags, Standard will search for a `.standard.yml` file\n(ascending to parent directories if the current working directory doesn't\ncontain one). If you find yourself repeatedly running Standard with the same\nCLI options, it probably makes more sense to set it once in a YAML file:\n\n```yaml\nfix: true               # default: false\nparallel: true          # default: false\nformat: progress        # default: Standard::Formatter\nruby_version: 3.0       # default: RUBY_VERSION\ndefault_ignores: false  # default: true\n\nignore:                 # default: []\n  - 'vendor/**/*'\n\nplugins:                # default: []\n  - standard-rails\n\nextend_config:                # default: []\n  - .standard_ext.yml\n```\n\n#### Configuring ruby_version\n\nOne notable YAML setting is `ruby_version`, which allows you to set the **oldest\nversion of Ruby the project needs to support** [RuboCop's `TargetRubyVersion`\nsetting](https://docs.rubocop.org/rubocop/configuration.html#setting-the-target-ruby-version)\nexplicitly. Because this value is inferred from any `.ruby-version`,\n`.tool-versions`, `Gemfile.lock`, and `*.gemspec` files that might be present,\nmost applications won't need to set this.\n\nHowever, gems and libraries that support older versions of Ruby will want\nto lock the `ruby-version:` explicitly in their `.standard.yml` file to ensure\nnew rules don't break old rubies:\n\n```yaml\nruby_version: 2.7\n```\n\n## Extending Standard\n\nStandard includes two extension mechanisms: plugins and configuration\nextensions. While neither can _change_ the rules configured out-of-the-box by\nStandard, they can define, require, and configure _additional_ RuboCop rules.\n\nBoth are \"first-in-wins\", meaning once a rule is configured by a plugin or\nextension, it can't be changed or reconfigured by a later plugin or extension.\nThis way, each Standard plugin you add becomes a de facto \"standard\" of its\nown. Plugins have precedence over extensions as they are loaded first.\n\n### Plugins\n\nAdding a plugin to your project is as easy as adding it to your Gemfile and\nspecifying it in `.standard.yml` in the root of your project. For example, after\ninstalling [standard-rails](https://github.com/standardrb/standard-rails), you\ncan configure it by adding it to `plugins`:\n\n```yaml\nplugins:\n  - standard-rails\n```\n\nEach plugin can be passed configuration options by specifying them in a nested\nhash. For example, `standard-rails` allows you to configure its rules for\na particular version of Rails (though this will usually be detected for you\nautomatically):\n\n```yaml\nplugins:\n  - standard-rails:\n      target_rails_version: 7.0\n```\n\nYou can develop your own plugins, too! Check out the\n[lint_roller](https://github.com/standardrb/lint_roller) gem to learn how. For a\nsimple example, you can look at\n[standard-custom](https://github.com/standardrb/standard-custom), which is one\nof the default plugins included by Standard.\n\n### Extended config files\n\nOf course, you may want to add more rules without going to the trouble\nof packaging them in a plugin gem. For cases like this, you can define one or\nmore [RuboCop configuration\nfiles](https://docs.rubocop.org/rubocop/configuration.html) and then list them\nin your `.standard.yml` file under `extend_config`.\n\nFor example, after installing the\n[betterlint](https://github.com/Betterment/betterlint) gem from our friends at\n[Betterment](https://www.betterment.com), we could create a RuboCop config\nfile named `.betterlint.yml`:\n\n```yaml\nrequire:\n  - rubocop/cop/betterment.rb\n\nBetterment/UnscopedFind:\n  Enabled: true\n\n  unauthenticated_models:\n    - SystemConfiguration\n```\n\nAnd then reference it in our `.standard.yml`:\n\n```yml\nextend_config:\n  - .betterlint.yml\n```\n\n### Running Standard's rules via RuboCop\n\n**Please note that the following usage is not supported and may break at any\ntime. Use at your own risk and please refrain from opening GitHub issues with\nrespect to loading Standard or its plugins' YAML configurations for use by\nthe `rubocop` CLI.**\n\nIf you find that neither plugins or configuration extensions meet your needs or\nif you have some other reason to run Standard's rules with RuboCop's CLI (e.g.,\nto continue using your favorite IDE/tooling/workflow with RuboCop support) Evil\nMartians also maintains [a regularly updated\nguide](https://evilmartians.com/chronicles/rubocoping-with-legacy-bring-your-ruby-code-up-to-standard)\non how to configure RuboCop to load and execute Standard's ruleset.\n\nIn short, you can configure this in your `.rubocop.yml` to load Standard's three\ndefault rulesets, just as you would any other gem:\n\n```yaml\nrequire:\n  - standard\n  - standard-custom\n  - standard-performance\n  - rubocop-performance\n\ninherit_gem:\n  standard: config/base.yml\n  standard-custom: config/base.yml\n  standard-performance: config/base.yml\n```\n\n## Who uses Standard Ruby?\n\nHere are a few examples of Ruby Standard-compliant teams \u0026 projects:\n\n* [Test Double](https://testdouble.com/agency)\n* [AdBarker](https://adbarker.com)\n* [AlchemyCMS](https://alchemy-cms.com)\n* [Amazon Web Services](https://aws.amazon.com/)\n* [Arrows](https://arrows.to/)\n* [Avo Admin](https://avohq.io/)\n* [Babylist](https://www.babylist.com/)\n* [BLISH](https://blish.cloud)\n* [Brand New Box](https://brandnewbox.com)\n* [Brave Software](https://github.com/brave-intl/publishers)\n* [Collective Idea](https://collectiveidea.com/)\n* [Culture Foundry](https://www.culturefoundry.com/)\n* [Datadog](https://www.datadoghq.com/)\n* [Donut](https://www.donut.com/)\n* [Elevate Labs](https://elevatelabs.com)\n* [Envoy](https://www.envoy.com)\n* [Evil Martians](https://evilmartians.com)\n* [Firstline](https://firstline.org/)\n* [Hashrocket](https://hashrocket.com)\n* [Honeybadger](https://www.honeybadger.io)\n* [JetThoughts](https://www.jetthoughts.com/)\n* [Level UP Solutions](https://levups.com)\n* [Lobsters](https://github.com/lobsters/lobsters)\n* [Monterail](https://www.monterail.com)\n* [myRent](https://www.myrent.co.nz)\n* [OBLSK](https://oblsk.com/)\n* [Oyster](https://www.oysterhr.com/)\n* [Planet Argon](https://www.planetargon.com/)\n* [PLT4M](https://plt4m.com/)\n* [Podia](https://www.podia.com/)\n* [Privy](https://www.privy.com/)\n* [Rebase Interactive](https://www.rebaseinteractive.com/)\n* [Renuo](https://www.renuo.ch/)\n* [RubyCI](https://ruby.ci)\n* [SearchApi](https://www.searchapi.io/)\n* [Spinal](https://spinalcms.com/)\n* [Teamtailor](https://www.teamtailor.com/)\n* [thoughtbot](https://thoughtbot.com/)\n* [Topkey](https://topkey.io)\n* [University of Wisconsin-Eau Claire](https://www.uwec.edu/)\n* [Cartwheel](https://www.cartwheel.org)\n\nDoes your team use Standard? [Add your name to the list](https://github.com/standardrb/standard/edit/main/README.md)!\n\nIf you really want to show off, you can also add a badge to your project's README, like this one:\n\n[![Ruby Code Style](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/standardrb/standard)\n\n```md\n[![Ruby Code Style](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/standardrb/standard)\n```\n\n## Help, I'm seeing an install error!\n\nThis section is really only here to feed Google, but if you see an error like\nany of the following:\n\n```\nERROR:  Could not find a valid gem 'standard' (= 0.0.36) in any repository\n```\n\n```\nCould not find gem 'standard (= 0.0.36)' in rubygems repository https://rubygems.org/ or installed locally.\n```\n\n```\nYour bundle is locked to standard (0.0.36) from rubygems repository https://rubygems.org/ or installed locally, but that version can no longer be found in that source. That means the author of standard (0.0.36) has removed it. You'll need to update your bundle to a version other than standard (0.0.36) that hasn't been removed in order to install.\n```\n\nThis is because on August 18th, 2023, we yanked versions 0.0.1~0.0.36.1 from\n[RubyGems.org](https://rubygems.org) for the reasons discussed in [this\nissue](https://github.com/standardrb/standard/issues/340). Because these\nversions are now over four years old and no longer track supported versions of\nRuby or RuboCop, the correct fix for any of the above errors is probably to\n**upgrade to the latest version of Standard Ruby**.\n\nIf for whatever reason you need to install one of these versions, you can\nchange your Gemfile to point to the corresponding git tag from the source\nrepository:\n\n```ruby\ngem \"standard\", git: \"https://github.com/testdouble/standard.git\", tag: \"v0.0.36\"\n```\n\n## Code of Conduct\n\nThis project follows Test Double's [code of\nconduct](https://testdouble.com/code-of-conduct) for all community interactions,\nincluding (but not limited to) one-on-one communications, public posts/comments,\ncode reviews, pull requests, and GitHub issues. If violations occur, Test Double\nwill take any action they deem appropriate for the infraction, up to and\nincluding blocking a user from the organization's repositories.\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstandardrb%2Fstandard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstandardrb%2Fstandard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstandardrb%2Fstandard/lists"}