summaryrefslogtreecommitdiff
path: root/Contributing.rdoc
blob: a0f37defd8952735e94bbe6e41ea416dd4e1ec57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
== Contributing

I value any contribution to Diff::LCS you can provide: a bug report, a feature
request, or code contributions.

Code contributions to Diff::LCS are especially <del>welcome</del>encouraged.
Because Diff::LCS is a complex codebase, there are a few guidelines:

* Changes <strong>will not</strong> be accepted without tests.
* The test suite is written with RSpec.‡
* Match my coding style.
* Use a thoughtfully-named topic branch that contains your change. Rebase your
  commits into logical chunks as necessary.
* Use {quality commit messages}[http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html].
* Do not change the version number; when your patch is accepted and a release
  is made, the version will be updated at that point.
* Submit a GitHub pull request with your changes.
* New features require new documentation.

=== Test Dependencies

To run the test suite, you will need to install the development dependencies
for Diff::LCS. If you have Bundler, you can accomplish this easily:

    $ bundle install

Diff::LCS uses Ryan Davis’s excellent {Hoe}[https://github.com/seattlerb/hoe]
to manage the release process, and it adds a number of rake tasks. You will
mostly be interested in:

    $ rake

which runs the tests the same way that:

    $ rake spec
    $ rake test
    $ rake travis

will do.

=== Workflow

Here's the most direct way to get your work merged into the project:

* Fork the project.
* Clone down your fork (+git clone git://github.com/<username>/diff-lcs.git+).
* Create a topic branch to contain your change (+git checkout -b my\_awesome\_feature+).
* Hack away, add tests. Not necessarily in that order.
* Make sure everything still passes by running `rake`.
* If necessary, rebase your commits into logical chunks, without errors.
* Push the branch up (+git push origin my\_awesome\_feature+).
* Create a pull request against halostatue/diff-lcs and describe what your
  change does and the why you think it should be merged.

=== Contributors

* Austin Ziegler created Diff::LCS.

Thanks to everyone else who has contributed to Diff::LCS:

* Kenichi Kamiya
* Michael Granger
* Vít Ondruch
* Jon Rowe