unicorn-camilo 4.8.2.5.19 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.document +0 -1
  3. data/.gitignore +2 -2
  4. data/{.wrongdoc.yml → .olddoc.yml} +7 -2
  5. data/Documentation/unicorn.1.txt +9 -2
  6. data/Documentation/unicorn_rails.1.txt +2 -2
  7. data/FAQ +9 -1
  8. data/GIT-VERSION-GEN +1 -1
  9. data/GNUmakefile +31 -46
  10. data/HACKING +13 -27
  11. data/ISSUES +80 -16
  12. data/KNOWN_ISSUES +10 -10
  13. data/Links +10 -7
  14. data/PHILOSOPHY +1 -1
  15. data/README +8 -13
  16. data/Rakefile +0 -44
  17. data/Sandbox +1 -1
  18. data/TUNING +6 -3
  19. data/archive/.gitignore +3 -0
  20. data/archive/slrnpull.conf +4 -0
  21. data/bin/unicorn +1 -1
  22. data/bin/unicorn_rails +1 -1
  23. data/examples/unicorn.conf.rb +11 -0
  24. data/ext/unicorn_http/httpdate.c +1 -1
  25. data/ext/unicorn_http/unicorn_http.rl +48 -150
  26. data/lib/unicorn.rb +9 -15
  27. data/lib/unicorn/configurator.rb +3 -20
  28. data/lib/unicorn/const.rb +2 -25
  29. data/lib/unicorn/http_request.rb +4 -1
  30. data/lib/unicorn/http_response.rb +1 -3
  31. data/lib/unicorn/http_server.rb +85 -86
  32. data/lib/unicorn/socket_helper.rb +33 -67
  33. data/lib/unicorn/tee_input.rb +8 -1
  34. data/lib/unicorn/tmpio.rb +2 -4
  35. data/lib/unicorn/util.rb +1 -0
  36. data/lib/unicorn/worker.rb +1 -13
  37. data/t/GNUmakefile +1 -5
  38. data/t/README +1 -1
  39. data/t/t0002-parser-error.sh +3 -3
  40. data/test/exec/test_exec.rb +1 -1
  41. data/test/test_helper.rb +2 -2
  42. data/test/unit/test_http_parser.rb +3 -3
  43. data/test/unit/test_http_parser_ng.rb +8 -117
  44. data/test/unit/test_request.rb +1 -1
  45. data/test/unit/test_response.rb +3 -9
  46. data/test/unit/test_server.rb +3 -3
  47. data/test/unit/test_signals.rb +1 -1
  48. data/test/unit/test_socket_helper.rb +5 -5
  49. data/test/unit/test_tee_input.rb +10 -0
  50. data/test/unit/test_upload.rb +1 -1
  51. data/test/unit/test_util.rb +1 -1
  52. data/unicorn.gemspec +7 -10
  53. metadata +15 -33
  54. data/examples/git.ru +0 -13
  55. data/lib/unicorn/app/exec_cgi.rb +0 -154
  56. data/lib/unicorn/app/inetd.rb +0 -109
  57. data/lib/unicorn/ssl_client.rb +0 -11
  58. data/lib/unicorn/ssl_configurator.rb +0 -104
  59. data/lib/unicorn/ssl_server.rb +0 -42
  60. data/local.mk.sample +0 -59
  61. data/script/isolate_for_tests +0 -31
  62. data/t/t0016-trust-x-forwarded-false.sh +0 -30
  63. data/t/t0017-trust-x-forwarded-true.sh +0 -30
  64. data/test/unit/test_http_parser_xftrust.rb +0 -38
  65. data/test/unit/test_sni_hostnames.rb +0 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ac18a698098dba575d5b24cacaf382803444ba2e
4
- data.tar.gz: 264d884703b75d5268075e101940a679cbd942bd
3
+ metadata.gz: e4b00373cb52bcc9edc697bf4a4e9b1b9e2a586d
4
+ data.tar.gz: f23ee623cd30cfd66e88a82116cd5abd295390c9
5
5
  SHA512:
6
- metadata.gz: 6d8e3d88a38ec6ee914c162833d42ceb1e2ac27a21177c1e01028cd20f2dce80632a174550964eed3a2766f60611b61b48822151bd2cbc98b46cff46f6890d08
7
- data.tar.gz: d9eed2eb864965d771478d1bb60466f871789364b0a4ccb9e456bda77de5107ba19b6f14004e8d5c5d5e82b15b80709c7fc368fe44479359fba269ddc71dbf08
6
+ metadata.gz: 8e5cef96e7d9537ebd713ec7fd3a6e57d921dabb7b4a7ef6e5cea476eae6c20beab16318b2ebeea775bf07ce6b0d31d85415d28fc0e9c694287f855e2840a8bc
7
+ data.tar.gz: a7e6e36f4e0c09db559339722fc81fbe369148e7e796a25671f5c8aeebbcc2dd88a5b691eeab180463542547e5a07858081a1fda64200ee98e22e62716173646
data/.document CHANGED
@@ -10,7 +10,6 @@ SIGNALS
10
10
  KNOWN_ISSUES
11
11
  TODO
12
12
  NEWS
13
- ChangeLog
14
13
  LATEST
15
14
  lib/unicorn.rb
16
15
  lib/unicorn/configurator.rb
data/.gitignore CHANGED
@@ -15,11 +15,11 @@ ext/unicorn_http/unicorn_http.c
15
15
  log/
16
16
  pkg/
17
17
  /vendor
18
- /NEWS
19
- /ChangeLog
18
+ /NEWS*
20
19
  /.manifest
21
20
  /GIT-VERSION-FILE
22
21
  /man
23
22
  /tmp
24
23
  /LATEST
25
24
  /lib/unicorn/version.rb
25
+ /*_1
@@ -2,9 +2,14 @@
2
2
  cgit_url: http://bogomips.org/unicorn.git
3
3
  git_url: git://bogomips.org/unicorn.git
4
4
  rdoc_url: http://unicorn.bogomips.org/
5
- changelog_start: v1.1.5
5
+ ml_url: http://bogomips.org/unicorn-public/
6
6
  merge_html:
7
7
  unicorn_1: Documentation/unicorn.1.html
8
8
  unicorn_rails_1: Documentation/unicorn_rails.1.html
9
- public_email: mongrel-unicorn@rubyforge.org
9
+ noindex:
10
+ - Unicorn::Const
11
+ - LATEST
12
+ - TODO
13
+ - unicorn_rails_1
14
+ public_email: unicorn-public@bogomips.org
10
15
  private_email: unicorn@bogomips.org
@@ -1,5 +1,5 @@
1
1
  % UNICORN(1) Unicorn User Manual
2
- % The Unicorn Community <mongrel-unicorn@rubyforge.org>
2
+ % The Unicorn Community <unicorn-public@bogomips.org>
3
3
  % September 15, 2009
4
4
 
5
5
  # NAME
@@ -163,6 +163,13 @@ set in the old master process are inherited by the new master process.
163
163
  Unicorn only uses (and will overwrite) the UNICORN_FD environment
164
164
  variable internally when doing transparent upgrades.
165
165
 
166
+ UNICORN_FD is a comma-delimited list of one or more file descriptors
167
+ used to implement USR2 upgrades. Init systems may bind listen sockets
168
+ itself and spawn unicorn with UNICORN_FD set to the file descriptor
169
+ numbers of the listen socket(s). The unicorn CONFIG_FILE must still
170
+ have the inherited listen socket parameters defined as in a normal
171
+ startup, otherwise the socket will be closed.
172
+
166
173
  # SEE ALSO
167
174
 
168
175
  * unicorn_rails(1)
@@ -173,6 +180,6 @@ variable internally when doing transparent upgrades.
173
180
  * [Rackup HowTo][3]
174
181
 
175
182
  [1]: http://unicorn.bogomips.org/
176
- [2]: http://rack.rubyforge.org/doc/
183
+ [2]: http://rdoc.info/gems/r#/gems/rack/frames
177
184
  [3]: http://wiki.github.com/rack/rack/tutorial-rackup-howto
178
185
  [4]: http://unicorn.bogomips.org/SIGNALS.html
@@ -1,5 +1,5 @@
1
1
  % UNICORN_RAILS(1) Unicorn User Manual
2
- % The Unicorn Community <mongrel-unicorn@rubyforge.org>
2
+ % The Unicorn Community <unicorn-public@bogomips.org>
3
3
  % September 17, 2009
4
4
 
5
5
  # NAME
@@ -170,6 +170,6 @@ used by Unicorn.
170
170
  * [Rackup HowTo][3]
171
171
 
172
172
  [1]: http://unicorn.bogomips.org/
173
- [2]: http://rack.rubyforge.org/doc/
173
+ [2]: http://rdoc.info/gems/r#/gems/rack/frames
174
174
  [3]: http://wiki.github.com/rack/rack/tutorial-rackup-howto
175
175
  [4]: http://unicorn.bogomips.org/SIGNALS.html
data/FAQ CHANGED
@@ -1,6 +1,14 @@
1
1
  = Frequently Asked Questions about Unicorn
2
2
 
3
- === I've installed Rack 1.1.x, why can't Unicorn load Rails (2.3.5)?
3
+ === Why aren't my Rails log files rotated when I use SIGUSR1?
4
+
5
+ The Rails autoflush_log option must remain disabled with multiprocess
6
+ servers such as unicorn. Buffering in userspace may cause lines to be
7
+ partially written and lead to corruption in the presence of multiple
8
+ processes. With reasonable amounts of logging, the performance impact
9
+ of autoflush_log should be negligible on Linux and other modern kernels.
10
+
11
+ === I've installed Rack 1.1.x, why can't Unicorn load Rails (2.3.5)?
4
12
 
5
13
  Rails 2.3.5 is not compatible with Rack 1.1.x. Unicorn is compatible
6
14
  with both Rack 1.1.x and Rack 1.0.x, and RubyGems will load the latest
data/GIT-VERSION-GEN CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- DEF_VER = "v4.8.2"
2
+ DEF_VER = "v5.0.0.GIT"
3
3
  CONSTANT = "Unicorn::Const::UNICORN_VERSION"
4
4
  RVF = "lib/unicorn/version.rb"
5
5
  GVF = "GIT-VERSION-FILE"
data/GNUmakefile CHANGED
@@ -8,6 +8,8 @@ RUBY = ruby
8
8
  RAKE = rake
9
9
  RAGEL = ragel
10
10
  RSYNC = rsync
11
+ OLDDOC = olddoc
12
+ RDOC = rdoc
11
13
 
12
14
  GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
13
15
  @./GIT-VERSION-GEN
@@ -23,11 +25,7 @@ endif
23
25
 
24
26
  RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
25
27
 
26
- isolate_libs := tmp/isolate/$(RUBY_ENGINE)-$(RUBY_VERSION).mk
27
- $(isolate_libs): script/isolate_for_tests
28
- @$(RUBY) script/isolate_for_tests
29
- -include $(isolate_libs)
30
- MYLIBS = $(RUBYLIB):$(ISOLATE_LIBS)
28
+ MYLIBS = $(RUBYLIB)
31
29
 
32
30
  # dunno how to implement this as concisely in Ruby, and hell, I love awk
33
31
  awk_slow := awk '/def test_/{print FILENAME"--"$$2".n"}' 2>/dev/null
@@ -59,10 +57,11 @@ $(ext)/Makefile: $(ext)/extconf.rb $(c_files)
59
57
  cd $(@D) && $(RUBY) extconf.rb
60
58
  $(ext)/unicorn_http.$(DLEXT): $(ext)/Makefile
61
59
  $(MAKE) -C $(@D)
62
- lib/unicorn_http.$(DLEXT): $(ext)/unicorn_http.$(DLEXT)
63
- @mkdir -p lib
64
- install -m644 $< $@
65
- http: lib/unicorn_http.$(DLEXT)
60
+ http: $(ext)/unicorn_http.$(DLEXT)
61
+
62
+ # only used for tests
63
+ http-install: $(ext)/unicorn_http.$(DLEXT)
64
+ install -m644 $< lib/
66
65
 
67
66
  test-install: $(test_prefix)/.stamp
68
67
  $(test_prefix)/.stamp: $(inst_deps)
@@ -70,7 +69,7 @@ $(test_prefix)/.stamp: $(inst_deps)
70
69
  tar cf - $(inst_deps) GIT-VERSION-GEN | \
71
70
  (cd $(test_prefix) && tar xf -)
72
71
  $(MAKE) -C $(test_prefix) clean
73
- $(MAKE) -C $(test_prefix) http shebang RUBY="$(RUBY)"
72
+ $(MAKE) -C $(test_prefix) http-install shebang RUBY="$(RUBY)"
74
73
  > $@
75
74
 
76
75
  # this is only intended to be run within $(test_prefix)
@@ -87,10 +86,14 @@ test-unit: $(wildcard test/unit/test_*.rb)
87
86
  $(slow_tests): $(test_prefix)/.stamp
88
87
  @$(MAKE) $(shell $(awk_slow) $@)
89
88
 
89
+ # ensure we can require just the HTTP parser without the rest of unicorn
90
+ test-require: $(ext)/unicorn_http.$(DLEXT)
91
+ $(RUBY) --disable-gems -I$(ext) -runicorn_http -e Unicorn
92
+
90
93
  test-integration: $(test_prefix)/.stamp
91
94
  $(MAKE) -C t
92
95
 
93
- check: test test-integration
96
+ check: test-require test test-integration
94
97
  test-all: check
95
98
 
96
99
  TEST_OPTS = -v
@@ -120,20 +123,19 @@ run_test = $(quiet_pre) \
120
123
  %.n: arg = $(subst .n,,$(subst --, -n ,$@))
121
124
  %.n: t = $(subst .n,$(log_suffix),$@)
122
125
  %.n: export PATH := $(test_prefix)/bin:$(PATH)
123
- %.n: export RUBYLIB := $(test_prefix):$(test_prefix)/lib:$(MYLIBS)
126
+ %.n: export RUBYLIB := $(test_prefix)/lib:$(MYLIBS)
124
127
  %.n: $(test_prefix)/.stamp
125
128
  $(run_test)
126
129
 
127
130
  $(T): arg = $@
128
131
  $(T): t = $(subst .rb,$(log_suffix),$@)
129
132
  $(T): export PATH := $(test_prefix)/bin:$(PATH)
130
- $(T): export RUBYLIB := $(test_prefix):$(test_prefix)/lib:$(MYLIBS)
133
+ $(T): export RUBYLIB := $(test_prefix)/lib:$(MYLIBS)
131
134
  $(T): $(test_prefix)/.stamp
132
135
  $(run_test)
133
136
 
134
137
  install: $(bins) $(ext)/unicorn_http.c
135
138
  $(prep_setup_rb)
136
- $(RM) lib/unicorn_http.$(DLEXT)
137
139
  $(RM) -r .install-tmp
138
140
  mkdir .install-tmp
139
141
  cp -p bin/* .install-tmp
@@ -149,42 +151,41 @@ prep_setup_rb := @-$(RM) $(setup_rb_files);$(MAKE) -C $(ext) clean
149
151
  clean:
150
152
  -$(MAKE) -C $(ext) clean
151
153
  -$(MAKE) -C Documentation clean
152
- $(RM) $(ext)/Makefile lib/unicorn_http.$(DLEXT)
154
+ $(RM) $(ext)/Makefile
153
155
  $(RM) $(setup_rb_files) $(t_log)
154
156
  $(RM) -r $(test_prefix) man
155
157
 
156
158
  man html:
157
159
  $(MAKE) -C Documentation install-$@
158
160
 
159
- pkg_extra := GIT-VERSION-FILE lib/unicorn/version.rb ChangeLog LATEST NEWS \
161
+ pkg_extra := GIT-VERSION-FILE lib/unicorn/version.rb LATEST NEWS \
160
162
  $(ext)/unicorn_http.c $(man1_paths)
161
163
 
162
- ChangeLog: GIT-VERSION-FILE .wrongdoc.yml
163
- wrongdoc prepare
164
+ NEWS:
165
+ $(OLDDOC) prepare
164
166
 
165
- .manifest: ChangeLog $(ext)/unicorn_http.c man
167
+ .manifest: $(ext)/unicorn_http.c man NEWS
166
168
  (git ls-files && for i in $@ $(pkg_extra); do echo $$i; done) | \
167
169
  LC_ALL=C sort > $@+
168
170
  cmp $@+ $@ || mv $@+ $@
169
171
  $(RM) $@+
170
172
 
171
- doc: .document $(ext)/unicorn_http.c man html .wrongdoc.yml
172
- for i in $(man1_rdoc); do echo > $$i; done
173
+ PLACEHOLDERS = $(man1_rdoc)
174
+ doc: .document $(ext)/unicorn_http.c man html .olddoc.yml $(PLACEHOLDERS)
173
175
  find bin lib -type f -name '*.rbc' -exec rm -f '{}' ';'
174
176
  $(RM) -r doc
175
- wrongdoc all
177
+ $(OLDDOC) prepare
178
+ $(RDOC) -f oldweb
179
+ $(OLDDOC) merge
176
180
  install -m644 COPYING doc/COPYING
177
181
  install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
178
182
  install -m644 $(man1_paths) doc/
179
183
  tar cf - $$(git ls-files examples/) | (cd doc && tar xf -)
180
- $(RM) $(man1_rdoc)
181
184
 
182
185
  # publishes docs to http://unicorn.bogomips.org
183
186
  publish_doc:
184
187
  -git set-file-times
185
188
  $(MAKE) doc
186
- find doc/images -type f | \
187
- TZ=UTC xargs touch -d '1970-01-01 00:00:02' doc/rdoc.css
188
189
  $(MAKE) doc_gz
189
190
  chmod 644 $$(find doc -type f)
190
191
  $(RSYNC) -av doc/ unicorn.bogomips.org:/srv/unicorn/
@@ -192,27 +193,15 @@ publish_doc:
192
193
 
193
194
  # Create gzip variants of the same timestamp as the original so nginx
194
195
  # "gzip_static on" can serve the gzipped versions directly.
195
- doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.\(gif\|jpg\|png\|gz\)$$')
196
+ doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.gz$$')
196
197
  doc_gz:
197
198
  for i in $(docs); do \
198
199
  gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
199
200
 
200
201
  ifneq ($(VERSION),)
201
- rfproject := mongrel
202
202
  rfpackage := unicorn
203
203
  pkggem := pkg/$(rfpackage)-$(VERSION).gem
204
204
  pkgtgz := pkg/$(rfpackage)-$(VERSION).tgz
205
- release_notes := release_notes-$(VERSION)
206
- release_changes := release_changes-$(VERSION)
207
-
208
- release-notes: $(release_notes)
209
- release-changes: $(release_changes)
210
- $(release_changes):
211
- wrongdoc release_changes > $@+
212
- $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
213
- $(release_notes):
214
- wrongdoc release_notes > $@+
215
- $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
216
205
 
217
206
  # ensures we're actually on the tagged $(VERSION), only used for release
218
207
  verify:
@@ -248,20 +237,16 @@ $(pkgtgz): .manifest fix-perms
248
237
 
249
238
  package: $(pkgtgz) $(pkggem)
250
239
 
251
- release: verify package $(release_notes) $(release_changes)
252
- # make tgz release on RubyForge
253
- rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
254
- $(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
240
+ release: verify package
255
241
  # push gem to Gemcutter
256
242
  gem push $(pkggem)
257
- # in case of gem downloads from RubyForge releases page
258
- -rubyforge add_file \
259
- $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
260
- $(RAKE) fm_update VERSION=$(VERSION)
261
243
  else
262
244
  gem install-gem: GIT-VERSION-FILE
263
245
  $(MAKE) $@ VERSION=$(GIT_VERSION)
264
246
  endif
265
247
 
248
+ $(PLACEHOLDERS):
249
+ echo olddoc_placeholder > $@
250
+
266
251
  .PHONY: .FORCE-GIT-VERSION-FILE doc $(T) $(slow_tests) man
267
252
  .PHONY: test-install
data/HACKING CHANGED
@@ -19,13 +19,6 @@ RubyGems.
19
19
  Users of GNU-based systems (such as GNU/Linux) usually have GNU make
20
20
  installed as "make" instead of "gmake".
21
21
 
22
- Since we don't load RubyGems by default, loading Rack properly requires
23
- setting up RUBYLIB to point to where Rack is located. Not loading
24
- RubyGems drastically lowers the time to run the full test suite. You
25
- may setup a "local.mk" file in the top-level working directory to setup
26
- your RUBYLIB and any other environment variables. A "local.mk.sample"
27
- file is provided for reference.
28
-
29
22
  Running the entire test suite with 4 tests in parallel:
30
23
 
31
24
  gmake -j4 check
@@ -57,24 +50,22 @@ programming experience will come in handy (or be learned) here.
57
50
 
58
51
  === Documentation
59
52
 
60
- We use RDoc 2.5.x with Darkfish for documentation as much as possible,
61
- if you're on Ruby 1.8 you want to install the latest "rdoc" gem. Due to
62
- the lack of RDoc-to-manpage converters we know about, we're writing
63
- manpages in Markdown and converting to troff/HTML with Pandoc.
53
+ Due to the lack of RDoc-to-manpage converters we know about, we're
54
+ writing manpages in Markdown and converting to troff/HTML with Pandoc.
64
55
 
65
56
  Please wrap documentation at 72 characters-per-line or less (long URLs
66
57
  are exempt) so it is comfortably readable from terminals.
67
58
 
68
59
  When referencing mailing list posts, use
69
- "http://mid.gmane.org/$MESSAGE_ID" if possible since the Message-ID
70
- remains searchable even if Gmane becomes unavailable.
60
+ "http://bogomips.org/unicorn-public/m/$MESSAGE_ID.html" if possible
61
+ since the Message-ID remains searchable even if a particular site
62
+ becomes unavailable.
71
63
 
72
64
  === Ruby/C Compatibility
73
65
 
74
- We target Ruby 1.8.6+, 1.9 and will target Rubinius as it becomes
75
- production-ready. We need the Ruby implementation to support fork,
76
- exec, pipe, UNIX signals, access to integer file descriptors and
77
- ability to use unlinked files.
66
+ We target mainline Ruby 1.9.3 and later. We need the Ruby
67
+ implementation to support fork, exec, pipe, UNIX signals, access to
68
+ integer file descriptors and ability to use unlinked files.
78
69
 
79
70
  All of our C code is OS-independent and should run on compilers
80
71
  supported by the versions of Ruby we target.
@@ -103,7 +94,9 @@ preferred because they allow code review and comments in the reply to
103
94
  the patch.
104
95
 
105
96
  We will adhere to mostly the same conventions for patch submissions as
106
- git itself. See the Documentation/SubmittingPatches document
97
+ git itself. See the
98
+ {SubmittingPatches}[https://git.kernel.org/cgit/git/git.git/tree/Documentation/SubmittingPatches]
99
+ document
107
100
  distributed with git on on patch submission guidelines to follow. Just
108
101
  don't email the git mailing list or maintainer with Unicorn patches :)
109
102
 
@@ -111,7 +104,7 @@ don't email the git mailing list or maintainer with Unicorn patches :)
111
104
 
112
105
  In order to build the gem, you must install the following components:
113
106
 
114
- * wrongdoc
107
+ * olddoc (RubyGem)
115
108
  * pandoc
116
109
 
117
110
  You can build the Unicorn gem with the following command:
@@ -122,13 +115,6 @@ You can build the Unicorn gem with the following command:
122
115
 
123
116
  It is easy to install the contents of your git working directory:
124
117
 
125
- Via RubyGems (RubyGems 1.3.5+ recommended for prerelease versions):
118
+ Via RubyGems
126
119
 
127
120
  gmake install-gem
128
-
129
- Without RubyGems (via setup.rb):
130
-
131
- gmake install
132
-
133
- It is not at all recommended to mix a RubyGems installation with an
134
- installation done without RubyGems, however.
data/ISSUES CHANGED
@@ -1,15 +1,15 @@
1
1
  = Issues
2
2
 
3
- The {mailing list}[mailto:mongrel-unicorn@rubyforge.org] is the best
4
- place to report bugs, submit patches and/or obtain support after you
5
- have searched the mailing list archives and
6
- {documentation}[http://unicorn.bogomips.org].
3
+ mailto:unicorn-public@bogomips.org is the best place to report bugs,
4
+ submit patches and/or obtain support after you have searched the
5
+ {email archives}[http://bogomips.org/unicorn-public/] and
6
+ {documentation}[http://unicorn.bogomips.org/].
7
7
 
8
- * No subscription is needed to post to the mailing list,
9
- let us know that we need to Cc: replies to you if you're unsubscribed.
8
+ * No subscription will ever be required to email the public inbox.
9
+ * Cc: all participants in a thread or commit, as subscription is optional
10
10
  * Do not {top post}[http://catb.org/jargon/html/T/top-post.html] in replies
11
- * Quote only the relevant portions of the message you're replying to
12
- * Do not send HTML mail
11
+ * Quote as little as possible of the message you're replying to
12
+ * Do not send HTML mail, it will likely be flagged as spam
13
13
 
14
14
  If your issue is of a sensitive nature or you're just shy in public,
15
15
  then feel free to email us privately at mailto:unicorn@bogomips.org
@@ -18,19 +18,83 @@ instead and your issue will be handled discreetly.
18
18
  If you don't get a response within a few days, we may have forgotten
19
19
  about it so feel free to ask again.
20
20
 
21
+ == Bugs in related projects
22
+
23
+ unicorn is sometimes affected by bugs in its dependencies. Bugs
24
+ triggered by unicorn in mainline Ruby, rack, GNU C library (glibc),
25
+ or the Linux kernel will be reported upstream and fixed.
26
+
27
+ For bugs in Ruby itself, we may forward bugs to
28
+ https://bugs.ruby-lang.org/ and discuss+fix them on the ruby-core
29
+ list at mailto:ruby-core@ruby-lang.org
30
+ Subscription to post is required to ruby-core, unfortunately:
31
+ mailto:ruby-core-request@ruby-lang.org?subject=subscribe
32
+
33
+ For uncommon bugs in Rack, we may forward bugs to
34
+ mailto:rack-devel@googlegroups.com and discuss there.
35
+ Subscription (without any web UI or Google account) is possible via:
36
+ mailto:rack-devel+subscribe@googlegroups.com
37
+ Note: not everyone can use the proprietary bug tracker used by Rack,
38
+ but their mailing list remains operational.
39
+
40
+ Uncommon bugs we encounter in the Linux kernel should be Cc:-ed to the
41
+ Linux kernel mailing list (LKML) at mailto:linux-kernel@vger.kernel.org
42
+ and subsystem maintainers such as mailto:netdev@vger.kernel.org
43
+ (for networking issues). It is expected practice to Cc: anybody
44
+ involved with any problematic commits (including those in the
45
+ Signed-off-by: and other trailer lines). No subscription is necessary,
46
+ and the our mailing list follows the same conventions as LKML for
47
+ interopability. There is a kernel.org Bugzilla instance, but it is
48
+ ignored by most developers.
49
+
50
+ Likewise for any rare glibc bugs we might encounter, we should Cc:
51
+ mailto:libc-alpha@sourceware.org
52
+ Keep in mind glibc upstream does use Bugzilla for tracking bugs:
53
+ https://sourceware.org/bugzilla/
54
+
21
55
  == Submitting Patches
22
56
 
23
57
  See the HACKING document (and additionally, the
24
- Documentation/SubmittingPatches document distributed with git) on
25
- guidelines for patch submission.
58
+ {SubmittingPatches}[https://git.kernel.org/cgit/git/git.git/tree/Documentation/SubmittingPatches]
59
+ document distributed with git) on guidelines for patch submission.
26
60
 
27
- == Mailing List Info
61
+ == Contact Info
28
62
 
29
- * subscribe: http://rubyforge.org/mailman/listinfo/mongrel-unicorn
30
- * post: mailto:mongrel-unicorn@rubyforge.org
63
+ * public: mailto:unicorn-public@bogomips.org
31
64
  * private: mailto:unicorn@bogomips.org
32
65
 
33
- == Mailing List Archives
66
+ We operate a {public-inbox}[http://public-inbox.org/] which
67
+ feeds the mailing list. You may subscribe either using
68
+ {ssoma}[http://ssoma.public-inbox.org/] or by sending a mail
69
+ to mailto:unicorn-public+subscribe@bogomips.org
70
+
71
+ ssoma is a mail archiver/fetcher using git. It operates in a similar
72
+ fashion to tools such as slrnpull, fetchmail, or getmail. ssoma
73
+ subscription instructions:
74
+
75
+ URL=git://bogomips.org/unicorn-public
76
+ LISTNAME=unicorn
77
+
78
+ # to initialize a maildir (this may be a new or existing maildir,
79
+ # ssoma will not touch existing messages)
80
+ # If you prefer mbox, use mbox:/path/to/mbox as the last argument
81
+ # You may also use imap://$MAILSERVER/INBOX for an IMAP account
82
+ # or imaps:// for an IMAPS account, as well.
83
+ ssoma add $LISTNAME $URL maildir:/path/to/maildir
84
+
85
+ # read with your favorite MUA (only using mutt as an example)
86
+ mutt -f /path/to/maildir # (or /path/to/mbox)
87
+
88
+ # to keep your mbox or maildir up-to-date, periodically run the following:
89
+ ssoma sync $LISTNAME
90
+
91
+ # your MUA may modify and delete messages from the maildir or mbox,
92
+ # this does not affect ssoma functionality at all
93
+
94
+ # to sync all your ssoma subscriptions
95
+ ssoma sync
96
+
97
+ # You may wish to sync in your cronjob
98
+ ssoma sync --cron
34
99
 
35
- * nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
36
- * http://rubyforge.org/pipermail/mongrel-unicorn
100
+ HTML archives are available here: http://bogomips.org/unicorn-public/