Hi all,

I was running livecheck a few minutes ago on a bunch of ports of mine and I 
started getting the same error on all the pythons ones:

    Error: cannot check if [portname] was updated (regex didn't match)

All the ports use pypi so, after a quick search I think livecheck is using by 
default this regex (see pypi.tcl):

    livecheck.regex {"version": "(.+)",}

on this url:

    if {!$has_homepage || ${livecheck.url} eq ${homepage}} {
    livecheck.url \
        https://pypi.python.org/pypi/${livecheck.name}/json
    }

I manually fetched the livecheck URL and I'm getting a different JSON document 
structure:

    "releases": {
      "0.0": [],
      "0.1.0": [
        {
          "comment_text": "",
          "digests": {
            "md5": "9c4575f5602de11b9bc8a580922974da",
            "sha256": 
"04b1fafdcfb9eefa9fe03d4c69c71e6fee6e02a39cf3df92bd1f58bc7eb6a3d2"
          },
          "downloads": -1,
    ...
        }
    ],
    "0.1.1": [
      {
    ...

I also noticed the pypi.org web site has been completely renewed.

If this problem is confirmed, we should update the regex.  And I'm thinking 
that parsing this document with a regular expression is going to be less robust 
than it was: the version number is now just a quoted field name.  I wonder 
whether we could and should properly parse the JSON document here.

Cheers,
-- 
Enrico

Reply via email to