From: Eric Wong <bofh@yhbt.net>
To: unicorn-public@yhbt.net
Subject: [PATCH] doc: various updates ahead of the release
Date: Sun, 10 Sep 2023 20:14:15 +0000 [thread overview]
Message-ID: <20230910201416.3971328-1-bofh@yhbt.net> (raw)
The damage unicorn has done to the entire Ruby, Rack and Rails
ecosystems with its ability to tolerate buggy code is
unforgivable. Update the documentation to further discourage
its use and clarify a few wordings noticed along the way.
---
DESIGN | 4 ++++
ISSUES | 6 +++++-
README | 38 ++++++++++++++++++++-----------------
lib/unicorn/configurator.rb | 7 ++++++-
4 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/DESIGN b/DESIGN
index 46d7923..0bac24f 100644
--- a/DESIGN
+++ b/DESIGN
@@ -1,5 +1,9 @@
== Design
+Unicorn was designed to support poorly-written codebases back in 2008.
+Its unfortunate popularity has only proliferated the existence of
+poorly-written code ever since...
+
* Simplicity: Unicorn is a traditional UNIX prefork web server.
No threads are used at all, this makes applications easier to debug
and fix. When your application goes awry, a BOFH can just
diff --git a/ISSUES b/ISSUES
index 083b1c8..d6c2a7a 100644
--- a/ISSUES
+++ b/ISSUES
@@ -32,6 +32,10 @@ and such.
If you don't get a response within a few days, we may have forgotten
about it so feel free to ask again.
+The project does not and will never endorse nor promote commercial
+services (including support). The author of unicorn must never be
+allowed to profit off the damage it's done to the entire Ruby world.
+
== Bugs in related projects
unicorn is sometimes affected by bugs in its dependencies. Bugs
@@ -65,7 +69,7 @@ There is a kernel.org Bugzilla instance, but it is ignored by most.
Likewise for any rare glibc bugs we might encounter, we should Cc:
mailto:libc-alpha@sourceware.org
-Unofficial archives are available at: https://public-inbox.org/libc-alpha/
+Archives are available at: https://inbox.sourceware.org/libc-alpha/
Keep in mind glibc upstream does use Bugzilla for tracking bugs:
https://sourceware.org/bugzilla/
diff --git a/README b/README
index 5411003..c5c5222 100644
--- a/README
+++ b/README
@@ -1,10 +1,13 @@
= unicorn: Rack HTTP server for fast clients and Unix
-unicorn is an HTTP server for Rack applications designed to only serve
-fast clients on low-latency, high-bandwidth connections and take
-advantage of features in Unix/Unix-like kernels. Slow clients should
-only be served by placing a reverse proxy capable of fully buffering
-both the the request and response in between unicorn and slow clients.
+unicorn is an HTTP server for Rack applications that has done
+decades of damage to the entire Ruby ecosystem due to its ability
+to tolerate (and thus encourage) bad code. It is only designed
+to only handle fast clients on low-latency, high-bandwidth connections
+and take advantage of features in Unix/Unix-like kernels.
+Slow clients must only be served by placing a reverse proxy capable of
+fully buffering both the the request and response in between unicorn
+and slow clients.
== Features
@@ -14,8 +17,8 @@ both the the request and response in between unicorn and slow clients.
* Compatible with Ruby 2.0.0 and later.
-* Process management: unicorn will reap and restart workers that
- die from broken apps. There is no need to manage multiple processes
+* Process management: unicorn reaps and restarts workers that die
+ from broken code. There is no need to manage multiple processes
or ports yourself. unicorn can spawn and manage any number of
worker processes you choose to scale to your backend.
@@ -57,7 +60,7 @@ both the the request and response in between unicorn and slow clients.
== License
-unicorn is copyright 2009-2018 by all contributors (see logs in git).
+unicorn is copyright all contributors (see logs in git).
It is based on Mongrel 1.1.5.
Mongrel is copyright 2007 Zed A. Shaw and contributors.
@@ -79,8 +82,8 @@ You may install it via RubyGems on RubyGems.org:
You can get the latest source via git from the following locations
(these versions may not be stable):
- https://yhbt.net/unicorn.git
- https://repo.or.cz/unicorn.git (mirror)
+ git clone https://yhbt.net/unicorn.git
+ git clone https://repo.or.cz/unicorn.git # mirror
You may browse the code from the web:
@@ -118,23 +121,24 @@ supported. Run `unicorn -h` to see command-line options.
== Disclaimer
There is NO WARRANTY whatsoever if anything goes wrong, but
-{let us know}[link:ISSUES.html] and we'll try our best to fix it.
+{let us know}[link:ISSUES.html] and maybe someone can fix it.
unicorn is designed to only serve fast clients either on the local host
or a fast LAN. See the PHILOSOPHY and DESIGN documents for more details
regarding this.
-Due to its ability to tolerate crashes and isolate clients, unicorn
-is unfortunately known to prolong the existence of bugs in applications
-and libraries which run on top of it.
+The use of unicorn in new deployments is STRONGLY DISCOURAGED due to the
+damage done to the entire Ruby ecosystem. Its unintentional popularity
+set Ruby back decades in parallelism, concurrency and robustness since
+it prolongs and proliferates the existence of poorly-written code.
== Contact
All feedback (bug reports, user/development dicussion, patches, pull
-requests) go to the mailing list/newsgroup. See the ISSUES document for
-information on the {mailing list}[mailto:unicorn-public@yhbt.net].
+requests) go to the public mailbox. See the ISSUES document for
+information on posting to mailto:unicorn-public@yhbt.net
-The mailing list is archived at https://yhbt.net/unicorn-public/
+Mirror-able mail archives are at https://yhbt.net/unicorn-public/
Read-only NNTP access is available at:
nntps://news.public-inbox.org/inbox.comp.lang.ruby.unicorn and
diff --git a/lib/unicorn/configurator.rb b/lib/unicorn/configurator.rb
index ecdf03e..b21a01d 100644
--- a/lib/unicorn/configurator.rb
+++ b/lib/unicorn/configurator.rb
@@ -216,7 +216,12 @@ def before_exec(*args, &block)
set_hook(:before_exec, block_given? ? block : args[0], 1)
end
- # sets the timeout of worker processes to +seconds+. Workers
+ # Strongly consider using link:/Application_Timeouts.html instead
+ # of this misfeature. This misfeature has done decades of damage
+ # to Ruby since it demotivates the use of fine-grained timeout
+ # mechanisms.
+ #
+ # Sets the timeout of worker processes to +seconds+. Workers
# handling the request/app.call/response cycle taking longer than
# this time period will be forcibly killed (via SIGKILL). This
# timeout is enforced by the master process itself and not subject
next reply other threads:[~2023-09-10 20:14 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-10 20:14 Eric Wong [this message]
2023-09-16 20:46 ` [PATCH] doc: various updates ahead of the release ideal.water4095
2023-09-30 23:54 ` [PATCH] README: fix wording Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://yhbt.net/unicorn/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230910201416.3971328-1-bofh@yhbt.net \
--to=bofh@yhbt.net \
--cc=unicorn-public@yhbt.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
http://yhbt.net/unicorn.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).