Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

2018-12-03 Thread Joan Touzet
Hi Jay,

Thanks, though your vote isn't a binding +1 :)

Yes, this is a known situation -- and means you didn't fully follow the
setup instructions correctly :D

http://docs.couchdb.org/en/latest/setup/index.html

We can suppress the error, but it doesn't solve the problem that
a CouchDB install without a _users db doesn't really make a whole lot
of sense.

See 

- Original Message -
> From: "Jay Doane" 
> To: "Joan Touzet" , dev@couchdb.apache.org
> Sent: Monday, December 3, 2018 8:53:57 PM
> Subject: Re: [VOTE] Release Apache CouchDB 2.3.0-RC1
> 
> Hi Joan,
> 
> I tested on MacOS 10.13.6 and the only untoward thing I've seen seen
> so far
> is in the logs, this is repeated every 5s:
> 
> [notice] 2018-11-30T22:43:54.596760Z couchdb@localhost <0.346.0>
> 
> chttpd_auth_cache changes listener died database_does_not_exist at
> mem3_shards:load_shards_from_db/6(line:395) <=
> mem3_shards:load_shards_from_disk/1(line:370) <=
> mem3_shards:load_shards_from_disk/2(line:399) <=
> mem3_shards:for_docid/3(line:86) <= fabric_doc_open:go/3(line:39) <=
> chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:195) <=
> chttpd_auth_cache:listen_for_changes/1(line:142)
> [error] 2018-11-30T22:43:54.596823Z couchdb@localhost emulator
> 
> Error in process <0.2569.0> on node couchdb@localhost with exit
> value:
> {database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,395}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,370}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,399}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,86}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,39}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,195}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,142}]}]}
> 
> until I create a _users db, after which it stops. It also stops as
> soon as
> setup completes, so I don't think this error is necessarily a problem
> for
> the release per se.
> 
> I notice there's a closed ticket already for these errors at
> https://github.com/apache/couchdb/issues/1354 but I have also been
> tinkering with a solution that will prevent the change listener from
> starting if the auth db doesn't exist.
> 
> BR,
> Jay
> 
> On Thu, Nov 29, 2018 at 11:22 AM Joan Touzet 
> 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
> >
> 


Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

2018-12-03 Thread Jay Doane
Hi Joan,

I tested on MacOS 10.13.6 and the only untoward thing I've seen seen so far
is in the logs, this is repeated every 5s:

[notice] 2018-11-30T22:43:54.596760Z couchdb@localhost <0.346.0> 
chttpd_auth_cache changes listener died database_does_not_exist at
mem3_shards:load_shards_from_db/6(line:395) <=
mem3_shards:load_shards_from_disk/1(line:370) <=
mem3_shards:load_shards_from_disk/2(line:399) <=
mem3_shards:for_docid/3(line:86) <= fabric_doc_open:go/3(line:39) <=
chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:195) <=
chttpd_auth_cache:listen_for_changes/1(line:142)
[error] 2018-11-30T22:43:54.596823Z couchdb@localhost emulator 
Error in process <0.2569.0> on node couchdb@localhost with exit value:
{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,395}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,370}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,399}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,86}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,39}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,195}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,142}]}]}

until I create a _users db, after which it stops. It also stops as soon as
setup completes, so I don't think this error is necessarily a problem for
the release per se.

I notice there's a closed ticket already for these errors at
https://github.com/apache/couchdb/issues/1354 but I have also been
tinkering with a solution that will prevent the change listener from
starting if the auth db doesn't exist.

BR,
Jay

On Thu, Nov 29, 2018 at 11:22 AM Joan Touzet  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
>


Re: [VOTE] Release Apache CouchDB 2.3.0-RC1

2018-12-03 Thread Joan Touzet
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 < woh...@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  
> ^ 
> 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 o