You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Jay Doane <ja...@gmail.com> on 2018/12/20 08:55:03 UTC

[PROPOSAL] Change the minimum supported Erlang version to OTP 19

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

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Nick Vatamaniuc <va...@gmail.com>.
+1

Good call, Jay!

On Thu, Dec 20, 2018 at 11:29 AM Alexander Shorin <kx...@gmail.com> wrote:

> On Thu, Dec 20, 2018 at 7:17 PM Joan Touzet <wo...@apache.org> wrote
> >    10:07 *<vatamane> In the 20.x series don't got below 20.3.8.11  There
> was a nasty monitor
> >                      related bug in Erlang that davisp fixed
> https://github.com/erlang/otp/commit/bb3f1ed6945a8cca2efa1a571f26e831911944a1
> >
>
> Oh...I missed that. Thanks! Well, let's rise our bets up to 21? (:
> Anyway, I'm fine with R19.
>
> --
> ,,,^..^,,,
>

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Alexander Shorin <kx...@gmail.com>.
On Thu, Dec 20, 2018 at 7:17 PM Joan Touzet <wo...@apache.org> wrote
>    10:07 *<vatamane> In the 20.x series don't got below 20.3.8.11  There was a nasty monitor
>                      related bug in Erlang that davisp fixed https://github.com/erlang/otp/commit/bb3f1ed6945a8cca2efa1a571f26e831911944a1
>

Oh...I missed that. Thanks! Well, let's rise our bets up to 21? (:
Anyway, I'm fine with R19.

--
,,,^..^,,,

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Joan Touzet <wo...@apache.org>.
+1

And kxepal:

   10:07 *<vatamane> In the 20.x series don't got below 20.3.8.11  There was a nasty monitor
                     related bug in Erlang that davisp fixed https://github.com/erlang/otp/commit/bb3f1ed6945a8cca2efa1a571f26e831911944a1

-Joan

----- Original Message -----
From: "Alexander Shorin" <kx...@gmail.com>
To: dev@couchdb.apache.org
Sent: Thursday, December 20, 2018 11:00:03 AM
Subject: Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

+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 <ja...@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

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Alexander Shorin <kx...@gmail.com>.
+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 <ja...@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

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Paul Davis <pa...@gmail.com>.
+1
On Thu, Dec 20, 2018 at 8:15 AM Eiri <ei...@eiri.ca> wrote:
>
> +1
>
>
> > On Dec 20, 2018, at 04:55, Jay Doane <ja...@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
>

Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Eiri <ei...@eiri.ca>.
+1


> On Dec 20, 2018, at 04:55, Jay Doane <ja...@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


Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Jan Lehnardt <ja...@apache.org>.
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 <ja...@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/


Re: [PROPOSAL] Change the minimum supported Erlang version to OTP 19

Posted by Robert Samuel Newson <rn...@apache.org>.
+1

> On 20 Dec 2018, at 08:55, Jay Doane <ja...@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