hhvm / hack-codegen
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

File Change Frequency Overall
File Change Frequency Overall
The number of recorded file updates
  • There are 65 files with 3,853 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 6 files changed 6-20 times (1,253 lines of code)
    • 59 files changed 1-5 times (2,600 lines of code)
0% | 0% | 0% | 32% | 67%
Legend:
101+
51-100
21-50
6-20
1-5
explore: zoomable circles | data
File Change Frequency per File Extension
md, hack, html, scss, yml, php, json, gitignore, svg, gitattributes, txt, xml
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
hack0% | 0% | 0% | 32% | 67%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
src0% | 0% | 0% | 34% | 65%
src/key-value-render0% | 0% | 0% | 34% | 65%
src/_Private0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
468 50 124 1152 10 5
107 12 382 1152 7 3
244 30 677 1152 7 3
53 3 748 1152 6 3
HackBuilderValues.hack
in src/key-value-render
135 19 320 1152 6 2
246 28 151 1152 6 4
HackBuilderShapeRenderer.hack
in src/key-value-render
46 3 880 1152 5 2
131 10 748 1152 5 3
281 32 382 1152 5 2
HackBuilderCodegenRenderer.hack
in src/key-value-render
18 1 397 1152 4 2
HackBuilderRegexRenderer.hack
in src/key-value-render
20 1 320 1152 4 2
20 3 340 1152 4 3
29 5 748 1152 4 2
Filesystem.hack
in src/_Private
57 6 748 1152 4 3
190 36 382 1152 4 3
379 43 748 1152 4 3
Vec.hack
in src/_Private
11 1 748 1152 3 2
HackBuilderClassnameRenderer.hack
in src/key-value-render
14 1 748 1152 3 3
HackBuilderCodeRenderer.hack
in src/key-value-render
15 1 397 1152 3 2
67 9 397 1152 3 2
87 - 382 1152 3 2
HackBuilderKeyExportRenderer.hack
in src/key-value-render
11 1 880 1152 2 2
11 1 880 1152 2 2
14 2 340 1152 2 2
HackBuilderLiteralRenderer.hack
in src/key-value-render
14 1 880 1152 2 2
HackBuilderKeyLambdaRenderer.hack
in src/key-value-render
16 2 880 1152 2 2
16 2 880 1152 2 2
33 6 748 1152 2 2
33 2 880 1152 2 2
41 5 340 1152 2 2
45 5 382 1152 2 2
47 5 748 1152 2 2
50 5 1070 1152 2 1
52 7 340 1152 2 2
52 7 887 1152 2 2
55 7 340 1152 2 2
61 10 340 1152 2 2
64 8 1009 1152 2 1
72 10 340 382 2 1
strip_hh_prefix.hack
in src/_Private
83 1 748 1152 2 2
91 9 748 1152 2 2
3 - 1152 1152 1 1
IHackBuilderKeyRenderer.hack
in src/key-value-render
4 - 1152 1152 1 1
IHackBuilderValueRenderer.hack
in src/key-value-render
4 - 1152 1152 1 1
4 - 1152 1152 1 1
5 - 1152 1152 1 1
6 1 1152 1152 1 1
7 1 1152 1152 1 1
7 1 1152 1152 1 1
9 - 1152 1152 1 1
Files With Most Contributors (Top 50)
Files sorted by the number of unique email addresses found in commits.

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
468 50 124 1152 10 5
107 12 382 1152 7 3
244 30 677 1152 7 3
HackBuilderValues.hack
in src/key-value-render
135 19 320 1152 6 2
53 3 748 1152 6 3
246 28 151 1152 6 4
HackBuilderShapeRenderer.hack
in src/key-value-render
46 3 880 1152 5 2
281 32 382 1152 5 2
131 10 748 1152 5 3
HackBuilderCodegenRenderer.hack
in src/key-value-render
18 1 397 1152 4 2
HackBuilderRegexRenderer.hack
in src/key-value-render
20 1 320 1152 4 2
29 5 748 1152 4 2
Filesystem.hack
in src/_Private
57 6 748 1152 4 3
20 3 340 1152 4 3
190 36 382 1152 4 3
379 43 748 1152 4 3
67 9 397 1152 3 2
HackBuilderCodeRenderer.hack
in src/key-value-render
15 1 397 1152 3 2
Vec.hack
in src/_Private
11 1 748 1152 3 2
87 - 382 1152 3 2
HackBuilderClassnameRenderer.hack
in src/key-value-render
14 1 748 1152 3 3
72 10 340 382 2 1
50 5 1070 1152 2 1
64 8 1009 1152 2 1
33 6 748 1152 2 2
61 10 340 1152 2 2
91 9 748 1152 2 2
14 2 340 1152 2 2
41 5 340 1152 2 2
HackBuilderKeyExportRenderer.hack
in src/key-value-render
11 1 880 1152 2 2
33 2 880 1152 2 2
HackBuilderKeyLambdaRenderer.hack
in src/key-value-render
16 2 880 1152 2 2
11 1 880 1152 2 2
HackBuilderLiteralRenderer.hack
in src/key-value-render
14 1 880 1152 2 2
16 2 880 1152 2 2
strip_hh_prefix.hack
in src/_Private
83 1 748 1152 2 2
52 7 340 1152 2 2
47 5 748 1152 2 2
55 7 340 1152 2 2
52 7 887 1152 2 2
45 5 382 1152 2 2
30 2 1152 1152 1 1
6 1 1152 1152 1 1
11 1 1152 1152 1 1
23 2 1152 1152 1 1
IHackBuilderKeyRenderer.hack
in src/key-value-render
4 - 1152 1152 1 1
IHackBuilderValueRenderer.hack
in src/key-value-render
4 - 1152 1152 1 1
HackBuilderKeys.hack
in src/key-value-render
17 4 1152 1152 1 1
9 - 1152 1152 1 1
12 2 1152 1152 1 1
Correlations

File Size vs. Number of Changes: 65 points

src/CodegenFile.hack x: 468 lines of code y: 10 # changes src/CodegenFunctionish.hack x: 246 lines of code y: 6 # changes src/key-value-render/HackBuilderRegexRenderer.hack x: 20 lines of code y: 4 # changes src/key-value-render/HackBuilderValues.hack x: 135 lines of code y: 6 # changes src/CodegenClassConstant.hack x: 52 lines of code y: 2 # changes src/CodegenConstant.hack x: 41 lines of code y: 2 # changes src/CodegenProperty.hack x: 61 lines of code y: 2 # changes src/CodegenTypeConstant.hack x: 55 lines of code y: 2 # changes src/CodegenXHPAttribute.hack x: 72 lines of code y: 2 # changes src/SignedSource.hack x: 14 lines of code y: 2 # changes src/CodegenClass.hack x: 107 lines of code y: 7 # changes src/CodegenClassish.hack x: 281 lines of code y: 5 # changes src/CodegenFactoryTrait.hack x: 190 lines of code y: 4 # changes src/CodegenTrait.hack x: 45 lines of code y: 2 # changes src/ICodegenFactory.hack x: 87 lines of code y: 3 # changes src/XHPAttributeDecorator.hack x: 15 lines of code y: 1 # changes src/SignedSourceBase.hack x: 67 lines of code y: 3 # changes src/key-value-render/HackBuilderCodeRenderer.hack x: 15 lines of code y: 3 # changes src/key-value-render/HackBuilderCodegenRenderer.hack x: 18 lines of code y: 4 # changes src/BaseCodeBuilder.hack x: 244 lines of code y: 7 # changes src/CodegenEnum.hack x: 91 lines of code y: 2 # changes src/CodegenShapeMember.hack x: 29 lines of code y: 4 # changes src/CodegenType.hack x: 47 lines of code y: 2 # changes src/CodegenUsesTrait.hack x: 33 lines of code y: 2 # changes src/HackBuilder.hack x: 379 lines of code y: 4 # changes src/HackfmtFormatter.hack x: 53 lines of code y: 6 # changes src/PartiallyGeneratedCode.hack x: 131 lines of code y: 5 # changes src/_Private/Filesystem.hack x: 57 lines of code y: 4 # changes src/_Private/Vec.hack x: 11 lines of code y: 3 # changes src/_Private/strip_hh_prefix.hack x: 83 lines of code y: 2 # changes src/key-value-render/HackBuilderClassnameRenderer.hack x: 14 lines of code y: 3 # changes src/key-value-render/HackBuilderKeyExportRenderer.hack x: 11 lines of code y: 2 # changes src/key-value-render/HackBuilderKeyLambdaRenderer.hack x: 16 lines of code y: 2 # changes src/key-value-render/HackBuilderShapeRenderer.hack x: 46 lines of code y: 5 # changes src/CodegenMethodish.hack x: 64 lines of code y: 2 # changes src/CodegenClassWithInterfaces.hack x: 50 lines of code y: 2 # changes src/CodegenConstantish.hack x: 30 lines of code y: 1 # changes src/CodegenConstructor.hack x: 6 lines of code y: 1 # changes src/CodegenFunction.hack x: 3 lines of code y: 1 # changes src/CodegenGeneratedFrom.hack x: 12 lines of code y: 1 # changes src/CodegenImplementsInterface.hack x: 35 lines of code y: 1 # changes src/CodegenMethod.hack x: 7 lines of code y: 1 # changes src/CodegenShape.hack x: 46 lines of code y: 1 # changes src/CodegenWithVisibility.hack x: 25 lines of code y: 1 # changes src/HackBuilderRenderer.hack x: 11 lines of code y: 1 # changes src/HackCodegenConfig.hack x: 33 lines of code y: 1 # changes src/HackCodegenFactory.hack x: 10 lines of code y: 1 # changes src/ICodeBuilderRenderer.hack x: 5 lines of code y: 1 # changes src/ICodegenFormatter.hack x: 4 lines of code y: 1 # changes src/IHackCodegenConfig.hack x: 9 lines of code y: 1 # changes src/_Private/StrBuffer.hack x: 13 lines of code y: 1 # changes src/key-value-render/HackBuilderKeys.hack x: 17 lines of code y: 1 # changes src/key-value-render/HackBuilderNativeValueCollectionRenderer.hack x: 23 lines of code y: 1 # changes
10.0
# changes
  min: 1.0
  average: 2.52
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.5
  max: 10.0
0 468.0
lines of code
min: 3.0 | average: 59.28 | 25th percentile: 12.5 | median: 30.0 | 75th percentile: 59.0 | max: 468.0

Number of Contributors vs. Number of Changes: 65 points

src/CodegenFile.hack x: 5 # contributors y: 10 # changes src/CodegenFunctionish.hack x: 4 # contributors y: 6 # changes src/key-value-render/HackBuilderRegexRenderer.hack x: 2 # contributors y: 4 # changes src/key-value-render/HackBuilderValues.hack x: 2 # contributors y: 6 # changes src/CodegenClassConstant.hack x: 2 # contributors y: 2 # changes src/CodegenXHPAttribute.hack x: 1 # contributors y: 2 # changes src/PartiallyGeneratedSignedSource.hack x: 3 # contributors y: 4 # changes src/CodegenClass.hack x: 3 # contributors y: 7 # changes src/CodegenClassish.hack x: 2 # contributors y: 5 # changes src/ICodegenFactory.hack x: 2 # contributors y: 3 # changes src/XHPAttributeDecorator.hack x: 1 # contributors y: 1 # changes src/HackfmtFormatter.hack x: 3 # contributors y: 6 # changes src/PartiallyGeneratedCode.hack x: 3 # contributors y: 5 # changes src/key-value-render/HackBuilderClassnameRenderer.hack x: 3 # contributors y: 3 # changes
10.0
# changes
  min: 1.0
  average: 2.52
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.5
  max: 10.0
0 5.0
# contributors
min: 1.0 | average: 1.8 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 2.0 | max: 5.0