summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordblock <dblock@dblock.org>2020-01-11 12:11:53 -0500
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-01-12 07:44:19 +1300
commit6fef4abc8e0e18cdcf5c3ca6ad63d5c42deb0432 (patch)
treeaebb51e024752285bae97770faf6719280a73eb6
parentf61a4cb93da407a463381eedf03725f01aa34efe (diff)
downloadrack-6fef4abc8e0e18cdcf5c3ca6ad63d5c42deb0432.tar.gz
Added CONTRIBUTING.md.
-rw-r--r--CHANGELOG.md1
-rw-r--r--CONTRIBUTING.md136
-rw-r--r--README.rdoc30
-rw-r--r--rack.gemspec2
4 files changed, 142 insertions, 27 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da26a865..4abf183e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ _Note: The list below may not be up-to-date. If you would like to help out and d
### Documentation
- CHANGELOG updates. ([@aupajo](https://github.com/aupajo))
+- Added [CONTRIBUTING](CONTRIBUTING.md). ([@dblock](https://github.com/dblock))
## [2.1.0] - 2020-01-10
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..70a27468
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,136 @@
+Contributing to Rack
+=====================
+
+Rack is work of [hundreds of contributors](https://github.com/rack/rack/graphs/contributors). You're encouraged to submit [pull requests](https://github.com/rack/rack/pulls), [propose features and discuss issues](https://github.com/rack/rack/issues). When in doubt, post to the [rack-devel](http://groups.google.com/group/rack-devel) mailing list.
+
+#### Fork the Project
+
+Fork the [project on Github](https://github.com/rack/rack) and check out your copy.
+
+```
+git clone https://github.com/contributor/rack.git
+cd rack
+git remote add upstream https://github.com/rack/rack.git
+```
+
+#### Create a Topic Branch
+
+Make sure your fork is up-to-date and create a topic branch for your feature or bug fix.
+
+```
+git checkout master
+git pull upstream master
+git checkout -b my-feature-branch
+```
+
+#### Bundle Install and Quick Test
+
+Ensure that you can build the project and run quick tests.
+
+```
+bundle install --without extra
+bundle exec rake test
+```
+
+#### Running All Tests
+
+Install all dependencies.
+
+```
+bundle install
+```
+
+Run all tests.
+
+```
+rake test
+```
+
+The test suite has no dependencies outside of the core Ruby installation and bacon.
+
+Some tests will be skipped if a dependency is not found.
+
+To run the test suite completely, you need:
+
+ * fcgi
+ * dalli
+ * thin
+
+To test Memcache sessions, you need memcached (will be run on port 11211) and dalli installed.
+
+#### 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.
+
+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 fulltest` completes without errors.
+
+#### Write Documentation
+
+Document any external behavior in the [README](README.rdoc).
+
+#### Update Changelog
+
+Add a line to [CHANGELOG](CHANGELOG.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/rack 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
+```
+
+#### Make Required Changes
+
+Amend your previous commit and force push the changes.
+
+```
+git commit --amend
+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/README.rdoc b/README.rdoc
index 56dba691..b84bb5c0 100644
--- a/README.rdoc
+++ b/README.rdoc
@@ -126,32 +126,6 @@ A Gem of \Rack is available at {rubygems.org}[https://rubygems.org/gems/rack]. Y
gem install rack
-== Running the tests
-
-Testing \Rack requires the bacon testing framework:
-
- bundle install --without extra # to be able to run the fast tests
-
-Or:
-
- bundle install # this assumes that you have installed native extensions!
-
-There is a rake-based test task:
-
- rake test # tests all the tests
-
-The testsuite has no dependencies outside of the core Ruby
-installation and bacon.
-
-To run the test suite completely, you need:
-
- * fcgi
- * dalli
- * thin
-
-To test Memcache sessions, you need memcached (will be
-run on port 11211) and dalli installed.
-
== Configuration
Several parameters can be modified on Rack::Utils to configure \Rack behaviour.
@@ -182,6 +156,10 @@ Can also be set via the +RACK_MULTIPART_PART_LIMIT+ environment variable.
See {CHANGELOG.md}[https://github.com/rack/rack/blob/master/CHANGELOG.md].
+== Contributing
+
+See {CONTRIBUTING.md}[https://github.com/rack/rack/blob/master/CONTRIBUTING.md].
+
== Contact
Please post bugs, suggestions and patches to
diff --git a/rack.gemspec b/rack.gemspec
index f0d81ed5..6ed57b29 100644
--- a/rack.gemspec
+++ b/rack.gemspec
@@ -22,7 +22,7 @@ EOF
s.bindir = 'bin'
s.executables << 'rackup'
s.require_path = 'lib'
- s.extra_rdoc_files = ['README.rdoc', 'CHANGELOG.md']
+ s.extra_rdoc_files = ['README.rdoc', 'CHANGELOG.md', 'CONTRIBUTING.md']
s.author = 'Leah Neukirchen'
s.email = 'leah@vuxu.org'