+1 P.S. Though I would raise it even to 20. Move fast with the new features!
-- ,,,^..^,,, On Thu, Dec 20, 2018 at 11:55 AM Jay Doane <jay.s.do...@gmail.com> wrote: > > Currently, CouchDB requires at least OTP 17 or later to build and run > [1][2]. However, recent work undertaken to eliminate compiler warnings > [3][4] has highlighted the additional effort needed to continue to support > older Erlang versions. Some of the issues that have come up are: > 1. erlang:now/0 deprecated in OTP 18 [5] > 2. crypto:rand_uniform/2 deprecated in OTP 20 [6], but no rand module > pre-OTP 18 > which both require using rebar platform defines [7] and ifdefs [8] to work > around compiler warnings. > > Joan raised the idea that maybe it's time to move to a more recent minimum > version to simplify the code, and also because there a many compelling new > features in later versions that we currently cannot use: > 1. maps introduced in OTP 17, but only became performant for large number > of entries in OTP 18 [9] > 2. off heap messages introduced in OTP 19 [10] > > Since CouchDB now ships with it's own OTP 19.6.3 Erlang binaries [9], it's > not clear whether we need to continue supporting OTP 17 and 18. As a bonus, > removing those versions will also speed up travis builds. > > Any thoughts either for or against this proposal? > > Best regards, > Jay > > [1] https://github.com/apache/couchdb/blob/master/rebar.config.script#L94 > [2] https://github.com/apache/couchdb/blob/master/.travis.yml#L10 > [3] https://github.com/apache/couchdb-ets-lru/pull/7 > [4] https://github.com/apache/couchdb/pull/1798 > [5] http://erlang.org/doc/apps/erts/time_correction.html > [6] http://erlang.org/pipermail/erlang-questions/2017-May/092435.html > [7] > https://github.com/apache/couchdb/blob/master/src/couch/rebar.config.script#L148-L154 > [8] > https://github.com/apache/couchdb/blob/master/src/couch/src/couch_rand.erl#L22-L57 > [9] http://erlang.org/download/otp_src_18.0.readme > [10] > https://www.erlang-solutions.com/blog/erlang-19-0-garbage-collector.html > [9] https://github.com/apache/couchdb-ci/blob/master/README.md