ericclemmons / generator-genesis

Yeoman Generator for Genesis Skeleton
MIT License
4 stars 4 forks source link

Why deprecated? #3

Closed rehno-lindeque closed 11 years ago

rehno-lindeque commented 11 years ago

Just out of curiosity, why not provide a yeoman generator? I know genesis-skeleton is intended to be opinionated in terms of libraries, but it seems convenient to just type yo genesis?

ericclemmons commented 11 years ago

The feedback I got from others is that they preferred being able to consistently git pull genesis for updates, since it's evolving.

That, and the generator is particularly "dumb", in that, for maintainability, it didn't really provide options, but just override whatever you already had in your code.

But, @rehno-lindeque, clearly I was wrong here, so I'll adjust.

Do you know an easier way of keeping the generator in sync with the skeleton?

Thanks!

rehno-lindeque commented 11 years ago

Oh thanks! I see what you mean by pulling latest versions of genesis-skeleton. Actually I suppose that this can be quite a headache to maintain (especially for a new-ish project). I haven't looked much at how the generators function, I'd hoped that it's easy to maintain a seed separately from the generator...

rehno-lindeque commented 11 years ago

I was going to suggest perhaps a git submodule for the seed, but I see you already have that... :)

ericclemmons commented 11 years ago

Wait, what if we simply just ran a git pull origin master on the submodule as part of the generation? That's all we'd need, right?

ericclemmons commented 11 years ago

@rehno-lindeque I found a great solution that will work for the feature branches I have, too!

https://github.com/yeoman/generator/wiki/base#actionsremote

ericclemmons commented 11 years ago

@rehno-lindeque This will improve once yeoman/generator#247 gets tagged (the latest at 0.11.1 does not have the forced refresh option that I want).

Until then, this worked out fantastic. Thank you so much for bringing this up and having me refactor. The solution is MUCH better than cloning, IMO. You can use v0.2.0 immediately (8b2ab1bb8c9b556dff4ea362abf56c50bda51da6). (Actually, I made a cosmetic change so instead use v0.2.1 :D)

Here's what the output looks like:

yo genesis --skip-install

    .---------------------------------------.
    |                                       |
    |    G E N E S I S   S K E L E T O N    |
    |                                       |
    |        You're moments away from       |
    |          your next great app!         |
    |                                       |
    '---------------------------------------'

[?] Would you like to setup package.json first? (Y/n) 
# `npm init` runs here

✔ Initialized package.json
✔ Merged Genesis Skeleton package into existing package.json
   create .gitignore
   create .travis.yml
   create Gruntfile.coffee
   create LICENSE
   create README.md
   create bin/browsers.sh
   create bower.json
   create client/app/scripts/app.js
   ...
   create karma.conf.js
 conflict package.json

[?] Overwrite package.json? (enter "h" for help) [Ynaqdh]? (h) y
    force package.json
   create server/app.js
   create server/lib/api/index.js
   create server/server.js
✔ Generated Genesis Skeleton

I'm all done. Just run bower install & npm install to install the required dependencies.
rehno-lindeque commented 11 years ago

Thanks so much @ericclemmons, it looks great!