MacPorts Port Statistics Ideas

This page is a collection of ideas that could be implemented to improve or make use of the MacPorts statistics server. Feel free to edit this page and add your own idea!

Statistics Test Server

Clemens has set up a test installation of the statistics server component at The server is written in Ruby on Rails; its sources currently live in browser:branches/gsoc11-statistics/stats-server. The statistics client requires MacPorts 2.3 (for curl post) and is currently not in the main ports tree for this reason. Its source is at browser:users/cal/ports/macports/mpstats and it can be installed in a single command using port install (this URL will be updated with the latest version on each update).


Move to and get an SSL certificate

The stats server should be moved to a more official domain, such as It also should support SSL, especially for submitting data. A free email-validated StartCom SSL certificate is probably enough; deploying the main wildcard certificate on Clemens' server is something he doesn't want.

Inform users and explain opt-in

When a user upgrade to 2.3.0 (or installs MacPorts from scratch), it would be nice to show a short notice saying something like

You are welcome to participate in anonymous collection of statistics of installed ports by
running `sudo port install mpstats'. See http://<url> for more details.

so that every user would see the notice once for each major upgrade. (No notice if mpstats is already activated.)

Create a versioned API

Add a field stating the version of the data format. In case that the format changes in future, it would be nice to still be able to handle submissions from users running the older version of MacPorts.

Track the requested state

Add a field '"requested": true' for requested ports (even if the application is currently unable to display any useful statistics related to that, it will be easier to change the app in the future than to convince everyone to apply the fix).

Submit variants as list rather than as string

Variants are currently submitted as a plain string:

"variants": "biosig + python27 +";

It would be a lot cleaner to use a list instead:

"variants": ["biosig", "python27"]

Track CommandLineTools version instead of GCC version

Remove "gcc_version" from submitted data, since GCC is no longer a thing on recent versions of OS X anymore.

Port the server's dependencies to MacPorts

It would be nice if MacPorts would allow installing dependencies to allow running the app locally without much hassle. The app needs rails 3.2. Currently MacPorts has a port of rails for ruby 1.8 called rb-rails which is at version 2.3.5, and a port of rails for ruby 1.9 called rb19-rails which is at version 3.0.5. The ruby 1.9 ports for actionmailer, actionpack, activemodel, activerecord, activersource, activesupport, and railties are also all at version 3.0.5, and would need to be updated together with rails.

Simple port hierarchy / group (sub)ports

Ports like py-name, py27-name, py33-name, ... should be grouped in some way.

Direct and meaningful links to ports

Port statistics is currently accessed via http://<server>/categories/<n>/ports/<n>. It should be http://<server>/port/<name> or http://<server>/show/port/<name> for example (or something equivalent excluding category and not displaying any numbers).

Direct links to maintainer's ports

One can search for maintainer's ports, but only via http://<server>/ports/search/maintainers/<name> to some extent. The search is more problematic for non-committers with : in the name and the search is not unique (searching for cal returns mcalhoun's ports etc.). It would make sense to search through nomaintainer and openmaintainer ports.

Maybe something like http://<server>/show/maintainer/<handle> and http://<server>/show/maintainer/ for direct access or simply http://<server>/show/maintainer/id/<number> would allow clicking the maintainer in the same way as one can follow a link for categories, variants, ...

Sort ports alphabetically

Complete list of ports shows

← Previous 1 2 3 4 5 6 7 8 9 … 366 367 Next →

It would be helpful to have alphabetic index available.

Highlight default variants

Highlight default variants on the port statistics page.

Link to port's homepage, Portfile, tickets

Create a link to port's homepage and a link to SVN folder where the Portfile is stored. Maybe also a link to (svn co)<category>/<name> and a link to open tickets for the port (the slight problem is that the tickets are a bit fuzzy as well – try searching for spe for example).

Display number of users of a port in Query Results

When listing ports (either all ports, those from specific category, by specific maintainer, ...), it would be nice to see the number of users (and the number of users who requested installation of that port) already on the list of ports, before asking for specifics. It's a bit annoying clicking on a port just to discover that there are no users anyway.

Make Query Results more compact

It's actually nice to allow both views (the current one also has benefits), but usually I would prefer to see a table with one line per port. Name, (maybe version), description, category, number of (requested) installations. I'm not interested in maintainers and variants when searching the port. It would be way more useful to be able to see maybe 200 rather than 50 ports per page and to be able to sort at least by name and number of (requested) installations.

Maybe some filters to browse ports would be even more useful (check the set of categories, select the maintainer, provide part of the name etc.), but more difficult to implement and not really required at this point.

Show OS X version statistics for every port

As a port maintainer, one key thing I'd like to know is the breakdown of OS versions that my users are running. (Xcode version and architecture might also be relevant.)

Bar graphs instead of pies

I'm not a big fan of pie (or donut) graphs. It is much easy to compare magnitudes of a bar as opposed to sections of a donut.

This probably needs a bit of experimenting.

Link mpstats with trac

One could think about linking information available in mpstats' db to the current state of trac. For example one could identify tickets for the most requested or most installed ports and similar things.

Last modified 4 years ago Last modified on Oct 27, 2017, 1:59:21 PM