kgio 2.11.2 - fix Ruby 2.5 compatibility for accept_class
[kgio.git] / HACKING
blob86adf29d00dfa699dd9ef889fa94ba7406800582
1 = kgio Hacker's Guide
3 === Documentation
5 We use the latest version of {olddoc}[https://80x24.org/olddoc/] as
6 much as possible.
8 Please wrap documentation at 72 characters-per-line or less (long URLs
9 are exempt) so it is comfortably readable from terminals.
11 When referencing mailing list posts, use
12 <tt>https://bogomips.org/kgio-public/$MESSAGE_ID/</tt> if possible
13 Message-ID remains searchable even if the archive becomes unavailable.
15 === Code Compatibility
17 We target mainline Ruby 1.9.3 and later.
19 All of our C code should be compatible with all reasonably modern Unices
20 and should run on compilers supported by the versions of Ruby we target.
22 We will NEVER support non-Free platforms under any circumstances.
24 Our C code follows Linux kernel coding style (hard tabs, tabs are always 8
25 characters wide) and NOT the indentation style of Matz Ruby.
27 == Contributing
29 Contributions are welcome in the form of patches, pull requests, code
30 review, testing, documentation, user support or any other feedback.  The
31 {kgio mailing list}[mailto:kgio-public@bogomips.org] is the
32 central coordination point for all user and developer feedback and bug
33 reports.
35 === Submitting Patches
37 Follow conventions already established in the code and do not exceed 80
38 characters per line.
40 Inline patches (from "git format-patch -M") to the mailing list are
41 preferred because they allow code review and comments in the reply to
42 the patch.
44 We will adhere to mostly the same conventions for patch submissions as
45 git itself.  See the Documentation/SubmittingPatches document
46 distributed with git on on patch submission guidelines to follow.  Just
47 don't email the git mailing list or maintainer with kgio patches :)
49 == Running Development Versions
51 It is easy to install the contents of your git working directory:
53 Via RubyGems:
55   gmake install-gem
57 Without RubyGems (via setup.rb):
59   gmake install
61 It is not at all recommended to mix a RubyGems installation with an
62 installation done without RubyGems, however.
64 === Tests
66 We use GNU make to run tests in parallel for historical reasons.  Users
67 of GNU-based systems (such as GNU/Linux) usually have GNU make installed
68 as "make" instead of "gmake".
70 Running the entire test suite with 4 tests in parallel:
72   gmake -j4 test
74 Running just one unit test:
76   gmake test/test_poll.rb