From 7c50c5e6845787d0a79db9a37b8da2812e3ab5af Mon Sep 17 00:00:00 2001 From: forgejo-backport-action Date: Sat, 18 Apr 2026 01:59:11 +0200 Subject: [PATCH] [v15.0/forgejo] fix: always include files set to be detectable for language stats (#12171) **Backport:** https://codeberg.org/forgejo/forgejo/pulls/11685 - The documentation has the correct behavior about `linguist-detectable`: In cases where a file should be considered for language statistics, regardless of its category, the linguist-detectable attribute can be used. - This patch follows that behavior by not skipping the file even if some heuristic would've said to skip the file. - Document the conditions in more natural language. - Resolves forgejo/forgejo#11248 Co-authored-by: Gusted Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12171 Reviewed-by: Gusted Co-authored-by: forgejo-backport-action Co-committed-by: forgejo-backport-action --- modules/git/fetch_test.go | 2 +- modules/git/grep_test.go | 2 +- modules/git/repo_language_stats.go | 20 +++++++++++++----- modules/git/repo_language_stats_test.go | 10 +++++++++ ...1b1f6c24df14da4898b22c00ff8fb55303ac76.idx | Bin 1520 -> 0 bytes ...b1f6c24df14da4898b22c00ff8fb55303ac76.pack | Bin 2748 -> 0 bytes ...1b1f6c24df14da4898b22c00ff8fb55303ac76.rev | Bin 116 -> 0 bytes ...d0100ad5c382a7e8e1bacada4b66b927f29b72.idx | Bin 0 -> 1632 bytes ...0100ad5c382a7e8e1bacada4b66b927f29b72.pack | Bin 0 -> 3704 bytes ...d0100ad5c382a7e8e1bacada4b66b927f29b72.rev | Bin 0 -> 132 bytes .../repos/language_stats_repo/packed-refs | 2 +- tests/integration/linguist_test.go | 4 ++-- 12 files changed, 30 insertions(+), 10 deletions(-) delete mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx delete mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack delete mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.rev create mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx create mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.pack create mode 100644 modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev diff --git a/modules/git/fetch_test.go b/modules/git/fetch_test.go index 95a1fa387d..b7ead10d4a 100644 --- a/modules/git/fetch_test.go +++ b/modules/git/fetch_test.go @@ -26,7 +26,7 @@ func TestFetch(t *testing.T) { fetchedCommitID, err := repo.Fetch(otherRepoPath, "refs/heads/master") require.NoError(t, err) - assert.Equal(t, "95d3505f2db273e40be79f84416051ae85e9ea0d", fetchedCommitID) + assert.Equal(t, "5684d0c8cfdfb17fcd59101826efc9ff54b80df4", fetchedCommitID) c, err := repo.getCommit(MustIDFromString(fetchedCommitID)) require.NoError(t, err) diff --git a/modules/git/grep_test.go b/modules/git/grep_test.go index 83ddb766af..5666a425f4 100644 --- a/modules/git/grep_test.go +++ b/modules/git/grep_test.go @@ -65,7 +65,7 @@ func TestGrepSearch(t *testing.T) { return } - res, err = GrepSearch(t.Context(), repo, "world", GrepOptions{MatchesPerFile: 1}) + res, err = GrepSearch(t.Context(), repo, "world", GrepOptions{RefName: "95d3505f2db273e40be79f84416051ae85e9ea0d", MatchesPerFile: 1}) require.NoError(t, err) assert.Equal(t, []*GrepResult{ { diff --git a/modules/git/repo_language_stats.go b/modules/git/repo_language_stats.go index ee4beb2f87..2832c4f572 100644 --- a/modules/git/repo_language_stats.go +++ b/modules/git/repo_language_stats.go @@ -168,11 +168,21 @@ func (repo *Repository) GetLanguageStats(commitID string) (map[string]int64, err } } - if isFalse(isDetectable) || isTrue(isVendored) || isTrue(isDocumentation) || - (!isFalse(isVendored) && analyze.IsVendor(f.Name())) || - enry.IsDotFile(f.Name()) || - enry.IsConfiguration(f.Name()) || - (!isFalse(isDocumentation) && enry.IsDocumentation(f.Name())) { + // Don't skip this file if it is explicitly set to be detectable. + // Skip this file if one of the following conditions holds: + // 1. Explicitly set to not be detectable. + // 2. Explicitly set that it is vendored. + // 3. Explicitly set that it is documentation. + // 4. Is not explicitly set to not be vendored and is by heuristic considered to be vendored. + // 5. It is considered to be a dot file. + // 6. It is considered to be a configuration file. + // 7. Is not explicitly set to not be documentation and is by heuristic considered to be documentation. + if !isTrue(isDetectable) && + (isFalse(isDetectable) || isTrue(isVendored) || isTrue(isDocumentation) || + (!isFalse(isVendored) && analyze.IsVendor(f.Name())) || + enry.IsDotFile(f.Name()) || + enry.IsConfiguration(f.Name()) || + (!isFalse(isDocumentation) && enry.IsDocumentation(f.Name()))) { continue } diff --git a/modules/git/repo_language_stats_test.go b/modules/git/repo_language_stats_test.go index e3d8ba1f69..2bc57b56c5 100644 --- a/modules/git/repo_language_stats_test.go +++ b/modules/git/repo_language_stats_test.go @@ -34,6 +34,16 @@ func TestRepository_GetLanguageStats(t *testing.T) { "Python": 67, "Java": 112, }, stats) + + stats, err = gitRepo.GetLanguageStats("5684d0c8cfdfb17fcd59101826efc9ff54b80df4") + require.NoError(t, err) + + assert.Equal(t, map[string]int64{ + "Cobra": 67, + "Python": 67, + "Markdown": 15, + "Java": 112, + }, stats) } func TestMergeLanguageStats(t *testing.T) { diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx deleted file mode 100644 index 186136cb126104a88a2d5b178914b1c1dbc86f17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520 zcmexg;-AdGz`z8=0|gj?79(SjTaYm`kWUU~0qP?MvjX*D!)!ot5N4+l<^Ylj^$n@L~4iL*%D*MH0Pj#qS4FW zr8!F5R$ zGWSUHQy<+;ZN_Kyr#q>>`Soqr@AHf0mY%*LBx82dwV>7G6w{Z=RYtS@S3Ia(9Tt`( zqTh4b>jZOhpLgd}kvyYWtPiIB(kWkHn{d;H@4#%U!|Uz`I!@O8QgZLmj8!Q<=4D>SRlRQ z1;g5TpQm09h}Ydz{Dk}Y{1(TAz;&%JU-7P5B>lsuTbU)H*ZzccNrl5F*QA-J4z2$? zW&NeM0_L$<-GzbD8>GagZ!KN@_~;j%b&-8$dR@KSG+a}!?S59Z?fsd3PbTes{r=VtGJ$26Jio9F_Ybw>)NS(qZ`DzcrY7O<6^|^kH*Z{o8Uv P9(ikby)sPtbZa62Y)$41 diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack deleted file mode 100644 index 046061c688b93c0f08c8aef52e1d1e5470de40cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2748 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 diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx new file mode 100644 index 0000000000000000000000000000000000000000..80e1ee36b5e03a9d7315b57de3ce8f7ff7ac4e2c GIT binary patch literal 1632 zcmexg;-AdGz`z8=0|gj?79(SjTaYm`kWUU~0qP?MvjX*D!)!ot5N0P4a{$#7gE@if zkTDmKPcG&L>V;t*Ae)w$7ic~o4$Kb}r#2PkBmite5zx) zR|%2Yp?9{#m@&;csGw-{@^@*D(zaEs9bu*%H`?d3sT7J*V zkpdEG?@#^@*}?lI;ie7Wf!S7v*WC|voUHq$mXnZ;iJ>D!uoMeU#weaJK(lYwyy^+~4K}?uiA`J6941)sK&U z(ODPSXQtQHyG_G2_1f-dRomX5+4p49-q-Ix9zXD-zWJq<@2j}i0y!QJ#IDT`DL6VS zImG&k`=OZ1^ajKEy=e~43?Zy-llFz35;0?2{c`ewV(~{mH<<`v!;)0*eA*Sl~>NJ2wuNzQ$Cy?I?%;s7^dJ|C1?wSh% sTvrb_Er0QF*Qs0HX*<tMJ>|G>#-5{Hc>{T3& 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 TiF&uS+=`vmhqnk3^AZ06PcRwE literal 0 HcmV?d00001 diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev new file mode 100644 index 0000000000000000000000000000000000000000..c2e2e3aeae5ba8e39983452d5e8a8abd4ec4b528 GIT binary patch literal 132 zcmWIYbctYKU|@t|b|B3M#LPg<3&h+&%mu{4K+FNeOhC*E#B4y!55z1$%n8H-Kr95r zAag)~2Z#l0E(ma4J>0bX#lu~vZh5EeRR1))C{Jz43h}7an;Ys{iZ=-wa+XI<&;$UT Ct`-mg literal 0 HcmV?d00001 diff --git a/modules/git/tests/repos/language_stats_repo/packed-refs b/modules/git/tests/repos/language_stats_repo/packed-refs index 63e01583a4..b046027fce 100644 --- a/modules/git/tests/repos/language_stats_repo/packed-refs +++ b/modules/git/tests/repos/language_stats_repo/packed-refs @@ -1,2 +1,2 @@ # pack-refs with: peeled fully-peeled sorted -95d3505f2db273e40be79f84416051ae85e9ea0d refs/heads/master +5684d0c8cfdfb17fcd59101826efc9ff54b80df4 refs/heads/master diff --git a/tests/integration/linguist_test.go b/tests/integration/linguist_test.go index efeaaabb98..06ff1bd22f 100644 --- a/tests/integration/linguist_test.go +++ b/tests/integration/linguist_test.go @@ -156,8 +156,8 @@ func TestLinguistSupport(t *testing.T) { langs := getFreshLanguageStats(t, repo, sha) assert.Len(t, langs, 2) - assert.Equal(t, "C", langs[0].Language) - assert.Equal(t, "Markdown", langs[1].Language) + assert.Equal(t, "Markdown", langs[0].Language) + assert.Equal(t, "C", langs[1].Language) }) // 4. Marking foo.c as documentation