Rush 및 변경 로그 생성 - 업데이트

rush changefiles 명령을 작성하는 것은 즐거웠지만 많이 사용하지 않는다는 점을 인정해야 합니다. 주/부/패치로 제한되더라도 커밋 중에 생성되는 변경 파일의 양은 엄청납니다.

대신, 나는 또 다른 approach로 가기로 결정했습니다.... 러시로 만들 기회가 있을 수도 있습니다🤞

아이디어


  • 변경 파일과 변경 로그를 만드는 일반적인 아이디어는 동일하게 유지됩니다.
  • 러시 변경을 실행할 때 커밋을 표시하는 추가 매개변수--show-commits를 사용할 수 있습니다.
  • 그리고 --recommend-changetype 매개변수를 사용하면 커밋이 구문 분석되고 conventional commits을 기반으로 변경 유형이 제안됩니다.

  • 그동안...



    이 제안이 언제 실현될지 확신이 서지 않아 rush whatchanged 명령으로 내 generator-rush-conventionalcommits을 확장했습니다.
    다음 두 가지 작업을 수행합니다.

  • 커밋 내역 표시: projectAnalyzer.getChangedProjectsAsync 에서 반환한 각 프로젝트에 대해 rush change 에서 사용하는 개정 범위에 포함된 커밋 내역을 shortlog 형식
  • 으로 표시합니다.

  • 변경 유형 제안 projectAnalyzer.getChangedProjectsAsync 에서 반환한 각 프로젝트에 대해 rush change 에서 사용한 개정 범위의 커밋을 필터링하고 conventional-commit-types을 참조
  • 로 사용합니다.

    스크립트



    rush-whatChanged.jsprojectAnalyzer를 사용하여 변경된 프로젝트 목록을 얻습니다. 또한 병합 기준을 가져올 때 기능을 미러링하여projectAnalyzer 표시/구문 분석된 커밋이 변경 파일의 필요성을 유발한 커밋인지 확인합니다.

    커밋 기록 표시



    커밋 기록을 표시하기 위해 스크립트는 다음을 실행합니다.

    git shortlog ${mergeHash}... -- "${project.projectRelativeFolder}"
    


    커밋이 많을 수 있으므로 기록을 파일에 저장하는 것이 더 나을 수 있습니다.

    추천 변경 유형



    변경 유형 계산은 다음과 같습니다conventional commits. 스크립트는 커밋 메시지를 필터링하고 계산하기 위해 정규식으로 호출git rev-list --count --grep합니다.

    주요 변경이 필요할 수 있는 커밋을 감지하고 계산하려면 다음을 수행하십시오.

    git rev-list --count --extended-regexp --grep "(^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(.*?)?!:.*|^BREAKING CHANGE: )" -- "${projectFolder}"
    


    주요 변경을 유발하는 커밋이 없으면 스크립트는 사소한 변경 커밋을 검색합니다.

    git rev-list --count --extended-regexp --grep "^feat((.*?))?:" -- "${projectFolder}"
    


    마지막으로 주요 또는 사소한 변경 사항이 없는 경우 패치 범프를 유발하는 커밋이 있는지 확인합니다.

    git rev-list --count --extended-regexp --grep "^fix((.*?))?:" -- "${projectFolder}"
    


    결과는 다음과 같이 요약됩니다.


    npm에서 최신 버전의 생성기를 다운로드할 수 있습니다.
    코드가 켜져 있습니다GitHub.

    좋은 웹페이지 즐겨찾기