Skip to content

Faker-ruby has too many generators to maintain #2689

Open
@stefannibrasil

Description

@stefannibrasil

faker-ruby has a ton of generators. Although it can be an easy way for new contributors to help, it adds too much work for maintainers.

Here are some problems that I've encountered for the past few months:
a) generators relying on 3rd party APIs. Those services get shut down, or could even return unexpected values. It requires us to deprecate and remove generators often. We should avoid relying on those services as as much as we can.
b) generators being added without having a measurement of its need. It's hard to know which generators are the most popular and which ones aren't used at all. But some of them are not worth of being maintained because they are so niche.
c) there are so many generators, it's hard to keep track of them, and know about them. I've spent time reviewing PRs only to realize there is one already, and it wasn't straightforward to find it.
d) there are lots of generators, but the translators are not up to date. In my perspective, it makes sense for us to focus on translating the generators that we want to keep.

This is not a popular issue, I'd assume. But to keep faker in a stable manner, I'd propose some changes related to the points above:

  • delete some generators, and create a guideline that helps maintainers decide when to add a new generator. It's hard to measure which generators are not being used, but we can scan the ones that are clearly too niche to justify maintain them. For now, add to the Contributing guides that new generators need to have an Issue first instead of already opening a PR. And, require more details from the contributor that there isn't a generator for it already.
  • decrease the number of generators that rely on 3rd party APIs. Ideally, only a handful of them.
  • create a guideline for new generators: have a rubric to decide when to merge a new one.
  • identify the generators we don't want to keep anymore, deprecate them, and release another major version after all of that.
  • open issues for translations, and other locales improvements.

The reason why I'm opening this issue is because working on new generators is where most of us spend our time. It's time I'd like to be using for solving critical bugs, and stabilizing the gem with the generators we want to keep, with the translations up to date.

What are your thoughts? How has your experience been? What do you agree, or disagree?

cc @vbrazo @stympy @koic @thdaraujo @psibi @Zeragamba @connorshea @Newman101

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions