변경셋
Astro 모노레포를 위한 변경셋 파일을 생성합니다. 변경셋은 변경된 패키지, semver 범프 유형, 그리고 CHANGELOG 항목이 되는 사용자 대상 메시지를 선언합니다.
패키지를 수정하는 모든 PR에는 변경셋이 필요합니다. examples/* 변경만 예외입니다.
파일 생성
리포지토리 루트에서 pnpm changeset --empty를 실행하세요. 그러면 .changeset/ 디렉터리에 무작위 이름의 .md 파일이 생성됩니다. 파일 이름을 직접 정하거나 디렉터리를 확인할 필요가 없습니다. 그런 다음 생성된 파일을 편집하여 패키지 범프와 메시지를 추가하세요.
형식
---
'<package-name>': patch
---
<changeset message>
- 패키지명은 해당 패키지의
package.json에 있는name필드와 정확히 일치해야 합니다 (예:'astro','@astrojs/node') - 범프 유형:
patch,minor, 또는major - 하나의 변경셋 파일이 여러 패키지를 다룰 수 있습니다
- 코어
astro패키지에 대한major및minor범프는 CI에서 차단되며 유지보수자의 검토가 필요합니다
메시지 작성
변경셋 메시지는 공개 CHANGELOG 항목입니다. 코드 검토자가 아닌 Astro 사용자를 위해 작성하세요.
현재 시제 동사로 시작하여 "이 PR은..." 문장을 완성하세요:
- Adds, Removes, Fixes, Updates, Refactors, Improves, Deprecates
변경 사항을 Astro 사이트를 구축하는 사람이 경험할 방식으로 설명하고, 내부 구현 방식으로 설명하지 마세요:
// 너무 구현 중심
Logs helpful errors if content is invalid
// 더 나은 표현 -- 사용자 영향 중심
Adds logging for content collections configuration errors.
패치 업데이트
보통 한 줄이면 충분합니다. 여러 문장을 쓰는 경우가 아니라면 끝에 마침표를 붙일 필요가 없습니다.
---
'astro': patch
---
Fixes a bug where the toolbar audit would incorrectly flag images as above the fold
---
'astro': patch
---
Refactors internal handling of styles and scripts for content collections to improve build performance
변경 사항이 독자에게 중요한지 판단할 수 있도록 도와주세요. 변경 사항이 특정 옵션이나 함수와 관련된 경우 해당 API 이름(백틱 서식 포함)을 명시하세요. API가 사용자에게 직접 노출되지 않는 경우, 대신 사용 사례나 최종 결과를 설명하세요:
// 모호함
Improves automatic fallbacks generation
// 명확함 -- 독자가 자신에게 영향을 주는지 알 수 있음
Improves automatic `fallbacks` generation for the experimental Fonts API
새로운 기능 (minor)
"Adds"로 시작하고, 새로운 API 이름을 명시하며, 사용자가 이제 무엇을 할 수 있는지 설명하세요. 도움이 될 경우 코드 예제를 포함하세요:
---
'astro': minor
---
Adds a new, optional property `timeout` for the `client:idle` directive
This value allows you to specify a maximum time to wait, in milliseconds, before hydrating a UI framework component.
```astro
<Button client:idle={{ timeout: 500 }} />
```
새로운 기능은 블로그 게시물로도 활용될 수 있는 더 풍부한 설명을 작성할 기회입니다. 더 긴 항목 작성에 대한 지침은 Astro 변경셋 문서를 참조하세요.
주요 변경 사항 (major)
"Removes", "Changes", 또는 "Deprecates"와 같은 동사를 사용하세요. 마이그레이션 안내를 반드시 포함해야 합니다. 적절한 경우 diff 코드 샘플을 사용하세요:
---
'astro': major
---
Removes support for Shiki custom language's `path` property. The language JSON file must now be imported and passed to the option instead.
```diff
// astro.config.js
+ import customLang from './custom.tmLanguage.json'
export default defineConfig({
markdown: {
shikiConfig: {
langs: [
- { path: './custom.tmLanguage.json' },
+ customLang,
],
},
},
})
```
기본값 변경 시에는 이전 기본값, 새 기본값, 그리고 이전 동작을 복원하는 방법을 반드시 언급해야 합니다.
긴 변경셋
긴 설명의 경우, #### 및 더 낮은 수준의 제목을 사용하여 섹션을 나누세요 (##나 ###는 사용하지 마세요). 이렇게 하면 항목이 CHANGELOG에 포함될 때 가독성이 유지됩니다:
---
'astro': minor
---
Adds a new Sessions API to store user state between requests for on-demand rendered pages.
#### Configuring session storage
<!-- ... -->
#### Using sessions
<!-- ... -->