dvershinin / lastversion

Find the latest release version of an arbitrary project
https://lastversion.getpagespeed.com
BSD 2-Clause "Simplified" License
369 stars 33 forks source link

Incorrect versions detected as latest (icu4c, hdf5, bullet) #168

Closed fh-igd-mueller-roemer closed 3 weeks ago

fh-igd-mueller-roemer commented 3 weeks ago

Project with incorrect version

For the following projects / URLs, lastversion emits unexpected latest versions:

To Reproduce

Call lastversion with the respective URLs.

Expected behavior

Program output

Verbose versions

lastversion.lastversion - INFO - Verbose 1 level output.
lastversion.repo_holders.base - INFO - Using cache directory: /home/jsroemer/.cache/lastversion.
lastversion.repo_holders.base - INFO - Created instance of GitHubRepoSession
lastversion.repo_holders.github - INFO - No API token found in environment variables ['LASTVERSION_GITHUB_API_TOKEN', 'GITHUB_API_TOKEN', 'GITHUB_TOKEN'].
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://github.com/unicode-org/icu/releases.atom
lastversion.repo_holders.github - INFO - Checking tag icu4x/2024-05-16/75.x
lastversion.repo_holders.base - INFO - Sanitizing string icu4x/2024-05-16/75.x as a satisfying version.
lastversion.repo_holders.base - INFO - Failed to parse icu4x/2024-05-16/75.x as Version.
lastversion.repo_holders.base - INFO - Sanitized tag name value to 75.x.
lastversion.repo_holders.base - INFO - Failed to parse 75.x as Version.
lastversion.repo_holders.github - INFO - We did not find a valid version in icu4x/2024-05-16/75.x tag
lastversion.repo_holders.github - INFO - Checking tag icu4x/2024-05-03/75.x
lastversion.repo_holders.base - INFO - Sanitizing string icu4x/2024-05-03/75.x as a satisfying version.
lastversion.repo_holders.base - INFO - Failed to parse icu4x/2024-05-03/75.x as Version.
lastversion.repo_holders.base - INFO - Sanitized tag name value to 75.x.
lastversion.repo_holders.base - INFO - Failed to parse 75.x as Version.
lastversion.repo_holders.github - INFO - We did not find a valid version in icu4x/2024-05-03/75.x tag
lastversion.repo_holders.github - INFO - Checking tag release-75-1
lastversion.repo_holders.base - INFO - Sanitizing string release-75-1 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 75.1.
lastversion.repo_holders.github - INFO - Tag release-75-1 is not comparable to current selection
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://api.github.com/repos/unicode-org/icu/releases
lastversion.repo_holders.github - INFO - Selected version as current selection: 75.1.
lastversion.repo_holders.github - INFO - Checking tag release-75-rc
lastversion.repo_holders.base - INFO - Sanitizing string release-75-rc as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 75rc0.
lastversion.repo_holders.github - INFO - We did not find a valid version in release-75-rc tag
lastversion.repo_holders.github - INFO - Checking tag release-74-2
lastversion.repo_holders.base - INFO - Sanitizing string release-74-2 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 74.2.
lastversion.repo_holders.github - INFO - Tag release-74-2 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag release-74-1
lastversion.repo_holders.base - INFO - Sanitizing string release-74-1 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 74.1.
lastversion.repo_holders.github - INFO - Tag release-74-1 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag release-74-rc
lastversion.repo_holders.base - INFO - Sanitizing string release-74-rc as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 74rc0.
lastversion.repo_holders.github - INFO - We did not find a valid version in release-74-rc tag
lastversion.repo_holders.github - INFO - Checking tag brs/2023-10-04
lastversion.repo_holders.base - INFO - Sanitizing string brs/2023-10-04 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2023.10.4.
lastversion.repo_holders.github - INFO - Got HTTP status code 404 from https://api.github.com/repos/unicode-org/icu/releases/tags/brs/2023-10-04
lastversion.repo_holders.github - INFO - No formal release for tag brs/2023-10-04
lastversion.repo_holders.github - INFO - Selected version as current selection: 2023.10.4.
lastversion.repo_holders.github - INFO - Checking tag cldr/2023-09-27
lastversion.repo_holders.base - INFO - Sanitizing string cldr/2023-09-27 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2023.9.27.
lastversion.repo_holders.github - INFO - Tag cldr/2023-09-27 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag cldr/2023-09-25
lastversion.repo_holders.base - INFO - Sanitizing string cldr/2023-09-25 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2023.9.25.
lastversion.repo_holders.github - INFO - Tag cldr/2023-09-25 does not contain newer version than we already found
lastversion.lastversion - INFO - Located the latest release tag brs/2023-10-04 at: https://github.com/unicode-org/icu via feed mechanism
2023.10.4
lastversion.lastversion - INFO - Verbose 1 level output.
lastversion.repo_holders.base - INFO - Using cache directory: /home/jsroemer/.cache/lastversion.
lastversion.repo_holders.base - INFO - Created instance of GitHubRepoSession
lastversion.repo_holders.github - INFO - No API token found in environment variables ['LASTVERSION_GITHUB_API_TOKEN', 'GITHUB_API_TOKEN', 'GITHUB_TOKEN'].
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://github.com/HDFGroup/hdf5/releases.atom
lastversion.repo_holders.github - INFO - Checking tag hdf5_1.14.4.3
lastversion.repo_holders.base - INFO - Sanitizing string hdf5_1.14.4.3 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 5.1.14.4.3.
lastversion.repo_holders.github - INFO - Tag hdf5_1.14.4.3 is not comparable to current selection
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://api.github.com/repos/HDFGroup/hdf5/releases
lastversion.repo_holders.github - INFO - Selected version as current selection: 5.1.14.4.3.
lastversion.repo_holders.github - INFO - Checking tag hdf5_1.14.4.2
lastversion.repo_holders.base - INFO - Sanitizing string hdf5_1.14.4.2 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 5.1.14.4.2.
lastversion.repo_holders.github - INFO - Tag hdf5_1.14.4.2 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag snapshot
lastversion.repo_holders.base - INFO - Sanitizing string snapshot as a satisfying version.
lastversion.repo_holders.base - INFO - Failed to parse snapshot as Version.
lastversion.repo_holders.base - INFO - Did not find anything that looks like a version in the tag
lastversion.repo_holders.github - INFO - We did not find a valid version in snapshot tag
lastversion.repo_holders.github - INFO - Checking tag snapshot-1.14
lastversion.repo_holders.base - INFO - Sanitizing string snapshot-1.14 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 1.14.
lastversion.repo_holders.github - INFO - Tag snapshot-1.14 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag hdf5_1.14.4.1
lastversion.repo_holders.base - INFO - Sanitizing string hdf5_1.14.4.1 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 5.1.14.4.1.
lastversion.repo_holders.github - INFO - Tag hdf5_1.14.4.1 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag hdf5_1.14.4
lastversion.repo_holders.base - INFO - Sanitizing string hdf5_1.14.4 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 5.1.14.4.
lastversion.repo_holders.github - INFO - Tag hdf5_1.14.4 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag hdf5-1_12_3
lastversion.repo_holders.base - INFO - Sanitizing string hdf5-1_12_3 as a satisfying version.
lastversion.repo_holders.base - INFO - Removed project name prefix, working now on string '1_12_3'
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 1.12.3.
lastversion.repo_holders.github - INFO - Tag hdf5-1_12_3 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag snapshot-1.12
lastversion.repo_holders.base - INFO - Sanitizing string snapshot-1.12 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 1.12.
lastversion.repo_holders.github - INFO - Tag snapshot-1.12 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag hdf5-1_14_3
lastversion.repo_holders.base - INFO - Sanitizing string hdf5-1_14_3 as a satisfying version.
lastversion.repo_holders.base - INFO - Removed project name prefix, working now on string '1_14_3'
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 1.14.3.
lastversion.repo_holders.github - INFO - Tag hdf5-1_14_3 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag hdf5-1_14_3-rc1
lastversion.repo_holders.base - INFO - Sanitizing string hdf5-1_14_3-rc1 as a satisfying version.
lastversion.repo_holders.base - INFO - Removed project name prefix, working now on string '1_14_3-rc1'
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 1.14.3rc1.
lastversion.repo_holders.github - INFO - We did not find a valid version in hdf5-1_14_3-rc1 tag
lastversion.lastversion - INFO - Located the latest release tag hdf5_1.14.4.3 at: https://github.com/HDFGroup/hdf5 via release mechanism
5.1.14.4.3
lastversion.lastversion - INFO - Verbose 1 level output.
lastversion.repo_holders.base - INFO - Using cache directory: /home/jsroemer/.cache/lastversion.
lastversion.repo_holders.base - INFO - Created instance of GitHubRepoSession
lastversion.repo_holders.github - INFO - Using API token GITHUB_API_TOKEN.
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://github.com/bulletphysics/bullet3/releases.atom
lastversion.repo_holders.github - INFO - Checking tag 3.25
lastversion.repo_holders.base - INFO - Sanitizing string 3.25 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.25.
lastversion.repo_holders.github - INFO - Tag 3.25 is not comparable to current selection
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://api.github.com/repos/bulletphysics/bullet3/releases
lastversion.repo_holders.github - INFO - Selected version as current selection: 3.25.
lastversion.repo_holders.github - INFO - Checking tag 3.24
lastversion.repo_holders.base - INFO - Sanitizing string 3.24 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.24.
lastversion.repo_holders.github - INFO - Tag 3.24 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.23
lastversion.repo_holders.base - INFO - Sanitizing string 3.23 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.23.
lastversion.repo_holders.github - INFO - Tag 3.23 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.22b
lastversion.repo_holders.base - INFO - Sanitizing string 3.22b as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 3.22b0.
lastversion.repo_holders.github - INFO - We did not find a valid version in 3.22b tag
lastversion.repo_holders.github - INFO - Checking tag 3.22
lastversion.repo_holders.base - INFO - Sanitizing string 3.22 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.22.
lastversion.repo_holders.github - INFO - Tag 3.22 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.22a
lastversion.repo_holders.base - INFO - Sanitizing string 3.22a as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 3.22a0.
lastversion.repo_holders.github - INFO - We did not find a valid version in 3.22a tag
lastversion.repo_holders.github - INFO - Checking tag 3.21
lastversion.repo_holders.base - INFO - Sanitizing string 3.21 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.21.
lastversion.repo_holders.github - INFO - Tag 3.21 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.17
lastversion.repo_holders.base - INFO - Sanitizing string 3.17 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.17.
lastversion.repo_holders.github - INFO - Tag 3.17 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.09
lastversion.repo_holders.base - INFO - Sanitizing string 3.09 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.9.
lastversion.repo_holders.github - INFO - Tag 3.09 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Checking tag 3.08
lastversion.repo_holders.base - INFO - Sanitizing string 3.08 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.8.
lastversion.repo_holders.github - INFO - Tag 3.08 does not contain newer version than we already found
lastversion.repo_holders.github - INFO - Feed contained none or only tags older than 1 year. Switching to API
lastversion.repo_holders.base - INFO - Sanitizing string 3.25 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.25.
lastversion.repo_holders.base - INFO - Sanitizing string 3.22b as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 3.22b0.
lastversion.repo_holders.base - INFO - Sanitizing string 3.21 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.21.
lastversion.repo_holders.base - INFO - Sanitizing string 3.17 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.17.
lastversion.repo_holders.base - INFO - Sanitizing string 3.06 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.6.
lastversion.repo_holders.base - INFO - Sanitizing string 2.89 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.89.
lastversion.repo_holders.base - INFO - Sanitizing string 2.88 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.88.
lastversion.repo_holders.base - INFO - Sanitizing string 2.87 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.87.
lastversion.repo_holders.base - INFO - Sanitizing string 2.86.1 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.86.1.
lastversion.repo_holders.base - INFO - Sanitizing string 2.85.1 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.85.1.
lastversion.repo_holders.base - INFO - Sanitizing string 2.83.7 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 2.83.7.
lastversion.repo_holders.github - INFO - Using graphql queries...
lastversion.repo_holders.github - INFO - Running query 
        {
          rateLimit {
            cost
            remaining
          }
          repository(owner: "bulletphysics", name: "bullet3") {
            tags: refs(refPrefix: "refs/tags/", first: 100, after: "",
              orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
              edges {
                cursor,
                node {
                  ...refInfo
                }
              }
            }
          }
        }

        fragment refInfo on Ref {
          name
          target {
            sha: oid
            commitResourcePath
            __typename
            ... on Tag {
              target {
                ... on Commit {
                  ...commitInfo
                }
              }
              tagger {
                name
                email
                date
              }
            }
            ... on Commit {
              ...commitInfo
            }
          }
        }

        fragment commitInfo on Commit {
          zipballUrl
          tarballUrl
          author {
            name
            email
            date
          }
        }

lastversion.repo_holders.github - INFO - Requested graphql with cursor ""
lastversion.repo_holders.base - INFO - Sanitizing string 3.25 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.25.
lastversion.repo_holders.github - INFO - Using commit date 2022-09-24T20:00:36-07:00
lastversion.repo_holders.github - INFO - Selected version as current selection: 3.25.
lastversion.repo_holders.base - INFO - Sanitizing string 3.24 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.24.
lastversion.repo_holders.github - INFO - Using commit date 2022-04-25T19:39:24-07:00
lastversion.repo_holders.github - INFO - Got HTTP status code 404 from https://api.github.com/repos/bulletphysics/bullet3/releases/tags/3.24
lastversion.repo_holders.github - INFO - Selected version as current selection: 3.24.
lastversion.repo_holders.base - INFO - Sanitizing string 3.23 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.23.
lastversion.repo_holders.github - INFO - Using commit date 2022-04-24T16:50:07-07:00
lastversion.repo_holders.base - INFO - Sanitizing string 3.22b as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 3.22b0.
lastversion.repo_holders.base - INFO - Sanitizing string 3.22 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.22.
lastversion.repo_holders.github - INFO - Using commit date 2022-03-25T19:29:36-07:00
lastversion.repo_holders.base - INFO - Sanitizing string 3.22a as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as unwanted pre-release version: 3.22a0.
lastversion.repo_holders.base - INFO - Sanitizing string 3.21 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.21.
lastversion.repo_holders.github - INFO - Using commit date 2021-11-24T13:59:22-08:00
lastversion.repo_holders.base - INFO - Sanitizing string 3.17 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.17.
lastversion.repo_holders.github - INFO - Using commit date 2021-05-07T11:04:02-07:00
lastversion.repo_holders.base - INFO - Sanitizing string 3.09 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 3.9.
lastversion.repo_holders.github - INFO - Using commit date 2021-03-04T12:10:28-08:00
lastversion.repo_holders.github - INFO - The version 3.9 is newer, but is too old!
lastversion.lastversion - INFO - Located the latest release tag 3.24 at: https://github.com/bulletphysics/bullet3 via graphql mechanism
3.24

Notes

dvershinin commented 3 weeks ago

@fh-igd-mueller-roemer thank you for your findings. Fixed in lastversion 3.5.5. The last issue is indeed weird since published_at as returned by the API is older than created_at (as in, release creation date is after it was published…). Added a workaround for this.

fh-igd-mueller-roemer commented 3 weeks ago

@dvershinin Thank you! All three work fine now :+1: