On Thu, 29 Jan 2015 at 17:06:43, Georg Altmann wrote:
[...] On 29.01.2015 14:22, Bardur Arantsson wrote:
If the problem here is that it would be a chore to do this for maintainers for every X.Y -> X.(Y+1) upgrade, then maybe Arch package descriptions could grow a field or flag to handle such things semi-automatically? Maybe something as simple as "if the version number is about to change in *this way*, then warn loudly using *this message*".
Wouldn't that be a sensible way? The increased overhead for the maintainer would be to tick a flag in addition to the version bump. In the case of postgresql this would be a as simple as
if (oldMajor < newMajor || ((oldMajor == newMajor) && (oldMinor < newMinor)) { printUpgradeWarning(); }
Of course the condition would have to be serialized in the package meta-data some way. I have only very limited knowledge on the pacman internals. Maybe someone can come up with an estimate how big the effort would be to implement this. [...]
It isn't that easy. You cannot simply tick a flag, you need to maintain a variable that keeps track of the last version that caused a warning. Otherwise, there's no way to warn a user who upgrades straight from 1.0.0 to 2.1.0 when there were intermediate releases 1.1.0 and 2.0.0 and some change between 1.1.0 and 2.0.0 that is worth a warning. And as a matter of fact, that is what we already do in a lot of packages. You can have a look at the install scriptlets of btrfs-progs, cups, dhcp, dmraid, dovecot, ebtables, intel-ucode, linux, lirc, lvm2, mariadb, nginx, openvpn, systemd, varnish, just to get an idea of what it looks like. As I mentioned before, adding a similar check to PostgreSQL might be a good idea but I, as a non-PostgreSQL user, cannot judge whether that works and is worthwhile.