Good proposal, thanks Jay!

In the past we looked at what distributions had which Erlang version
available, but over the years this has become increasingly difficult,
as a) distros would do weird things to the OTP distribution and
b) would not update quite quickly.

With our advent of binary packages for most users, I think we neatly
side-step this issue, so we are now in a better position to raise the
oldest Erlang version we support.

A long way of saying: +1.

Best
Jan
—

> On 20. Dec 2018, at 09:55, 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

-- 
Professional Support for Apache CouchDB:
https://neighbourhood.ie/couchdb-support/

Reply via email to