guardian/frontend
Temporal Dependencies A temporal dependency occurs when developers change two or more files at the same time (i.e. they are a part of the same commit). |
Dependencies between components in same commits (primary)
The number on the lines shows the number of shared commits.
flowchart TB
n0["common"]
n1["applications"]
n2["article"]
n3["dev-build"]
n4["project"]
n5["admin"]
n6["preview"]
n7["facia-press"]
n8["identity"]
n9["sport"]
n10["onward"]
n11["discussion"]
n0 ---|"42"| n0
n0 ---|"34"| n1
n1 ---|"18"| n1
n0 ---|"12"| n2
n3 ---|"10"| n0
n4 ---|"10"| n0
n3 ---|"9"| n1
n2 ---|"6"| n1
n5 ---|"6"| n5
n6 ---|"6"| n0
n6 ---|"6"| n1
n3 ---|"5"| n2
n2 ---|"5"| n2
n6 ---|"5"| n2
n6 ---|"5"| n3
n7 ---|"4"| n0
n0 ---|"4"| n5
n4 ---|"4"| n8
n9 ---|"4"| n0
n10 ---|"3"| n1
n10 ---|"3"| n0
n10 ---|"3"| n3
n7 ---|"3"| n4
n7 ---|"3"| n7
n11 ---|"3"| n0
n4 ---|"3"| n1
n8 ---|"3"| n8
n9 ---|"3"| n5
n9 ---|"3"| n1
n9 ---|"3"| n4
n11 ---|"2"| n4
n8 ---|"2"| n0
n8 ---|"2"| n11
n1 ---|"2"| n5
n6 ---|"2"| n5
n4 ---|"2"| n5
n4 ---|"2"| n6
n9 ---|"2"| n6
n5 ---|"1"| n2
n3 ---|"1"| n5
n6 ---|"1"| n6
n4 ---|"1"| n2
n4 ---|"1"| n3
n9 ---|"1"| n2
n9 ---|"1"| n3
n9 ---|"1"| n9
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#a0a0a0FF,stroke-width:10px
linkStyle 1 stroke:#00688bDB,stroke-width:8px
linkStyle 2 stroke:#a0a0a093,stroke-width:4px
linkStyle 3 stroke:#00688b70,stroke-width:2px
linkStyle 4 stroke:#00688b70,stroke-width:2px
linkStyle 5 stroke:#00688b70,stroke-width:2px
linkStyle 6 stroke:#00688b70,stroke-width:2px
linkStyle 7 stroke:#00688b5E,stroke-width:1px
linkStyle 8 stroke:#a0a0a05E,stroke-width:1px
linkStyle 9 stroke:#00688b5E,stroke-width:1px
linkStyle 10 stroke:#00688b5E,stroke-width:1px
linkStyle 11 stroke:#00688b5E,stroke-width:1px
linkStyle 12 stroke:#a0a0a05E,stroke-width:1px
linkStyle 13 stroke:#00688b5E,stroke-width:1px
linkStyle 14 stroke:#00688b5E,stroke-width:1px
linkStyle 15 stroke:#00688b4C,stroke-width:1px
linkStyle 16 stroke:#00688b4C,stroke-width:1px
linkStyle 17 stroke:#00688b4C,stroke-width:1px
linkStyle 18 stroke:#00688b4C,stroke-width:1px
linkStyle 19 stroke:#00688b4C,stroke-width:1px
linkStyle 20 stroke:#00688b4C,stroke-width:1px
linkStyle 21 stroke:#00688b4C,stroke-width:1px
linkStyle 22 stroke:#00688b4C,stroke-width:1px
linkStyle 23 stroke:#a0a0a04C,stroke-width:1px
linkStyle 24 stroke:#00688b4C,stroke-width:1px
linkStyle 25 stroke:#00688b4C,stroke-width:1px
linkStyle 26 stroke:#a0a0a04C,stroke-width:1px
linkStyle 27 stroke:#00688b4C,stroke-width:1px
linkStyle 28 stroke:#00688b4C,stroke-width:1px
linkStyle 29 stroke:#00688b4C,stroke-width:1px
linkStyle 30 stroke:#00688b4C,stroke-width:1px
linkStyle 31 stroke:#00688b4C,stroke-width:1px
linkStyle 32 stroke:#00688b4C,stroke-width:1px
linkStyle 33 stroke:#00688b4C,stroke-width:1px
linkStyle 34 stroke:#00688b4C,stroke-width:1px
linkStyle 35 stroke:#00688b4C,stroke-width:1px
linkStyle 36 stroke:#00688b4C,stroke-width:1px
linkStyle 37 stroke:#00688b4C,stroke-width:1px
linkStyle 38 stroke:#00688b4C,stroke-width:1px
linkStyle 39 stroke:#00688b4C,stroke-width:1px
linkStyle 40 stroke:#a0a0a04C,stroke-width:1px
linkStyle 41 stroke:#00688b4C,stroke-width:1px
linkStyle 42 stroke:#00688b4C,stroke-width:1px
linkStyle 43 stroke:#00688b4C,stroke-width:1px
linkStyle 44 stroke:#00688b4C,stroke-width:1px
linkStyle 45 stroke:#a0a0a04C,stroke-width:1px
Download:
Mermaid (.mmd)
(open online Mermaid editor)
Open 2D force graph (file dependencies)... Open 3D force graph (file dependencies)...
Dependencies between files in same commits
The number on the lines shows the number of shared commits.
Files Most Frequently Changed Together (Top 50)
| Pairs | # same commits | # commits 1 | # commits 2 | latest commit |
|---|---|---|---|---|
| applications/app/controllers/PuzzlesPageController.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
13 | 29 (44%) | 17 (76%) | 2026-10-07 |
| common/app/navigation/Navigation.scala common/app/navigation/NavLinks.scala |
11 | 146 (7%) | 715 (1%) | 2026-10-06 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesPageController.scala |
9 | 19 (47%) | 29 (31%) | 2026-10-02 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
9 | 19 (47%) | 17 (52%) | 2026-10-02 |
| applications/app/controllers/PuzzlesArchiveBuilder.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
8 | 17 (47%) | 10 (80%) | 2026-10-07 |
| common/app/model/PuzzlesLayout.scala applications/app/controllers/PuzzlesLayoutProvider.scala |
8 | 16 (50%) | 20 (40%) | 2026-10-07 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesPageController.scala |
8 | 715 (1%) | 29 (27%) | 2026-10-06 |
| common/app/navigation/Navigation.scala applications/app/controllers/PuzzlesPageController.scala |
8 | 146 (5%) | 29 (27%) | 2026-10-06 |
| applications/app/controllers/PuzzlesPageController.scala applications/app/controllers/ApplicationsControllers.scala |
7 | 29 (24%) | 227 (3%) | 2026-10-07 |
| common/app/services/AffiliateProductPriceCache.scala common/app/model/dotcomrendering/pageElements/PageElement.scala |
7 | 11 (63%) | 633 (1%) | 2026-10-06 |
| common/app/staticpages/StaticPages.scala common/app/navigation/NavLinks.scala |
7 | 166 (4%) | 715 (<1%) | 2026-10-01 |
| common/app/staticpages/StaticPages.scala applications/app/controllers/PuzzlesPageController.scala |
7 | 166 (4%) | 29 (24%) | 2026-10-01 |
| applications/app/controllers/PuzzlesArchiveApiClient.scala applications/app/controllers/ApplicationsControllers.scala |
6 | 10 (60%) | 227 (2%) | 2026-10-07 |
| applications/app/controllers/PuzzlesArchiveBuilder.scala applications/app/controllers/ApplicationsControllers.scala |
6 | 17 (35%) | 227 (2%) | 2026-10-07 |
| applications/app/controllers/PuzzlesPageController.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
6 | 29 (20%) | 10 (60%) | 2026-10-07 |
| common/app/model/dotcomrendering/DotcomRenderingDataModel.scala common/app/model/dotcomrendering/DotcomBlocksRenderingDataModel.scala |
6 | 320 (1%) | 55 (10%) | 2026-10-06 |
| common/app/model/dotcomrendering/DotcomRenderingUtils.scala common/app/model/dotcomrendering/DotcomBlocksRenderingDataModel.scala |
6 | 227 (2%) | 55 (10%) | 2026-10-06 |
| common/app/model/dotcomrendering/DotcomRenderingUtils.scala common/app/model/dotcomrendering/DotcomRenderingDataModel.scala |
6 | 227 (2%) | 320 (1%) | 2026-10-06 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
6 | 715 (<1%) | 17 (35%) | 2026-10-06 |
| common/app/navigation/Navigation.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
6 | 146 (4%) | 17 (35%) | 2026-10-06 |
| common/app/common/configuration.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
6 | 3338 (<1%) | 10 (60%) | 2026-10-01 |
| common/app/model/dotcomrendering/DotcomPuzzlePageRenderingDataModel.scala applications/app/controllers/PuzzlesPageController.scala |
6 | 6 (100%) | 29 (20%) | 2026-09-30 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala common/app/navigation/NavLinks.scala |
5 | 19 (26%) | 715 (<1%) | 2026-10-01 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala common/app/navigation/Navigation.scala |
5 | 19 (26%) | 146 (3%) | 2026-10-01 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
5 | 19 (26%) | 10 (50%) | 2026-10-01 |
| common/app/services/ArticleAbTestAgent.scala article/app/controllers/ArticleController.scala |
5 | 7 (71%) | 1488 (<1%) | 2026-10-02 |
| common/app/common/configuration.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
5 | 3338 (<1%) | 17 (29%) | 2026-10-01 |
| common/app/common/configuration.scala common/app/model/DotcomPuzzlesPageRenderingDataModel.scala |
5 | 3338 (<1%) | 19 (26%) | 2026-10-01 |
| common/app/staticpages/StaticPages.scala applications/app/controllers/ApplicationsControllers.scala |
5 | 166 (3%) | 227 (2%) | 2026-10-01 |
| dev-build/app/http/DevBuildParametersHttpRequestHandler.scala common/app/dev/DevParametersHttpRequestHandler.scala |
5 | 69 (7%) | 298 (1%) | 2026-10-01 |
| article/app/AppLoader.scala applications/app/AppLoader.scala |
5 | 244 (2%) | 235 (2%) | 2026-09-30 |
| dev-build/app/AppLoader.scala applications/app/AppLoader.scala |
5 | 452 (1%) | 235 (2%) | 2026-09-30 |
| dev-build/app/AppLoader.scala article/app/AppLoader.scala |
5 | 452 (1%) | 244 (2%) | 2026-09-30 |
| project/Dependencies.scala common/app/services/eventgraphic/EventGraphicService.scala |
5 | 2955 (<1%) | 13 (38%) | 2026-09-30 |
| common/app/model/pressedContent.scala common/app/services/eventgraphic/EventGraphicService.scala |
5 | 348 (1%) | 13 (38%) | 2026-09-16 |
| common/app/model/dotcomrendering/pageElements/PageElement.scala common/app/model/dotcomrendering/DotcomBlocksRenderingDataModel.scala |
4 | 633 (<1%) | 55 (7%) | 2026-10-06 |
| common/app/model/dotcomrendering/pageElements/PageElement.scala common/app/model/dotcomrendering/DotcomRenderingDataModel.scala |
4 | 633 (<1%) | 320 (1%) | 2026-10-06 |
| common/app/model/dotcomrendering/pageElements/PageElement.scala common/app/model/dotcomrendering/DotcomRenderingUtils.scala |
4 | 633 (<1%) | 227 (1%) | 2026-10-06 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesLayoutProvider.scala |
4 | 715 (<1%) | 20 (20%) | 2026-09-24 |
| common/app/navigation/NavLinks.scala applications/app/controllers/ApplicationsControllers.scala |
4 | 715 (<1%) | 227 (1%) | 2026-10-01 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
4 | 715 (<1%) | 10 (40%) | 2026-10-01 |
| common/app/navigation/Navigation.scala applications/app/controllers/ApplicationsControllers.scala |
4 | 146 (2%) | 227 (1%) | 2026-10-01 |
| common/app/navigation/Navigation.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
4 | 146 (2%) | 10 (40%) | 2026-10-01 |
| common/app/renderers/DotcomRenderingService.scala applications/app/controllers/PuzzlesPageController.scala |
4 | 296 (1%) | 29 (13%) | 2026-10-06 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/ApplicationsControllers.scala |
4 | 19 (21%) | 227 (1%) | 2026-10-01 |
| common/app/services/ArticleAbTestAgent.scala article/app/controllers/HealthCheck.scala |
4 | 7 (57%) | 91 (4%) | 2026-10-02 |
| common/app/common/configuration.scala common/app/services/AffiliateProductPriceCache.scala |
4 | 3338 (<1%) | 11 (36%) | 2026-09-30 |
| common/app/common/configuration.scala applications/app/controllers/ApplicationsControllers.scala |
4 | 3338 (<1%) | 227 (1%) | 2026-10-01 |
| common/app/common/configuration.scala applications/app/controllers/PuzzlesPageController.scala |
4 | 3338 (<1%) | 29 (13%) | 2026-10-01 |
| common/app/common/configuration.scala common/app/navigation/NavLinks.scala |
4 | 3338 (<1%) | 715 (<1%) | 2026-10-01 |
Files from Different Folders Most Frequently Changed Together (Top 20)
| Pairs | # same commits | # commits 1 | # commits 2 | latest commit |
|---|---|---|---|---|
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesPageController.scala |
9 | 19 (47%) | 29 (31%) | 2026-10-02 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
9 | 19 (47%) | 17 (52%) | 2026-10-02 |
| common/app/model/PuzzlesLayout.scala applications/app/controllers/PuzzlesLayoutProvider.scala |
8 | 16 (50%) | 20 (40%) | 2026-10-07 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesPageController.scala |
8 | 715 (1%) | 29 (27%) | 2026-10-06 |
| common/app/navigation/Navigation.scala applications/app/controllers/PuzzlesPageController.scala |
8 | 146 (5%) | 29 (27%) | 2026-10-06 |
| common/app/services/AffiliateProductPriceCache.scala common/app/model/dotcomrendering/pageElements/PageElement.scala |
7 | 11 (63%) | 633 (1%) | 2026-10-06 |
| common/app/staticpages/StaticPages.scala common/app/navigation/NavLinks.scala |
7 | 166 (4%) | 715 (<1%) | 2026-10-01 |
| common/app/staticpages/StaticPages.scala applications/app/controllers/PuzzlesPageController.scala |
7 | 166 (4%) | 29 (24%) | 2026-10-01 |
| common/app/navigation/NavLinks.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
6 | 715 (<1%) | 17 (35%) | 2026-10-06 |
| common/app/navigation/Navigation.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
6 | 146 (4%) | 17 (35%) | 2026-10-06 |
| common/app/common/configuration.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
6 | 3338 (<1%) | 10 (60%) | 2026-10-01 |
| common/app/model/dotcomrendering/DotcomPuzzlePageRenderingDataModel.scala applications/app/controllers/PuzzlesPageController.scala |
6 | 6 (100%) | 29 (20%) | 2026-09-30 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala common/app/navigation/NavLinks.scala |
5 | 19 (26%) | 715 (<1%) | 2026-10-01 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala common/app/navigation/Navigation.scala |
5 | 19 (26%) | 146 (3%) | 2026-10-01 |
| common/app/model/DotcomPuzzlesPageRenderingDataModel.scala applications/app/controllers/PuzzlesArchiveApiClient.scala |
5 | 19 (26%) | 10 (50%) | 2026-10-01 |
| common/app/services/ArticleAbTestAgent.scala article/app/controllers/ArticleController.scala |
5 | 7 (71%) | 1488 (<1%) | 2026-10-02 |
| common/app/common/configuration.scala applications/app/controllers/PuzzlesArchiveBuilder.scala |
5 | 3338 (<1%) | 17 (29%) | 2026-10-01 |
| common/app/common/configuration.scala common/app/model/DotcomPuzzlesPageRenderingDataModel.scala |
5 | 3338 (<1%) | 19 (26%) | 2026-10-01 |
| common/app/staticpages/StaticPages.scala applications/app/controllers/ApplicationsControllers.scala |
5 | 166 (3%) | 227 (2%) | 2026-10-01 |
| dev-build/app/http/DevBuildParametersHttpRequestHandler.scala common/app/dev/DevParametersHttpRequestHandler.scala |
5 | 69 (7%) | 298 (1%) | 2026-10-01 |