mcpField
C
changeset

changeset

github.com/withastro開発63.6k321 回インストール今日更新
リポジトリ

changeset について

Astro monorepo で Changeset ファイルを作成するスキルです。コントリビューター向けに、パッケージのバージョン更新種別とユーザー向け CHANGELOG の記述方法を案内します。

主な機能

  1. 01ランダム名の Changeset ファイル生成
  2. 02パッケージと semver 更新種別の指定
  3. 03ユーザー向け CHANGELOG の作成
  4. 04破壊的変更と移行手順の記述

活用シーン

  1. 01パッケージ変更のリリース記録
  2. 02複数パッケージの更新種別の宣言
  3. 03機能や破壊的変更の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/withastro/astro --skill changeset

インストール後、Claude Code で/changesetを入力して読み込まれたか確認します。

同梱ファイルevals/evals.json

詳細

Changeset

Astro モノレポ用の changeset ファイルを作成します。Changeset には、変更されたパッケージ、semver の更新種別、CHANGELOG のエントリーとなるユーザー向けメッセージを記述します。

パッケージを変更する PR にはすべて changeset が必要です。examples/* の変更のみ対象外です。

ファイルの作成

リポジトリのルートから pnpm changeset --empty を実行します。これにより、.changeset/ に空のフロントマターを持つランダムな名前の .md ファイルが作成されます。ファイル名を考えたり、ディレクトリを確認したりする必要はありません。その後、生成されたファイルを編集して、パッケージの更新種別とメッセージを追加します。

形式

---
'<package-name>': patch
---

<changeset message>
  • パッケージ名は、そのパッケージの package.json の name フィールドと完全に一致させる必要があります(例:'astro'、'@astrojs/node')。
  • 更新種別:patch、minor、major
  • 1 つの changeset ファイルで複数のパッケージを対象にできます
  • コアの astro パッケージの major と minor の更新は CI でブロックされ、メンテナーによるレビューが必要です

メッセージの作成

changeset メッセージは、公開される CHANGELOG のエントリーです。コードレビュー担当者ではなく、Astro ユーザーに向けて書いてください。

「This PR ...」の文を完成させる現在形の動詞で始めます。

  • Adds、Removes、Fixes、Updates、Refactors、Improves、Deprecates

内部でどのように実装したかではなく、Astro サイトを構築する人が変更をどのように体験するかを説明します。

// Too implementation-focused
Logs helpful errors if content is invalid

// Better -- user-facing impact
Adds logging for content collections configuration errors.
Patch 更新

通常は 1 行で十分です。複数の文を書く場合を除き、文末の句読点は不要です。

---
'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 がユーザー向けでない場合は、ユースケースや最終的な結果を説明してください。

// Vague
Improves automatic fallbacks generation

// Clear -- reader can tell if it affects them
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 changeset docs を参照してください。

破壊的変更(major)

「Removes」、「Changes」、「Deprecates」などの動詞を使います。移行方法を必ず含めてください。適切な場合は、差分形式のコードサンプルを使用してください。

---
'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,
      ],
    },
  },
})
```

デフォルト値を変更する場合は、以前のデフォルト値、新しいデフォルト値、以前の動作に戻す方法を記載する必要があります。

長めの changeset

長めの説明では、セクションを分けるために #### 以降の見出しを使用してください(## や ### は使用しないでください)。これにより、エントリーが取り込まれたときも CHANGELOG を読みやすく保てます。

---
'astro': minor
---

Adds a new Sessions API to store user state between requests for on-demand rendered pages.

#### Configuring session storage



#### Using sessions


コメント