Visualize Language Trends over Time
Problem to solve
Many companies are trying to move away from using certain languages and would like to have a way to monitor their progress using their repo information. Right now we only provide a snapshot of languages used at a project level in percentage, which is difficult to aggregate - it doesn't even give file or LOC count. This means customers need to find innovative ways to load their repos information across the instance, which is time consuming and inefficient. Moreover, reporting LOC is one of our most highly voted issues in the CE community with more than 350 votes.
EM, PM when overseeing refactoring, Executives
I would suggest to have filter relating to both this issue and #12683, where a user can select groups, projects, subgroups, files, author and a date through date picker. For the first iteration, we will only look at 1 project
We will convert the pie chart from https://gitlab.com/gitlab-org/gitlab-ce/graphs/master/charts to an area chart
A user should be able to see the trends in terms of lines of code contributed and size of files in a given language in this form: https://ecomfe.github.io/echarts-examples/public/editor.html?c=area-stack&theme=light.
Let's have a dropdown as part of the chart of whether we want to look at this in terms of files or lines of code (LOCs). We should have a line for each language.
We should have a selector to convert the chart to daily counts in the form of a stacked bar chart: https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/charts-stacked-column-chart--stacked. The way I see this done is through a little selector with 2 icons in the top right corner-one icon for line chart and one icon for bar chart.
Similarly to Cycle Analytics, we should have the language analytics only available on project level for anyone less than Premium/Silver and once we have moved the feature, we will decommission https://gitlab.com/gitlab-org/gitlab-ce/graphs/master/charts.
Permissions and Security
Inline with the rest of the analytics pages now, the full feature will be available for instances and namespaces Silver/Premium+. Core users will only be able to see 1 project at a time, while Premium + will be able to see multiple groups/subgroups and projects in the future.
Users should only see groups/projects/subgroups that they have a reporter access to and above.
For gitlab.com, we will only show the groups, projects, subgroups that fall under namespaces of silver (aka premium) and above.
What does success look like, and how can we measure that?
We would like to see weekly engagement with the page.
Links / references
Please ignore the code hotspots chart above, that's a separate issue.
|Lines of code||Files||Percentage||Mobile|
- We show a table with labels that use the same colours as in the chart and we also say how much of each there is for the chosen time period.
- On mobile we squeeze the chart so that it fits the width of the screen. I imagine the user would still be able to tap on the chart to see the stats for each day. They should be able to drag this left and right.
- The user can choose between showing the percentage (default), number of files and lines of code. Choosing a different option updates the table and the chart.