FS#12359 - Still no changelogs in Arch packages.

Attached to Project: Arch Linux
Opened by Wiktor Grebla. (greblus) - Saturday, 06 December 2008, 06:47 GMT
Last edited by Andrea Scarpino (BaSh) - Tuesday, 14 April 2009, 21:50 GMT
Task Type Bug Report
Category System
Status Closed
Assigned To Simo Leone (neotuli)
Aaron Griffin (phrakture)
Dan McGee (toofishes)
Architecture All
Severity Low
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

699 of all 764 packages installed on my computer do not provide a Changelog.

If arch=() or other package information are enforced during package building, why not do the same
with the Changelogs?

It's annoying like hell. For example today, new version of xorg-server is available, but I've no idea why. I'm subscribed to arch-devel, but I don't see any comments reg. this update. One can only guess what's changed from the svn at repos.archlinux.org but sometimes it says nothing.

This task depends upon

Closed by  Andrea Scarpino (BaSh)
Tuesday, 14 April 2009, 21:50 GMT
Reason for closing:  Upstream
Comment by Glenn Matthys (RedShift) - Saturday, 06 December 2008, 10:13 GMT
There's not much going on in the PKGBUILDs. Just follow the upstream changelogs.
Comment by Pierre Schmitz (Pierre) - Saturday, 06 December 2008, 11:13 GMT
Well, makepkg and pacman support embedded changelogs. But as long as there is no easy way to autogenerate those I fear this feature will rarly be used.
Comment by Wiktor Grebla. (greblus) - Saturday, 06 December 2008, 13:47 GMT
Upsream changelogs won't tell me what's changed in the latest rebuild of xorg-server 1.5.3-3.

Besides It's not about copying Changelogs from the upstream releases. It's about one simple line saying: I've fixed this and that and it's no longer broken.
Comment by Glenn Matthys (RedShift) - Saturday, 06 December 2008, 13:56 GMT
Have you considered the fact that the PKGBUILDs haven't been changed at all (aside from the version numbers)? If you really want to check the differences, you can browse the SVN tree here: http://repos.archlinux.org/viewvc.cgi/
Comment by Aaron Griffin (phrakture) - Sunday, 07 December 2008, 04:17 GMT
Hmm, I'd like a way to automate this, but the big problem is that we'd need to commit the Changelogs to SVN. So the usage pattern is weird:

a) Make changes, build package, test, commit
b) Upload built package to server

If we generate the changelog AFTER we do the commit, we need to rebuild the package. Which is just a headache.

Here's a VERY hacky potential solution: We patch devtools to do the following:
After commit, generate the ChangeLog file via "svn log PKGBUILD > ChangeLog"
We commit the ChangeLog with -m "devtools auto-generated ChangeLog"
We use bsdtar to replace or add the ChangeLog file in the package
Continue with upload as normal

This would work but it's VERY hackish. Any better ideas?
Comment by Gavin Bisesi (Daenyth) - Friday, 12 December 2008, 15:00 GMT
That sounds pretty stupid if you'll excuse me. I think it's fine as it is. IMO, changelogs in the PKGBUILDs have no real purpose. As others have said, if you want the program changelog, look upstream. If you want the PKGBUILD's change history, look at the svn logs.

-1 from me.
Comment by Roman Kyrylych (Romashka) - Saturday, 27 December 2008, 15:13 GMT
I think changelogs in packages should definetely NOT contain upstream changes, and not useless "* v1.2.3-1: upstream update" either.
IMO the only valid changes worth mentioning in embedded changelog are something like:
* v1.2.3-2: changed permissions for /dev/xyz to 600
added foobar group
some-fix.patch added
for example see package changelogs in Debian.
(yes, I know these changes can be seen in our SVN anyway, and info about important changes can be echoed in post_install)
Comment by Aaron Griffin (phrakture) - Monday, 29 December 2008, 22:56 GMT
I have an idea that may help us here. We have a newly donated machine from SevenL networks slated to be a build machine. I plan on doing something like the following (may be too much info for those unfamiliar with the way we manage the SVN repo):

* Maintainers commit changes to trunk
* Build machine picks up trunk changes, generates a changelog via 'svn log PKGBUILD > ChangeLog' and builds the package for each architecture.
* If successful, package is pushed to gerolde, containing the generated ChangeLog.

This will do a few things:
a) automate the build step, making Maintainers' jobs easier
b) give us actual ChangeLogs, assuming we enforce better commit messages (can be done afterwards)
c) give us namcap reports for packages and PKGBUILD files for all to see

I know this is going off on a little tangent, but it would definitely solve this issue (and this issue is what gave me the idea)

Opinions?
Comment by Allan McRae (Allan) - Tuesday, 30 December 2008, 02:26 GMT
My only comments it to do with actual testing of a package before it is uploaded. With this scheme, maintainers would need to build a package and test it, then commit it to trunk only to have it rebuilt again and the untested build uploaded.
Comment by Aaron Griffin (phrakture) - Tuesday, 30 December 2008, 19:29 GMT
Or it could possibly be stuck in a staging area somewhere for us to test first...
Comment by Ivan Yurasov (vanDake) - Tuesday, 10 February 2009, 14:42 GMT
And will be very informative if last entry of changelog is printed every time (or put enable|disable option in /etc/pacman.conf) when I do "pacman -Suy"
Comment by Greg (dolby) - Tuesday, 10 February 2009, 14:55 GMT
Please make a feature request about this in the pacman section of the bugtracker (if there isnt one already)
Comment by Aaron Griffin (phrakture) - Tuesday, 10 February 2009, 15:51 GMT
Ok, so here's what we'd need to make this complete:
a) a simple way to generate a changelog that isn't too involved. Some of use have 300+ packages, so if changelogs are to be manual, then no one will do it.
b) should we require a packager to add a commit message? devtools adds a simple "upgpkg X.Y.Z" line if no message is specified
c) should we *force* packagers to include a changelog?
Comment by Gavin Bisesi (Daenyth) - Tuesday, 10 February 2009, 16:08 GMT
I really don't think this is needed... upstream information should be looked for upstream, packaging info is in the SVN log. I still don't get how this is useful information to keep in the package files.
Comment by Aaron Griffin (phrakture) - Tuesday, 10 February 2009, 16:12 GMT
Well, I could see how it would be useful if you are running Arch on a more critical machine (i.e. archlinux.org). If, say, php gets upgraded and I see "removed foobar plugin" which we were using, then I know what to do. It's easy to say "packaging info is in the SVN log, but accessing the SVN log isn't as straightforward. What I'd like to do is get that packaging info into the package itself. All user get the package, but not all of them have svn checked out.
Comment by Glenn Matthys (RedShift) - Tuesday, 10 February 2009, 16:18 GMT
Major changes like that are usually echo'ed in the post-install scripts.
Comment by Aaron Griffin (phrakture) - Tuesday, 10 February 2009, 16:22 GMT
Sure. But that's simply because there was no better method to indicate those changes. It's simply precedent. It makes technical sense to move these items which are "echo"d in a scriptlet to a file that lists all changes.
Comment by Abhishek Dasgupta (abhidg) - Saturday, 11 April 2009, 04:45 GMT
After generating the changelog, it can be integrated into the
package easily using makepkg -Rf, no need to use bsdtar, etc.

Loading...