GENERATE_...CHANGELOG(1)
π GENERATE_...CHANGELOG(1) β keg's very own change log generator, bestie
okay so this is a page from Keg - Image Composition Tool, section 1 of the manual, and it's all about generate_recipes_changelog. she's a lil script with main character energy and she's about to make your git history cute and readable, no cap π
β¨ NAME β¨
generate_recipes_changelog β the change log generator for keg images π§
πΈ SYNOPSIS πΈ
generate_recipes_changelog [options] <logfile>
like. that's it. options, then the logfile. slay π
π¦ DESCRIPTION π¦
so generate_recipes_changelog literally generates a change log out of the git commit history of one or more keg-recipes repositories. obsessed with her honestly.
the input file? it's a source info log, and it gets generated by keg when you run it with source tracking enabled β that's the -s command line switch, iykyk π₯
now the exit statuses, because these matter fr fr:
0β a change log was generated successfully, we love a win π1β an error occurred π2β no error occurred, but the generated change log is empty π (yes, empty is its own whole situation)
π ARGUMENTS π
logfileβ a source info log file produced bykeg. that's the vibe. hand her the log, she does the rest π«Ά
π OPTIONS π
-o OUTPUT_FILEβ write the output toOUTPUT_FILE. if you omit it, it just goes tostdout, easy β¨-r PATH:REVβ set the git revision range toREVfor the repo living atPATH.
NOTE: this limits the applicable set of commits to the given revision spec. lowkey the whole point is that you can use this to select only the newer changes since a previous run of the change log generator. see EXAMPLE below, bestie π
-f FORMATβ output format, either'text'or'yaml'[default:yaml] π-m MSG_FORMATβ format spec for commit messages (check'format:<string>'inman git-log) [default:- %s]. heads up: this one is only used with the text format π-t ROOT_TAGβ useROOT_TAGfor yaml output (e.g. the image version). so like. the name at the top of everything β
π EXAMPLE π
generate_recipes_changelog -r /path/to/repo:12345678.. -t 1.1.8 log_sources
so what's happening here: this produces a YAML change log, namespaced with 1.1.8 (which is intended as a version number), and it only considers commits after hash 12345678 π₯
and here's the incremental magic: if 12345678 was the hash of the HEAD commit in the checked-out branch at /path/to/repo during the previous run of generate_recipes_changelog on the same data set, then this limits the change log to only contain newer changes. literally the way you produce incremental change logs. periodt π
the change log is gonna have this format:
1.1.8:
- change: git message subject
date: git commit UTC timestamp
details: |-
git message body
...
look at her go ππ
π AUTHOR π
public-cloud-dev@susecloud.net β yeah, that's the address on the page π«Ά
π COPYRIGHT π
2022, SUSE - Public Cloud Team
okay and the cute lil sign-off at the bottom of the original page says version 2.1.1, dated Jan 31, 2025, and it's the GENERATE_...CHANGELOG(1) page again because manpages love a symmetric moment β¨ bye bestie, go generate some change logs π
π¦ where this page comes from
- opensuse-leap 16.0: python313-kiwi-keg 2.1.1-bp160.1.9 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms