Collecting End of Sprint Stats

Peter Flynn edited this page Apr 3, 2015 · 2 revisions

History of Brackets stats

This public Google spreadsheet includes stats starting from Brackets's very first public release all the way to the present. Be sure to check the tabs at bottom for graph views.

Stats for the release about to ship

Commits & files

Pull requests

  1. Install Peter's "Brackets Reports" extension / make sure you have the latest version
  2. Find the day the previous version branched to release (usually just before the time the current release's "set-release number" PR landed).
  3. Run View > Brackets Reports > Pull Requests in Release
  4. Enter the date from step 2 as "Earliest commit date" (following the date format shown). Leave "Latest commit date" blank (unless you're generating a report for an older release). Hit Ok.
    • It may take a few seconds before showing the results
  5. Remove all "R" entries near the top of the list (PRs that actually went into the previous release, merged into its release branch late in the game)
  6. Remove all "M" entries near the bottom of the list (PRs that are actually in a future release, merged into master after the current release branched)
  7. Generally speaking, remove any "?" entries as well (branch-to-branch merges)
  8. Update the totals at the bottom to reflect these deletions

We usually look at the following stats:

  • Number of pull requests merged (total) (doesn't count PRs that were closed without being merged)
  • Number of external pull requests merged
  • Number that came from external committers
  • Total number of external contributors this release


To see if there were any new locales, compare the set of folders under src/nls in this sprint vs. the previous sprint. You can also git difftool release-0.XX...release-0.YY -- src/nls to gather a list of updated locales. (Or just look at the "Community contributions to Brackets" list in the Release Notes).

Lines of JS Code

Use the Lines of Code Counter for JavaScript extension, with these exclusions:



We normally don't report the number of issues fixed, because (a) it's hard to distinguish legacy bugs vs. bugs that were both opened and closed within the one sprint's lifecycle, and (b) we often forget to tag every bug with a sprint milestone, leading to varying degrees of undercount.

But you can get a rough number via a "closed issues" milestone query on GitHub -- something of the form

Stats for the release about to be obsoleted


  1. Go to the analytics page
  2. Drill down to Behavior > Events > Overview > Event Action and select the desired release number
  3. In the "Secondary dimension" dropdown, choose Users > Operating System

Note: if you select Behavior > Events > Top Events instead, you must separately select each of the Downloads, E4BDownloads, and Other-Downloads items and sum their values to get the total number of downloads

  • Total downloads - sum Mac + Linux + Windows (ignore the tiny number of downloads on misc other OSes)
  • Platform breakdown (%) - divide each platform by the total
    • Note: this may understate Linux users, since we know there are some alternative distribution channels that don't hit our download site

Warning - If a sprint lasts longer than 30 days, you'll need to change the date range filter in the upper right to ensure all the download events are included in the total (GA by default excludes anything older than 30 days ago).

Extensions - current

  1. View > Brackets Reports > Save Extension Registry Snapshot
  2. Name the file something like "registry - end of Sprint XX lifespan.json" (where XX is the old sprint that's about to be EOL'ed)
  3. View > Brackets Reports > Extension Registry Report and select the file you just saved

This gives you:

  • Total available - listed at top
  • Total number of authors - sum the internal & external totals
  • Number of external authors

Extensions - changes over time

To compare with previous sprints, you'll need a similar JSON file saved from an earlier sprint (Peter has an archive of these if needed).

  1. View > Brackets Reports > Extension Registry Diff
  2. Choose the older JSON file first (e.g. if we're about to ship Sprint 35, choose Sprint 33's file)
  3. Choose the JSON file you've just generated (e.g. if we're about to ship Sprint 35, choose Sprint 34's file)

Scroll to the bottom of the report for these totals:

  • Number of new extensions added
  • Number of existing extensions updated
  • Number of existing extensions deleted (this is normally zero since there's no easy way to delete deprecated extensions)

Other Stats

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.