Skip to content

xlsynth/xls-pr-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

822 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PR Lifecycle Analysis

We accumulate data about PR lifecycle times for PRs in the google/xls repository. The data includes key timestamps such as when a PR is created, when a review is requested (with CI passing), when the "reviewing internally" label is applied, and when the PR is finally closed (either merged or manually closed).

Three Python scripts are used in this project:

  • accumulate_pr_data.py: Fetches PRs from github.com/google/xls, processes timeline events, and writes the relevant data to pr_data.csv.
  • plot_pr_delays.py: Reads pr_data.csv, filters for PRs from xlsynth/xlsynth, calculates delays between lifecycle events, and produces a matplotlib boxplot which is saved as pr_delays.png.
  • plot_pr_counts.py: Reads pr_data.csv, filters for PRs from xlsynth/xlsynth, counts the number of PRs opened each month, and produces a bar chart saved as pr_counts.png.

To generate the report:

  1. Set your GITHUB_TOKEN environment variable.

  2. Run:

    python update_all.py

The following diagram shows the typical PR delays for PRs originating from the xlsynth/xlsynth repository:

PR Delays

And here is the monthly count of those PRs:

PR Counts

Links to XLSynth PRs by Month

Below is a list of all pull-requests that originated from xlsynth/xlsynth, grouped by the month in which they were opened. The list is regenerated automatically by generate_pr_links_table.py.

Turn semantics for open non-draft PRs (🚧): 👉 means "Google's turn" (i.e. to review or land), and 👋 means "our turn".

Determination precedence is:

  1. If unresolved Googler feedback exists, it is not Google's turn.
  2. Feedback is considered addressed if a thread is explicitly resolved or the PR author leaves a reviewer-visible follow-up after the feedback (e.g. reply/comment, review request, ready-for-review).
  3. Commits and force-pushes alone do not count as reviewer-visible follow-up.
  4. Otherwise, latest relevant actor wins (Googler actor => not Google's turn; non-Googler actor => Google's turn).
  5. Actor side is determined by xlsynth-org membership: users in xlsynth are considered non-Googler side; users not in xlsynth are considered Googler side. This heuristic does not preclude Googlers from also being in xlsynth; those overlap cases need an explicit override list.

🧪 = draft (open) 🚧 = still open (not merged yet) 👉 = Google's turn 👋 = our turn

Month PRs
2024-05 #1393 · #1435 · #1443
2024-06 #1458 · #1460 · #1483 · #1484 · #1492 · #1496 · #1497 · #1499 · #1501
2024-08 #1529 · #1535 · #1544 · #1545 · #1546 · #1548 · #1554 · #1562 · #1563 · #1564
2024-09 #1578 · #1588 · #1594 · #1595 · #1602 · #1604 · #1605 · #1606 · #1607 · #1612 · #1620 · #1621 · #1622 · #1627 · #1640
2024-10 #1648 · #1649 · #1661 · #1665 · #1666 · #1672
2024-11 #1689 · #1692 · #1694 · #1699 · #1700 · #1706 · #1707 · #1709 · #1720 · #1723 · #1724 · #1725 · #1737 · #1740 · #1751 · #1753 · #1754
2024-12 #1755 · #1758 · #1774 · #1775 · #1777 · #1780 · #1785 · #1790 · #1791 · #1792 · #1793 · #1799 · #1800 · #1801 · #1802 · #1807 · #1808 · #1809 · #1812 · #1816 · #1817 · #1818 · #1819 · #1820
2025-01 #1822 · #1823 · #1824 · #1825 · #1827 · #1828 · #1829 · #1832 · #1837 · #1839 · #1842 · #1849 · #1864 · #1865 · #1869 · #1871 · #1873 · #1878 · #1880 · #1881 · #1882 · #1884 · #1886 · #1887 · #1888 · #1889 · #1890 · #1891 · #1894 · #1901
2025-02 #1902 · #1905 · #1910 · #1915 · #1919 · #1921 · #1922 · #1923 · #1924 · #1931 · #1935 · #1938 · #1944 · #1946 · #1947 · #1948 · #1965 · #1966 · #1967
2025-03 #1971 · #1972 · #1977 · #1978 · #1984 · #1987 · #1989 · #1991 · #1994 · #2003 · #2007 · #2013 · #2015 · #2024
2025-04 #2066 · #2067 · #2070 · #2072 · #2080
2025-05 #2096 · #2110 · #2158 · #2177 · #2210 · #2219 · #2240 · #2241 · #2251 · #2254 · #2262 · #2310 · #2311
2025-06 #2329 · #2357 · #2369 · #2374 · #2396 · #2397 · #2400 · #2417 · #2424 · #2427 · #2449 · #2451 · #2476
2025-07 #2569 · #2589 · #2594 · #2601 · #2646 · #2672 · #2704
2025-08 #2766 · #2857 · #2868 · #2869 · #2872 · #2873 · #2880 · #2898 · #2905 · #2906 · #2912 · #2914 · #2918 · #2926 · #2939 · #2940 · #2949 · #2966 · #2972 · #2973 · #2975
2025-09 #2976 · #2978 · #2987 · #3018 · #3028 · #3055 · #3057 · #3060 · #3061 · #3062 · #3063 · #3076 · #3092 · #3111 · #3126 · #3133 · #3141
2025-10 #3143 · #3152 · #3156 · #3171 · #3202 · #3207 · #3215 · #3216 · #3237 · #3257
2025-11 #3278 · #3279 · #3302 · #3317 · #3324 · #3350 · #3363 · #3430 · #3432
2025-12 #3438 · #3471 · #3501 · #3508 · #3627 · #3638
2026-01 #3639 · #3640 · #3643 · #3670 · #3671 🚧 👋 · #3672 · #3673 🚧 👋 · #3685 · #3689 · #3692 🚧 👋 · #3693 🧪 · #3698 · #3700 · #3701 · #3702 · #3731 🚧 👋 · #3743
2026-02 #3785 · #3848 · #3849 · #3860 🧪 · #3867 · #3889 🚧 👉 · #3898 · #3899
2026-04 #4050 🧪 · #4097 · #4107 · #4141 · #4176 🚧 👋 · #4182
2026-05 #4288

About

Data for PRs to the XLS repo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages