fedora: Introduce own rpkg macro for changelog
git_dir_changelog is useful in theory, but it requires pairs of annotated tags, which should be generated by rpkg itself to make any sense, implying a relatively heavyweight interaction whenever I want to push a new package version. Also, the default content of the changelog entries include the full list of changes, but the Fedora Packaging Guidelines specifically mention that: [t]hey must never simply contain an entire copy of the source CHANGELOG entries. We don't have a CHANGELOG file, but the full git history is conceptually equivalent for this purpose, I guess. Introduce our own passt_git_changelog() rpkg macro, building changelog entries, using tags in the form DATE-SHA, where DATE is an ISO 8601 date representation, and SHA is a short (7-digits) form of the head commit at a given moment (git push). These changelog entries mention, specifically, changes to the packaging information itself (entries under contrib/fedora), and simply report a link to cgit for the ranges between tags. Reported-by: Benson Muite <benson_muite@emailplus.org> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
d0c3f8fa9b
commit
41b5ff0a14
2 changed files with 35 additions and 1 deletions
|
@ -93,4 +93,4 @@ semodule -r pasta 2>/dev/null || :
|
|||
%{_datadir}/selinux/packages/%{name}/pasta.pp
|
||||
|
||||
%changelog
|
||||
{{{ git_dir_changelog }}}
|
||||
{{{ passt_git_changelog }}}
|
||||
|
|
|
@ -14,3 +14,37 @@
|
|||
function git_version {
|
||||
printf "0.git.%s.%s" "$(date -u -I | tr - _)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
function passt_git_changelog_entry {
|
||||
__from="${2}"
|
||||
__to="${1}"
|
||||
|
||||
[ -z "${__from}" ] && __from="$(git rev-list --max-parents=0 HEAD)"
|
||||
|
||||
__date="$(git log --pretty="format:%cI" "${__to}" -1)"
|
||||
__author="$(git log -1 --pretty="format:%an <%ae>" ${__to} -- contrib/fedora)"
|
||||
|
||||
printf "* %s %s - %s\n" "$(date "+%a %b %e %Y" -d "${__date}")" "${__author}" "0.git.${1}-0"
|
||||
|
||||
IFS='
|
||||
'
|
||||
for l in $(git log ${__from}..${__to} --pretty=format:"- %s" -- contrib/fedora); do
|
||||
printf "%s%s\n" '-' "${l#*:}"
|
||||
done
|
||||
unset IFS
|
||||
|
||||
printf "%s Upstream changes: https://passt.top/passt/log/?qt=range&q=%s..%s\n\n" '-' "${__from}" "${__to}"
|
||||
}
|
||||
|
||||
function passt_git_changelog_pairs {
|
||||
while [ -n "${2}" ]; do
|
||||
passt_git_changelog_entry "${1}" "${2}"
|
||||
shift 2
|
||||
done
|
||||
|
||||
passt_git_changelog_entry "${1}" ""
|
||||
}
|
||||
|
||||
function passt_git_changelog {
|
||||
passt_git_changelog_pairs $((git tag --sort="-v:refname"|tail -n+2; git tag --sort="-v:refname") | sort -r)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue