## gitchangelog.rc for git-upstream
##
## Refer to the reference config file for full explanation:
##   https://github.com/vaab/gitchangelog/blob/master/gitchangelog.rc.reference

## ``ignore_regexps`` is a line of regexps
##
## Any commit having its full commit message matching any regexp listed here
## will be ignored and won't be reported in the changelog.
##
ignore_regexps = [
        r'@minor', r'!minor',
        r'@cosmetic', r'!cosmetic',
        r'@refactor', r'!refactor',
        r'@wip', r'!wip',
        r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[p|P]kg:',
        r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[d|D]ev:',
        r'^(.{3,3}\s*:)?\s*[fF]irst commit.?\s*$',
  ]


## ``section_regexps`` is a list of 2-tuples associating a string label and a
## list of regexp
##
## Commit messages will be classified in sections thanks to this. Section
## titles are the label, and a commit is classified under this section if any
## of the regexps associated is matching.
##
section_regexps = [
    ('New', [
	r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
     ]),
    ('Changes', [
        r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
     ]),
    ('Fix', [
        r'^[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
     ]),

    ('Other', None ## Match all lines
     ),

]


## ``body_process`` is a callable
##
## This callable will be given the original body and result will
## be used in the changelog.
##
body_process = ReSub(r'.*', r'')  | strip

## ``subject_process`` is a callable
##
## This callable will be given the original subject and result will
## be used in the changelog.
##
subject_process = (strip |
    ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') |
    ucfirst | final_dot)


## ``tag_filter_regexp`` is a regexp
##
## Tags that will be used for the changelog must match this regexp.
##
tag_filter_regexp = r'^[0-9]+\.[0-9]+(\.[0-9]+)?$'


## ``unreleased_version_label`` is a string
##
## This label will be used as the changelog Title of the last set of changes
## between last valid tag and HEAD if any.
##
unreleased_version_label = "%%version%% (unreleased)"


## ``output_engine`` is a callable
##
## This will change the output format of the generated changelog file
##
output_engine = rest_py


## ``include_merge`` is a boolean
##
## This option tells git-log whether to include merge commits in the log.
## The default is to include them.
##
include_merge = False

## ``include_author`` is a boolean
##
## This option tells git-log whether to include the author information from
## commits in the log. Default is to include.
##
include_author = False

## ``space_commit_lines`` is a boolean
##
## This option tells git-log whether to add a newline after each commit
## body. The default is to insert a newline.
##
space_commit_lines = False
