diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ceea93..9c30ba0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,25 +1,99 @@ -# Contributing +Contributing to ExecJS +===================== -## Development +[![Build Status](https://travis-ci.org/rails/execjs.svg?branch=master)](https://travis-ci.org/rails/execjs) -Clone the repository from GitHub. +ExecJS is work of [many contributors](https://github.com/rails/execjs/graphs/contributors). You're encouraged to submit [pull requests](https://github.com/rails/execjs/pulls), [propose features and discuss issues](https://github.com/rails/execjs/issues). + +#### Fork the Project + +Fork the [project on Github](https://github.com/rails/execjs) and check out your copy. ``` -$ git clone https://github.com/rails/execjs +git clone https://github.com/contributor/execjs.git +cd execjs +git remote add upstream https://github.com/rails/execjs.git ``` -Now just cd into the directory and run `bundle install` to install the -development dependencies. +#### Create a Topic Branch + +Make sure your fork is up-to-date and create a topic branch for your feature or bug fix. ``` -$ cd execjs/ -$ bundle install +git checkout master +git pull upstream master +git checkout -b my-feature-branch ``` -## Testing +#### Bundle Install and Test -Tests can be ran via `rake`. +Ensure that you can build the project and run tests. ``` -$ bundle exec rake +bundle install +bundle exec rake ``` + +#### Write Tests + +Try to write a test that reproduces the problem you're trying to fix or describes a feature that you want to build. Add to [test](test). + +We definitely appreciate pull requests that highlight or reproduce a problem, even without a fix. + +#### Write Code + +Implement your feature or bug fix. + +Make sure that `bundle exec rake test` completes without errors. + +#### Write Documentation + +Document any external behavior in the [README](README.md). + +#### Commit Changes + +Make sure git knows your name and email address: + +``` +git config --global user.name "Your Name" +git config --global user.email "contributor@example.com" +``` + +Writing good commit logs is important. A commit log should describe what changed and why. + +``` +git add ... +git commit +``` + +#### Push + +``` +git push origin my-feature-branch +``` + +#### Make a Pull Request + +Go to https://github.com/contributor/execjs and select your feature branch. Click the 'Pull Request' button and fill out the form. Pull requests are usually reviewed within a few days. + +#### Rebase + +If you've been working on a change for a while, rebase with upstream/master. + +``` +git fetch upstream +git rebase upstream/master +git push origin my-feature-branch -f +``` + +#### Check on Your Pull Request + +Go back to your pull request after a few minutes and see whether it passed muster with Travis-CI. Everything should look green, otherwise fix issues and amend your commit as described above. + +#### Be Patient + +It's likely that your change will not be merged and that the nitpicky maintainers will ask you to do more, or fix seemingly benign problems. Hang on there! + +#### Thank You + +Please do know that we really appreciate and value your time and work. We love you, really. diff --git a/LICENSE b/MIT-LICENSE similarity index 100% rename from LICENSE rename to MIT-LICENSE diff --git a/README.md b/README.md index a499236..ccef33e 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,6 @@ context.call("CoffeeScript.compile", "square = (x) -> x * x", bare: true) $ gem install execjs ``` - # FAQ **Why can't I use CommonJS `require()` inside ExecJS?** @@ -72,9 +71,12 @@ are automatically detected, each runtime has different sandboxing properties. You shouldn't use `ExecJS.eval` on any inputs you wouldn't feel comfortable Ruby `eval()`ing. +## Contributing to ExecJS -# License +ExecJS is work of hundreds of contributors. You're encouraged to submit pull requests, propose +features and discuss issues. -Copyright (c) 2015 Sam Stephenson and Josh Peek. +See [CONTRIBUTING](CONTRIBUTING.md). -Released under the MIT license. See `LICENSE` for details. +## License +ExecJS is released under the [MIT License](MIT-LICENSE).