version is unmaintained. Please switch to rversion its Rust's version
A complete rewrite of versions in Rust has been release in crates.io.
Versions is an open source (GPL v3) software that checks releases and versions of your favourite programs through RSS or Atom feeds and tells you which one has been released since last check.
It can check projects from :
- github.com
- sourceforge.net
- freshcode.club
- pypi.python.org
- savanah.gnu.org
- www.freshports.org (FreeBSD packages)
- fossies.org
- repo.continuum.io
- sourcehut forge
- gitlab forge
Projects must be added to a YAML file (named by default
~/.config/versions/versions.yaml
). One can use --file=FILENAME
option to specify an alternative YAML file. The structure of this
YAML file is explained below.
Versions uses and produces text files. Those files are cache files
written into ~/.local/versions
directory. *.cache
are cache
files containing the project list and their associated version (the latest).
*.feed
are information feed cache files containing on each line
the latest parsed post of the feed.
sitename:
url: "https://the.url/to/theglobalfeed"
type: list
projects:
- list
- of
- projects
othersitename:
url: "https://by.projects.site/{}.atom"
type: byproject
projects:
- list
- name: of
regex: '([\d.]+)'
entry: last checked
- projects
There is two types of sites :
- 'list': The site has one feed with all projects in it such as freshcode.club or fossies.org
- 'byproject": The site gives access to one feed per project. brackets '{}' represents the name of the project as found in the 'project' list. Those projects can be listed directly or can take options. In the later case you have to name the project and then you can specify either a regex or an entry type option: regex is used to determine version number and entry is used to determine if versions has to print the latest entry (default behavior) or all entries from the "last checked" time.
A real life example file is provided: versions/versions.yaml
Installation of versions is not mandatory and you can invoke it directly from the command line provided you have already installed its requirements.
In pypi the project is named program_versions but is still invoked
by the command versions
:
$ sudo pip install program_versions
$ versions -v
$ git clone https://github.com/dupgit/versions.git
$ cd versions
$ sudo pip install -r requirements.txt
$ sudo python setup.py install
$ versions -v
Tip : One may want to test versions without messing its installation and may use miniconda to do so.
./version.py
should be enough to bring you the list of updated
programs since last run. To verify each day one can use the following
command in a persistent terminal (tmux, screen…):
$ watch -n 86400 ./versions.py
- Option
-h
or--help
will give you some help. - Option
-v
or--version
will tell you the version you have. - Option
-l
or--list-cache
prints the content of the local cache (ie latest known versions). - Option
-f FILENAME
or--file FILENAME
ease usage of different YAML configuration files. - Option
-d
or--debug
runs doctests and prints information about what's going on in the program.