Opened 19 years ago

Closed 19 years ago

Last modified 16 years ago

#41 closed defect (fixed)

Generate ChangeLog file with make dist

Reported by: frae Owned by: frcm
Priority: normal Milestone:
Component: ropp_io Version: 0.9
Keywords: Cc: axel.vonengeln@…, dave.offiler@…

Description (last modified by marq)

I just included some modification to the ropp_io to automatically generate the ChangeLog file with a make dist command. This works as long as executed on the right linux box by looking for the svn2cl program. It also works if this program is not available. But it fails if the program is available but does not work correctly, e.g. svn is missing on another linux box.

Is there a way to avoid this so that make does not fall over if svn2cl fails? Or should one just assume that a program which is present should also work correctly.

The relevant modifications are visible in http://svn.marquardt.sc/cgi-bin/ropp.cgi/changeset/730, it is mainly a modification of the configure.ac to include:

AC_PATH_PROG(SVN2CL, svn2cl)

And a modification to the Makefile.am:

# 3. Generate the ChangeLog files automatically with make dist  
# ------------------------------------------------------------  

dist-hook:  
        if test -n "$(SVN2CL)"; then \  
               $(SVN2CL) --include-rev --group-by-day; \  
  	fi;

If this is the correct way to persue this then I will make the necessary changes to the other modules. If not, please tell me what to modify or to just forget the whole issue.

Change history (4)

comment:1 by marq, 19 years ago

Description: modified (diff)

Looks good to me, so if it works... (I haven't installed the svn2cl, so I can't check). Is there a way to clean the ChangeLog such that it does not hang around and gets accidentally checked in into the repository? One could make the file part of the files to be cleaned in the top level directory.

I think the ChangeLog generation would in effect fix #35, right? So I'll close that as a duplicate.

comment:2 by Dave Offiler, 19 years ago

Axel's mods look to do the required job.

As a first guide, I would assume that if a program is found, it should be expected to work. 'make dist' is only sensible to be run by the ROPP development team, and they ought know what they're doing and can resolve any problem in running the ChangeLog generation (like using a suitable Linux box). Users should not be doing a make dist as they are not guaranteed to have all the necessry files. The same issue arises in building the refmans.

Since ChangeLog is generated from svn, I agree that it shoudn't go in the repository. It's debatable whether it should go in the dist or not. Since at one point Eumetsat asked for such a file as part of the CPM, it would do no harm to include it in EXTRA_DIST.

And possibly linked (or a copy made) in the relevant part of the Test Folder for the tested version. This would have the advantage of logging exactly which revision was tested.

comment:3 by frae, 19 years ago

Resolution: fixed
Status: newclosed

Okay, changes commited. The packages (except 1dvar) now have a dummy ChangeLog and REVISION file, these files just indicate that they will hold the ChangeLog, REVISION information for a distribution. They are not changed when running make dist. Actually having the files in the distribution was easier than putting dependencies into the Makefile.

Also, it now seems to work if the svn2cl program falls over somewhere, the trick was to let svn2cl write directly into an output file and not the default one. Side effect is, that ChangeLog is just empty in this case. But, as Dave said, we expect programs to work.

The REVISION file just uses a grep onto an .svn file, I did not bother to extract the actual number. If somebody fells like more sed hacking, go ahead.

I will close this ticket now (and yes, I realized too late that ticket #35 should have been used. Well, 2 tickets solved with one fix.

comment:4 by (none), 16 years ago

Milestone: 0.9

Milestone 0.9 deleted

Note: See TracTickets for help on using tickets.