From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH next v2 4/5] support/scripts/pkg-stats-new: add latest upstream version information
Date: Wed, 21 Mar 2018 21:58:24 +0100 [thread overview]
Message-ID: <20180321215824.45a5b5bc@windsurf> (raw)
In-Reply-To: <5a961c197f405_484fb72dfc147d@ultri3.mail>
Hello Ricardo,
On Wed, 28 Feb 2018 00:03:53 -0300, Ricardo Martincoski wrote:
> But that would require:
> The projects in the Buildroot distro to be named exactly as the buildroot
> package, i.e. samba4, not samba. Or of course implementing the search by
> similarity with regexp.
>
> And be aware: it produces few different guesses (some better, some worst).
>
> Here the sample code without Queue/threading:
> cache_latest_version_by_distro()
> cache_latest_version_by_guess()
>
> for pkg in packages:
> pkg.latest_version = get_latest_version(pkg.name)
> print " [%04d] %s => %s" % (packages.index(pkg), pkg.name, str(pkg.latest_version))
>
>
> distro_list = None
> guess_list = None
>
>
> def cache_latest_version_by_distro():
> global distro_list
> req = urllib2.Request(os.path.join(RELEASE_MONITORING_API, "projects", "?distro=Buildroot"))
> f = urllib2.urlopen(req)
> distro_list = json.loads(f.read())
>
>
> def cache_latest_version_by_guess():
> global guess_list
> req = urllib2.Request(os.path.join(RELEASE_MONITORING_API, "projects"))
> f = urllib2.urlopen(req)
> guess_list = json.loads(f.read())
>
>
> def get_latest_version(package):
> # We first try by using the "Buildroot" distribution on
> # release-monitoring.org, if it has a mapping for the current
> # package name.
> for data in distro_list["projects"]:
> if data["name"] != package:
> continue
> if len(data['versions']) > 0:
> return (True, data['versions'][0], data['id'])
> else:
> return (True, None, data['id'])
> # If that fails because there is no mapping, we try to search
> # in all packages for a package of this name.
> for p in guess_list['projects']:
> if p['name'] == package and len(p['versions']) > 0:
> return (False, p['versions'][0], p['id'])
> return (False, None, None)
I looked more closely into this, and unfortunately, it doesn't work.
Indeed, the data returned by the URL:
RELEASE_MONITORING_API/projects/?distro=Buildroot
does not take into account the mapping between Buildroot package names
and release-monitoring.org package names, it only contains the
release-monitoring.org package names.
For example, we have a mapping samba4 -> samba, that allows
https://release-monitoring.org/api/project/Buildroot/samba4 to return
the expected result. But you won't find anything named "samba4" in
https://release-monitoring.org/api/projects/?distro=Buildroot. This
makes the entire concept of distro mapping useless.
Therefore, your proposal cannot work with the data that we can
currently download from release-monitoring.org. I have asked on the
#fedora-apps IRC channel about this.
Perhaps we could go with my v2 version on this aspect (i.e make HTTP
requests for each package), and change that later on if a better
solution is found ?
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2018-03-21 20:58 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 22:13 [Buildroot] [PATCH next v2 0/5] New pkg-stats script, with version information Thomas Petazzoni
2018-02-21 22:13 ` [Buildroot] [PATCH next v2 1/5] support/scripts/pkg-stats-new: rewrite in Python Thomas Petazzoni
2018-02-22 1:58 ` Ricardo Martincoski
2018-03-07 22:35 ` Thomas Petazzoni
2018-02-21 22:13 ` [Buildroot] [PATCH next v2 2/5] support/scripts/pkg-stats-new: add -n and -p options Thomas Petazzoni
2018-02-24 4:54 ` Ricardo Martincoski
2018-03-07 22:35 ` Thomas Petazzoni
2018-02-21 22:13 ` [Buildroot] [PATCH next v2 3/5] support/scripts/pkg-stats-new: add current version information Thomas Petazzoni
2018-02-26 0:47 ` Ricardo Martincoski
2018-03-07 22:25 ` Thomas Petazzoni
2018-03-08 3:14 ` Ricardo Martincoski
2018-03-08 7:48 ` Thomas Petazzoni
2018-02-21 22:13 ` [Buildroot] [PATCH next v2 4/5] support/scripts/pkg-stats-new: add latest upstream " Thomas Petazzoni
2018-02-28 3:03 ` Ricardo Martincoski
2018-03-07 22:41 ` Thomas Petazzoni
2018-03-08 9:52 ` Ricardo Martincoski
2018-03-08 9:56 ` Thomas Petazzoni
2018-03-09 2:41 ` Ricardo Martincoski
2018-03-21 20:58 ` Thomas Petazzoni [this message]
2018-03-22 3:11 ` Ricardo Martincoski
2018-03-22 7:53 ` Thomas Petazzoni
2018-03-21 21:35 ` Thomas Petazzoni
2018-03-22 3:17 ` Ricardo Martincoski
2018-03-22 10:01 ` Thomas Petazzoni
2018-02-21 22:13 ` [Buildroot] [PATCH next v2 5/5] support/scripts/pkg-stats: replace with new Python version Thomas Petazzoni
2018-02-24 17:55 ` [Buildroot] [PATCH next v2 0/5] New pkg-stats script, with version information Arnout Vandecappelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180321215824.45a5b5bc@windsurf \
--to=thomas.petazzoni@bootlin.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.