On Fri, Sep 06, 2019 at 09:51:53PM -0700, Hong Shick Pak wrote:
Hello!
I noticed that PKGBUILD supports a 'changelog=' field to specify a file that contains release notes for that package and this is query-able via 'pacman -Qc <package>'. A lot of software these days maintain a CHANGELOG.md or NEWS file that keeps track of notable changes across versions (including pacman).
This isn't how the changelog feature was originally intended to be used. The intent was for the changelog to be a history of changes made to the distro packaging, not upstream changes. These days, Arch uses svn/git to track those changes, so use of changelog has fallen out of favor there. What you're proposing is actually two-fold: 1) changes in makepkg to allow a changelog that isn't part of the local packaging files. 2) changes in Arch to generally provide upstream changelogs.
Would it be possible for the PKGBUILD to allow users to specify a file to set for 'changelog=' relative to $srcdir?
This is non-trivial. Consider that something simple in the global scope such as: changelog=$srcdir/$pkgname-$pkgver/NEWS At the time this var is read, $srcdir isn't yet defined, and while $pkgver *is* defined, it's subject to change via a pkgver() function. You can avoid some of this pain if you insist that changelog be partof the package() function, but that would be highly unusual/annoying. Alternatives of re-sourcing the PKGBUILD from within user-functions are equally hard to swallow and probably have strange side effects.
Of all the packages installed on my system, only 'terraform' and 'powertop' have a changelog set. This change would make it extremely trivial for package maintainers to specify a changelog file if one exists for a project. I think it would be a nice QoL win for Arch users if more packages took advantage of this feature.
Let me know if there's an official RFC process for changes! I was not able to find any evidence of one.
Hong