ADECH(1)                    General Commands Manual                   ADECH(1)



NAME
       adech - update a ChangeLog

SYNOPSIS
       adech  [ -V | --version ] [ -v | --verbose | -d level | --debug=level ]
       [ -h | --help ] [ -p | --paths ] [ -n | --simulate ]  [  --program=pro-
       gram-name ] [ --comment="comment-text" ] { --bump-{bug|feature|rewrite}
       | --check-{released|unreleased} | --finalise } ChangeLog-file

DESCRIPTION
       Adech updates, checks or finalises release stanzas in ChangeLog  files.
       It  is  intended  to  enforce  a strict and machine-parsable format for
       ChangeLogs.  It was inspired by dch(1), which provides a  similar  pur-
       pose for Debian packages' changelog files.

       The path to the ChangeLog file must be specified on the command line.

       Adech  takes  care  of deciding new version numbers, based on whether a
       release is to address a bug, the addition of a new feature,  or  for  a
       total  rewrite  of  the  code. For this reason, adech generates version
       numbers of the form X.Y.Z, where Z, or Z and Y may be missing,  depend-
       ing  on  which component was incremented most recently.  The first ver-
       sion is version 0.

CONFIGURATION
       ChangeLog-file must exist. If it does not then create it by running:

              touch ChangeLog-file

OPTIONS
       -d level, --debug=level  Determines how verbose this program  will  be.
                                The  message types displayed for the different
                                values of level are as follows: 0 displays  no
                                messages;  1  displays only errors, 2 displays
                                errors and warnings; 3 displays errors,  warn-
                                ings and informational messages; higher values
                                display errors, warnings,  informational  mes-
                                sages and various messages intended for debug-
                                ging.  The default is 2.

       -h, --help               Displays a brief usage message.

       -p, --paths              Lists the compiled-in paths of  various  files
                                and  directories  that this program uses.  -n,
                                --simulate Some external  commands  that  this
                                program  runs may be displayed rather than ac-
                                tually executed.  BEWARE:  different  programs
                                implement  different  levels of simulation; so
                                this option may work perfectly; on  the  other
                                hand it may do nothing at all!

       -v, --verbose            Equivalent to -d 3.

       -V, --version            Prints the program's version number and exits.

       --bump-bug               Check that ChangeLog-file is in a 'soon-to-be-
                                released' state and then create a new  release
                                stanza  in with the last component of the ver-
                                sion  number  incremented.  I.e.  the  version
                                changes from X.Y.Z to X.Y.Z+1, thereby putting
                                ChangeLog-file  in   a   'soon-to-be-released'
                                state.

       --bump-feature           Check that ChangeLog-file is in a 'soon-to-be-
                                released' state and then create a new  release
                                stanza  in  with  the  middle component of the
                                version number incremented. I.e.  the  version
                                changes  from  X.Y.Z to X.Y+1, thereby putting
                                ChangeLog-file  in   a   'soon-to-be-released'
                                state.

       --bump-rewrite           Check that ChangeLog-file is in a 'soon-to-be-
                                released' state and then create a new  release
                                stanza in with the first component of the ver-
                                sion  number  incremented.  I.e.  the  version
                                changes  from  X.Y.Z  to  X+1, thereby putting
                                ChangeLog-file  in   a   'soon-to-be-released'
                                state.


       --program=program-name   If  ChangeLog-file  is empty then adech cannot
                                derive the name of the program that  owns  it.
                                In  that  case this option must be provided to
                                declare the name of the program.

       --comment="comment-text" The specified comment  text  will  be  written
                                into  the changelog entry. The default comment
                                is "please change this text!".

       --check-unreleased       Check that ChangeLog-file is in an  unreleased
                                state;  this  is  determined  by examining the
                                first line of the file and checking that it is
                                formatted  correctly and contains the word UN-
                                RELEASED in the right place.  This  option  is
                                primarily  intended  for  inclusion  in  build
                                scripts.

       --check-released         Check that ChangeLog-file is in  an  'soon-to-
                                be-released'  state; this is determined by ex-
                                amining the first line of the file and  check-
                                ing  that  it  is formatted correctly and does
                                not contain the word UNRELEASED in  the  right
                                place.  This  option is primarily intended for
                                inclusion in build scripts.

       --finalise               Check that the ChangeLog-file is in  an  unre-
                                leased  state,  remove the word UNRELEASED and
                                update the date in the first line.

EXIT STATUS
       On success adech returns zero. On failure it returns non-zero and  dis-
       plays a diagnostic message.

FILES
       None.

ENVIRONMENT VARIABLES
       None.

EXAMPLES
       The following sets up the ChangeLog file for the first ever release:

              touch ChangeLog
              adech --bump-rewrite ChangeLog

       (Actually,  whether  --bump-rewrite,  --bump-feature,  or --bump-bug is
       used is irrelevant; the first release is always release 0.)

       Once the code has been written and tested and is ready to  be  released
       then the ChangeLog might be finalised by running:

              adech --finalise ChangeLog

       After  this  one  might prepare the tar.gz source bundle, perhaps using
       adebun(1).

CAVEATS
       The number of components in a version number depends very much on local
       policy.  Adech uses three-component version numbers because this is the
       author's own preference. Adherence to a user-specified policy  will  be
       implemented at a future date.

STANDARDS
       This manual page documents version 3.0.4 of adech.

SEE ALSO
       ade-config(1), adebun(1), dch(1), touch(1)

AUTHOR
       Alexis Huxley <alexishuxley@gmail.com>

COPYRIGHT & DISTRIBUTION POLICY
       Copyright (C) 2011-2024 Alexis Huxley

       This program is free software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published  by  the
       Free  Software Foundation; either version 2 of the License, or (at your
       option) any later version.

       This program is distributed in the hope that it  will  be  useful,  but
       WITHOUT  ANY  WARRANTY;  without  even  the  implied  warranty  of MER-
       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  General
       Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program; if not, write to the Free Software Foundation, Inc.,
       675 Mass Ave, Cambridge, MA 02139, USA.



                                  27 Dec 2024                         ADECH(1)