Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.
Needs review
163 commits sit in this repo's top risk tercile, which is 33% of the 500scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 6.4 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.
Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.
Began fix-led, now leaning other.
Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.
| # | Commit | Author | When | Lines | Risk | Top driver |
|---|---|---|---|---|---|---|
| 1 | 16c1175f5.next: Add Lock component for distributed locking (#19370) | Mark Scherer | 3mo ago | +3.1K -0 | 100%Elevated | more lines added than baseline |
| 2 | c8ae86a6Use `git-filter-repo` script instead of `git filter-branch` | ADmad | 4mo ago | +5.0K -1 | 100%Elevated | more lines added than baseline |
| 3 | cfc0dd145.next: port over `thephpleague/container` (#18090) | Kevin Pfeifer | 6mo ago | +3.9K -1 | 100%Elevated | more lines added than baseline |
| 4 | 7a6001f3Implement Paginator sortableFields builder and combined sorting key. (#18898) | Mark Scherer | 9mo ago | +2.3K -32 | 100%Elevated | more lines added than baseline |
| 5 | c5e78c36Refactor using iterator chaining | Jasper Smet | 7mo ago | +1.4K -549 | 99%Elevated | more lines added than baseline |
| 6 | 57d46e61Introduce fluent filesystem utility | Jasper Smet | 7mo ago | +1.4K -0 | 99%Elevated | more lines added than baseline |
| 7 | afe2fc2cadd events for the caching system (#18956) | Kevin Pfeifer | 9mo ago | +1.8K -32 | 99%Elevated | more lines added than baseline |
| 8 | 24da93245.next: Add JsonStreamResponse for memory-efficient JSON streaming (#19367) | Mark Scherer | 3mo ago | +956 -0 | 98%Elevated | more lines added than baseline |
| 9 | 0832571fAdd PSR-13 Link implementation (#19213) | Mark Scherer | 5mo ago | +994 -2 | 98%Elevated | more lines added than baseline |
| 10 | 24448d78Add DTO projection support via projectAs() query method (#19135) | Mark Scherer | 7mo ago | +1.1K -5 | 98%Elevated | more lines added than baseline |
| 11 | dd4b5d14replace PHPUnit mocks with mockery mocks in Database & Command package (#19264) | Kevin Pfeifer | 5mo ago | +482 -589 | 98%Elevated | more lines added than baseline |
| 12 | e6ad0dfa5.next: Extract AbstractStreamResponse from JsonStreamResponse (#19431) | Mark Scherer | 3mo ago | +520 -185 | 97%Elevated | more lines added than baseline |
| 13 | 18da1642Move command helpers under Console namespace. | ADmad | 4mo ago | +649 -579 | 97%Elevated | more lines added than baseline |
| 14 | 5f8eb179Add bridge adapter pattern for BC-compatible container opt-in | Mark Scherer | 4mo ago | +463 -47 | 97%Elevated | more lines added than baseline |
| 15 | c71b8594replace PHPUnit mocks with mockery mocks in ORM package (#19270) | Kevin Pfeifer | 5mo ago | +427 -533 | 97%Elevated | more lines added than baseline |
| 16 | 953ada605.next: I18n translator cache key prefix + configurable cache pool (#19412) | Mark Scherer | 3mo ago | +481 -10 | 97%Elevated | more lines added than baseline |
| 17 | f45b8b91Add portable stringAgg() support to FunctionsBuilder (#19386) | Mark Scherer | 4mo ago | +480 -0 | 97%Elevated | more lines added than baseline |
| 18 | 1b1ee319Add support for IS DISTINCT FROM / IS NOT DISTINCT FROM` (#19360) | celsowmjulesassisted | 4mo ago | +373 -9 | 97%Elevated | more lines added than baseline |
| 19 | 0e28bdfaAdd ExistsInNullable | Mark Scherer | 9mo ago | +455 -0 | 97%Elevated | more lines added than baseline |
| 20 | 0e2234df5.3 Add check constraints (#18990) | Mark Story | 9mo ago | +413 -47 | 97%Elevated | more lines added than baseline |
| 21 | df7042ff5.next: add DI capability to event listener registration (#19437) | Kevin Pfeifer | 2mo ago | +406 -22 | 96%Elevated | more lines added than baseline |
| 22 | a2006bd1Resolve default order through SortableFieldsBuilder (#19446) | Mark Scherer | 2mo ago | +389 -7 | 96%Elevated | more lines added than baseline |
| 23 | 0633f786Add more tests | Jasper Smet | 7mo ago | +371 -0 | 96%Elevated | more lines added than baseline |
| 24 | dbc344bdAdd proper generic type annotations (fixes missingType.generics) (#19200) | Mark Scherer | 5mo ago | +447 -317 | 95%Elevated | more lines added than baseline |
| 25 | a781dfefAdd support for finding directories and Introduce enums for depth operators | Jasper Smet | 7mo ago | +304 -23 | 95%Elevated | more lines added than baseline |
| 26 | 60772993Add addMany() and prependMany() methods to BreadcrumbsHelper (#19132) | Mark Scherer | 8mo ago | +344 -70 | 95%Elevated | more lines added than baseline |
| 27 | c56cca99Add maskRegex and maskPartialRegex (#19526) | Graham Watsoncopilotassisted | 1mo ago | +233 -0 | 94%Elevated | more lines added than baseline |
| 28 | 6df48087Add Table::findUnhydrated() and UnhydratedSelectQuery for type-safe non-hydrated reads (#19441) | Mark Scherer | 2mo ago | +341 -0 | 94%Elevated | more lines added than baseline |
| 29 | fc0d6c5cAdd LoggedQuery::setRedactor() to scrub sensitive params from logs (#19419) | Mark Scherer | 2mo ago | +311 -8 | 94%Elevated | more lines added than baseline |
| 30 | 0d2193c0Added support for extracting translations for labels (#19415) | Nicos Panayides | 3mo ago | +291 -17 | 94%Elevated | more lines added than baseline |
| 31 | ae3d9b3cAdd EnumLabelTrait and Label attribute (#19405) | ADmad | 3mo ago | +321 -3 | 94%Elevated | more lines added than baseline |
| 32 | f7e64458Fix ambiguous column in self-referential subquery eager loading (#19397) | Mark Scherer | 3mo ago | +302 -4 | 94%Elevated | more lines added than baseline |
| 33 | 69db8e1eAdd Collection convenience methods: keys(), values(), implode(), when(), unless() (#19134) | Mark Scherer | 6mo ago | +342 -0 | 94%Elevated | more lines added than baseline |
| 34 | ed09e80cMerge pull request #19208 from cakephp/5.next-installed-plugins | Jasper Smet | 6mo ago | +284 -31 | 94%Elevated | more lines added than baseline |
| 35 | 8198b78aAdd support for non-recursive iteration | Jasper Smet | 7mo ago | +264 -30 | 94%Elevated | more lines added than baseline |
| 36 | 6dba2c06Reject cross-table entities in Table persistence and marshalling (#19428) | Mark Scherer | 3mo ago | +264 -0 | 93%Elevated | more lines added than baseline |
| 37 | 520175d7refactor: add createRecursiveIterator() method to Filesystem utility | Jasper Smet | 7mo ago | +228 -14 | 93%Elevated | more lines added than baseline |
| 38 | d0783bf2Fix up DI for components. (#18938) | Mark Scherer | 10mo ago | +211 -10 | 93%Elevated | more lines added than baseline |
| 39 | ac2217b0Add custom filter iterator | Jasper Smet | 7mo ago | +252 -22 | 92%Elevated | more lines added than baseline |
| 40 | 6c803d385.next Add compact command list output by default (#19092) | Mark Scherer | 7mo ago | +298 -37 | 92%Elevated | more lines added than baseline |
| 41 | 87b366cbFix limitControl() to keep current filters when switching the limit s… (#18985) | Mark Scherer | 9mo ago | +196 -14 | 92%Elevated | more lines added than baseline |
| 42 | e744b4f3improve event listener registration (#19422) | Kevin Pfeifer | 3mo ago | +203 -11 | 92%Elevated | more lines added than baseline |
| 43 | d2f6b434Add EXCEPT and EXCEPT ALL set operations to SelectQuery (#19385) | Mark Scherer | 4mo ago | +290 -4 | 92%Elevated | more lines added than baseline |
| 44 | 4626bb28Split up StringTemplate::addClass() (#18999) | Mark Scherer | 9mo ago | +226 -53 | 92%Elevated | more lines added than baseline |
| 45 | 2ed2debbAdd PostgreSQL index access method reflection support (#19369) | Mark Scherer | 4mo ago | +177 -5 | 91%Elevated | more lines added than baseline |
| 46 | aadca0f5Add tests for BaseCommand $args and $io property hydration | Jamison Bryant | 5mo ago | +158 -0 | 91%Elevated | more lines added than baseline |
| 47 | 1f3c4ffbSimplify some iterators by adding negate and consolidate pcre + path filters | Jasper Smet | 7mo ago | +163 -257 | 91%Elevated | more lines added than baseline |
| 48 | f1230ac0 Ability to set default route options (like _host, _https, _port) (#18998) | Mark Scherer | 9mo ago | +183 -1 | 91%Elevated | more lines added than baseline |
| 49 | f8111141Add failing tests for afterSaveCommit suppression in outer transactions | Jamison Bryant | 4mo ago | +138 -0 | 90%Elevated | more lines added than baseline |
| 50 | feef47aaAdd draft MapRequestDto action mapping | Mark Scherer | 6mo ago | +204 -0 | 90%Elevated | more lines added than baseline |
Two views of the same model: where the cuts fall, and what commit shape lands you above them.
Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.
The 200 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.
cakephp/cakephp has 3,462 commits in its history from 117 contributors, the first of them May 21, 2021. In the last 90 days 193 files were touched, 254 times in total, most often Table.php. Every commit is scored for change risk from its size, spread and the history of the files it touches.