{"id":37529209,"url":"https://github.com/dupgit/versions","last_synced_at":"2026-01-16T08:29:04.036Z","repository":{"id":57455001,"uuid":"59961215","full_name":"dupgit/versions","owner":"dupgit","description":"Know version changes of your favorites projects in your terminal. By the way how do you track version change ?","archived":false,"fork":false,"pushed_at":"2024-04-10T16:03:52.000Z","size":139,"stargazers_count":23,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-14T22:51:51.247Z","etag":null,"topics":["atom","command-line","follower","rss","version","version-checker"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dupgit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-29T19:56:29.000Z","updated_at":"2024-04-01T20:24:07.000Z","dependencies_parsed_at":"2022-09-04T10:42:13.894Z","dependency_job_id":null,"html_url":"https://github.com/dupgit/versions","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/dupgit/versions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dupgit%2Fversions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dupgit%2Fversions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dupgit%2Fversions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dupgit%2Fversions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dupgit","download_url":"https://codeload.github.com/dupgit/versions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dupgit%2Fversions/sbom","scorecard":{"id":359958,"data":{"date":"2025-08-11","repo":{"name":"github.com/dupgit/versions","commit":"76fe699b3777e0992e51684ee90b3f823a11ddf4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T10:35:16.241Z","repository_id":57455001,"created_at":"2025-08-18T10:35:16.241Z","updated_at":"2025-08-18T10:35:16.241Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","command-line","follower","rss","version","version-checker"],"created_at":"2026-01-16T08:29:03.532Z","updated_at":"2026-01-16T08:29:04.028Z","avatar_url":"https://github.com/dupgit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**version is unmaintained. Please switch to [rversion](https://crates.io/crates/rversions/) its Rust's version**\n\n\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/dupgit/versions/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/dupgit/versions/?branch=master)\n[![Scrutinizer Build Status](https://scrutinizer-ci.com/g/dupgit/versions/badges/build.png?b=master)](https://scrutinizer-ci.com/g/dupgit/versions/build-status/master)\n[![Travis Build Status](https://travis-ci.org/dupgit/versions.svg?branch=master)](https://travis-ci.org/dupgit/versions)\n[![Scrutinizer Code Coverage](https://scrutinizer-ci.com/g/dupgit/versions/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/dupgit/versions/?branch=master)\n\n# Description\n\nA complete rewrite of versions in Rust has been release in\n[crates.io](https://crates.io/crates/rversions/).\n\nVersions is an open source (GPL v3) software that checks releases and\nversions of your favourite programs through RSS or Atom feeds and tells\nyou which one has been released since last check.\n\nIt can check projects from :\n* github.com\n* sourceforge.net\n* freshcode.club\n* pypi.python.org\n* savanah.gnu.org\n* www.freshports.org (FreeBSD packages)\n* fossies.org\n* repo.continuum.io\n* sourcehut forge\n* gitlab forge\n\nProjects must be added to a YAML file (named by default\n`~/.config/versions/versions.yaml`). One can use `--file=FILENAME`\noption to specify an alternative YAML file. The structure of this\nYAML file is explained below.\n\nVersions uses and produces text files. Those files are cache files\nwritten into `~/.local/versions` directory. `*.cache` are cache\nfiles containing the project list and their associated version (the latest).\n`*.feed` are information feed cache files containing on each line\nthe latest parsed post of the feed.\n\n\n# YAML file structure\n\n```\nsitename:\n  url: \"https://the.url/to/theglobalfeed\"\n  type: list\n  projects:\n    - list\n    - of\n    - projects\n\nothersitename:\n  url: \"https://by.projects.site/{}.atom\"\n  type: byproject\n  projects:\n    - list\n    - name: of\n      regex: '([\\d.]+)'\n      entry: last checked\n    - projects\n```\n\nThere is two types of sites :\n\n* 'list': The site has one feed with all projects in it such as\n   freshcode.club or fossies.org\n* 'byproject\": The site gives access to one feed per project.\n   brackets '{}' represents the name of the project as found in\n   the 'project' list. Those projects can be listed directly or\n   can take options. In the later case you have to name the\n   project and then you can specify either a regex or an entry\n   type option: regex is used to determine version number and\n   entry is used to determine if versions has to print the latest\n   entry (default behavior) or all entries from the \"last checked\"\n   time.\n\nA real life example file is provided: [versions/versions.yaml](versions/versions.yaml)\n\n\n# Installation\n\nInstallation of versions is not mandatory and you can invoke it\ndirectly from the command line provided you have already installed\nits requirements.\n\n## Pypi\n\nIn pypi the project is named program_versions but is still invoked\nby the command `versions` :\n\n```\n$ sudo pip install program_versions\n$ versions -v\n```\n\n## From source\n\n```\n$ git clone https://github.com/dupgit/versions.git\n$ cd versions\n$ sudo pip install -r requirements.txt\n$ sudo python setup.py install\n$ versions -v\n```\n\nTip : One may want to test versions without messing its installation and\n      may use [miniconda](https://conda.io/miniconda.html) to do so.\n\n\n# Usage\n\n`./version.py` should be enough to bring you the list of updated\nprograms since last run. To verify each day one can use the following\ncommand in a persistent terminal (tmux, screen…):\n\n```\n$ watch -n 86400 ./versions.py\n```\n\n* Option `-h` or `--help` will give you some help.\n* Option `-v` or `--version` will tell you the version you have.\n* Option `-l` or `--list-cache` prints the content of the local cache\n  (ie latest known versions).\n* Option `-f FILENAME` or `--file FILENAME` ease usage of different\n  YAML configuration files.\n* Option `-d` or `--debug` runs doctests and prints information about\n  what's going on in the program.\n\n\n# Links of interest\n\n* [https://release-monitoring.org/](https://release-monitoring.org/)\n* [https://wiki.debian.org/debian/watch](https://wiki.debian.org/debian/watch)\n* [http://semver.org/](http://semver.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdupgit%2Fversions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdupgit%2Fversions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdupgit%2Fversions/lists"}