Contributing to Factory Bot

We love pull requests from everyone. By participating in this project, you agree to abide by the thoughtbot code of conduct.

Here are some ways you can contribute:

  • by using alpha, beta, and prerelease versions
  • by reporting bugs
  • by suggesting new features
  • by writing or editing documentation
  • by writing specifications
  • by writing code ( no patch is too small : fix typos, add comments, etc. )
  • by refactoring code
  • by closing issues
  • by reviewing patches

Submitting an Issue

  • We use the GitHub issue tracker to track bugs and features.
  • Before submitting a bug report or feature request, check to make sure it hasn't already been submitted.
  • When submitting a bug report, please include a reproduction script and any other details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system.

Cleaning up issues

  • Issues that have no response from the submitter will be closed after 30 days.
  • Issues will be closed once they're assumed to be fixed or answered. If the maintainer is wrong, it can be opened again.
  • If your issue is closed by mistake, please understand and explain the issue. We will happily reopen the issue.

Submitting a Pull Request

  1. Fork the official repository.
  2. Create a topic branch.
  3. Implement your feature or bug fix.
  4. Add, commit, and push your changes.
  5. Submit a pull request.


  • Please add tests if you changed code. Contributions without tests won't be accepted.
  • If you don't know how to add tests, please put in a PR and leave a comment asking for help. We love helping!
  • Please don't update the Gem version.

Setting up

bundle install

Running the test suite

The default rake task will run the full test suite and standard:

bundle exec rake

You can also run a single group of tests (unit, spec, or feature)

bundle exec rake spec:unit
bundle exec rake spec:acceptance
bundle exec rake features

To run an individual rspec test, you can provide a path and line number:

bundle exec rspec spec/path/to/spec.rb:123

You can run tests with a specific version of rails via appraisal. To run the default rake task against Rails 6, for example:

bundle exec appraisal 6.0 rake


Use standard to automatically format your code:

bundle exec rake standard:fix

Inspired by