Package: gcg
READMEGCGstands forGit Changelog Generator.RationaleKeeping a reasonable changelog is an invaluable asset for everyone who tries
to track progress of a project or figure out whether their issue
has or has not be fixed.In Linux world, such changelogs are often embedded into packages, for
example RPM has an optional section in thespecfile (%changelog)
and Debian versioning goes even further - it explicitlydependson a proper version information inside the changelog to build
and maintain the package(s).There are good reasons why the log is ideally maintained manually,
you can read all about it athttps://keepachangelog.com/en/That said, it’s not all black and white. A couple of questions:what if you spend a lot of work making sure your commit descriptions
are telling the story; should this work be disregarded and repeated
in the changelog?what if the reality kicks in, project members keep forgetting to update
the changelog (or it is “yet another menial task”)?what if you need to maintain the log in multiple formats?If advice from keepchangelog.com doesn’t address your questions,
you don’t want to tie yourself to a specific Git manager (like  Github,
Gitlab, Bitbucket) and as a project you’re committed to maintain sensible
Git commit descriptions - gcg might be just the fit for you.ReleasesAt this point,gcgofficial packages are created and maintained only for
Python; they’re available via PyPI index:https://pypi.org/project/gcgThat said, unofficial packages for most common distribution formats can
be obtained from the following repositories:RPM:https://bintray.com/weakcamel/yum-ossDEB:https://bintray.com/weakcamel/deb-ossTo use the DEB packages from those repositories, you need to install
the [Bintray GPG key](https://bintray.com/user/downloadSubjectPublicKey?username=weakcamel);
otherwise yourapt-get updatewill fail.For example:# either of:
curl -qL https://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add -

curl -qL https://bintray.com/user/downloadSubjectPublicKey?username=weakcamel | sudo apt-key add -PIPOnly tagged packages are uploaded tohttps://pypi.orgindex,
test versions will be made available underhttps://test.pypi.org/manage/project/gcg/releases/TravisCI builds try to ensure the version (version.txt) is unique for
each CI build by adding.dev<TRAVIS_BUILD_NUMBER>suffix
for development versions of the package.TipSee also:https://packaging.python.org/tutorials/installing-packages/BuildPrerequisites:Base:python2.7pipvirtualenvTo build RPMs:rpmbuildTo build DEB packages you need to set up Debian toolchain, which is not
in scope of this README.BuildWe recommend you build this package usingvirtualenv.To set it up, run for example:virtualenv venv
source venv/bin/activateTo test & build a binary Python package, use:pythonsetup.pytestbdistRPM:pythonsetup.pytestbdist_rpmDEB:pythonsetup.py--command-packages=stdeb.commandbdist_debUsageTo see available options, run as:$gcg--helpExisting templatesThegcgmodule of the application comes with some default Jinja2
templates to render the changelog information.Current implementation does not yet support using non-standard output
templates. The anticipated design would to be pass a template directory
as a command-line argument, that’s still to be determined though.DEB templateBased onhttps://www.debian.org/doc/debian-policy/#s-dpkgchangelogRPM templateBased on one of allowed formats listed athttps://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Changelogs