# `gbp.scripts.dch` module documentation

Part of `gbp.scripts`

Generate Debian changelog entries from Git commit messages

Variable | user_customizations | Undocumented
Variable | snapshot_re | Undocumented
Function | guess_version_from_upstream | Guess the version based on the latest version on the upstream branch. If the version in dch is already higher this function returns None.
Function | get_author_email | Get author and email from git configuration
Function | fixup_section | Fixup the changelog header and trailer's committer and email address
Function | snapshot_version | Get the current release and snapshot version.
Function | mangle_changelog | Mangle changelog to either add or remove snapshot markers
Function | do_release | Remove the snapshot header and set the distribution
Function | do_snapshot | Add new snapshot banner to most recent changelog section. The next snapshot number is calculated by eval()'ing next_snapshot.
Function | parse_commit | Parse a commit and return message, author, and author email
Function | guess_documented_commit | Guess the last commit documented in the changelog from the snapshot banner, the last tagged version or the last point the changelog was touched.
Function | has_snapshot_banner | Whether the changelog has a snapshot banner
Function | get_customizations | Undocumented
Function | process_options | Undocumented
Function | process_editor_option | Determine text editor and check if we need it
Function | changelog_commit_msg | Undocumented
Function | create_changelog | Undocumented
Function | maybe_create_changelog | Get the changelog or create a new one if it does not exist yet
Function | build_parser | Undocumented
Function | parse_args | Undocumented
Function | main | Undocumented

user_customizations =
Undocumented
(type: `Dict`)
snapshot_re =
Undocumented
def guess_version_from_upstream(repo, upstream_tag_format, upstream_branch, cp=None):

Guess the version based on the latest version on the upstream branch. If the version in dch is already higher this function returns None.

def get_author_email(repo, use_git_config):

Get author and email from git configuration

def fixup_section(repo, use_git_author, options, dch_options):

Fixup the changelog header and trailer's committer and email address

It might otherwise point to the last git committer instead of the person creating the changelog

This also applies --distribution and --urgency options passed to gbp dch

def snapshot_version(version):

Get the current release and snapshot version.

Format is <debian-version>~<release>.gbp<short-commit-id>

    >>> snapshot_version('1.0-1')
    ('1.0-1', 0)
    >>> snapshot_version('1.0-1~1.test0')
    ('1.0-1~1.test0', 0)
    >>> snapshot_version('1.0-1~2.gbp1234')
    ('1.0-1', 2)

def mangle_changelog(changelog, cp, snapshot=""""""):

Mangle changelog to either add or remove snapshot markers

Parameters | snapshot | SHA1 if snapshot header should be added/maintained, empty if it should be removed (type: `str`)

def do_release(changelog, repo, cp, use_git_author, dch_options):

Remove the snapshot header and set the distribution

def do_snapshot(changelog, repo, next_snapshot):

Add new snapshot banner to most recent changelog section. The next snapshot number is calculated by eval()'ing next_snapshot.

def parse_commit(repo, commitid, opts, last_commit=(False)):

Parse a commit and return message, author, and author email

def guess_documented_commit(cp, repo, tagformat):

Guess the last commit documented in the changelog from the snapshot banner, the last tagged version or the last point the changelog was touched.

Parameters | cp | the changelog
| repo | the git repository
| tagformat | the format for Debian tags
Returns | the commit that was last documented in the changelog (type: `str`)
Raises | GbpError | In case we fail to find a commit to start at

def has_snapshot_banner(cp):

Whether the changelog has a snapshot banner

def get_customizations(customization_file):
Undocumented
def process_options(options, parser):
Undocumented
def process_editor_option(options):

Determine text editor and check if we need it

def changelog_commit_msg(options, version):
Undocumented
def create_changelog(repo, source, options):
Undocumented
def maybe_create_changelog(repo, source, options):

Get the changelog or create a new one if it does not exist yet

def build_parser(name):
Undocumented
def parse_args(argv):
Undocumented
def main(argv):
Undocumented