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)