djkeh/test-data

테스트 데이터 생성기 프로젝트의 프로그래밍 언어 분석 오류 해결: `.gitattributes` 추가

Closed this issue · 6 comments

image

우리 프로젝트 우측 사이드바의 부가 정보들을 보면 사용 언어 분석 내용이 있는데, 희한하게도 주언어가 HTML 99.4% 로 나온다.
우리 프로젝트는 명백히 자바 프로젝트이다.
뭔가 문제가 있는 것 같은데, 원인을 파악하고 조치한다.

Todo

  • 깃헙에 문의하기
  • 깃헙 답신 확인 후 조치 방법 결정
  • 조치하기: 가이드에 따라 .gitattributes 추가

문의 경과

8/13, https://support.github.com/내 티켓을 발행하여 깃헙에 직접 문의함.

image

문의 경과

다음과 같은 답신 확인

Hi Uno,

I have heard back from the engineers and they identified that a Golang related vendored heuristic hardcoded into github-linguist caused the directories in your repo containing Java files to be considered vendored:

# Go fixtures
- (^|/)testdata/

So you have two options:

  • Add a .gitattributes file to their repository, with the following entries:
src/main/java/uno/fastcampus/testdata/* -linguist-vendored
src/test/java/uno/fastcampus/testdata/* -linguist-vendored

Or

  • Rename the two testdata directories in src/main/java/uno/fastcampus/testdata and src/test/java/uno/fastcampus/testdata. For example, test-data would not conflict with github-linguist's vendored heuristics.

The recommendation is it would be easiest to add the .gitattributes file.

Worth noting:
Using either the .gitattributes solution or renaming the testdata directories, both solutions fix the issue and allow the repo's language stats to accurately reflect the Java file percentage:

> cd test-data
> github-linguist
85.09%  106376     Java
14.83%  18535      HTML
0.09%   108        Procfile

Let me know how it goes.

Regards,

Seve

GitHub Support

조치 방법 결정

깃헙 Seve의 답변대로, 2가지 방안이 있는데:

  1. .gitattributes 작성하기
  2. 패키지명 리팩토링

1안으로 가기로 한다. 이유는:

  • 추천대로 가장 간편하고 변경이 적은 방법
  • 기존 패키지명 testdata에 심각한 하자가 있지는 않은 것으로 판단 -> 변경 동기가 적음
  • 패키지명 변경 추천안인 test-data에서 하이픈(-)의 사용은 자바 패키지명 네이밍 컨벤션을 위반 -> test_data가 될 수 있음
  • 그럼에도 보편적인 패키지 네이밍이 아님. 패키지명은 순수 영소문자로 유지하고자 함
  • 그렇다면 네이밍에 수고가 너무 들어감

마음에 들지 않는 부분은:

  • .gitattributes는 프로젝트와 상관없는 깃헙의 기능으로 이 맥락을 모르는 사람에게 컨텍스트 이해를 추가로 요구함
    • 커밋 메시지로 극복할 예정
  • .gitattributes는 깃헙 언어 분석 규칙을 수동으로 무시하는 것으로, 프로젝트의 근본적인 네이밍 문제를 해결하는 것은 아님
    • 깃헙의 문제로 문제 범위를 제한하여 간주할 수 있음

이 점 종합적으로 고려하고 1안으로 진행한다.

Reference

조치 경과

#99 로 작업을 완료하였으나, 여전히 문제가 완전히 해결되지 않은 것 같아서 이슈를 다시 오픈한다.
자바 언어가 잡히긴 했는데 비중이 고작 3.3% 밖에 안된다. 이는 실제와 다른 수치이다.
이 내용을 깃헙에 재차 문의한 상태.

image

240821, 2차 문의 답변

Hi Uno,

Thanks for your patience.

It looks like what is happening is linguist is not recursing into the directories nested with testdata, and an extra * is needed for the .gitattributes entries:

-src/main/java/uno/fastcampus/testdata/* -linguist-vendored
-src/test/java/uno/fastcampus/testdata/* -linguist-vendored
+src/main/java/uno/fastcampus/testdata/** -linguist-vendored
+src/test/java/uno/fastcampus/testdata/** -linguist-vendored

Give this a try.
Regards,

Seve

단순 문법 문제이므로, 새 제안 코드를 적용하면 해결될 것으로 예상함.

2차 조치 경과

image

이제 잘 나오는 것을 확인함.