Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
3 tasks done
djkeh opened this issue Aug 16, 2024 · 6 comments · Fixed by #99 or #101
Closed
3 tasks done
Assignees
Labels
enhancement New feature or request

Comments

@djkeh
Copy link
Owner

djkeh commented Aug 16, 2024

image

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

Todo

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

djkeh commented Aug 16, 2024

문의 경과

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

image

@djkeh
Copy link
Owner Author

djkeh commented Aug 16, 2024

문의 경과

다음과 같은 답신 확인

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

@djkeh
Copy link
Owner Author

djkeh commented Aug 16, 2024

조치 방법 결정

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

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

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

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

마음에 들지 않는 부분은:

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

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

Reference

@djkeh djkeh changed the title 테스트 데이터 생성기 프로젝트의 패키지명 리팩토링 테스트 데이터 생성기 프로젝트의 프로그래밍 언어 분석 오류 해결: .gitattributes 추가 Aug 16, 2024
djkeh added a commit that referenced this issue Aug 16, 2024
깃헙에 문의 결과,
패키지명 중 `testdata` 부분이
go언어 추론 규칙에 포함되어 있어서
문제를 일으키는 모양.
그러나 패키지명의 네이밍 자체에는 문제가 없어 보이고
깃헙의 언어 추론 규칙을 무시하는 방법이 있어
이를 적용함.

이 방법은 go언어 뿐만 아니라 `vendored heuristic`
전반을 무시할 것으로 예상되므로,
추후에 관련 문제가 생긴다면 아예
패키지명을 리팩토링하는 것을 다시 고려해볼 것.

* #96 (comment)
djkeh added a commit that referenced this issue Aug 20, 2024
깃헙에 문의 결과,
패키지명 중 `testdata` 부분이
go언어 추론 규칙에 포함되어 있어서
문제를 일으키는 모양.
그러나 패키지명의 네이밍 자체에는 문제가 없어 보이고
깃헙의 언어 추론 규칙을 무시하는 방법이 있어
이를 적용함.

이 방법은 go언어 뿐만 아니라 `vendored heuristic`
전반을 무시할 것으로 예상되므로,
추후에 관련 문제가 생긴다면 아예
패키지명을 리팩토링하는 것을 다시 고려해볼 것.

* #96 (comment)
@djkeh djkeh closed this as completed in #99 Aug 20, 2024
@djkeh
Copy link
Owner Author

djkeh commented Aug 20, 2024

조치 경과

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

image

@djkeh
Copy link
Owner Author

djkeh commented Sep 4, 2024

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

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

djkeh added a commit that referenced this issue Sep 4, 2024
03f2ff1 커밋이 원하는 결과를 내지 않아서
깃헙에 추가 문의 결과,
기존에 제안해 준, 패키지명 검사 예외 상태를
회피하는 문법이 정확하지 않았다는 답변과 함께
수정안을 제안해 줌.
이를 받아서 적용함.

이 방법은 go언어 뿐만 아니라 `vendored heuristic`
전반을 무시할 것으로 예상되므로,
추후에 관련 문제가 생긴다면 아예
패키지명을 리팩토링하는 것을 다시 고려해볼 것.

* #96 (comment)
djkeh added a commit that referenced this issue Sep 4, 2024
03f2ff1 커밋이 원하는 결과를 내지 않아서
깃헙에 추가 문의 결과,
기존에 제안해 준, 패키지명 검사 예외 상태를
회피하는 문법이 정확하지 않았다는 답변과 함께
수정안을 제안해 줌.
이를 받아서 적용함.

이 방법은 go언어 뿐만 아니라 `vendored heuristic`
전반을 무시할 것으로 예상되므로,
추후에 관련 문제가 생긴다면 아예
패키지명을 리팩토링하는 것을 다시 고려해볼 것.

* #96 (comment)
@djkeh djkeh closed this as completed in #101 Sep 4, 2024
@djkeh
Copy link
Owner Author

djkeh commented Sep 4, 2024

2차 조치 경과

image

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment