You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Dirkjan Ochtman <di...@ochtman.nl> on 2013/10/03 22:35:55 UTC

[1.5.0] Punted for today :(

Our PITA build system doesn't correctly understand how to package
fauxton and a few other newish things yet, and Jan and I couldn't fix
it off the top of our head. This means my window has passed as I'm
about to ride this train out of the country, i.e. Way Expensive
Internets.

Since I'm at the Mozilla Summit this weekend, that means pushing to
Monday. Here's the list of failures from build_candidate.sh, if anyone
wants to take a look at things:

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
pagination.rst
Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md

Have good weekends (and German holidays),

Dirkjan

Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
Thanks!

On Oct 7, 2013, at 18:14 , Noah Slater <ns...@apache.org> wrote:

> Nice, thanks. Reviewed. Add a trailing newline to src/Makefile.am, and this
> looks good to merge in.
> 
> 
> On 7 October 2013 17:41, Jan Lehnardt <ja...@apache.org> wrote:
> 
>> Excellent, thanks!
>> 
>> I did the following things:
>> 
>> - use Apache 2 License for my-first-couchdb-plugin
>> 
>> - use EXTRA_DIST in src/Makefile.am for my-first-couchdb-plugin
>> 
>> - removed src/my-first-couchdb-plugin/Makefile from configure.ac
>> 
>> - kept `^src/couchjs-node/Makefile` & `^src/couchjs-node/Makefile.in`
>>   in license.skip as we do that with all the other ones as well,
>>   as `^Makefile` does not match `path/to/Makefile`.
>> 
>> Ran a full make distcheck to my satisfaction. The resulting tarball
>> includes all the files we care about.
>> 
>> Compare view here:
>> 
>> 
>> https://github.com/janl/couchdb/compare/apache:master...build-system-fixes-1.5.x
>>  (See Oct. 7 entries for today’s edits)
>> 
>> Best
>> Jan
>> --
>> 
>> 
>> On Oct 7, 2013, at 17:07 , Noah Slater <ns...@apache.org> wrote:
>> 
>>> On 7 October 2013 17:00, Jan Lehnardt <ja...@apache.org> wrote:
>>> 
>>>> 
>>>>> In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove
>>>> the
>>>>> Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will
>>>> obviously
>>>>> have to prefix all the filenames with my-first-couchdb-plugin, but
>> that's
>>>>> fine. And you can call your Makefile whatever you want.
>>>>> 
>>>>> The instructions will need to be updated so that people are instructed
>> to
>>>>> sprinkle the magic dust on configure.ac, when they want their
>>>> Makefile.am
>>>>> to be picked up by the build system
>>>> 
>>>> I tried that, but it failed with “no target for…” and then the first
>> item
>>>> in EXTRA_DIST but I might have done something wrong, I’ll try this again
>>>> later. Thanks for confirming that it should work :)
>>> 
>>> 
>>> Okay. Let me know if you get stuck. Or when you have a final working
>> config
>>> to review.
>>> 
>>> 
>>>> I wanted to avoid setting people one way or another when choosing a
>>>> license,
>>>> because they are free to create non-Apache-2 licensed plugins, but I am
>>>> equally happy to just set a precedent.
>>>> 
>>> 
>>> The Apache License 2 is a good license choice (it's permissive like MIT
>> or
>>> BSD but includes patent protections) and sane defaults are always a nice
>>> thing. (It also makes it easier for us to ship the demo code.)
>>> 
>>> Everything else looks fine.
>>> 
>>> Thanks.
>>> 
>>> --
>>> Noah Slater
>>> https://twitter.com/nslater
>> 
>> 
> 
> 
> -- 
> Noah Slater
> https://twitter.com/nslater


Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
Nice, thanks. Reviewed. Add a trailing newline to src/Makefile.am, and this
looks good to merge in.


On 7 October 2013 17:41, Jan Lehnardt <ja...@apache.org> wrote:

> Excellent, thanks!
>
> I did the following things:
>
>  - use Apache 2 License for my-first-couchdb-plugin
>
>  - use EXTRA_DIST in src/Makefile.am for my-first-couchdb-plugin
>
>  - removed src/my-first-couchdb-plugin/Makefile from configure.ac
>
>  - kept `^src/couchjs-node/Makefile` & `^src/couchjs-node/Makefile.in`
>    in license.skip as we do that with all the other ones as well,
>    as `^Makefile` does not match `path/to/Makefile`.
>
> Ran a full make distcheck to my satisfaction. The resulting tarball
> includes all the files we care about.
>
> Compare view here:
>
>
> https://github.com/janl/couchdb/compare/apache:master...build-system-fixes-1.5.x
>   (See Oct. 7 entries for today’s edits)
>
> Best
> Jan
> --
>
>
> On Oct 7, 2013, at 17:07 , Noah Slater <ns...@apache.org> wrote:
>
> > On 7 October 2013 17:00, Jan Lehnardt <ja...@apache.org> wrote:
> >
> >>
> >>> In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove
> >> the
> >>> Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will
> >> obviously
> >>> have to prefix all the filenames with my-first-couchdb-plugin, but
> that's
> >>> fine. And you can call your Makefile whatever you want.
> >>>
> >>> The instructions will need to be updated so that people are instructed
> to
> >>> sprinkle the magic dust on configure.ac, when they want their
> >> Makefile.am
> >>> to be picked up by the build system
> >>
> >> I tried that, but it failed with “no target for…” and then the first
> item
> >> in EXTRA_DIST but I might have done something wrong, I’ll try this again
> >> later. Thanks for confirming that it should work :)
> >
> >
> > Okay. Let me know if you get stuck. Or when you have a final working
> config
> > to review.
> >
> >
> >> I wanted to avoid setting people one way or another when choosing a
> >> license,
> >> because they are free to create non-Apache-2 licensed plugins, but I am
> >> equally happy to just set a precedent.
> >>
> >
> > The Apache License 2 is a good license choice (it's permissive like MIT
> or
> > BSD but includes patent protections) and sane defaults are always a nice
> > thing. (It also makes it easier for us to ship the demo code.)
> >
> > Everything else looks fine.
> >
> > Thanks.
> >
> > --
> > Noah Slater
> > https://twitter.com/nslater
>
>


-- 
Noah Slater
https://twitter.com/nslater

Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
Excellent, thanks!

I did the following things:

 - use Apache 2 License for my-first-couchdb-plugin

 - use EXTRA_DIST in src/Makefile.am for my-first-couchdb-plugin

 - removed src/my-first-couchdb-plugin/Makefile from configure.ac

 - kept `^src/couchjs-node/Makefile` & `^src/couchjs-node/Makefile.in`
   in license.skip as we do that with all the other ones as well,
   as `^Makefile` does not match `path/to/Makefile`.

Ran a full make distcheck to my satisfaction. The resulting tarball
includes all the files we care about.

Compare view here:

  https://github.com/janl/couchdb/compare/apache:master...build-system-fixes-1.5.x
  (See Oct. 7 entries for today’s edits)

Best
Jan
--


On Oct 7, 2013, at 17:07 , Noah Slater <ns...@apache.org> wrote:

> On 7 October 2013 17:00, Jan Lehnardt <ja...@apache.org> wrote:
> 
>> 
>>> In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove
>> the
>>> Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will
>> obviously
>>> have to prefix all the filenames with my-first-couchdb-plugin, but that's
>>> fine. And you can call your Makefile whatever you want.
>>> 
>>> The instructions will need to be updated so that people are instructed to
>>> sprinkle the magic dust on configure.ac, when they want their
>> Makefile.am
>>> to be picked up by the build system
>> 
>> I tried that, but it failed with “no target for…” and then the first item
>> in EXTRA_DIST but I might have done something wrong, I’ll try this again
>> later. Thanks for confirming that it should work :)
> 
> 
> Okay. Let me know if you get stuck. Or when you have a final working config
> to review.
> 
> 
>> I wanted to avoid setting people one way or another when choosing a
>> license,
>> because they are free to create non-Apache-2 licensed plugins, but I am
>> equally happy to just set a precedent.
>> 
> 
> The Apache License 2 is a good license choice (it's permissive like MIT or
> BSD but includes patent protections) and sane defaults are always a nice
> thing. (It also makes it easier for us to ship the demo code.)
> 
> Everything else looks fine.
> 
> Thanks.
> 
> -- 
> Noah Slater
> https://twitter.com/nslater


Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
On 7 October 2013 17:00, Jan Lehnardt <ja...@apache.org> wrote:

>
> > In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove
> the
> > Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will
> obviously
> > have to prefix all the filenames with my-first-couchdb-plugin, but that's
> > fine. And you can call your Makefile whatever you want.
> >
> > The instructions will need to be updated so that people are instructed to
> > sprinkle the magic dust on configure.ac, when they want their
> Makefile.am
> > to be picked up by the build system
>
> I tried that, but it failed with “no target for…” and then the first item
> in EXTRA_DIST but I might have done something wrong, I’ll try this again
> later. Thanks for confirming that it should work :)


Okay. Let me know if you get stuck. Or when you have a final working config
to review.


> I wanted to avoid setting people one way or another when choosing a
> license,
> because they are free to create non-Apache-2 licensed plugins, but I am
> equally happy to just set a precedent.
>

The Apache License 2 is a good license choice (it's permissive like MIT or
BSD but includes patent protections) and sane defaults are always a nice
thing. (It also makes it easier for us to ship the demo code.)

Everything else looks fine.

Thanks.

-- 
Noah Slater
https://twitter.com/nslater

Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
Thanks Noah, this is really useful.

Notes inline.

On Oct 5, 2013, at 15:40 , Noah Slater <ns...@apache.org> wrote:

> On 4 October 2013 16:09, Jan Lehnardt <ja...@apache.org> wrote:
> 
>> Adding it to EXTRA_DIST seemed to do the trick
>> 
> 
> Aha! That was the correct thing to do.
> 
> 
>> This only applies to master and not 1.5.x, but there is a new
>> src/my-first-couchdb-plugin directory that just has bunch of files
>> that we just want to have in the tarball, but do nothing with yet.
>> For now I just made it like couchjs-node with the custom Makefile.am
>> and EXTRA_DIST and that seems to work, but the subdir has its own
>> Makefile that is irrelevant to the CouchDB build system (it is a
>> skeleton for building CouchDB plugins in a more standalone way).
>> Keeping that file named `Makefile` obviously conflicted with the
>> procedure, so I renamed it to `Makefile.dist` and added a step
>> to the instructions that asks the user to rename it before starting
>> development on a plugin. To circumvent the renaming step I tried
>> adding an EXTRA_DIST to src/Makefile.am and reference all files
>> in src/my-first-couchdb-plugin from there, but that didn’t seem to
>> work. This one isn’t too important for now, but if there is a nice
>> solution, I’d like to know some time :)
>> 
> 
> Oh, interesting.
> 
> In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove the
> Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will obviously
> have to prefix all the filenames with my-first-couchdb-plugin, but that's
> fine. And you can call your Makefile whatever you want.
> 
> The instructions will need to be updated so that people are instructed to
> sprinkle the magic dust on configure.ac, when they want their Makefile.am
> to be picked up by the build system

I tried that, but it failed with “no target for…” and then the first item
in EXTRA_DIST but I might have done something wrong, I’ll try this again
later. Thanks for confirming that it should work :)


> I’ve prepared a branch build-system-fixes-1.5.x that includes all
>> of the above.
>> 
>>  ASF:
>> https://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=log;h=refs/heads/build-system-fixes-1.5.x
>>  GitHub Compare:
>> https://github.com/janl/couchdb/compare/build-system-fixes-1.5.x
>> 
>> I’d appreciate a review :)
> 
> 
> Okay, using this:
> 
> https://github.com/janl/couchdb/compare/apache:1.5.x...build-system-fixes-1.5.x
> 
>> configure.ac
> 
> Remove this line:
> 
>    +AC_CONFIG_FILES([src/my-first-couchdb-plugin/Makefile])
> 
> (As part of the move of EXTRA_DIST to src/Makefile.am.)

of course, a leftover from my trials above.


>> license.skip
> 
> These lines are redundant:
> 
>    +^src/couchjs-node/Makefile
>    +^src/couchjs-node/Makefile.in
> 
> These files should be covered the the lines above this:
> 
>    ^Makefile
>    ^Makefile.in
> 
> I am uncomfortable with this:

Hm, weird, they showed up anyway, will test.


> +^src/my-first-couchdb-plugin/.*
> 
> We should probably be explicit about what files do not need our
> boilerplate. If we're shipping example code, then it is under an Apache
> license, and should have the boilerplate. (Perhaps I am missing something
> there though?)

The idea is that my-first-couchdb-plugin is really its own self contained
thing. The expectation is that people copy this and write their own plugins.
I wanted to avoid setting people one way or another when choosing a license,
because they are free to create non-Apache-2 licensed plugins, but I am
equally happy to just set a precedent.


>> src/couch_plugins/Makefile.am
> 
> This looks okay:
> 
>    +EXTRA_DIST = $(source_files) README.md
> 
> But we shouldn't be distributing other people's README files, unless there
> is a very good reason. Should we rip this out?

This is our own README :) — It is a couch_plugins internal document that
when done can be thrown away with parts extracted into the main docs, but
for now a close-to-the-source README is the right thing here.


>> src/my-first-couchdb-plugin/.gitignore
> 
> Why have a separate .gitignore here. Can we not include this rule in the
> top-level file?


Same as above, this is a self-contained thing and I expect people to copy
and customise, I just want them to not have to worry about setting up their
own ignore file.

Since the user copies are likely outside of the CouchDB source tree, I
thought having a custom one would make most sense.

Best
Jan
-- 


Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
On 4 October 2013 16:09, Jan Lehnardt <ja...@apache.org> wrote:

> Adding it to EXTRA_DIST seemed to do the trick
>

Aha! That was the correct thing to do.


> This only applies to master and not 1.5.x, but there is a new
> src/my-first-couchdb-plugin directory that just has bunch of files
> that we just want to have in the tarball, but do nothing with yet.
> For now I just made it like couchjs-node with the custom Makefile.am
> and EXTRA_DIST and that seems to work, but the subdir has its own
> Makefile that is irrelevant to the CouchDB build system (it is a
> skeleton for building CouchDB plugins in a more standalone way).
> Keeping that file named `Makefile` obviously conflicted with the
> procedure, so I renamed it to `Makefile.dist` and added a step
> to the instructions that asks the user to rename it before starting
> development on a plugin. To circumvent the renaming step I tried
> adding an EXTRA_DIST to src/Makefile.am and reference all files
> in src/my-first-couchdb-plugin from there, but that didn’t seem to
> work. This one isn’t too important for now, but if there is a nice
> solution, I’d like to know some time :)
>

Oh, interesting.

In this case, I would put the EXTRA_DIST in src/Makefile.am, and remove the
Makefile.am from src/my-first-couchdb-plugin. The EXTRA_DIST will obviously
have to prefix all the filenames with my-first-couchdb-plugin, but that's
fine. And you can call your Makefile whatever you want.

The instructions will need to be updated so that people are instructed to
sprinkle the magic dust on configure.ac, when they want their Makefile.am
to be picked up by the build system

I’ve prepared a branch build-system-fixes-1.5.x that includes all
> of the above.
>
>   ASF:
> https://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=log;h=refs/heads/build-system-fixes-1.5.x
>   GitHub Compare:
> https://github.com/janl/couchdb/compare/build-system-fixes-1.5.x
>
> I’d appreciate a review :)


Okay, using this:

https://github.com/janl/couchdb/compare/apache:1.5.x...build-system-fixes-1.5.x

> configure.ac

Remove this line:

    +AC_CONFIG_FILES([src/my-first-couchdb-plugin/Makefile])

(As part of the move of EXTRA_DIST to src/Makefile.am.)

> license.skip

These lines are redundant:

    +^src/couchjs-node/Makefile
    +^src/couchjs-node/Makefile.in

These files should be covered the the lines above this:

    ^Makefile
    ^Makefile.in

I am uncomfortable with this:

+^src/my-first-couchdb-plugin/.*

We should probably be explicit about what files do not need our
boilerplate. If we're shipping example code, then it is under an Apache
license, and should have the boilerplate. (Perhaps I am missing something
there though?)

> src/couch_plugins/Makefile.am

This looks okay:

    +EXTRA_DIST = $(source_files) README.md

But we shouldn't be distributing other people's README files, unless there
is a very good reason. Should we rip this out?

> src/my-first-couchdb-plugin/.gitignore

Why have a separate .gitignore here. Can we not include this rule in the
top-level file?


-- 
Noah Slater
https://twitter.com/nslater

Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
Update: running my branch through `build_candidate.sh` succeeds.


On Oct 4, 2013, at 16:09 , Jan Lehnardt <ja...@apache.org> wrote:

> 
> On Oct 4, 2013, at 14:01 , Noah Slater <ns...@apache.org> wrote:
> 
>> "Our PITA build system doesn't correctly understand how to package fauxton"
>> 
>> The problem is that new files have been added and Autotools hasn't been
>> told what to do with them.
>> 
>> We should be getting in the habit of checking the CI server Jan set up,
>> which will flag these errors. This is useful for a devs who are adding new
>> features and who want to check if the build is broken, and for release
>> managers.
>> 
>> In fact, for devs, if you're adding new files, or moving files around, I
>> would recommend a quick "./bootstrap && ./configure --disable-tests && make
>> distcheck" before you commit. This will flag any problems, or bits you've
>> forgotten to wire up to the build.
>> 
>> For the release procedure, we should have a step that reminds the RM to
>> check the CI server. I thought I had added this already, but a quick check
>> shows that I haven't. (And in fact, the whole Timetable section is dated
>> and needs to go.)
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
>> 
>> This file is is not in the Makefile.am at all, so Autotools will completely
>> ignore it.
>> 
>> The line it needs adding to is:
>> 
>>   if WINDOWS
>>   bin_SCRIPTS = couchdb.bat
>>   else
>>   bin_SCRIPTS = couchdb couch-config
>>   endif
>> 
>> If this is a *nix thing only, then add it to the last line. If it works on
>> Windows, add it to both.
> 
> erlang-version.escript is required at build time only, we don’t want to
> install it into the system. Is bin_SCRIPTS still the right place? I tried
> adding it to noinst_SCRIPTS but that didn’t work out* :) Adding it to
> bin_SCRIPTS also leads to the error message below. Adding it to EXTRA_DIST
> seemed to do the trick (no make errors, make install does the right thing
> etc), but I don’t know if it is the correct way. Can you advise?
> 
> * make[4]: *** No rule to make target `erlang-version.escript', needed by `all-am'.  Stop.
> 
> (See below for a list of commits)
> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
>> pagination.rst
>> 
>> This needs adding to share/doc/build/Makefile.am. See the html_files and
>> src_files variables.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
>> 
>> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
>> variable.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
>> 
>> These need adding to an EXTRA_DIST, or something similar.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
>> 
>> This one is a little more complex.
>> 
>> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
>> 
>> Now take one of the Makefile.am files,
>> like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
>> Then modify it to suit the contents of that dir. Shout if you need help
>> with this.
>> 
>> Once you've done that, edit configure.ac, and tell it about the new
>> Makefile.am by adding this line:
>> 
>> AC_CONFIG_FILES([src/couchjs-node/Makefile])
>> 
>> (Make sure to add it in the correct location, and sorted alphabetically.)
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
>> 
>> This one is surprisingly easy for now, as we're bodging it for the time
>> being. Just edit share/Makefile.am and add all of the files under the
>> fauxton dir to the nobase_dist_localdata_DATA variable.
>> 
>> Once all of these things have been done, test with:
>> 
>> ./bootstrap && ./configure --disable-tests && make distcheck
> 
> * * *
> 
> This only applies to master and not 1.5.x, but there is a new
> src/my-first-couchdb-plugin directory that just has bunch of files
> that we just want to have in the tarball, but do nothing with yet.
> For now I just made it like couchjs-node with the custom Makefile.am
> and EXTRA_DIST and that seems to work, but the subdir has its own
> Makefile that is irrelevant to the CouchDB build system (it is a
> skeleton for building CouchDB plugins in a more standalone way).
> Keeping that file named `Makefile` obviously conflicted with the
> procedure, so I renamed it to `Makefile.dist` and added a step
> to the instructions that asks the user to rename it before starting
> development on a plugin. To circumvent the renaming step I tried
> adding an EXTRA_DIST to src/Makefile.am and reference all files
> in src/my-first-couchdb-plugin from there, but that didn’t seem to
> work. This one isn’t too important for now, but if there is a nice
> solution, I’d like to know some time :)
> 
> * * *
> 
> I’ve prepared a branch build-system-fixes-1.5.x that includes all
> of the above.
> 
>  ASF: https://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=log;h=refs/heads/build-system-fixes-1.5.x
>  GitHub Compare: https://github.com/janl/couchdb/compare/build-system-fixes-1.5.x
> 
> I’d appreciate a review :)
> 
> Best
> Jan
> -- 
> 


Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
On Oct 4, 2013, at 14:01 , Noah Slater <ns...@apache.org> wrote:

> "Our PITA build system doesn't correctly understand how to package fauxton"
> 
> The problem is that new files have been added and Autotools hasn't been
> told what to do with them.
> 
> We should be getting in the habit of checking the CI server Jan set up,
> which will flag these errors. This is useful for a devs who are adding new
> features and who want to check if the build is broken, and for release
> managers.
> 
> In fact, for devs, if you're adding new files, or moving files around, I
> would recommend a quick "./bootstrap && ./configure --disable-tests && make
> distcheck" before you commit. This will flag any problems, or bits you've
> forgotten to wire up to the build.
> 
> For the release procedure, we should have a step that reminds the RM to
> check the CI server. I thought I had added this already, but a quick check
> shows that I haven't. (And in fact, the whole Timetable section is dated
> and needs to go.)
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
> 
> This file is is not in the Makefile.am at all, so Autotools will completely
> ignore it.
> 
> The line it needs adding to is:
> 
>    if WINDOWS
>    bin_SCRIPTS = couchdb.bat
>    else
>    bin_SCRIPTS = couchdb couch-config
>    endif
> 
> If this is a *nix thing only, then add it to the last line. If it works on
> Windows, add it to both.

erlang-version.escript is required at build time only, we don’t want to
install it into the system. Is bin_SCRIPTS still the right place? I tried
adding it to noinst_SCRIPTS but that didn’t work out* :) Adding it to
bin_SCRIPTS also leads to the error message below. Adding it to EXTRA_DIST
seemed to do the trick (no make errors, make install does the right thing
etc), but I don’t know if it is the correct way. Can you advise?

* make[4]: *** No rule to make target `erlang-version.escript', needed by `all-am'.  Stop.

(See below for a list of commits)

> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
> pagination.rst
> 
> This needs adding to share/doc/build/Makefile.am. See the html_files and
> src_files variables.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
> 
> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
> variable.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
> 
> These need adding to an EXTRA_DIST, or something similar.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
> 
> This one is a little more complex.
> 
> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
> 
> Now take one of the Makefile.am files,
> like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
> Then modify it to suit the contents of that dir. Shout if you need help
> with this.
> 
> Once you've done that, edit configure.ac, and tell it about the new
> Makefile.am by adding this line:
> 
> AC_CONFIG_FILES([src/couchjs-node/Makefile])
> 
> (Make sure to add it in the correct location, and sorted alphabetically.)
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
> 
> This one is surprisingly easy for now, as we're bodging it for the time
> being. Just edit share/Makefile.am and add all of the files under the
> fauxton dir to the nobase_dist_localdata_DATA variable.
> 
> Once all of these things have been done, test with:
> 
> ./bootstrap && ./configure --disable-tests && make distcheck

* * *

This only applies to master and not 1.5.x, but there is a new
src/my-first-couchdb-plugin directory that just has bunch of files
that we just want to have in the tarball, but do nothing with yet.
For now I just made it like couchjs-node with the custom Makefile.am
and EXTRA_DIST and that seems to work, but the subdir has its own
Makefile that is irrelevant to the CouchDB build system (it is a
skeleton for building CouchDB plugins in a more standalone way).
Keeping that file named `Makefile` obviously conflicted with the
procedure, so I renamed it to `Makefile.dist` and added a step
to the instructions that asks the user to rename it before starting
development on a plugin. To circumvent the renaming step I tried
adding an EXTRA_DIST to src/Makefile.am and reference all files
in src/my-first-couchdb-plugin from there, but that didn’t seem to
work. This one isn’t too important for now, but if there is a nice
solution, I’d like to know some time :)

* * *

I’ve prepared a branch build-system-fixes-1.5.x that includes all
of the above.

  ASF: https://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=log;h=refs/heads/build-system-fixes-1.5.x
  GitHub Compare: https://github.com/janl/couchdb/compare/build-system-fixes-1.5.x

I’d appreciate a review :)

Best
Jan
-- 


Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
On 4 October 2013 14:14, Jan Lehnardt <ja...@apache.org> wrote:

> We don’t yet run `build_candidate.sh` automatically, but I plan to add that
> ASAP, so we find these packaging issues right away.
>

Ah, yes. Of course! Thanks.

-- 
Noah Slater
https://twitter.com/nslater

Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
On Oct 4, 2013, at 14:01 , Noah Slater <ns...@apache.org> wrote:

> "Our PITA build system doesn't correctly understand how to package fauxton"
> 
> The problem is that new files have been added and Autotools hasn't been
> told what to do with them.
> 
> We should be getting in the habit of checking the CI server Jan set up,
> which will flag these errors. This is useful for a devs who are adding new
> features and who want to check if the build is broken, and for release
> managers.
> 
> In fact, for devs, if you're adding new files, or moving files around, I
> would recommend a quick "./bootstrap && ./configure --disable-tests && make
> distcheck" before you commit. This will flag any problems, or bits you've
> forgotten to wire up to the build.

I have an eye on CI that `make distcheck` succeeds and they are all green,
e.g. `make distcheck` doesn’t flag missing files like `build_candidate.sh`.

We don’t yet run `build_candidate.sh` automatically, but I plan to add that
ASAP, so we find these packaging issues right away.

Thanks for all the other pointers, I’ll chug through them on the course
of the day.

Also, completely forgot about --disable-tests. So good, thanks! :)

Best
Jan
-- 


> 
> For the release procedure, we should have a step that reminds the RM to
> check the CI server. I thought I had added this already, but a quick check
> shows that I haven't. (And in fact, the whole Timetable section is dated
> and needs to go.)
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
> 
> This file is is not in the Makefile.am at all, so Autotools will completely
> ignore it.
> 
> The line it needs adding to is:
> 
>    if WINDOWS
>    bin_SCRIPTS = couchdb.bat
>    else
>    bin_SCRIPTS = couchdb couch-config
>    endif
> 
> If this is a *nix thing only, then add it to the last line. If it works on
> Windows, add it to both.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
> pagination.rst
> 
> This needs adding to share/doc/build/Makefile.am. See the html_files and
> src_files variables.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
> 
> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
> variable.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
> 
> These need adding to an EXTRA_DIST, or something similar.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
> 
> This one is a little more complex.
> 
> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
> 
> Now take one of the Makefile.am files,
> like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
> Then modify it to suit the contents of that dir. Shout if you need help
> with this.
> 
> Once you've done that, edit configure.ac, and tell it about the new
> Makefile.am by adding this line:
> 
> AC_CONFIG_FILES([src/couchjs-node/Makefile])
> 
> (Make sure to add it in the correct location, and sorted alphabetically.)
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
> 
> This one is surprisingly easy for now, as we're bodging it for the time
> being. Just edit share/Makefile.am and add all of the files under the
> fauxton dir to the nobase_dist_localdata_DATA variable.
> 
> Once all of these things have been done, test with:
> 
> ./bootstrap && ./configure --disable-tests && make distcheck
> 
> -- 
> Noah Slater
> https://twitter.com/nslater


Re: [1.5.0] Punted for today :(

Posted by Jan Lehnardt <ja...@apache.org>.
On Oct 4, 2013, at 14:08 , Noah Slater <ns...@apache.org> wrote:

> Two follow ups:
> 
> 1. Our CI server is at http://ci.couchdb.org:8888/ — bookmark it! :)

and ping me once you signed up, so you can see all the builds. The only
public one at the moment is Fauxton, the system builds are private (for
committers) for now. I’m working on fixing that :)

Best
Jan
-- 

> 
> 2. Looking at Jan's JIRA comment about the Node feature, we might want to
> take a slightly different approach here. If you want to just tell Autotools
> to include the dir, but not do anything with it, or install anything, all
> your new Makefile.am needs to include is the variable EXTRA_DIST, and then
> a list of all the files in the dir. That should do it.
> 
> 
> On 4 October 2013 14:01, Noah Slater <ns...@apache.org> wrote:
> 
>> "Our PITA build system doesn't correctly understand how to package fauxton"
>> 
>> The problem is that new files have been added and Autotools hasn't been
>> told what to do with them.
>> 
>> We should be getting in the habit of checking the CI server Jan set up,
>> which will flag these errors. This is useful for a devs who are adding new
>> features and who want to check if the build is broken, and for release
>> managers.
>> 
>> In fact, for devs, if you're adding new files, or moving files around, I
>> would recommend a quick "./bootstrap && ./configure --disable-tests && make
>> distcheck" before you commit. This will flag any problems, or bits you've
>> forgotten to wire up to the build.
>> 
>> For the release procedure, we should have a step that reminds the RM to
>> check the CI server. I thought I had added this already, but a quick check
>> shows that I haven't. (And in fact, the whole Timetable section is dated
>> and needs to go.)
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
>> 
>> This file is is not in the Makefile.am at all, so Autotools will
>> completely ignore it.
>> 
>> The line it needs adding to is:
>> 
>>    if WINDOWS
>>    bin_SCRIPTS = couchdb.bat
>>    else
>>    bin_SCRIPTS = couchdb couch-config
>>    endif
>> 
>> If this is a *nix thing only, then add it to the last line. If it works on
>> Windows, add it to both.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
>> pagination.rst
>> 
>> This needs adding to share/doc/build/Makefile.am. See the html_files and
>> src_files variables.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
>> 
>> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
>> variable.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
>> 
>> These need adding to an EXTRA_DIST, or something similar.
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
>> 
>> This one is a little more complex.
>> 
>> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
>> 
>> Now take one of the Makefile.am files,
>> like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
>> Then modify it to suit the contents of that dir. Shout if you need help
>> with this.
>> 
>> Once you've done that, edit configure.ac, and tell it about the new
>> Makefile.am by adding this line:
>> 
>> AC_CONFIG_FILES([src/couchjs-node/Makefile])
>> 
>> (Make sure to add it in the correct location, and sorted alphabetically.)
>> 
>> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
>> 
>> This one is surprisingly easy for now, as we're bodging it for the time
>> being. Just edit share/Makefile.am and add all of the files under the
>> fauxton dir to the nobase_dist_localdata_DATA variable.
>> 
>> Once all of these things have been done, test with:
>> 
>> ./bootstrap && ./configure --disable-tests && make distcheck
>> 
>> --
>> Noah Slater
>> https://twitter.com/nslater
>> 
>> 
> 
> 
> -- 
> Noah Slater
> https://twitter.com/nslater


Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
Two follow ups:

1. Our CI server is at http://ci.couchdb.org:8888/ — bookmark it! :)

2. Looking at Jan's JIRA comment about the Node feature, we might want to
take a slightly different approach here. If you want to just tell Autotools
to include the dir, but not do anything with it, or install anything, all
your new Makefile.am needs to include is the variable EXTRA_DIST, and then
a list of all the files in the dir. That should do it.


On 4 October 2013 14:01, Noah Slater <ns...@apache.org> wrote:

> "Our PITA build system doesn't correctly understand how to package fauxton"
>
> The problem is that new files have been added and Autotools hasn't been
> told what to do with them.
>
> We should be getting in the habit of checking the CI server Jan set up,
> which will flag these errors. This is useful for a devs who are adding new
> features and who want to check if the build is broken, and for release
> managers.
>
> In fact, for devs, if you're adding new files, or moving files around, I
> would recommend a quick "./bootstrap && ./configure --disable-tests && make
> distcheck" before you commit. This will flag any problems, or bits you've
> forgotten to wire up to the build.
>
> For the release procedure, we should have a step that reminds the RM to
> check the CI server. I thought I had added this already, but a quick check
> shows that I haven't. (And in fact, the whole Timetable section is dated
> and needs to go.)
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
>
> This file is is not in the Makefile.am at all, so Autotools will
> completely ignore it.
>
> The line it needs adding to is:
>
>     if WINDOWS
>     bin_SCRIPTS = couchdb.bat
>     else
>     bin_SCRIPTS = couchdb couch-config
>     endif
>
> If this is a *nix thing only, then add it to the last line. If it works on
> Windows, add it to both.
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
> pagination.rst
>
> This needs adding to share/doc/build/Makefile.am. See the html_files and
> src_files variables.
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
>
> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
> variable.
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
>
> These need adding to an EXTRA_DIST, or something similar.
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
>
> This one is a little more complex.
>
> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
>
> Now take one of the Makefile.am files,
> like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
> Then modify it to suit the contents of that dir. Shout if you need help
> with this.
>
> Once you've done that, edit configure.ac, and tell it about the new
> Makefile.am by adding this line:
>
> AC_CONFIG_FILES([src/couchjs-node/Makefile])
>
> (Make sure to add it in the correct location, and sorted alphabetically.)
>
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
>
> This one is surprisingly easy for now, as we're bodging it for the time
> being. Just edit share/Makefile.am and add all of the files under the
> fauxton dir to the nobase_dist_localdata_DATA variable.
>
> Once all of these things have been done, test with:
>
> ./bootstrap && ./configure --disable-tests && make distcheck
>
> --
> Noah Slater
> https://twitter.com/nslater
>
>


-- 
Noah Slater
https://twitter.com/nslater

Re: [1.5.0] Punted for today :(

Posted by Noah Slater <ns...@apache.org>.
"Our PITA build system doesn't correctly understand how to package fauxton"

The problem is that new files have been added and Autotools hasn't been
told what to do with them.

We should be getting in the habit of checking the CI server Jan set up,
which will flag these errors. This is useful for a devs who are adding new
features and who want to check if the build is broken, and for release
managers.

In fact, for devs, if you're adding new files, or moving files around, I
would recommend a quick "./bootstrap && ./configure --disable-tests && make
distcheck" before you commit. This will flag any problems, or bits you've
forgotten to wire up to the build.

For the release procedure, we should have a step that reminds the RM to
check the CI server. I thought I had added this already, but a quick check
shows that I haven't. (And in fact, the whole Timetable section is dated
and needs to go.)

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript

This file is is not in the Makefile.am at all, so Autotools will completely
ignore it.

The line it needs adding to is:

    if WINDOWS
    bin_SCRIPTS = couchdb.bat
    else
    bin_SCRIPTS = couchdb couch-config
    endif

If this is a *nix thing only, then add it to the last line. If it works on
Windows, add it to both.

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
pagination.rst

This needs adding to share/doc/build/Makefile.am. See the html_files and
src_files variables.

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html

This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
variable.

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md

These need adding to an EXTRA_DIST, or something similar.

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node

This one is a little more complex.

Edit, src/Makefile.am and add this dir to the SUBDIRS variable.

Now take one of the Makefile.am files,
like src/couch_dbupdates/Makefile.am, and copy it to the couchjs-node dir.
Then modify it to suit the contents of that dir. Shout if you need help
with this.

Once you've done that, edit configure.ac, and tell it about the new
Makefile.am by adding this line:

AC_CONFIG_FILES([src/couchjs-node/Makefile])

(Make sure to add it in the correct location, and sorted alphabetically.)

Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton

This one is surprisingly easy for now, as we're bodging it for the time
being. Just edit share/Makefile.am and add all of the files under the
fauxton dir to the nobase_dist_localdata_DATA variable.

Once all of these things have been done, test with:

./bootstrap && ./configure --disable-tests && make distcheck

-- 
Noah Slater
https://twitter.com/nslater