https://github.com/dupgit/versions
Know version changes of your favorites projects in your terminal. By the way how do you track version change ?
https://github.com/dupgit/versions
atom command-line follower rss version version-checker
Last synced: 5 months ago
JSON representation
Know version changes of your favorites projects in your terminal. By the way how do you track version change ?
- Host: GitHub
- URL: https://github.com/dupgit/versions
- Owner: dupgit
- License: gpl-3.0
- Created: 2016-05-29T19:56:29.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T16:03:52.000Z (about 2 years ago)
- Last Synced: 2025-09-14T22:51:51.247Z (10 months ago)
- Topics: atom, command-line, follower, rss, version, version-checker
- Language: Python
- Homepage:
- Size: 136 KB
- Stars: 23
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**version is unmaintained. Please switch to [rversion](https://crates.io/crates/rversions/) its Rust's version**
[](https://scrutinizer-ci.com/g/dupgit/versions/?branch=master)
[](https://scrutinizer-ci.com/g/dupgit/versions/build-status/master)
[](https://travis-ci.org/dupgit/versions)
[](https://scrutinizer-ci.com/g/dupgit/versions/?branch=master)
# Description
A complete rewrite of versions in Rust has been release in
[crates.io](https://crates.io/crates/rversions/).
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.
# YAML file structure
```
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](versions/versions.yaml)
# Installation
Installation of versions is not mandatory and you can invoke it
directly from the command line provided you have already installed
its requirements.
## Pypi
In pypi the project is named program_versions but is still invoked
by the command `versions` :
```
$ sudo pip install program_versions
$ versions -v
```
## From source
```
$ 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](https://conda.io/miniconda.html) to do so.
# Usage
`./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.
# Links of interest
* [https://release-monitoring.org/](https://release-monitoring.org/)
* [https://wiki.debian.org/debian/watch](https://wiki.debian.org/debian/watch)
* [http://semver.org/](http://semver.org/)