{"id":13879161,"url":"https://github.com/rspec/rspec-dev","last_synced_at":"2025-04-07T12:05:21.892Z","repository":{"id":716372,"uuid":"363387","full_name":"rspec/rspec-dev","owner":"rspec","description":"RSpec development environment","archived":false,"fork":false,"pushed_at":"2024-09-04T14:26:19.000Z","size":506,"stargazers_count":132,"open_issues_count":8,"forks_count":70,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-31T10:04:13.543Z","etag":null,"topics":["rspec","ruby"],"latest_commit_sha":null,"homepage":"https://rspec.info","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rspec.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"code_of_conduct.md","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},"funding":{"github":["JonRowe"],"open_collective":"rspec"}},"created_at":"2009-11-06T15:20:24.000Z","updated_at":"2025-02-07T17:00:06.000Z","dependencies_parsed_at":"2024-06-20T23:58:45.351Z","dependency_job_id":"b55074d3-fb40-4263-93e2-c7d3593f06e1","html_url":"https://github.com/rspec/rspec-dev","commit_stats":{"total_commits":473,"total_committers":46,"mean_commits":"10.282608695652174","dds":0.6680761099365751,"last_synced_commit":"3c425facc7531b5eff7bc4e6cacf212b270366d5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspec%2Frspec-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspec%2Frspec-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspec%2Frspec-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspec%2Frspec-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rspec","download_url":"https://codeload.github.com/rspec/rspec-dev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648976,"owners_count":20972945,"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":["rspec","ruby"],"created_at":"2024-08-06T08:02:11.785Z","updated_at":"2025-04-07T12:05:21.876Z","avatar_url":"https://github.com/rspec.png","language":"Ruby","readme":"# RSpec Development\n\nThis repository is for anyone interested in contributing to rspec or\nrspec-rails.\n\n## Environment\n\n### System\n\n    git\n    sqlite3 # for rspec-rails\n    the_silver_searcher # for update_docs\n\n### Ruby\n\nThe safest bet is to use [rvm](https://github.com/wayneeseguin/rvm) with an rvm\ninstalled ruby (not system ruby) and a clean gemset dedicated to rspec-dev:\n\n    rvm 2.6@rspec-dev --create # or whatever version of Ruby you prefer\n\n[rbenv](https://github.com/sstephenson/rbenv) is also supported.\n\nWindows users can use [uru](https://bitbucket.org/jonforums/uru).\n\nIf you use a different Ruby version manager (or none at all), the important\nthing is that you have a sandboxed gem environment that does not require you to\nuse sudo to install gems, and has no rspec libraries installed.\n\n### Bundler\n\nBundler is required for dependency management. Install it first:\n\n    gem install bundler\n\n### rspec-dev\n\nOnce all of the pre-reqs above are taken care of, run these steps to get\nbootstrapped:\n\n    git clone git://github.com/rspec/rspec-dev.git\n    cd rspec-dev\n    bundle install --binstubs\n    bin/rake setup\n    bin/rake # runs tests in every repository\n\nIf all goes well, you'll end up seeing a lot of passing cucumber features\nand rspec code examples. You'll also have a directory structure that looks\nlike this:\n\n    rspec-dev\n      repos\n        rspec-core         # rspec runner, describe, it, etc\n        rspec-expectations # should, should_not + matchers\n        rspec-mocks        # doubles, mocks, stubs, fakes, etc\n        rspec-rails        # rspec 2 for rails 3\n          tmp\n            aruba          # gets generated when running rspec-rails' cukes\n            example_app    # gets generated when running rspec-rails' specs \n        rspec              # meta-gem that depends on core, expectations, and mocks\n\nAfter the initial clone you can run `rake git:pull` from the rspec-dev\ndirectory to update all of the rspec repos (in repos). Note that the update script \nwill look for the repos on github from the same source as rspec-dev, so if you have forked\nthis repo and have that set to origin, you will need to fork them all.\n \nRun `rake -T` to see the available tasks for dev mode.\n\n# Contributing\n\nOnce you've set up the environment, you'll need to cd into the working\ndirectory of whichever repo you want to work in. From there you can run the\nspecs and cucumber features, and make patches.\n\nNOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You\ncan treat each RSpec repo as an independent project.\n\n## Patches\n\nPlease submit a pull request or a github issue to one of the issue trackers\nlisted below. If you submit an issue, please include a link to either of:\n\n* a gist (or equivalent) of the patch\n* a branch or commit in your github fork of the repo\n\n## Issues\n\n* [https://github.com/rspec/rspec-core/issues](https://github.com/rspec/rspec-core/issues)\n* [https://github.com/rspec/rspec-dev/issues](https://github.com/rspec/rspec-dev/issues)\n* [https://github.com/rspec/rspec-expectations/issues](https://github.com/rspec/rspec-expectations/issues)\n* [https://github.com/rspec/rspec-mocks/issues](https://github.com/rspec/rspec-mocks/issues)\n* [https://github.com/rspec/rspec-rails/issues](https://github.com/rspec/rspec-rails/issues)\n\n# Troubleshooting the environment\n\n## Load path and rubygems\n\nNot everybody uses rubygems as their package management system. If this\nsounds odd to you, read https://gist.github.com/rtomayko/54177.\n\nIn light of this fact, these repositories are \"require 'rubygems'\" free. The\nincluded Rakefiles use Bundler, which effectively manages all of this for\nyou.\n\nIf you're using any of these repos in isolation and without Bundler, however,\nyou may need to do one of the following:\n\n    export RUBYOPT=rubygems\n    set RUBYOPT=rubygems\n\nFor those of you who prefer not to add this to your primary environment, there\nare plenty of solutions available to your managing multiple ruby environments.\n\n## no such file to load -- spec_helper (LoadError)\n\nRspec adds ./lib and ./spec to the load path, so you have to run the `rspec`\ncommand from the root of the repository you're working on. i.e. if you're\nworking on rspec-core, cd to the rspec-core directory. Don't try to run specs\nfrom the rspec-dev directory, or you'll see `LoadError`s.\n\n## Errors in Windows setup\n\nIf you get a `SSL error` in Windows, you can follow the instructions on this [link](https://gist.github.com/luislavena/f064211759ee0f806c88) to fix it.  \n\nIf you get this error `Gem::InstallError: The redcarpet native gem requires installed build tools`, download the development kit from [https://rubyinstaller.org/downloads](https://rubyinstaller.org/downloads). You can follow the installation instructions [here](https://github.com/oneclick/rubyinstaller/wiki/Development-Kit).\n\n## Different problem?\n\nIf you run into a problem not documented here, please check the rspec-dev\nissues tracker to see if someone else has already reported it. If not, please\nadd one.\n\n## Solution to a problem not documented here?\n\nIf you solve a problem that is not documented here, please share the love\nby submitting a patch to this README.\n\n# Also see\n\n* [https://github.com/rspec/rspec](https://github.com/rspec/rspec)\n* [https://github.com/rspec/rspec-core](https://github.com/rspec/rspec-core)\n* [https://github.com/rspec/rspec-expectations](https://github.com/rspec/rspec-expectations)\n* [https://github.com/rspec/rspec-mocks](https://github.com/rspec/rspec-mocks)\n* [https://github.com/rspec/rspec-rails](https://github.com/rspec/rspec-rails)\n\n## Other gems\nThese gems were extracted from past versions of RSpec in order to maintain \ncompatibility for older spec suites upgrading to new versions, in particular\n`rspec-its` adds back the `its(:thing)` style of spec, `rspec-collection_matchers` \nadds back `have(n).items` style matchers, `rspec-legacy_formatters` enables old\nformatters to operate with RSpec 3+. These gems are in general not officially\nmaintained by the RSpec team but may receive support and maintenance as needs require.\n\n* [https://github.com/rspec/rspec-activemodel-mocks](https://github.com/rspec/rspec-activemodel-mocks)\n* [https://github.com/rspec/rspec-collection_matchers](https://github.com/rspec/rspec-collection_matchers)\n* [https://github.com/rspec/rspec-its](https://github.com/rspec/rspec-its)\n* [https://github.com/rspec/rspec-legacy_formatters](https://github.com/rspec/rspec-legacy_formatters)\n","funding_links":["https://github.com/sponsors/JonRowe","https://opencollective.com/rspec"],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frspec%2Frspec-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frspec%2Frspec-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frspec%2Frspec-dev/lists"}