yo icon indicating copy to clipboard operation
yo copied to clipboard

Improve generator discovery

Open sindresorhus opened this issue 8 years ago • 12 comments

The generator search in the yo CLI leaves a lot to be desired.

I just made it so that the generator description is shown in the search: https://github.com/yeoman/yo/commit/f5ab6e94097d73ac23a0e223695ff84b372586fb

This is how it currently looks:

screen shot 2015-07-26 at 20 04 40

But, I think we can do a lot better!

Some other things I think we should do:

  • [ ] Add a keyboard shortcut to be able to open the repo of the generator so you can read more about it.
  • [ ] We should use the same source as the website to get the list of generators. Currently we just talk to npm directly.
  • [ ] Show GitHub stars in the search results and sort by them. (requires #2)
  • [ ] Cleanup package descriptions. Lots of bad ones. Meaning this thing should be moved to yeoman-generator-list so both the website and CLI and any other consumer can take advantage of it.
  • [ ] Have a handpicked list of generators we've vetted to be good and mark them and sort them to the top. To make it easier to discover good generators. There are so many generators available, and a common complaint is that it's hard to find good ones.

Thoughts? Any other suggestions on how we can improve it?

I will open separate focused issues when we've decided on what to do.

sindresorhus avatar Jul 26 '15 18:07 sindresorhus

Show GitHub stars in the search results and sort by them. (requires #2)

Meh. I'm against anything that directly boils down to popularity. A generator might be popular because it was made by an influential company, because it was promoted much, because the thing it scaffolds is something really popular (a popular framework for example), ... All of those don't say anything about the actual quality of the generator.

Have a handpicked list of generators we've vetted to be good and mark them and sort them to the top. To make it easier to discover good generators. There are so many generators available, and a common complaint is that it's hard to find good ones.

I like this idea a lot, though be aware that a list of "good" generators is super hard to maintain.

We can't keep track of all generators that people develop. Also everybody will consider the generator they build good, and as a result we will have to discuss and deal with a bunch of PRs from people adding generators to the list. Besides from that, good generators might be outdated a year later, we'll have to follow all of them up.

If we want to have a solution like that, we will at least need really strict and objective rules on what we consider "good".

Also, ref https://github.com/yeoman/yeoman.io/issues/459, as we'll need such a list of "top" generators too.

Thoughts? Any other suggestions on how we can improve it?

Lovely ideas, Sindre. What annoys me personally is that there are a bunch of really bad, duplicate, or simply nonsense generators out there. Maybe we should consider a blacklist, similar to what Gulp does for their plugins site. That would mean that yo nonsense would still work as before, but that the generators wouldn't end up on the site and on the listing in yo.

Some people end up forking a generator to do a small opinionated change and publish that to npm. There's nothing wrong with that, it's even good, but it makes the list of choices often long and very noisy.

arthurvr avatar Jul 26 '15 18:07 arthurvr

@arthurvr FWIW, we have a blacklist currently. But as anything, you need someone to watch and maintain, and that's not the coolest task.

That's why having a vetted list of high quality generators is probably a better option.

SBoudrias avatar Jul 26 '15 21:07 SBoudrias

@arthurvr If you see anything low-quality → https://github.com/yeoman/yeoman.io/blob/master/app/blacklist.json ;)

sindresorhus avatar Jul 26 '15 21:07 sindresorhus

I generally agree about GitHub stars. It's just the only automatic metric I can think of, even though it's flawed. We can leave that out though if we go with vetted generators.

sindresorhus avatar Jul 26 '15 21:07 sindresorhus

Hey, FWIW, the colors are not showing up right in iterm2.

Because of this, the install list page is very hard to use in my case (it's all the same color). I believe we should validate the look on a couple terminal app, as if only OSx terminal display the colors correctly, I believe will do more harm the help.

SBoudrias avatar Jul 27 '15 06:07 SBoudrias

Related issues: #149 #150 #222

hemanth avatar Jul 27 '15 07:07 hemanth

Hey, FWIW, the colors are not showing up right in iterm2.

Probably more of a bug in the color scheme that you're using than a bug in our code. Some color schemes (like solarized) tend to hide away gray, for example. I don't think we'll find a catch-all solution that works fine with every color scheme. I'm using iTerm too and it works perfectly.

@arthurvr If you see anything low-quality → https://github.com/yeoman/yeoman.io/blob/master/app/blacklist.json ;)

I knew about that one, but as long as we don't have objective rules when something is "good" or "bad" it doesn't make so much sense. Also, doesn't that list only apply to the site? I would think it does as it's in the yeoman.io repo...

That's why having a vetted list of high quality generators is probably a better option.

Well, you have to maintain such a list of high quality generators too. I would think it even requires more maintenance. I honestly want both a list of super good things and(!) a blacklist.

arthurvr avatar Jul 27 '15 10:07 arthurvr

@SBoudrias I guess we can go with gray for now instead https://github.com/yeoman/yo/commit/7efa7e07926291583eba17e6a8cfea30eda960c6. iTerm will get support for dim soon: https://gitlab.com/gnachman/iterm2/issues/3623

sindresorhus avatar Jul 27 '15 10:07 sindresorhus

I like every idea that improves discoverability over what we have at the moment and what npm provides. I agree with @arthurvr that stars are a flawed metric for quality and manual curation can be difficult. That said, stars are certainly easier to integrate into that system and we could still see what it would look like in practice and decide from there if we'd like to keep it.

passy avatar Jul 27 '15 11:07 passy

@arthurvr The thing with shipping product is that we need to handle bugs in implementation. This is what we do everyday we work with browser. In this case our client is the terminal, so we need to handle and workaround issues that are going to affect our user. Solarize is a widely used terminal theme and if we don't fix this a lot of our user will be hitting that issue.

About the stars, we currently use them on http://yeoman.io/generators to classify generators. I believe it does an okay job for an automated metric.

SBoudrias avatar Jul 27 '15 18:07 SBoudrias

Also, doesn't that list only apply to the site? I would think it does as it's in the yeoman.io repo...

No → https://github.com/yeoman/yo/blob/7efa7e07926291583eba17e6a8cfea30eda960c6/lib/routes/install.js#L73

sindresorhus avatar Jul 27 '15 18:07 sindresorhus

Ah, alright. I should have done a quick search before :p

arthurvr avatar Jul 27 '15 18:07 arthurvr