factory_bot

Avielle Wolfe and Josh Clayton

We’re renaming factory_girl to factory_bot (and factory_girl_rails to factory_bot_rails). All the same functionality of factory_girl, now under a different name.

Initial Rollout

After the rename of the gem, we rolled out version 4.8.2 of all of factory_girl, factory_girl_rails, factory_bot, and factory_bot_rails on October 20, 2017. We decided on a patch-level release because after internal testing, the only visible outcome expected was a deprecation warning. After we were made aware of troubles on October 21, 2017, we gem yanked version 4.8.2 of both factory_girl and factory_girl_rails.

We apologize for the issues this caused. The expected impact was introducing a deprecation warning to those who were using the code, without a need to change any constants or modify any files.

Technical Details

As of the 4.9.0 releases of both factory_girl and factory_girl_rails, both gems will be officially deprecated. In the 4.9.0 version, while no functionality is changed, you’ll receive a deprecation warning asking you to switch to the renamed factory_bot gem during each test run.

Moving forward, all new changes will occur only on the factory_bot and factory_bot_rails gems.

Upgrade Path

Upgrading your codebase should involve only a few steps; we’ve provided a document on how to upgrade, including shell scripts, for you to use here.

Why?

Throughout the years, people have questioned the origins of the name. On a more recent issue, though, more pressing concerns and impressions of the name came to light. Those who were bothered by the name shared a concern that female-gendered names (for software libraries and tools) in male-dominated spaces can be problematic. While the original intent was not meant to focus on gender, which we clarified after this feedback, we knew adding the origin of the name was a stop-gap solution. Constantly citing our original intent made people marginally more comfortable, and we recognized that removing the source of confusion or discomfort (the project name) might address this entirely.

We held a lengthy discussion internally, and while many didn’t find the name concerning, some did, including multiple women and non-binary people within the company and on our client teams. We concluded that, even though not everyone agreed, lack of concern from many shouldn’t prevent the name being changed. Being clever shouldn’t be favored at the expense of others feeling marginalized.

We like the new name, and it fits conveniently with our bot theme as well!