Procedure: Updating Changelog for New Releases
Objective
To standardize the process of updating changelog files (latest.md,
preview.md, index.md) based on automated release information.
Inputs
- version: The release version string (e.g.,
v0.28.0,
v0.29.0-preview.2).
- TIME: The release timestamp (e.g.,
2026-02-12T20:33:15Z).
- BODY: The raw markdown release notes, containing a "What's Changed"
section and a "Full Changelog" link.
Guidelines for latest.md and preview.md Highlights
- Aim for 3-5 key highlight points.
- Each highlight point must start with a bold-typed title that summarizes the
change (e.g.,
**New Feature:** A brief description...).
- Prioritize summarizing new features over other changes like bug fixes or
chores.
- Avoid mentioning features that are "experimental" or "in preview" in
Stable Releases.
- DO NOT include PR numbers, links, or author names in these highlights.
- Refer to
.gemini/skills/docs-changelog/references/highlights_examples.md
for the correct style and tone.
Initial Processing
- Analyze Version: Determine the release path based on the
version
string.
- If
version contains "nightly", STOP. No changes are made.
- If
version ends in .0, follow the Path A: New Minor Version
procedure.
- If
version does not end in .0, follow the Path B: Patch Version
procedure.
- Process Time: Convert the
TIME input into two formats for later use:
yyyy-mm-dd and Month dd, yyyy.
- Process Body:
- Save the incoming
BODY content to a temporary file for processing.
- In the "What's Changed" section of the temporary file, reformat all pull
request URLs to be markdown links with the PR number as the text (e.g.,
[#12345](URL)).
- If a "New Contributors" section exists, delete it.
- Preserve the "Full Changelog" link. The processed content of this
temporary file will be used in subsequent steps.
Path A: New Minor Version
Use this path if the version number ends in .0.
A.1: Stable Release (e.g., v0.28.0)
For a stable release, you will generate two distinct summaries from the
changelog: a concise announcement for the main changelog page, and a more
detailed highlights section for the release-specific page.
Create the Announcement for index.md:
- Generate a concise announcement summarizing the most important changes.
Each announcement entry must start with a bold-typed title that
summarizes the change.
- Important: The format for this announcement is unique. You must
use the existing announcements in
docs/changelogs/index.md and the
example within
.gemini/skills/docs-changelog/references/index_template.md as your
guide. This format includes PR links and authors.
- Add this new announcement to the top of
docs/changelogs/index.md.
Create Highlights and Update latest.md:
- Generate a comprehensive "Highlights" section, following the guidelines
in the "Guidelines for
latest.md and preview.md Highlights" section
above.
- Take the content from
.gemini/skills/docs-changelog/references/latest_template.md.
- Populate the template with the
version, release_date, generated
highlights, and the processed content from the temporary file.
- Completely replace the contents of
docs/changelogs/latest.md with
the populated template.
A.2: Preview Release (e.g., v0.29.0-preview.0)
- Update
preview.md:
- Generate a comprehensive "Highlights" section, following the highlight
guidelines.
- Take the content from
.gemini/skills/docs-changelog/references/preview_template.md.
- Populate the template with the
version, release_date, generated
highlights, and the processed content from the temporary file.
- Completely replace the contents of
docs/changelogs/preview.md
with the populated template.
Path B: Patch Version
Use this path if the version number does not end in .0.
B.1: Stable Patch (e.g., v0.28.1)
- Target File:
docs/changelogs/latest.md
- Perform the following edits on the target file:
Update the version in the main header. The line should read,
# Latest stable release: {{version}}
Update the rease date. The line should read,
Released: {{release_date_month_dd_yyyy}}
Prepend the processed "What's Changed" list from the temporary file
to the existing "What's Changed" list in latest.md. Do not change or
replace the existing list, only add to the beginning of it.
In the "Full Changelog", edit only the end of the URL. Identify the
last part of the URL that looks like ...{previous_version} and update
it to be ...{version}.
Example: assume the patch version is v0.29.1. Change
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0
to
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.1
B.2: Preview Patch (e.g., v0.29.0-preview.3)
- Target File:
docs/changelogs/preview.md
- Perform the following edits on the target file:
Update the version in the main header. The line should read,
# Preview release: {{version}}
Update the rease date. The line should read,
Released: {{release_date_month_dd_yyyy}}
Prepend the processed "What's Changed" list from the temporary file
to the existing "What's Changed" list in preview.md. Do not change or
replace the existing list, only add to the beginning of it.
In the "Full Changelog", edit only the end of the URL. Identify the
last part of the URL that looks like ...{previous_version} and update
it to be ...{version}.
Example: assume the patch version is v0.29.0-preview.1. Change
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.0
to
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.1
Finalize
- After making changes, run
bun run format to ensure consistency.
- Delete any temporary files created during the process.
1---2name: docs-changelog3description: Generates and formats changelog files for a new release based on provided version and raw changelog data.4---56# Procedure: Updating Changelog for New Releases78## Objective910To standardize the process of updating changelog files (`latest.md`,11`preview.md`, `index.md`) based on automated release information.1213## Inputs1415- **version**: The release version string (e.g., `v0.28.0`,16 `v0.29.0-preview.2`).17- **TIME**: The release timestamp (e.g., `2026-02-12T20:33:15Z`).18- **BODY**: The raw markdown release notes, containing a "What's Changed"19 section and a "Full Changelog" link.2021## Guidelines for `latest.md` and `preview.md` Highlights2223- Aim for **3-5 key highlight points**.24- Each highlight point must start with a bold-typed title that summarizes the25 change (e.g., `**New Feature:** A brief description...`).26- **Prioritize** summarizing new features over other changes like bug fixes or27 chores.28- **Avoid** mentioning features that are "experimental" or "in preview" in29 Stable Releases.30- **DO NOT** include PR numbers, links, or author names in these highlights.31- Refer to `.gemini/skills/docs-changelog/references/highlights_examples.md`32 for the correct style and tone.3334## Initial Processing35361. **Analyze Version**: Determine the release path based on the `version`37 string.38 - If `version` contains "nightly", **STOP**. No changes are made.39 - If `version` ends in `.0`, follow the **Path A: New Minor Version**40 procedure.41 - If `version` does not end in `.0`, follow the **Path B: Patch Version**42 procedure.432. **Process Time**: Convert the `TIME` input into two formats for later use:44 `yyyy-mm-dd` and `Month dd, yyyy`.453. **Process Body**:46 - Save the incoming `BODY` content to a temporary file for processing.47 - In the "What's Changed" section of the temporary file, reformat all pull48 request URLs to be markdown links with the PR number as the text (e.g.,49 `[#12345](URL)`).50 - If a "New Contributors" section exists, delete it.51 - Preserve the "**Full Changelog**" link. The processed content of this52 temporary file will be used in subsequent steps.5354---5556## Path A: New Minor Version5758*Use this path if the version number ends in `.0`.*5960### A.1: Stable Release (e.g., `v0.28.0`)6162For a stable release, you will generate two distinct summaries from the63changelog: a concise **announcement** for the main changelog page, and a more64detailed **highlights** section for the release-specific page.65661. **Create the Announcement for `index.md`**:67 - Generate a concise announcement summarizing the most important changes.68 Each announcement entry must start with a bold-typed title that69 summarizes the change.70 - **Important**: The format for this announcement is unique. You **must**71 use the existing announcements in `docs/changelogs/index.md` and the72 example within73 `.gemini/skills/docs-changelog/references/index_template.md` as your74 guide. This format includes PR links and authors.75 - Add this new announcement to the top of `docs/changelogs/index.md`.76772. **Create Highlights and Update `latest.md`**:78 - Generate a comprehensive "Highlights" section, following the guidelines79 in the "Guidelines for `latest.md` and `preview.md` Highlights" section80 above.81 - Take the content from82 `.gemini/skills/docs-changelog/references/latest_template.md`.83 - Populate the template with the `version`, `release_date`, generated84 `highlights`, and the processed content from the temporary file.85 - **Completely replace** the contents of `docs/changelogs/latest.md` with86 the populated template.8788### A.2: Preview Release (e.g., `v0.29.0-preview.0`)89901. **Update `preview.md`**:91 - Generate a comprehensive "Highlights" section, following the highlight92 guidelines.93 - Take the content from94 `.gemini/skills/docs-changelog/references/preview_template.md`.95 - Populate the template with the `version`, `release_date`, generated96 `highlights`, and the processed content from the temporary file.97 - **Completely replace** the contents of `docs/changelogs/preview.md`98 with the populated template.99100---101102## Path B: Patch Version103104*Use this path if the version number does **not** end in `.0`.*105106### B.1: Stable Patch (e.g., `v0.28.1`)107108- **Target File**: `docs/changelogs/latest.md`109- Perform the following edits on the target file:110 1. Update the version in the main header. The line should read,111 `# Latest stable release: {{version}}`112 2. Update the rease date. The line should read,113 `Released: {{release_date_month_dd_yyyy}}`114 3. **Prepend** the processed "What's Changed" list from the temporary file115 to the existing "What's Changed" list in `latest.md`. Do not change or116 replace the existing list, **only add** to the beginning of it.117 4. In the "Full Changelog", edit **only** the end of the URL. Identify the118 last part of the URL that looks like `...{previous_version}` and update119 it to be `...{version}`.120121 Example: assume the patch version is `v0.29.1`. Change122 `Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0`123 to124 `Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.1`125126### B.2: Preview Patch (e.g., `v0.29.0-preview.3`)127128- **Target File**: `docs/changelogs/preview.md`129- Perform the following edits on the target file:130 1. Update the version in the main header. The line should read,131 `# Preview release: {{version}}`132 2. Update the rease date. The line should read,133 `Released: {{release_date_month_dd_yyyy}}`134 3. **Prepend** the processed "What's Changed" list from the temporary file135 to the existing "What's Changed" list in `preview.md`. Do not change or136 replace the existing list, **only add** to the beginning of it.137 4. In the "Full Changelog", edit **only** the end of the URL. Identify the138 last part of the URL that looks like `...{previous_version}` and update139 it to be `...{version}`.140141 Example: assume the patch version is `v0.29.0-preview.1`. Change142 `Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.0`143 to144 `Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.1`145146---147148## Finalize149150- After making changes, run `bun run format` to ensure consistency.151- Delete any temporary files created during the process.