103 lines
4.5 KiB
Markdown
103 lines
4.5 KiB
Markdown
# gitdch
|
|
|
|
Simple python script using GitPython library to generate debian
|
|
changelog file from git commit history. Each existing tags is
|
|
considered as a release version and current working version is
|
|
numbered using ''git describe --always --tags'' command.
|
|
|
|
# Installation
|
|
|
|
## Dependencies
|
|
```
|
|
apt install git python3-git
|
|
```
|
|
|
|
## Using git
|
|
```
|
|
git clone https://gogs.zionetrix.net/bn8/gitdch.git /usr/local/src/gitdch
|
|
ln -s /usr/local/src/gitdch/gitdch /usr/local/bin/gitdch
|
|
```
|
|
|
|
## Using wget
|
|
```
|
|
wget -O /usr/local/bin/gitdch https://gogs.zionetrix.net/bn8/gitdch/raw/master/gitdch
|
|
chmod +x /usr/local/bin/gitdch
|
|
```
|
|
|
|
## Using curl
|
|
```
|
|
curl -o /usr/local/bin/gitdch https://gogs.zionetrix.net/bn8/gitdch/raw/master/gitdch
|
|
chmod +x /usr/local/bin/gitdch
|
|
```
|
|
|
|
# Usage
|
|
```
|
|
usage: gitdch [-h] [-d] [-v] [-w] [-l LOGFILE] [-q] [-p GIT_PATH] [-o OUTPUT] [-A]
|
|
[-n PACKAGE_NAME] [-V VERSION] [--version-suffix VERSION_SUFFIX]
|
|
[-c CODE_NAME] [-u URGENCY] [-N MAINTAINER_NAME] [-E MAINTAINER_EMAIL]
|
|
[-R RELEASE_NOTES] [--revision REVISION] [-C CLEAN_TAGS_REGEX]
|
|
[-x EXCLUDE]
|
|
|
|
Generate Debian package changelog from git (version: 0.0)
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
-d, --debug Show debug messages
|
|
-v, --verbose Show verbose messages
|
|
-w, --warning Show warning messages
|
|
-l LOGFILE, --log-file LOGFILE
|
|
Log file path
|
|
-q, --quiet Quiet mode: do not log on console (only if log file is
|
|
provided)
|
|
-p GIT_PATH, --path GIT_PATH
|
|
Git repository path (default: ./)
|
|
-o OUTPUT, --output OUTPUT
|
|
Generated Debian changelog output path (default: stdout)
|
|
-A, --append Append mode: if the output changelog file already exists,
|
|
append generated changelog lines at the begining of the file
|
|
(optional, default: overwriting the file)
|
|
-n PACKAGE_NAME, --package-name PACKAGE_NAME
|
|
Package name
|
|
-V VERSION, --version VERSION
|
|
Currrent version (default: autodetected using git describe
|
|
--always --tags)
|
|
--version-suffix VERSION_SUFFIX
|
|
Suffix for autodetected version
|
|
-c CODE_NAME, --code-name CODE_NAME
|
|
Debian code name (default: unstable)
|
|
-u URGENCY, --urgency URGENCY
|
|
Package urgency (default: medium)
|
|
-N MAINTAINER_NAME, --maintainer-name MAINTAINER_NAME
|
|
Maintainer name (default: last commit author name)
|
|
-E MAINTAINER_EMAIL, --maintainer-email MAINTAINER_EMAIL
|
|
Maintainer email (default: last commit author email)
|
|
-R RELEASE_NOTES, --release-notes RELEASE_NOTES
|
|
Specify an optional Markdown release notes output path
|
|
--revision REVISION Specify the revision to use to generate the changelog (see
|
|
git-rev-parse for viable options, optional, default:
|
|
generate the changelog with all commits of the current
|
|
branch)
|
|
-C CLEAN_TAGS_REGEX, --clean-tags-regex CLEAN_TAGS_REGEX
|
|
Clean tags regex: you could specify regex to clean tag names
|
|
when computing package versions. For instance, to drop a
|
|
"-eeXXX" suffix of tag names, specify -C "\-ee[0-9]{3}$"
|
|
(optional, multiple regex allowed)
|
|
-x EXCLUDE, --exclude EXCLUDE
|
|
Commit exclusion regex: you could specify regex to exclude
|
|
some commits from generated changelog entries. For instance,
|
|
to exclude commits with message starting with "CI: ",
|
|
specify -x "^CI: " (optional, multiple regex allowed)
|
|
```
|
|
|
|
## Copyright
|
|
|
|
Copyright (c) 2013-2022 Benjamin Renard <brenard@zionetrix.net>
|
|
|
|
## License
|
|
|
|
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|