diff options
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 24 |
1 files changed, 11 insertions, 13 deletions
@@ -6,6 +6,8 @@ Like Mongrel, we use Ruby where it makes sense, and Ragel with C where it helps performance. All of the code that actually runs your Rack application is written Ruby, Ragel or C. +Ragel may be dropped in favor of a picohttpparser-based one in the future. + As far as tests and documentation goes, we're not afraid to embrace Unix and use traditional Unix tools where they make sense and get the job done. @@ -16,6 +18,9 @@ Tests are good, but slow tests make development slow, so we make tests faster (in parallel) with GNU make (instead of Rake) and avoiding RubyGems. +New tests are written in Perl 5 and use TAP <https://testanything.org/> +to ensure stability and immunity from Ruby incompatibilities. + Users of GNU-based systems (such as GNU/Linux) usually have GNU make installed as "make" instead of "gmake". @@ -50,20 +55,17 @@ programming experience will come in handy (or be learned) here. === Documentation -Due to the lack of RDoc-to-manpage converters we know about, we're -writing manpages in Markdown and converting to troff/HTML with Pandoc. - Please wrap documentation at 72 characters-per-line or less (long URLs are exempt) so it is comfortably readable from terminals. When referencing mailing list posts, use -<tt>https://bogomips.org/unicorn-public/$MESSAGE_ID/</tt> if possible +<tt>https://yhbt.net/unicorn-public/$MESSAGE_ID/</tt> if possible since the Message-ID remains searchable even if a particular site becomes unavailable. === Ruby/C Compatibility -We target mainline Ruby 1.9.3 and later. We need the Ruby +We target C Ruby 2.5 and later. We need the Ruby implementation to support fork, exec, pipe, UNIX signals, access to integer file descriptors and ability to use unlinked files. @@ -72,10 +74,10 @@ supported by the versions of Ruby we target. === Ragel Compatibility -We target the latest released version of Ragel and will update our code -to keep up with new releases. Packaged tarballs and gems include the -generated source code so they will remain usable if compatibility is -broken. +We target the latest released version of Ragel in Debian and will update +our code to keep up with new releases. Packaged tarballs and gems +include the generated source code so they will remain usable if +compatibility is broken. == Contributing @@ -102,10 +104,6 @@ don't email the git mailing list or maintainer with Unicorn patches :) == Building a Gem -In order to build the gem, you must install the following components: - - * pandoc - You can build the Unicorn gem with the following command: gmake gem |