summaryrefslogtreecommitdiffhomepage
path: root/docs/manpages/gbp-dch.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manpages/gbp-dch.xml')
-rw-r--r--docs/manpages/gbp-dch.xml619
1 files changed, 619 insertions, 0 deletions
diff --git a/docs/manpages/gbp-dch.xml b/docs/manpages/gbp-dch.xml
new file mode 100644
index 00000000..f57c5a8a
--- /dev/null
+++ b/docs/manpages/gbp-dch.xml
@@ -0,0 +1,619 @@
+<refentry id="man.gbp.dch">
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>gbp-dch</refentrytitle>
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>gbp-dch</refname>
+ <refpurpose>Generate the &debian; changelog from git commit messages</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-dch;
+ &man.common.options.synopsis;
+ <arg><option>--debian-branch=</option><replaceable>branch_name</replaceable></arg>
+ <arg><option>--debian-tag=</option><replaceable>tag-format</replaceable></arg>
+ <arg><option>--upstream-branch=</option><replaceable>branch_name</replaceable></arg>
+ <arg><option>--upstream-tag=</option><replaceable>tag-format</replaceable></arg>
+ <arg><option>--ignore-branch</option></arg>
+ <group>
+ <group>
+ <arg><option>-S</option></arg>
+ <arg><option>--snapshot</option></arg>
+ </group>
+ <group>
+ <arg><option>-R</option></arg>
+ <arg><option>--release</option></arg>
+ </group>
+ </group>
+ <group>
+ <group>
+ <arg><option>-a</option></arg>
+ <arg><option>--auto</option></arg>
+ </group>
+ <group>
+ <arg><option>-s</option> <replaceable>commitish</replaceable></arg>
+ <arg><option>--since=</option><replaceable>commitish</replaceable></arg>
+ </group>
+ </group>
+ <group>
+ <arg><option>-N</option> <replaceable>version</replaceable></arg>
+ <arg><option>--new-version=</option><replaceable>version</replaceable></arg>
+ </group>
+ <group>
+ <arg><option>--bpo</option></arg>
+ <arg><option>--nmu</option></arg>
+ <arg><option>--qa</option></arg>
+ <arg><option>--security</option></arg>
+ <arg><option>--team</option></arg>
+ </group>
+ <arg><option>--distribution=</option><replaceable>name</replaceable></arg>
+ <arg><option>--force-distribution</option></arg>
+ <group>
+ <arg><option>-U</option> <replaceable>level</replaceable></arg>
+ <arg><option>--urgency=</option><replaceable>level</replaceable></arg>
+ </group>
+ <arg><option>--[no-]full</option></arg>
+ <arg><option>--[no-]meta</option></arg>
+ <arg><option>--meta-closes=bug-close-tags</option></arg>
+ <arg><option>--meta-closes-bugnum=bug-number-format</option></arg>
+ <arg><option>--snapshot-number=</option><replaceable>expression</replaceable></arg>
+ <arg><option>--id-length=</option><replaceable>number</replaceable></arg>
+ <arg><option>--git-log=</option><replaceable>git-log-options</replaceable></arg>
+ <arg><option>--[no-]git-author</option></arg>
+ <arg><option>--[no-]multimaint</option></arg>
+ <arg><option>--[no-]multimaint-merge</option></arg>
+ <arg><option>--spawn-editor=[always|never|snapshot|release]</option></arg>
+ <arg><option>--commit-msg=</option><replaceable>msg-format</replaceable></arg>
+ <group>
+ <arg><option>-c</option></arg>
+ <arg><option>--commit</option></arg>
+ </group>
+ <arg><option>--customizations=</option><replaceable>customization-file</replaceable></arg>
+ <arg rep='repeat'><option>--dch-opt=</option><replaceable>dch-options</replaceable></arg>
+ <arg><option>--verbose</option></arg>
+ <arg choice="plain"><replaceable><optional>path1 path2</optional></replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &gbp-dch; reads git commit messages and generates the &debian;
+ changelog from it. If no arguments are given, &gbp-dch; starts
+ from the commit corresponding to the last tagged Debian package
+ version up to the current tip of the current branch. If the
+ distribution of the topmost section in
+ <filename>debian/changelog</filename>
+ is <emphasis>UNRELEASED</emphasis>, the changelog entries will be
+ inserted into this section. Otherwise, a new section will be
+ created.
+ </para>
+ <para>
+ If <option>--auto</option> is given &gbp-dch;, tries to guess the
+ last &git; commit documented in the changelog - this only works in snapshot
+ mode. Otherwise, <option>--since</option> can be used to tell &gbp-dch;
+ at which point it should start in the &git; history.
+ </para>
+ <para>
+ If one ore more paths are given as arguments &gbp-dch; will only
+ include changes in <filename>debian/changelog</filename> that
+ affect these paths. E.g. using
+ <emphasis>debian/</emphasis> is a good choice if upstream uses
+ &git; and you don't want the upstream history to end up in
+ <filename>debian/changelog</filename>.
+ </para>
+ <para>
+ To restrict the selected changes even further you can use
+ use the <option>--git-log</option> option which is passed
+ on verbatim to <command>git log</command>. E.g. by using
+ <option>--git-log=</option><replaceable>"--author=Foo
+ Bar"</replaceable>.
+ </para>
+ <para>
+ The above relies on the <option>--debian-branch</option> option
+ pointing to the current branch
+ and <option>--upstream-branch</option> pointing to the
+ corresponding upstream branch in order to find the right merge
+ points of these branches. Furthermore &gbp-dch; must be able to
+ identify git tags from upstream and Debian version numbers. If
+ you're not using the defaults check
+ the <option>--upstream-tag</option>
+ and <option>--debian-tag</option> options and make sure they match
+ the tags created by e.g. &gbp-import-orig (when using tarballs)
+ or upstream's tagging pattern (when using upstream's git directly).
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ &man.common.options.description;
+
+ <varlistentry>
+ <term><option>--debian-branch</option>=<replaceable>branch_name</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the Git repository the Debian package is being
+ developed on, default is <replaceable>master</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-branch</option>=<replaceable>branch_name</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Branch to determine the upstream version from.
+ Default is <replaceable>upstream</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-upstream-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ use this tag format when looking for tags of upstream versions,
+ default is <replaceable>upstream/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-branch</option>
+ </term>
+ <listitem>
+ <para>
+ Don't check if the current branch matches
+ <replaceable>debian-branch</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--debian-tag=</option><replaceable>tag-format</replaceable>
+ </term>
+ <listitem>
+ <para>
+ tag format used, when tagging debian versions,
+ default is <replaceable>debian/%(version)s</replaceable>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--since=</option><replaceable>committish</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Start reading commit messages at
+ <replaceable>committish</replaceable>.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--auto</option>,
+ <option>-a</option></term>
+ <listitem>
+ <para>
+ Guess the last commit documented in the changelog from the
+ snapshot banner (or from the last tag if no snapshot banner exists).
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]meta</option></term>
+ <listitem>
+ <para>
+ Parse meta tags like <option>Closes:</option>,
+ <option>Thanks:</option> and <option>Gbp-Dch:</option>. See META TAGS
+ below.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--meta-closes=</option><replaceable>bug-close-tags</replaceable>
+ </term>
+ <listitem>
+ <para>
+ What meta tags to look for to generate bug-closing changelog entries.
+ The default is <literal>'Closes|LP'</literal> to support Debian and Launchpad.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--meta-closes-bugnum=</option><replaceable>bug-number-format</replaceable>
+ </term>
+ <listitem>
+ <para>
+ What regular expression should be used to parse out the bug number.
+ The default is <literal>'(?:bug|issue)?\#?\s?\d+'</literal>. Note: the regex should
+ suppress all portions of the bug number that are not wanted using
+ <literal>"(?:)"</literal>, see Python regex manual for details.
+ </para>
+ <para>
+ Example:
+ <option>--meta-closes-bugnum=</option><literal>"(?:bug)?\s*ex-\d+"</literal>
+
+ would match all of the following:
+ <screen>
+ Possible Txt Match? Result
+ ------------ ------ ------
+ bug EX-12345 Y EX-12345
+ ex-01273 Y ex-01273
+ bug ex-1ab Y ex-1
+ EX--12345 N</screen>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]full</option>
+ </term>
+ <listitem>
+ <para>
+ Include the full commit message in the changelog output.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--snapshot</option>,
+ <option>-S</option></term>
+ <listitem>
+ <para>
+ Create a snapshot release entry. This adds a snapshot release
+ number and a warning banner to the changelog entry. The release
+ version number is being auto incremented with every new snapshot
+ release to avoid packages downgrades during snapshot testing.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--snapshot-number=</option><replaceable>expression</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Python expression that gets eval()ed to the new snapshot number.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--release</option>,
+ <option>-R</option></term>
+ <listitem>
+ <para>
+ Remove any snapshot release banners and version suffixes, set
+ the current distribution to <replaceable>unstable</replaceable>, and
+ open the changelog for final tweaking.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--new-version=</option><replaceable>version</replaceable>,
+ <option>-N</option> <replaceable>version</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Add a new changelog section with version
+ <replaceable>newversion</replaceable>. Together with
+ <option>--snapshot</option>, the snapshot number will be appended to
+ <replaceable>newversion</replaceable>.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--team</option>
+ </term>
+ <listitem>
+ <para>
+ Create a Team upload changelog entry.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--bpo</option>
+ </term>
+ <listitem>
+ <para>
+ Increment the Debian release number for an upload to backports, and
+ add a backport upload changelog comment.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--nmu</option>
+ </term>
+ <listitem>
+ <para>
+ Increment the Debian release number for a non-maintainer upload.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--qa</option>
+ </term>
+ <listitem>
+ <para>
+ Increment the Debian release number for a Debian QA Team upload, and
+ add a QA upload changelog comment.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--security</option>
+ </term>
+ <listitem>
+ <para>
+ Increment the Debian release number for a Debian Security
+ Team non-maintainer upload, and add a "Security Team
+ upload" changelog comment.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--distribution=</option><replaceable>name</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the distribution field to <replaceable>name</replaceable>.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--force-distribution</option>
+ </term>
+ <listitem>
+ <para>
+ Force the distribution specified with <option>--distribution</option>
+ to be used, even if it doesn't match the list of known distributions.
+ This option can't be set via &gbp.conf;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--urgency=</option><replaceable>level</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the urgency field to <replaceable>level</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-log=</option><replaceable>git-log-options</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Options passed on verbatim to git-log(1).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--id-length=</option><replaceable>N</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Include <replaceable>N</replaceable> digits of the commit id in the
+ changelog entry. Default is to not include any commit ids at all.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-regex=</option><replaceable>regex</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Ignore commit lines matching <replaceable>regex</replaceable>
+ when generating the changelog.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-author</option>
+ </term>
+ <listitem>
+ <para>
+ Use user.name and user.email from
+ <application>git-config</application>(1) for changelog trailer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]multimaint-merge</option>
+ </term>
+ <listitem>
+ <para>
+ Merge commits by maintainer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--spawn-editor=<replaceable>[always|never|snapshot|release]</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Whether to spawn an editor: always, never, when doing snapshots or when
+ doing a release.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--commit-msg=</option><replaceable>msg-format</replaceable>
+ </term>
+ <listitem>
+ <para>
+ use this format string for the commit message when committing the
+ generated changelog file (when <option>--commit</option> is given).
+ Default is
+ <replaceable>Update changelog for %(version)s release</replaceable>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--commit</option>
+ </term>
+ <listitem>
+ <para>
+ Commit the generated changelog.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--customizations=</option><replaceable>customization-file</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Load Python code from <replaceable>customization-file</replaceable>.
+ At the moment, the only useful thing the code can do is define a
+ custom format_changelog_entry() function.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--dch-opt=</option><replaceable>dch-option</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Pass option to &dch; verbatim. Note that &gbp-dch; invokes &dch;
+ multiple times and the option is passed to all invocations so not all
+ &dch; options make sense here. Options may also conflict
+ with options picked by &gbp-dch;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>Snapshot mode</title>
+ <para>
+ Snapshot mode can be used for quick test and install cycles without
+ having to worry about version numbers or changelog entries.
+ </para>
+ <para>
+ When using <option>--snapshot</option> or <option>-S</option>, &gbp-dch;
+ uses a pseudo header in the Debian changelog to remember the last git
+ commit it added a changelog entry for. It also sets a version number
+ ending in
+ <replaceable>~&lt;snaspshotnumber&gt;.gbp&lt;commitid&gt;</replaceable>.
+ It automatically increments the snapshot number on subsequent invocations
+ of &gbp-dch; <option>-S</option> so that later snapshots automatically
+ have a higher version number. To leave snapshot mode, invoke &gbp-dch;
+ with the <option>--release</option> option. This removes the pseudo
+ header and unmangles the version number so the released version has a
+ higher version number than the snapshots.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>META TAGS</title>
+ <para>
+ Additional to the above options, the formatting of the commit message
+ in <filename>debian/changelog</filename> can be modified by special tags
+ (called Meta Tags)
+ given in the git commit message. Meta Tag processing can be activated via
+ the <option>--meta</option> option. The tags must start at the first column of
+ a commit message but can appear on any line.
+ They are of the form <option>Tagname</option>:
+ <replaceable>value</replaceable>. Valid Meta Tags are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>Gbp-Dch</option>: <replaceable>action</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Supported actions are: <replaceable>Ignore</replaceable>
+ which will ignore this commit when
+ generating <filename>debian/changelog</filename>,
+ <replaceable>Short</replaceable> which will only use the
+ description (the first line) of the commit message when
+ generating the changelog entry (useful
+ when <option>--full</option> is given), and
+ <replaceable>Full</replaceable> which will use the full
+ commit message when generating the changelog entry (useful
+ when <option>--full</option> is not given).
+ </para>
+ <para>
+ In addition to <option>Gbp-Dch</option>, the
+ deprecated <option>Git-Dch</option> is still supported.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>Thanks</option>: <replaceable>msg</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Add a thanks message after the commit message.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>Closes</option>: <replaceable>bugnumber</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Indicate in the <filename>debian/changelog</filename> that the bug
+ was closed by this commit. See the <option>--meta-closes</option> on
+ how to extend this for other bugtrackers.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The following git commit message:
+ </para>
+ <screen>
+ Document meta tags
+
+ so one doesn't have to consult the manual
+
+ Gbp-Dch: Short
+ Closes: #636088
+ Thanks: Raphaël Hertzog for the suggestion</screen>
+ <para>
+ Results in this <filename>debian/changelog</filename> entry:
+ </para>
+ <screen>
+ * Document meta tags.
+ Thanks to Raphaël Hertzog for the suggestion (Closes: #636088)</screen>
+ </refsect1>
+ <refsect1>
+ &man.gbp.config-files;
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <xref linkend="man.gbp.buildpackage"/,
+ <xref linkend="man.gbp.import.dsc"/,
+ <xref linkend="man.gbp.import.dscs"/,
+ <xref linkend="man.gbp.import.orig"/,
+ <xref linkend="man.gbp.conf"/,
+ &man.seealso.common;
+ <ulink url="https://honk.sigxcpu.org/cl2vcs">
+ <citetitle>Cl2vcs</citetitle></ulink>,
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &dhusername; &dhemail;
+ </para>
+ </refsect1>
+</refentry>