Auto-Generating ChangeLog and AUTHORS for projects in a version tracking system?
Dear GNU Hackers, In quite a few guides I saw people suggest using the foreign automake style to avoid having to create the required text files. The goal of this email is to get more people to use the GNU style, so the interface for understanding an autotools project becomes more consistent again: GNU style should become standard for all guides. Among the required files, NEWS is easy to create but cannot be guessed automatically because it is intended for humans, and README is becoming standard (again) due to most code hosting sites using it as the summary page. AUTHORS and ChangeLog normally only contain information which already available in most version tracking systems - and can be created easily from that. If autotools did this automatically, the barrier for using GNU style in the autotools with a version tracking system would be much smaller: Just write README and NEWS. I initially planned to just send a small example script, but that matured faster than I had expected, so you can now find it at https://bitbucket.org/ArneBab/autochangelog/src/tip/create-or-update-changelog-and-authors.sh If someone with git-foo could cleanup the git ChangeLog creation to conform with the GNU ChangeLog standard, that script should be a good working example. The script only touches files which were created by the script or are missing. Best wishes, Arne PS: I initially sent this mail to the autoconf list. The original discussion is at [1] and includes the gnulib script which roughly does for git what I propose here. Doing this in automake would have the advantage that all users benefit from the lower barrier of entry to the consistent GNU style. [1]: http://lists.gnu.org/archive/html/autoconf/2014-10/msg0.html -- Doktorand Gruppe: GHG Raum: 435/410 Tel.: +49 721 608-22885 arne.babenhauserhe...@kit.edu Karlsruher Institut für Technologie IMK-ASF Postfach 36 40 76021 Karlsruhe 0xA70DA09E.asc Description: application/pgp-keys 0xA70DA09E.asc Description: application/pgp-keys <> signature.asc Description: OpenPGP digital signature
Re: Auto-Generating ChangeLog and AUTHORS for projects in a version tracking system?
Can't we just say that gnu-flavour automake is pointless and foreign should be the default? Or am I too opinionated on that? Diego Elio Pettenò — Flameeyes flamee...@flameeyes.eu — http://blog.flameeyes.eu/ On 29 October 2014 15:27, Arne Babenhauserheide (IMK) < arne.babenhauserhe...@kit.edu> wrote: > Dear GNU Hackers, > > > In quite a few guides I saw people suggest using the foreign automake > style to avoid having to create the required text files. > > The goal of this email is to get more people to use the GNU style, so > the interface for understanding an autotools project becomes more > consistent again: GNU style should become standard for all guides. > > > Among the required files, NEWS is easy to create but cannot be guessed > automatically because it is intended for humans, and README is becoming > standard (again) due to most code hosting sites using it as the summary > page. AUTHORS and ChangeLog normally only contain information which > already available in most version tracking systems - and can be created > easily from that. > > If autotools did this automatically, the barrier for using GNU style in > the autotools with a version tracking system would be much smaller: Just > write README and NEWS. > > > I initially planned to just send a small example script, but that > matured faster than I had expected, so you can now find it at > > > > https://bitbucket.org/ArneBab/autochangelog/src/tip/create-or-update-changelog-and-authors.sh > > If someone with git-foo could cleanup the git ChangeLog creation to > conform with the GNU ChangeLog standard, that script should be a good > working example. > > The script only touches files which were created by the script or are > missing. > > > Best wishes, > Arne > > PS: I initially sent this mail to the autoconf list. The original > discussion is at [1] and includes the gnulib script which roughly does > for git what I propose here. Doing this in automake would have the > advantage that all users benefit from the lower barrier of entry to the > consistent GNU style. > > [1]: http://lists.gnu.org/archive/html/autoconf/2014-10/msg0.html > > -- > Doktorand > Gruppe: GHG > > Raum: 435/410 > Tel.: +49 721 608-22885 > arne.babenhauserhe...@kit.edu > > Karlsruher Institut für Technologie > IMK-ASF > Postfach 36 40 > 76021 Karlsruhe > > > >
Re: Auto-Generating ChangeLog and AUTHORS for projects in a version tracking system?
On 10/29/2014 04:29 PM, Diego Elio Pettenò wrote: [we tend to avoid top-posting on technical lists] > Can't we just say that gnu-flavour automake is pointless and foreign should > be the default? Or am I too opinionated on that? For GNU projects, the 'gnu' flavor still makes sense, even if it could use a little modernization such as easier automation of generating ChangeLog from version control. And while these days, automake is probably used by more non-gnu projects (where 'foreign' may make more sense) than GNU projects, that's still not a good reason to toggle the default. I like what the GNU Coding Standards represent, and deviating from them deserves a mention in configure.ac to make it apparent that you thought about it. -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature
Re: Auto-Generating ChangeLog and AUTHORS for projects in a version tracking system?
On 29 October 2014 22:39, Eric Blake wrote: > > [we tend to avoid top-posting on technical lists] Sorry, me sleepy and not paying enough attention. > > > Can't we just say that gnu-flavour automake is pointless and foreign should > > be the default? Or am I too opinionated on that? > > For GNU projects, the 'gnu' flavor still makes sense, even if it could > use a little modernization such as easier automation of generating > ChangeLog from version control. And while these days, automake is > probably used by more non-gnu projects (where 'foreign' may make more > sense) than GNU projects, that's still not a good reason to toggle the > default. I like what the GNU Coding Standards represent, and deviating > from them deserves a mention in configure.ac to make it apparent that > you thought about it. All good and well, but then I may have misunderstood Arne's original point. If he's trying to get the GNU style to be "good enough" for more projects, I think that's a moot point because as you said most projects use it outside of GNU, and they would probably still find enough issues with it that they wouldn't use it — and they would probably still complain about bad autotools doing bad things because they copy-paste from the wrong project. If we're talking of making life easier for GNU maintainers, I have no opinion because I have no stakes on the matter at all. Diego Elio Pettenò — Flameeyes flamee...@flameeyes.eu — http://blog.flameeyes.eu/
Re: Auto-Generating ChangeLog and AUTHORS for projects in a version tracking system?
Hi Flameeyes, Am 30.10.2014 00:43, schrieb Diego Elio Pettenò: > All good and well, but then I may have misunderstood Arne's original > point. If he's trying to get the GNU style to be "good enough" That means I did not make my point clear enough. Second try: I don’t want to change the GNU style. I want to have an easier way to *adhere to* the existing GNU style by providing default tool support for creating the ChangeLog and AUTHORS file from versiontracking systems. Having NEWS, README, ChangeLog and AUTHORS in a release tarball makes a lot of sense, and having NEWS and README also makes a lot of sense in a version tracking system (I see that every time I try to use a project which does not have them). It’s just that when using a version tracking system, the ChangeLog and AUTHORS file mostly duplicate information which is already in the version tracking system. This isn’t true for all projects. With complicated history a generated ChangeLog can become useless and when committing patches from others and forgetting to change the user, an autogenerated AUTHORS file can simply be wrong. But for most projects they should be valid. Additional motivation for this: If I want to teach someone to switch from a simple Makefile to autotools, I have to talk about - configure.ac (this is mostly copy-paste, adjusting name and version) - Makefile.am (copy-paste from a similar project or adapt a Makefile) - autoreconf -i; ./configure; make (“copy this into the README”) - NEWS (“put the newest version at the top”) - README (“describe how to use the project and how to contribute”) - AUTHORS (“name all people who contributed”) - ChangeLog (describe the changes in GNU style. This means: - first line: date and author: https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html - changes indented. - Start each changed file with a star (* file). - optionally name the function. - (a few special cases). - Description after a colon and in following lines, also indented. - empty line between independent changes? As you can see, how to write a conforming ChangeLog takes roughly as much explanation as writing the configure.ac. And every new contributor will have to learn how to do that (while the other topics are only needed for the initial setup or for the maintainer). Best wishes, Arne PS: I consider make distcheck as the gold standard for distributing projects. I did not yet find a tool which gets close to matching that. -- Doktorand Gruppe: GHG Raum: 435/410 Tel.: +49 721 608-22885 arne.babenhauserhe...@kit.edu Karlsruher Institut für Technologie IMK-ASF Postfach 36 40 76021 Karlsruhe 0xA70DA09E.asc Description: application/pgp-keys <> signature.asc Description: OpenPGP digital signature