Skip to content

Make contributing easier and more awesome#147

Merged
steveklabnik merged 2 commits intohacketyhack:masterfrom
nuclearsandwich:by-your-bootstraps
Apr 22, 2013
Merged

Make contributing easier and more awesome#147
steveklabnik merged 2 commits intohacketyhack:masterfrom
nuclearsandwich:by-your-bootstraps

Conversation

@nuclearsandwich
Copy link
Copy Markdown
Member

This pull request adds the following:

Script Bootstrap

script/bootstrap, conventionally used to get new clones up and running
in a single command. This one checks for Ruby and Mongo and then,
assuming both are present, installs (if necessary) and runs bundler. The
idea is that there are only two things new contributors ever need to do.

  1. git clone
  2. script/bootstrap

If we really like it, we can make it smart enough to recommend ways to
get MongoDB and Ruby based on the OS, but I feel like that's a bit
overkill for a v1. The idea is that contribution should be as smooth as
possible so would-be helpers can start helping immediately. The script
should remain idempotent so if changes are made to the application,
existing contributors can pull, run script/bootstrap, and be ready to go
without borking their existing dev instance.

One thing this does as a side effect is specify a path for vendored gems
and binstubs, this is why the .gitignore changes were made.

.ruby-version

Specify a Ruby version using the ruby manager agnostic version of an
rvmrc.

CONTRIBUTING.md

When you create a new Pull Request or Issue, GitHub will highlight a
block above the new issue/PR title calling attention to the repository's
CONTRIBUTING.md file, should one exist. This is an expanded version of
the Helping Out section from the README.

This pull request adds the following:

Script Bootstrap
----------------

`script/bootstrap`, conventionally used to get new clones up and running
in a single command. This one checks for Ruby and Mongo and then,
assuming both are present, installs (if necessary) and runs bundler. The
idea is that there are only two things new contributors ever need to do.

1. git clone
2. script/bootstrap

If we really like it, we can make it smart enough to recommend ways to
*get* MongoDB and Ruby based on the OS, but I feel like that's a bit
overkill for a v1. The idea is that contribution should be as smooth as
possible so would-be helpers can start helping immediately. The script
should remain idempotent so if changes are made to the application,
existing contributors can pull, run script/bootstrap, and be ready to go
without borking their existing dev instance.

One thing this does as a side effect is specify a path for vendored gems
and binstubs, this is why the .gitignore changes were made.

.ruby-version
-------------

Specify a Ruby version using the ruby manager agnostic version of an
rvmrc.

CONTRIBUTING.md
---------------

When you create a new Pull Request or Issue, GitHub will highlight a
block above the new issue/PR title calling attention to the repository's
CONTRIBUTING.md file, should one exist. This is an expanded version of
the Helping Out section from the README.
@steveklabnik
Copy link
Copy Markdown
Member

This is awesome, thanks so much!

We should be using a ruby directive in the Gemfile, rather than .ruby-version or .rvmrc. Other than that, huuuuge 👍

@nuclearsandwich
Copy link
Copy Markdown
Member Author

Cool, that's an easy fix once I find those docs.

@nuclearsandwich
Copy link
Copy Markdown
Member Author

I can't find documentation on a Ruby directive within a Gemfile beyond mpapis's comments on this gist. Is

#ruby=1.9.3-p392

All that we need here?

@steveklabnik
Copy link
Copy Markdown
Member

@nuclearsandwich
Copy link
Copy Markdown
Member Author

I'm happy merging this if that Gemfile syntax looks 🌈. @steveklabnik you use chruby right? Does it's auto-activate work with Gemfile specified rubies or do you set it manually or in an directory rc file of some kind?

steveklabnik added a commit that referenced this pull request Apr 22, 2013
Make contributing easier and more awesome
@steveklabnik steveklabnik merged commit 4bbcfe1 into hacketyhack:master Apr 22, 2013
@steveklabnik
Copy link
Copy Markdown
Member

Seems great, thank you!

I don't actually use chruby's auto-switching. bundle tells you if you're on the 'wrong' ruby, and I mostly work on tooling, not product, so just being 2.0.0 by default works for almost everything I do.

@nuclearsandwich nuclearsandwich deleted the by-your-bootstraps branch April 22, 2013 03:57
@nuclearsandwich
Copy link
Copy Markdown
Member Author

Sweet. A good first step for reminding me what Hackety.com looks like on the inside. Next up: Real Features™

@steveklabnik
Copy link
Copy Markdown
Member

❤️

Something that helps encourage people to answer questions would be nice, we need to figure out how to get people back to the site.

@PragTob
Copy link
Copy Markdown
Member

PragTob commented Apr 22, 2013

About the auto switching I pretty much like that feature especially now that it works across all the version managers. I think we should supply at least an example file, if not an own file.

But yeah I'm biased, I love switching including the gemset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants