NEW! Mirantis Academy -   Learn confidently with expert guidance and On-demand content.   Learn More


What's new in Stackalytics (9/27/13)

Nick Chase - September 27, 2013

A couple of weeks ago, at the OpenStack Documentation Boot Camp hosted here at Mirantis, our own Nick Chase was jokingly cornered by one of the participants, who wanted to know who he had to beat up at Mirantis in order to get his affiliation corrected. Fortunately (for Nick, at least), you don’t have to beat up anyone to make that happen--you can change it yourself! As promised in our last post, we’re going to show you how to do that. But first, things are moving quickly in Stackalytics, with two new features having been released since our last post--the ability to track blueprints and emails.

Blueprints are separated into “Completed Blueprints” and “Drafted Blueprints.”  The first shows completed blueprints, and provides a report on who did the work to bring it to completion.  The second shows the blueprints that have been added to Launchpad, along with who was responsible for initiating them.

As far as emails go, Stackalytics is now tracking the openstack-dev archives, and has the ability to add additional sources through the default_data.json file.

And that brings us to our next topic of discussion: corrections.

When it comes to deciding the affiliation for a patch or review, Stackalytics decides the affiliation of a user as follows:

  1. First, it looks at the domain of the author’s email. If the domain is in the Stackalytics configuration file (default_data.json), the affiliation for the commit is determined based on the email address.
  2. If not, Stackalytics searches LaunchPad for the user’s profile based on the email address.  If it’s found and the user’s identified (based on the domains in default_data.json), the affiliation is set via the profile.
  3. If the user’s affiliation can’t be set via his or her LaunchPad profile, Stackalytics searches for their LaunchPad ID in default_data.json, and if it finds it, it sets the affiliation that way.
  4. Finally, if Stackalytics can’t find information in any of these ways, the user is considered to be *independent.

Now, as you can see, there’s a lot of reliance on the default_data.json file in that process. Fortunately, it’s just a file living in StackForge; if something is wrong or missing, you can fix it yourself, and it will be merged after review just like any other OpenStack change.

The default_data.json file lets you set both current and historical affiliations. For example:

"launchpad_id": "boris-42",
"companies": [
"company_name": "*independent",
"end_date": "2013-Apr-10"
"company_name": "Mirantis",
"end_date": null
"user_name": "Boris Pavlovic",
"emails": [

This record shows that Boris was an independent until April 10, 2013, and then he joined Mirantis.

All of this assumes that the user’s LaunchPad ID and Gerrit ID are the same.

That’s it for this time. Remember that Stackalytics is completely open source and that we welcome all contributors. For complete documentation and more information about how to participate, please check out the Stackalytics wiki.

Next time, we’ll talk about how to make sure your commits are attributed properly even if that’s not true.

Choose your cloud native journey.

Whatever your role, we’re here to help with open source tools and world-class support.


Subscribe to our bi-weekly newsletter for exclusive interviews, expert commentary, and thought leadership on topics shaping the cloud native world.