All notable changes to this project will be documented in this file.
- Raised files download timeout to 30 seconds
- Known NGINX repo has been moved to GitHub
- Fixed some GitHub API nuances and incorrect versions returned #168
- Introduced timeout of 30 seconds for HTTP requests to avoid hanging on slow connections
- Added a special case of normalizing service pack versions, e.g.
15 SP6
to15.post6
- Additional beta detection for GitHub projects
- Fixed source tarball link for releases which have slash in tag names
- Improved detection of pre-releases
- Improved and added zip support in extract command by @lxl66566
- The
-gt
CLI did not recognize first argument as repo in some cases
- Looking at more tags in GitLab API to fix #135
- Some authors tag with build numbers, e.g.
1.2.3-1
, which incorrectly was in the version #134
- No release could be found for GitLab projects in subgroups #132
- For GitLab, structured output now includes
/LICENSE
file contents, when available
- Added
--formal
switch to allow for formal releases only
--format source
did not include valid links
source_url
is now included in--format json
output- Web API! Hooray!
- GitLab
--format json
failed when no assets were present
lastversion_only
global is respected in.spec
fileslastversion_having_asset
global is respected in.spec
files
- Reworked search across different project locations to be more consistent
- Fix regression in semver preference
- Fixed AppImage installation #107
- Ability to fetch
--source
URLs for SourceForge projects
- Fixed AppImage installation #107
- Fixed AppImage installation #107
- Some code refactoring and better identifying of pre-releases
- GitHub: when a semver version is detected, it is now used as a constraint #109
- Relaxed CacheControl dependency versions constraints
- Fixed "1.2.3-alpha" unnumbered pre-release detection
- Python 2 is no longer supported
- Wrong version parsing with number in name #102
- 90+ versions that look like dates triggered pre-release detection
- Pinned some dependency versions to avoid breakage
- Removed unnecessary warnings
- Fix URL encoded tag names #99
- Downloading GitLab
--assets
is now possible - Fixed
--exclude
option not working - Fixes detecting of some pre-releases
- Fixes an issue where release feed contains identical tag versions #92
- Don't treat 0.0.90+ as pre-releases #90
- Fatal failure regression from release 2.4.9 on some packaging library versions
- More intelligent search in GitLab tags
- New
--even
switch to target software that uses odd/even versioning where even is stable
- Micro-releases 90+ are treated as non-stable versions (old Linux software)
- Better detection of x86_64 arch for
install
command
- Added quictls/openssl repo shortcut
- Updated
Accept:
API header reflecting current state of GitHub docs
- Use stars instead of best-match for GitHub repo search as it seems more consistent
- Minor optimization to GitHub repositories search
- More licenses for matching to RPM license field #74
- Added quictls/openssl for special version handling
- Officially supporting Gitea repos #73
- Allow extracting version from an arbitrary string (CLI)
- Allow using --at with any non-URL repository specifier
- Detection of self-hosted GitLab via gitlab. subdomain
- Fixed regression from previous release where
--tag
CLI failed
- Added better semantic versioning support via
--sem
option
- Removed unnecessary API calls, performance improvement
rpmspec_license
failed output when no license
--only
now accepts regex via~
prefix and negation via!
prefix- new
--exclude
argument allows for negative filtering dict
orjson
output: addedrpmspec_license
field
unzip
command to extract project directly to the current directory
- Several extra repo shortcuts: kodi for Kodi, sles for SUSE Enterprise
- Refactored code so that caching can be better used
- Extra detection of beta via preview and early-access delimiters
--at wordpress
for WordPress plugins
- GitHub has empty
releases.atom
in tag-only repos #63, #65 - Fix for some repos where
releases.atom
contains old releases only
- The "install" action operates against releases with respective assets #60
- The
releases.atom
w/o authorization, fixes behavior of GitHub returning empty feeds
- For .spec file updates, look for URL: tag as well, to use as repo argument
--at system
will query last version from package managers- Various performance optimizations
--having-asset
accepts regular expression if tilde prepended- For one-word repo argument, check word/word official GitHub repo first, then search
- New
--having-asset
switch to consider only formal releases with given asset name
- Unnecessary parsing of repo argument as version (performance)
- Fixed RPM builds rpmlint changelog-time-in-future by having changelog in UTC
- Print latest version from .spec file every time
- Fixed installation on some systems
- Experimental: updating .spec files for RPM auto-builds #26
--download
option works for asset downloads, as long as there is one asset
- Now it's easy to get OS versions. Just run
lastversion ubuntu
or something
- Ability to parse/check Helm chart repository metadata #50
- Ensure the
--only
switch works consistently across different project hosting
- Arbitrary versions comparison in CLI:
lastversion 1.2.3 -gt 1.2.4
lastversion --version
reports available updates forlastversion
- Clean up canceled download on Ctrl+C
- More requests logging in
--verbose
mode - Log failed feed parsing
- Raising
BadProjectError
from GraphQL find method if repo arg is invalid
- Work around GitHub servers' inconsistency with feed redirects #44
- Using all tags in GraphQL find method, instead of annotated only #44
- GraphQL method for finding release tags was not reliable on repos with tags having no tagger field
- Strip all extraneous alphanumerics from beginning of tags to improve detection
output_format='dict
for thelastversion.latest()
function- Honour
GITHUB_TOKEN
env var in addition toGITHUB_API_TOKEN
--at
switch (and function argument) to explicitly specify project provider- PyPI support
- Ensure compatibility with older python packaging module found in CentOS 7
- Version checks and output for odd non-semantic tags, e.g. 1.1.1i (OpenSSL)
- Fixed waiting API quota reinstatement
- Cache info about non-existent GitHub repositories
- Fixed
lastversion URL
introduced by regression from 1.2.1
--format json
and--format assets
work for Non-GitHub projects
lastversion repo:branch
syntax, e.g.lastversion php:7.2
orlastversion nginx:mainline
- require feedparser version that works with Python 2
- New switch
--only
allows filtering projects in repos with multiple actual projects - Ability to sniff version from a software website which publishes releases in RSS/ATOM feeds #23
- Ability to sniff version by discovering GitHub repository links on a software website #23
- No longer messing with root logger, playing safe as a library (opt-in behavior when used as module)
- Fixed up
--major
constraint to work more correctly - Use GraphQL API (GitHub) when deep searching tags is required (faster
--major
) - Paginate across tags when a release matching constraints is not present in the feed (GitHub) #12
- Simple Python interface for update checks:
lastversion.has_update(repo, current_version)
- Various fixes
- Aggregate older tags, up to one year, for better latest release detection (feed only)
- General improvements for releases detection
- SourceForge projects support
- Better detection of post-releases, e.g. Magento 2.3.4-p2 is the latest stable release for the
--major 2.3.4
- Added new
--format tag
switch to get just the latest release's tag name. Proven to be useful in some cases
- Fixed detecting non-GitHub repos and known URLs
- Improved RPM install by checking with RPM db and avoiding unnecessary downloads absent updates
- Show error when no repo found (no results from search)
- Added spec_tag_no_prefix to JSON output
- Returning Null for license when it doesn't exist at release tag
- Require requests>=2.6.1 to compensate for cachecontrol bug
- Do not output progressbar when downloading and no TTY available, e.g. for log output
- Install action
- Progressbar for download action, when download size is known
- Compatibility with older PyYAML
- BREAKING release for Python consumers:
Thelatest
Python function now returnsVersion
object instead of string, by default
test
command to see how a given tag would be parsed as version:lastversion test 'release-3_0_2'
- Limited GitLab support
- Limited Mercurial web repos support
- Limited BitBucket support
- Use feeds where available, thus much, much faster while still precise
- Ability to pass
.yml
withrepo:
value inside. Other elements are merged into--format json
output. More on the wiki on how useful it is