{% include '_header.html' %}

Developer Tenure

Analysis of how long developers have been active in the codebase.

Basic Statistics

There have been {{ data.get("developers","Unknown") }} developers who've committed {{ data.get("commits", "Unknown") }} times to {{ data.get("repos", "Unknown") }} repos over {{ data.get("days_active","Unknown") }} days ({{ data.get("years_active","Unknown") }} years)

Developer Group Mean Mode Median Std. Dev. Max Tenure (days)
All time ({{ data.get("developers") }}) {{ data.get("mean") }} {{ data.get("mode") }} {{ data.get("median") }} {{ data.get("std_dev") }} {{ data.get("max") }}
Active developers ({{ data.get("active_devs") }}) {{ active_data.get("mean") }} {{ active_data.get("mode") }} {{ active_data.get("median") }} {{ active_data.get("std_dev") }} {{ active_data.get("max") }}

Note: All values above represent "days" of tenure. Often a tenure of 1 day indicates a single contribution to a repository, such as a bug fix in an open source project.

Tenure Distribution (commits)

{% for my_item in distribution %} {% endfor %} {% for my_item in distribution %} {% endfor %} {% for my_item in active_distribution %} {% endfor %}
Developer Group{{ my_item }}
All time ({{ data.get("developers") }}) {{ distribution.get(my_item,"0") }}%
Active developers ({{ data.get("active_devs") }}) {{ active_distribution.get(my_item,"0") }}%

Explanation: "All time" includes any developer who has ever contributed to the repository, while "Active developers" are those who have committed within the last 90 days (default). The tenure shown represents how long they have been active in the codebase.

Recent Leavers Tenure

{% for my_item in leavers %} {% endfor %} {% for my_item in leavers %} {% endfor %}
Developer Group{{ my_item }}
Last {{ data.get("leavers",0) }} days ({{ data.get("leavers",0) }}) {{ leavers.get(my_item,"0") }}%

Explanation: This table represents the percentage of developers who have left the repository over the last 12 months, based on no commit activity in the last 90 days. The tenure shown represents how long they have been active in the codebase.

Developer Details

{% for dev in developers %} {% endfor %}
Author First Commit Last Commit Tenure (days) Years Active
{{ dev['author'] }} {{ dev['first_commit'][:10] if dev['first_commit'] else 'N/A' }} {{ dev['last_commit'][:10] if dev['last_commit'] else 'N/A' }} {{ "%.1f"|format(dev['tenure']) if dev['tenure'] else 'N/A' }} {{ "%.2f"|format(dev['years_active']) if dev['years_active'] else 'N/A' }}
{% include '_footer_scripts.html' %} {% include '_datatable_scripts.html' %}