릴리스 노트 작성하기

각 릴리스 사이클마다 모든 언어에 대한 릴리즈 노트를 작성합니다. 이 과정은 부분적으로 자동화되어 있습니다. 자동화 시스템은 정기적으로 실행되며 dotnet, java, js 및 python에 대해 ({YYYY-MM} 릴리스에 대한 {Language} 릴리즈 노트) 형식의 제목으로 pull requests를 생성합니다. 다음은 병합하기 전에 PR을 업데이트/검토하기 위한 지침입니다.

  • 릴리스된 패키지의 엔지니어링 리드는 자동화 시스템에 의해 잘 인식되고 있는지, 엔트리가 올바른지 확인해야 합니다.
    • _data/releases/YYYY-MM/{language}.yml에 생성된 데이터를 업데이트하려면, 검토 시 릴리스 드라이브가 PR에 커밋할 수 있는 github 스타일의 제안을 추가해야 합니다.
    • 자동화 시스템에 의해 아직 추가되지 않은 경우, PR에 추가해야 할 새로운 릴리스 엔트리를 제안합니다.(대부분의 경우)
    • 릴리스에 있어야 할 패키지가 표시되지 않는 경우, 패키지가 릴리스된 후 자동화가 실행되지 않았기 때문일 수 있습니다. 패키지는 일반적으로 보통 24시간 이내에 자동화 시스템에 의해 인식되어야 합니다.
    • _data/releases/YYYY-MM/{language}.yml에서 생성된 데이터는 Jekyll 엔진에 의해 releases/YYYY-MM/{language}.md에 있는 해당 Markdown 파일의 해당 섹션으로 가져옵니다. yml 파일의 변경 내용이 메인 파일에 머지되면 github.io 사이트 https://azure.github.io/azure-sdk/releases/YYYY-MM/{language}.html에서 가져온 내용을 볼 수 있습니다.
  • 릴리스 관리자는 릴리스 기간에 있어서는 안 되는 패키지의 모든 엔트리를 숨기고, full request를 검토하고 머지해야 합니다.
    • Hidden 필드를 true로 설정하면 엔트리를 숨길 수 있습니다.
    • 코드가 완료된 후, 릴리스 관리자는 릴리스 노트를 목차에 연결하기 전에 최종 편집 단계를 수행합니다.

릴리스 노트는 릴리스의 일부이며 “코드 완료” 날짜까지 최종 편집할 준비가 되어 있어야 합니다.

릴리스 노트에는 무엇이 있습니까?

릴리스 노트는 다음 4개의 색션으로 구성되어 있습니다:

  1. 릴리스 중인 패키지 목록(변경 사항에 영향을 미치는 개발자가 있는) 및 패키지 설치 방법
  2. 패키지별로 구성된, 각 패키지의 “변경 사항에 영향을 미치는 개발자” 목록
  3. 최신 릴리스 정보에 대한 링크를 제공하는 상용구
  4. “point in time” 패키지 다운로드, 소스 코드 및 참조 문서를 가리키는 링크 테이블

참고: 링크 테이블에 다른 문서나 샘플을 포함하지 마십시오. 표준 최신 릴리스 링크를 통해 접근할 수 있습니다.

“변경 사항에 영향을 미치는 개발자”란 무엇입니까?

대부분의 버그 수정은 고객의 클라이언트 개발 방식에 영향을 미치지 않으므로 모든 버그 수정 사항을 알리고 싶지는 않습니다. 변경 로그에는 전체 변경 목록을 제공합니다. 복제할 필요가 없습니다.

그러나 릴리스 노트에는 고객을 위한 중요한 변경 사항이 나열되어 있습니다. 중요한 변경 사항이란 개발자가 알아야 하거나 알고 싶어하는 것입니다. 정의된 중요한 변경 사항에는 다음 섹션 헤더(기능 추가, 주요 변경 사항버그 수정)를 사용합니다:

  • 기능 추가 - 릴리스 노트에 새 기능이 호출됩니다.
  • 주요 변경 사항 - 기존 기능 중단, 곧 제거될 기능 또는 현재 제거되는 기능 등 어떤 형태로든 고객에게 문제가 되는 모든 변경사항입니다.
  • 버그 수정 - 중요한 버그 수정은 보안 수정을 포함하여 릴리스 노트에 기재되어 있습니다. 고객이 인지하거나 어떤 식으로든 대응해야 하는 사항을 포함합니다.

예를 들어, “올바른 속성 이름을 사용하도록 SubscriptionProperties의 MaxDeliveryCount 속성의 ArgumentOutOfRangeException에 표시된 속성 이름이 업데이트되었습니다.”는 중요한 버그 수정으로 간주되지 않으므로 버그 수정아래에 나열해서는 안 되지만 다른 수정사항에는 나열할 수 있습니다. 그러나, “AzureAD 자격 증명을 지원하기 위해 생성자에 새로운 과부하를 추가했습니다”는 기능 추가아래에 기재하는 것이 좋습니다.

릴리스 노트가 사용자의 관점에서 작성되었는지 확인합니다. 문서 링크나 짧은 코드 조각으로 변경 사항을 활용하는 방법을 설명하지 않고서 새로운 변경사항에 대해 알려주고 싶지 않습니다.

라이브러리가 변경되었지만 “변경 사항에 영향을 주는 개발자”가 없으면 어떻게 합니까?

릴리스 노트에서 라이브러리를 제외하거나 “이 릴리스에는 품질을 향상시키기 위한 버그 수정이 포함되어 있습니다”와 같은 메모를 추가할 수 있습니다.

빠른 링크를 생성하는 방법은 무엇입니까?

릴리스 관리자는 버전의 특정 시점 스냅샷을 생성하고 릴리스 노트가 스냅샷을 사용하여 빠른 링크 테이블을 생성하도록 합니다.

릴리스 노트는 누가, 언제 게시합니까?

  • 모든 릴리스에 대해, 릴리스 관리자는 이 달의 릴리스 폴더에 릴리즈 노트를 병합하여 게시합니다.

대역 외 릴리스에서는 어떻게 해야 합니까?

공식 릴리스 노트 출시일 이후 다음 출시일 전에 라이브러리를 출시해야 하는 경우, 다음 릴리스 노트를 이번 달 릴리스 노트에 추가하십시오. _Language Release Owner_는 이번 달의 릴리스 폴더에 릴리스 노트를 병합하여 게시합니다.

예를 들어:

  1. 공식 릴리스 노트는 2020년 9월 18일에 발표됩니다.
  2. 출하되어야 할 라이브러리는 2020년 9월 22일까지 출하되지 않습니다.
  3. PR을 제출하여 9월 릴리스 노트에 릴리스 노트를 추가하고 _Language Release Owner_에 태그를 붙입니다.

질문이 있는 경우, 팀의 _Language Release Owner_에게 문의하십시오.

필요에 따라 대역 외 릴리스에 소셜 미디어 지원을 선택적으로 제공할 수 있습니다. 자세한 내용은 출시 최소 7일(영업일 기준) 전에 _커뮤니티 참여 관리자_에게 문의 하십시오.

도움이 필요하면 어디에 요청해야 합니까?

릴리즈에 대한 도움이 필요할 때 _Azure SDK 릴리스 관리자_가 가장 적합합니다. Azure SDK Teams 팀에서 Release 채널을 관리합니다. 도움이 필요한 경우 다음 URL의 팀 채널에 메시지를 게시할 수 있습니다: https://aka.ms/azsdk/teams/release