[Slackbuilds-users] Tracking version releases

Christoph Willing chris.willing at iinet.net.au
Mon Jun 19 23:56:01 UTC 2017


On 12/05/17 15:15, Christoph Willing wrote:
> Hi all,
> 
> I don't have a huge number of SlackBuilds to maintain but enough that
> its easy to lose track of upstream development and know when new
> versions have been released. Occasionally I do a find of .info files
> containing my name in the SBo file tree and go to each of the relevant
> websites looking for new releases. Sometimes a user sends me email about
> an update. Some repos can send email notifications, some have RSS feeds
> etc., but there doesn't seem to be a consistent mechanism for this sort
> of thing. There has to be a better way, so does anyone already have a
> better way to keep track before I write something to do it?
> 
> Well, before waiting for a reply to that question, I already started
> writing a tool of my own to do that. It's not quite complete but close
> enough - my 6 SlackBuild updates this week were all due to prompting
> while developing/testing/documenting the thing.
> 
> The new tool can currently deal with projects at github, sourceforge,
> pypi & libreoffice. It's been written to enable new  repo modules to be
> added fairly easily. My real question is whether anyone knows of other
> repositories that should be included (and preferably have some sort of
> API available for access), so that modules for them can be added?
> 
> I guess you should still let me know if this has already been done
> before I spend too much more time on it.
> 
> BTW its at:
>     https://github.com/cwilling/pvc
> 

Thanks for everyone's input on this - much of it has been incorporated.

It's differs from repology in being a command line tool (rather than
browser tool) and dealing with source code repository releases (rather
than various distro's package releases).

The built in modules for various repository types are currently:
alsa, freedesktop, generic, github, gnu, hackage, http, ibiblio,
iisland, libreoffice, metacpan, mirrorservice, pypi, samba, savannah,
sbdirectlinks, sgi, sourceforge & xiph.

This means projects from any of those repos can be trivially added to
your watch list with something like:
	pvc add -p pvc -t github -u cwilling/pvc
which adds the "pvc" project at github to my default watch list. I can
then check it's individual status at any time with:
	pvc check pvc
or check the entire default watch list with :
	pvc check

Additional user defined modules for other repos are supported, made
easier by provision of a template to work from.

Multiple watch lists are supported. There's always a default watch list,
but any number of additional watch lists can be easily configured. I use
the default watch list to track the upstream releases  of SBo scripts
which I maintain.

Out of interest (and testing purposes), I made another watch list to
track upstream releases of packages in -current's "ap" directory. As a
demonstration, here's what happens when checking that watch list (named
"set_ap"). In this case I've added timing too:

chris at d6:~$ time pvc check -w set_ap
Project flac  = 1.3.2
Project cdparanoia  = 10.2
Project most  = 5.0.0a
******* gphoto2 local version = 2.5.11 remote version = 2_5_14
Project acct  = 6.6.3
Project a2ps  = 4.14
******* diffutils local version = 3.5 remote version = 3.6
Project htop  = 2.0.2
Project lsscsi  = 0.28
Project enscript  = 1.6.6
Project bpe  = 2.01.00
Project cdrdao  = 1.2.3
Project dc3dd  = 7.2.646
Project cdrtools  = 3.01
Project ghostscript-fonts-std  = 8.11
******* gutenprint local version = 5.2.12 remote version = 5.2.13
Project dmapi  = 2.2.12
Project madplay  = 0.15.2b
Project joe  = 4.4
******* hplip local version = 3.17.4 remote version = 3.17.6
******* mpg123 local version = 1.23.4 remote version = 1.25.0
Project alsa-utils  = 1.1.4
Project radeontool  = 1.6.3
Project pamixer  = 1.3.1
Project vorbis-tools  = 1.4.0
Project groff  = 1.22.3
Project pm-utils  = 1.4.1
Project screen  = 4.5.1
******* dmidecode local version = 3.0 remote version = 3.1
Project nano  = 2.8.4
******* tmux local version = 2.4 remote version = 2.5
Project usbmuxd  = 1.1.0
Project normalize  = 0.7.7
Project sox  = 14.4.2
Project ksh93  = 2012-08-01
Project texinfo  = 6.3
Project sqlite  = 3190300
Project workbone  = 2.40
Project squashfs-tools  = 4.3
******* vim local version = 8.0.0600 remote version = 8.0.0648
Project terminus-font  = 4.40
******* cups-filters local version = 1.13.5 remote version = 1.14.0
Project seejpeg  = 1.10
Project sudo  = 1.8.20p2
Project rzip  = 2.1
Project xfsdump  = 3.1.6
Project zsh  = 5.3.1
Project jove  = 4.16.0.73
Project bc  = 1.07.1
******* soma local version = 2.10.4 remote version = 2.11.0
Project sc  = 7.16
Project ddrescue  = 1.22
Project vbetool  = 1.2.2
Project itstool  = 2.0.2
Project ispell  = 3.4.00
******* ghostscript local version = 9.20 remote version = 9.21
Project moc  = 2.5.2
Project libx86  = 1.1
******* mariadb local version = 10.0.30 remote version = 10.2.6
Project lsof  = 4.89
******* cgmanager local version = 0.39 remote version = 0.41
Project qpdf  = 6.0.0
******* sysstat local version = 11.2.1.1 remote version = 11.5.6
Project mc  = 4.8.19
******* rpm local version = 4.12.0.1 remote version = 4.13.0.1
Project jed  = 0.99-19
******* diffstat local version = 1.60 remote version = 1.61
******* lxc local version = 2.0.1 remote version = 2.0.8
Project cups  = 2.2.3
******* powertop local version = 2.8 remote version = 2.9
Project dvd+rw-tools  = 7.1

real    0m17.810s
user    0m0.778s
sys     0m0.047s


>From that output, it easy to see which projects have had new releases. I
don't track -current myself but I've been finding this really useful for
my SBo packages - I just run 'pvc check' each morning and I can
immediately see whether any project has been updated in the last day
(well, since last time I updated).

Feel free to try it out - any feedback welcome:
    https://github.com/cwilling/pvc

chris

BTW some GitHub projects have lots (and lots) of pages of releases which
pvc needs to look through for the latest release. Sometimes that is
necessary but often it is not. For instance the vim/vim project has 192
pages or releases, each entailing 2-3 seconds to find & download, even
though the desired result is on the first page. In such cases, please
read the documentation about configuring a "multipagelimit" for that
project, otherwise wait a long time for useless data to be downloaded.


More information about the SlackBuilds-users mailing list