You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Naomi Slater <ns...@apache.org> on 2018/12/02 18:53:58 UTC

Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

hey folks,

it's been a while since I tested a release. but here we go

I followed the instructions on the test procedure wiki page using a mac
that has never built or installed CouchDB before

I ran into two minor issues, and have accordingly edited the wiki to note
the error message you get if GPG isn't installed, and also included
instructions on how to get the SHA checksum tools installed and set up on
macOS

however, I'm now running into an issue building CouchDB

`./configure` is exceptionally fast and runs without issues, and I note
that it seems we're not using GNU Autoconf any more (yes apparently I am
*quite* behind the times* :)

but `make check` fails with:

env: escript: No such file or directory

I would have expected `./configure` to alert me to the missing Erlang
dependency. certainly, in the world of Autoconf, checking for the presence
of useable dependencies is one of the primary functions of the
`./configure` script

I installed Erlang, and then ran into another issue:

Compiling
/private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch/priv/couch_js/http.c
/private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch/priv/couch_js/http.c:18:10:
fatal error: 'jsapi.h' file not found
#include <jsapi.h>
         ^~~~~~~~~
1 error generated.
ERROR: compile failed while processing
/private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch: rebar_abort
make: *** [couch] Error 1

so it seems like there's another dependency I don't have. but I can't tell
just from looking at this error message what is missing

so I guess I have two questions:

1. what do I need to do to get this working?

2. I don't have any opinions re the removal of GNU Autoconf. I'm sure there
was a reason, etc, etc. but it seems to me that the install experience is
somewhat worse than the last time I looked at it. without the dependency
checking in `./configure`, these messages are not a great first run
experience. is this a known issue?

I'm aware there are installation guides. but a new user might not be. and
the reason I'm sending this email now instead of looking up help is that
the CouchDB docs are not loading for me. I've been waiting several minutes
and I only have a half-rendered page. though this might be an issue with my
net connection

p.s. sorry for returning to this list and immediately bearing bad news :P

On Thu, 29 Nov 2018 at 20:22, Joan Touzet <wo...@apache.org> wrote:

> Dear community,
>
> I would like to release Apache CouchDB 2.3.0-RC1.
>
> Changes since last round:
>
>  * https://github.com/apache/couchdb/compare/2.2.0...2.3.0-RC1
>
> Candidate release notes:
>
>  * http://docs.couchdb.org/en/latest/whatsnew/2.3.html
>
> We encourage the whole community to download and test these release
> artefacts so that any critical issues can be resolved before the release is
> made. Everyone is free to vote on this release, so dig right in!
>
> The release artefacts we are voting on are available here:
>
>
> https://dist.apache.org/repos/dist/dev/couchdb/source/2.3.0/rc.1/apache-couchdb-2.3.0-RC1.tar.gz
>
> https://dist.apache.org/repos/dist/dev/couchdb/source/2.3.0/rc.1/apache-couchdb-2.3.0-RC1.tar.gz.asc
>
> https://dist.apache.org/repos/dist/dev/couchdb/source/2.3.0/rc.1/apache-couchdb-2.3.0-RC1.tar.gz.sha256
>
> https://dist.apache.org/repos/dist/dev/couchdb/source/2.3.0/rc.1/apache-couchdb-2.3.0-RC1.tar.gz.sha512
>
> Please follow the test procedure here:
>
>
> https://cwiki.apache.org/confluence/display/COUCHDB/Testing+a+Source+Release
>
> Please remember that "RC1" is an annotation. If the vote passes, these
> artefacts will be released as Apache CouchDB 2.3.0.
>
> Please cast your votes now.
>
> Thanks,
> Joan "we promised and delivered 2 releases a year" Touzet
>


-- 
LargePrefPlaceholder-XKUz1MEJBwkOM

Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

Posted by Joan Touzet <wo...@apache.org>.
Naomi wrote:

> thanks Joan. that's valuable context. everything you said makes sense to me 
> did you see my follow up email about the failing test? not sure how to proceed with that! 

No, it didn't make it to the list, can you try again? If you included
an attachment that might have prevented it from arriving.

Our test suite has a couple of tests that don't always pass 100% of
the time, check the issues list on GitHub to see if it's been reported.
If a re-run caused it to pass, that's about on par with the CI results
at this time.

-Joan



On Sun, 2 Dec 2018 at 23:46, Joan Touzet < wohali@apache.org > wrote: 


Hi Naomi. Welcome back! 

Happy to answer these questions as best as I can, though others will have 
to provide additional info... 

> I would have expected `./configure` to alert me to the missing Erlang 
> dependency. certainly, in the world of Autoconf, checking for the 
> presence 
> of useable dependencies is one of the primary functions of the 
> `./configure` script 

Right, none of this is in the current setup. Pull requests welcome, but 
I really don't want to see a return to autoconf. The build process is 
MUCH simpler now without it. 

> fatal error: 'jsapi.h' file not found 
> #include <jsapi.h> 
> ^~~~~~~~~ 
> 1 error generated. 
> ERROR: compile failed while processing 
> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch: rebar_abort 
> make: *** [couch] Error 1 
> 
> so it seems like there's another dependency I don't have. but I can't 
> tell 
> just from looking at this error message what is missing 

Right, that'd be SpiderMonkey 1.8.5 (libmozjs185-1.0). This is getting 
increasingly difficult to build; Cloudant (Paul Davis) is working on 
substituting a new JS runtime from Microsoft (chakra-code) but it's a 
big undertaking. 

> 1. what do I need to do to get this working? 

Dependencies required are in the official docs: 

http://docs.couchdb.org/en/stable/install/unix.html#dependencies 

We also have scripts over in apache/couchdb-ci that should install all 
of the dependencies you need on Linux (bin/install-dependencies.sh), but 
no one has stepped up to enhance these scripts for dependencies on 
macOS / FreeBSD yet. (Windows is supported by the apache/couchdb-glazier 
repository.) 

> 2. I don't have any opinions re the removal of GNU Autoconf. I'm sure 
> there 
> was a reason, etc, etc. but it seems to me that the install 
> experience is 
> somewhat worse than the last time I looked at it. without the 
> dependency 
> checking in `./configure`, these messages are not a great first run 
> experience. is this a known issue? 

Yup, known issue - tragedy of the commons, I'm afraid. 

2.x brought with it the bigcouch/Cloudant build chain, which is almost 
entirely rebar based. It's very nice - especially with how the release 
process works to build the self-contained Erlang runtime + all 
dependencies in a relocatable fashion. There's no need for 99% of what 
autoconf does anymore, since everything is handled within the Erlang 
build chain. If you look at the Makefile, you'll see it's really not 
much more than a shell script in Makefile format. 

I've worked very hard to get the 2.x build chain working as well as 
possible. Our CI system builds binary installers with every push to 
master for 4 flavours of Linux across multiple versions. The Windows 
build passes all tests (at least as often as Linux/macOS does) and the 
apache/couchdb-glazier repo (thanks Dave!) makes building Windows 
binaries a snap, too. Jan has kicked in his macOS build script for 
binaries there, though we haven't yet brought that repo into the Apache 
org (mostly because I think no one has stepped up to maintain it going 
forward yet.) And finally, we build Docker images with every release 
and support the downstream official Docker image with a Dockerfile that 
is in widespread use. 

> I'm aware there are installation guides. but a new user might not be. 

Our download stats show that, overwhelmingly, people install from the 
binaries we build, or use Docker. Those downloads account for more than 
99.99% of the installs of CouchDB. The numbers are something like over a 
million downloads of Docker + the binaries over the course of a year, 
but merely thousands of downloads of the source tarball in the same 
time frame. 

Since the entire build infrastructure has fallen to me, and since 
it's seemingly only developers that seem to need to have a properly 
installed build chain, and since my time on CouchDB is solely as a 
volunteer, I've put my efforts into maintaining and improving the CI- 
focused scripts, while ensuring that they are also useful for devs 
who want to use them to set up their own workstations with the 
required dependencies. Once we have support for the remaining 
platforms, I'm of the mindset that we recommend people use those 
scripts to set up their build environment - or to read them should 
they not wish to run them themselves. 

But I'm open to other ideas - if hands are on deck to help. I am 
thoroughly exhausted with keeping the build up to date and could sure 
use some help. 

> and 
> the reason I'm sending this email now instead of looking up help is 
> that 
> the CouchDB docs are not loading for me. I've been waiting several 
> minutes 
> and I only have a half-rendered page. though this might be an issue 
> with my 
> net connection 

htts:// docs.couchdb.org/ is hosted by ReadTheDocs.org for us. Perhaps 
they had an outage earlier today? 

> p.s. sorry for returning to this list and immediately bearing bad 
> news :P 

No problem. If you do get your build env setup and are able to test 
the release, I look forward to your vote. :) 

-Joan 

Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

Posted by Joan Touzet <wo...@apache.org>.
Hi Naomi. Welcome back!

Happy to answer these questions as best as I can, though others will have
to provide additional info...

> I would have expected `./configure` to alert me to the missing Erlang
> dependency. certainly, in the world of Autoconf, checking for the
> presence
> of useable dependencies is one of the primary functions of the
> `./configure` script

Right, none of this is in the current setup. Pull requests welcome, but
I really don't want to see a return to autoconf. The build process is
MUCH simpler now without it.

> fatal error: 'jsapi.h' file not found
> #include <jsapi.h>
>          ^~~~~~~~~
> 1 error generated.
> ERROR: compile failed while processing
> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch: rebar_abort
> make: *** [couch] Error 1
> 
> so it seems like there's another dependency I don't have. but I can't
> tell
> just from looking at this error message what is missing

Right, that'd be SpiderMonkey 1.8.5 (libmozjs185-1.0). This is getting
increasingly difficult to build; Cloudant (Paul Davis) is working on
substituting a new JS runtime from Microsoft (chakra-code) but it's a
big undertaking.
 
> 1. what do I need to do to get this working?

Dependencies required are in the official docs:

  http://docs.couchdb.org/en/stable/install/unix.html#dependencies

We also have scripts over in apache/couchdb-ci that should install all
of the dependencies you need on Linux (bin/install-dependencies.sh), but
no one has stepped up to enhance these scripts for dependencies on
macOS / FreeBSD yet. (Windows is supported by the apache/couchdb-glazier
repository.)

> 2. I don't have any opinions re the removal of GNU Autoconf. I'm sure
> there
> was a reason, etc, etc. but it seems to me that the install
> experience is
> somewhat worse than the last time I looked at it. without the
> dependency
> checking in `./configure`, these messages are not a great first run
> experience. is this a known issue?

Yup, known issue - tragedy of the commons, I'm afraid.

2.x brought with it the bigcouch/Cloudant build chain, which is almost
entirely rebar based. It's very nice - especially with how the release
process works to build the self-contained Erlang runtime + all
dependencies in a relocatable fashion. There's no need for 99% of what
autoconf does anymore, since everything is handled within the Erlang
build chain. If you look at the Makefile, you'll see it's really not
much more than a shell script in Makefile format.

I've worked very hard to get the 2.x build chain working as well as
possible. Our CI system builds binary installers with every push to
master for 4 flavours of Linux across multiple versions. The Windows
build passes all tests (at least as often as Linux/macOS does) and the
apache/couchdb-glazier repo (thanks Dave!) makes building Windows
binaries a snap, too. Jan has kicked in his macOS build script for
binaries there, though we haven't yet brought that repo into the Apache
org (mostly because I think no one has stepped up to maintain it going
forward yet.) And finally, we build Docker images with every release
and support the downstream official Docker image with a Dockerfile that
is in widespread use.

> I'm aware there are installation guides. but a new user might not be.

Our download stats show that, overwhelmingly, people install from the
binaries we build, or use Docker. Those downloads account for more than
99.99% of the installs of CouchDB. The numbers are something like over a
million downloads of Docker + the binaries over the course of a year,
but merely thousands of downloads of the source tarball in the same
time frame.

Since the entire build infrastructure has fallen to me, and since
it's seemingly only developers that seem to need to have a properly
installed build chain, and since my time on CouchDB is solely as a
volunteer, I've put my efforts into maintaining and improving the CI-
focused scripts, while ensuring that they are also useful for devs
who want to use them to set up their own workstations with the
required dependencies. Once we have support for the remaining
platforms, I'm of the mindset that we recommend people use those
scripts to set up their build environment - or to read them should
they not wish to run them themselves.

But I'm open to other ideas - if hands are on deck to help. I am
thoroughly exhausted with keeping the build up to date and could sure
use some help.

> and
> the reason I'm sending this email now instead of looking up help is
> that
> the CouchDB docs are not loading for me. I've been waiting several
> minutes
> and I only have a half-rendered page. though this might be an issue
> with my
> net connection

htts://docs.couchdb.org/ is hosted by ReadTheDocs.org for us. Perhaps
they had an outage earlier today?

> p.s. sorry for returning to this list and immediately bearing bad
> news :P

No problem. If you do get your build env setup and are able to test
the release, I look forward to your vote. :)

-Joan

Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

Posted by Dave Cottlehuber <dc...@apache.org>.
On Sun, 2 Dec 2018, at 19:53, Naomi Slater wrote:
> hey folks,
> 
> it's been a while since I tested a release. but here we go

\o/ 

> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch/priv/couch_js/
> http.c
> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch/priv/couch_js/
> http.c:18:10:
> fatal error: 'jsapi.h' file not found
> #include <jsapi.h>
>          ^~~~~~~~~
> 1 error generated.
> ERROR: compile failed while processing
> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch: rebar_abort
> make: *** [couch] Error 1
> 
> so it seems like there's another dependency I don't have. but I can't tell
> just from looking at this error message what is missing
> 
> so I guess I have two questions:
> 
> 1. what do I need to do to get this working?

install spidermonkey 1.8.5. I guess `brew install spidermonkey icu4cx erlang`
should be enough but I don't have a suitable mac to hand. I guess you're using homebrew?

> 2. I don't have any opinions re the removal of GNU Autoconf. I'm sure there
> was a reason, etc, etc. but it seems to me that the install experience is
> somewhat worse than the last time I looked at it. without the dependency
> checking in `./configure`, these messages are not a great first run
> experience. is this a known issue?

No but it should be reasonably easy to add those back. The dependencies are
listed in the usual places though.

A+
Dave