=== raindrops 0.20.1 / 2023-02-25 00:19 UTC

  Stats for SO_REUSEPORT sockets are now handled properly.
  Thanks to Dale Hamel for the patches.

  Dale Hamel (2):
        Fix queue stats for sockets with SO_REUSEPORT
        Fix off by one error in test

=== raindrops 0.20.0 / 2021-12-06 23:41 UTC

  Raindrops may now use file-backed mmap() rather than anonymous
  memory.  Thanks to KJ Tsanaktsidis for the patch:

  https://yhbt.net/raindrops-public/20211125065618.3432-1-ktsanaktsidis@zendesk.com/T/

  The documentation is also updated to note our mail archives are now
  available via IMAP(S).

=== raindrops 0.19.2 / 2021-05-25 23:13 UTC

  This release fixes compatibility with GC.compact on Ruby 3.x
  when using ListenStats on Linux.  The listener stats
  functionality is rarely used and does not affect most users
  who just have raindrops installed for shared atomic counters.

=== raindrops 0.19.1 / 2020-01-08 09:31 UTC

  This release fixes some warnings on newer Rubies.

  We're no longer on bogomips.org since it's due
  for expiry and I can't pay extortionists for a .org, so
  s/bogomips.org/yhbt.net/ for now, and be prepared to move again
  when extortionists move onto extorting the .net TLD.

        doc: switch homepage to dark216
        ext/raindrops/extconf: fix cflags reset on ancient CC
        fixes for newer rubies
        replace bogomips.org with yhbt.net

=== raindrops 0.19.0 - Rack 2.x middleware compatibility / 2017-08-09 23:52 UTC

  This release fixes Rack 2.x compatibility for the few users of
  Raindrops::Middleware
  <https://bogomips.org/raindrops/Raindrops/Middleware.html>.
  Thanks to Dmytro Shteflyuk for this release.

  No need to upgrade unless you use Raindrops::Middleware with
  Rack 2.x.

  There's also a few minor, inconsequential cleanups.

  Dmytro Shteflyuk (1):
        Properly override respond_to? in Raindrops::Middleware::Proxy

  Eric Wong (2):
        Ruby thread compatibility updates
        tcp_info: remove unnecessary extconf.h include

=== raindrops 0.18.0 / 2017-03-23 02:44 UTC

  The most notable feature of this release is the addition of
  FreeBSD and OpenBSD TCP_INFO support.  This includes the
  Raindrops::TCP for portably mapping TCP state names to
  platform-dependent numeric values:

    https://bogomips.org/raindrops/Raindrops.html#TCP

  Thanks to Jeremy Evans and Simon Eskildsen on the
  unicorn-public@bogomips.org mailing list for inspiring
  these changes to raindrops.

  There's also a few internal cleanups, and documentation
  improvements, including some fixes to the largely-forgotten
  Raindrops::Aggreage::PMQ class:

    https://bogomips.org/raindrops/Raindrops/Aggregate/PMQ.html

  20 changes since 0.17.0:

        test_inet_diag_socket: fix Fixnum deprecation warning
        TODO: add item for IPv6 breakage
        ext: fix documentation for C ext-defined classes
        TCP_Info: custom documentation for #get!
        TypedData C-API conversion
        test_watcher: disable test correctly when aggregate is missing
        tcp_info: support this struct under FreeBSD
        define Raindrops::TCP hash for TCP states
        linux_inet_diag: reduce stack usage and simplify
        avoid reading errno repeatedly
        aggregate/pmq: avoid false sharing of lock buffers
        aggregate/pmq: remove io-extra requirement
        aggregate/pmq: avoid File#stat allocation
        Merge remote-tracking branch 'origin/freebsd'
        Merge remote-tracking branch 'origin/aggregate-pmq'
        doc: remove private email support address
        doc: update location of TCP_INFO-related stuff
        build: avoid olddoc for building the RubyGem
        doc: document Raindrops::TCP hash
        aggregate/pmq: update version numbers for Ruby and Linux

=== raindrops 0.17.0 - rack 2.x updates / 2016-07-31 15:19 UTC

  This release features minor updates to support rack 2.x
  while maintaining support for rack 1.2 and later.
  As a result, Ruby 1.8.6 compatibility is gone, but
  Ruby 1.8.7 probably still works, for now.

  There's also a minor warning fix, doc updates, and
  the homepage now supports HTTPS (HTTP remains supported)

  5 changes since raindrops 0.16.0:
        drop Rack::Utils.bytesize dependency
        gemspec: bump Rack dependency
        linux_inet_diag: GCC attribute format check
        use HTTPS and move homepage to https://bogomips.org/raindrops/
        examples: add yahns config, zbatery is abandoned

=== raindrops 0.16.0 - minor fixes and workarounds / 2016-02-29 12:36 UTC

  There's mainly a fix/workaround for Ruby 2.3 now returning
  locale-aware strings for File.readlink and our test suite
  using strange paths allowed by *nix.

      https://bugs.ruby-lang.org/issues/12034

  tcp_listener_stats won't return "true" object placeholders
  if stats are configured for a non-existent listener.

  There are also minor optimizations for Ruby 2.2+ (at the expense
  of 2.1 and earlier).

  And the usual round of minor tweaks and doc updates.

  10 changes since v0.15.0:
        gemspec: avoid circular dependency on unicorn
        remove optimizations which made sense for older rubies
        linux: workaround Ruby 2.3 change
        linux: remove Pathname stdlib dependency
        add .gitattributes for Ruby method detection
        middleware: minor bytecode size reduction
        doc: update URLs and references
        README: remove indentation from URLs in RDoc
        linux: tcp_listener_stats drops "true" placeholders
        build: use '--local' domain for dev gem install

=== raindrops 0.15.0 - non-glibc compat fix on Linux / 2015-07-22 00:30 UTC

  Thanks to Doug Forster for sending us the report.
  No other fixes

  * check for the existence of linux/tcp.h

=== raindrops 0.14.0 - misc doc updates / 2015-06-25 21:50 UTC

  Eric Wong (7):
        linux_inet_diag: annotate memory freeing on diag errors
        README: trim intro and update license
        modernize packaging and documentation
        move mailing list to raindrops-public@bogomips.org
        linux_inet_diag: clarify *fprintf usage without GVL
        TODO: add item for unix_diag and udp_diag
        linux_inet_diag: fix Wshorten-64-to-32 warnings

  Hleb Valoshka (1):
        Add setup and teardown for ipv6 tests

=== raindrops 0.13.0  several minor fixes and improvements / 2014-02-18 20:59 UTC

  Most notably, this release is necessary for Ruby 2.2 (dev).
  Thanks to Koichi Sasada for the bug report!

  Eric Wong (5):
        Rakefile: remove raa_update task
        last_data_recv: do not assume Unicorn includes all constants
        raindrops.gemspec: add wrongdoc dev dependency
        linux_inet_diag: fix Ruby 2.2 (dev) build
        license: use LGPLv2.1 or later (was LGPL (2.1|3.0)-only)

  Hleb Valoshka (1):
        Remove Scope IDs from IPv6 addresses.

=== raindrops 0.12.0 - compatibility fixes / 2013-09-02 10:33 UTC

  This release fixes builds on systems where compilers target i386
  (and not later x86 systems).  There are also minor improvements for
  Ruby 2.1.0dev and Rubinius.

  Eric Wong (5):
        doc: add email address to generated doc/site
        README: update regarding Ruby support status
        extconf: try harder for gcc atomics in i386-configured systems
        linux_inet_diag: improve compatibility with newer GCs
        test_watcher: fix for Ruby trunk r40195 and later

=== raindrops 0.11.0 - minor fixes improvements / 2013-04-20 23:10 UTC

  Eric Wong (7):
        raindrops: favor configured processor count over online count
        watcher: set Content-Type via assignment
        Linux::TCP_Info: implement #get! instance method
        linux_inet_diag: avoid unnecessary sockaddr initialization
        .gitignore: add .rbx
        switch back to gemspec development dependencies
        linux_inet_diag: better align listener_stats struct

  Lawrence Pit (1):
        Watcher: Use relative paths in HTML links

=== raindrops 0.10.0 - minor feature updates / 2012-06-19 08:30 UTC

  Improvements to the Unix domain socket handling and small
  bugfixes throughout.

  Support for the "unix_diag" facility in Linux 3.3+ is planned
  but not yet implemented (patches to raindrops@librelist.org
  appreciated)

  Brian Corrigan (1):
        resolve symlinks to Unix domain sockets

  Eric Wong (6):
        unix_listener_stats follows and remembers symlinks
        middleware/proxy: favor __send__ for method dispatch
        unix: show zero-value stats for idle listeners
        test_watcher: fix incorrect request/date comparison
        watcher: sort index of listener listing
        watcher: do not require Rack::Head for HEAD response

  See "git log v0.9.0..v0.10.0" for full details

=== raindrops 0.9.0 - minor middleware/proxy update / 2012-05-21 00:06 UTC

  Raindrops::Middleware::Proxy now forwards method_missing
  to the proxied body object.  This allows compatibility
  with non-standard Rack extensions employed by some
  middlewares, applications, or servers.

  Thanks to Ben Somers for the feature!

=== raindrops 0.8.1 - compatibility fixes / 2012-05-12 05:58 UTC

  This release fixes a build problem found under a current SmartOS.  This
  release also runs successfully on FreeBSD 9.0 under both x86-64 and
  i386.

  There are also documentation updates from Aman Gupta and a test suite
  fix from Jeremy Evans for OpenBSD.

  raindrops fully supports unicorn on recent versions of FreeBSD, OpenBSD,
  SmartOS, and possibly other Free Software systems.  Portability reports
  and fixes for Free Software systems is greatly appreciated at
  raindrops@librelist.org

  Non-Free systems will never be supported.

  raindrops requires the Linux 2.6.18 or later for full functionality
  (which unicorn does not require).  Future releases will take advantage
  of the unix_diag functionality found in the Linux 3.3 (and later)
  kernels.

=== raindrops 0.8.0 - watcher updates / 2011-10-14 22:00 UTC

  There are various updates to the Raindrops::Watcher Rack app.
  Most notably, the timestamp where the a statistic first and last
  hit its peak value (active/queued connections) is captured.

  As usual, the latest Raindrops::Watcher is running at:
    http://raindrops-demo.bogomips.org/

=== raindrops 0.7.0 - FreeBSD fix, code cleanups / 2011-06-27 07:26 UTC

  This release fixes a build issue on FreeBSD.  There are various
  documentation and code cleanups, too.

=== raindrops 0.6.1 - fix build on non-Linux / 2011-03-21 22:31 UTC

  TCP_INFO support couldn't compile under non-Linux, this was
  broken since 0.5.0 when TCP_INFO support was introduced.

  Thanks to Ben Bleything for the report.

=== raindrops 0.6.0 - polishing up the last release / 2011-03-21 21:46 UTC

  Following up the huge 0.5.0 release, 0.6.0 makes
  some minor improvements:

  * minor UI/UX improvements for Watcher Rack app
  * set close-on-exec by default for inet_diag sockets
  * inet_diag build fixes for newer GNU libc6
  * --with-atomic_ops-dir= build option added

=== raindrops 0.5.0 - more Linux extras! / 2011-03-17 03:13 UTC

  Portable changes:
  * Raindrops are now resizable within the limits of system page size
  * Raindrops::Middleware proxies +to_path+ in response bodies
  * More documentation

  Linux-only changes:
  * Raindrops::LastDataRecv[1] Rack application
  * Raindrops::Watcher[2] Rack application
  * Raindrops::TCP_Info[3] class for capturing TCP connection stats
  * IPv6 support for inet_diag
  * faster inet_diag stats for multiple sockets

  There is also a demo server running the Watcher and Middleware
  components.  It's capped to 30 concurrent users, so go easy on
  it:

    Raindrops::Watcher: http://raindrops-demo.bogomips.org/
    Raindrops::Middleware: http://raindrops-demo.bogomips.org/_raindrops

  [1] http://raindrops.bogomips.org/Raindrops/LastDataRecv.html
  [2] http://raindrops.bogomips.org/Raindrops/Watcher.html
  [3] http://raindrops.bogomips.org/Raindrops/TCP_Info.html

=== raindrops 0.4.1 - more portability! / 2010-09-26 06:49 UTC

  Rubinius 1.1.0 support is complete.  Atomic operations
  are now available under FreeBSD 7.0 now.

  Full changelog below:

      commit 8a2a725a4ad074af493e5aa075155eda8b1d6be7
      Author: Eric Wong <e+absinthe@yhbt.net>
      Date:   Sat Sep 25 00:14:48 2010 -0700

      force -march=i486 where GCC is targeted for i386

      Nobody uses i386 anymore (especially not with Ruby!),
      but some systems like FreeBSD 7.0 still target GCC at
      i386 by default, so we force GCC to use a slightly
      more modern instruction set and allow it to use
      atomic builtins.

      commit 256cc7c8ffb441dcf2d2a2da3bbbcc82546962d9
      Author: Eric Wong <e+absinthe@yhbt.net>
      Date:   Sat Sep 25 00:01:46 2010 -0700

      disable Linux-only code on non-Linux

      This allows us to build and link correctly on FreeBSD 7.0

      commit 22a5a39d75faa890048d07ae4ea0d494acd414ce
      Author: Eric Wong <e@yhbt.net>
      Date:   Sat Sep 25 06:25:42 2010 +0000

      linux: workaround missing RSTRUCT* macros in rbx

      Rubinius does not include macros for accessing
      Struct members in the C API.

      ref: http://github.com/evanphx/rubinius/issues/494

=== raindrops 0.4.0 - flowing into new systems! / 2010-09-21 22:32 UTC

  Non-GCC 4.x users may use the libatomic_ops[1] package to
  compile Raindrops.  Memory efficiency is improved for modern
  glibc users with run-time cache line size detection, we no
  longer assume 128 byte cache lines.

  [1] - http://www.hpl.hp.com/research/linux/atomic_ops/

=== raindrops v0.3.0 - LGPL v2.1 and v3.0 / 2010-07-10 22:29 UTC

  Raindrops is now licensed under the LGPLv2.1 or LGPLv3 (from
  LGPLv3-only) to allow bundling in GPLv2-only applications.

  There are small documentation updates and updated examples
  at http://raindrops.bogomips.org/examples/

=== raindrops 0.2.0 - raining penguins! / 2010-05-05 00:35 UTC

  For servers running Unicorn 0.98.0 (and derivative servers)
  under Linux, :listeners no longer needs to be passed explicitly
  when configuring the Rack middleware.

  Some small documentation updates and cleanups, too.

=== raindrops 0.1.0 / 2010-04-08 00:45 UTC

  initial release

