couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: [1.5.0] Punted for today :(
Date Fri, 04 Oct 2013 15:31:00 GMT
Update: running my branch through `build_candidate.sh` succeeds.


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

> 
> On Oct 4, 2013, at 14:01 , Noah Slater <nslater@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
> -- 
> 


Mime
View raw message