Skip to main content

quiche-draft-release

quiche draft GitHub release automation from a release commit hash or existing tag. Use when creating draft releases for the quiche crate from a quiche/Cargo.toml version bump.

Datos de origen

Repositorio
cloudflare/quiche
Última actividad en el origen
18 de septiembre de 2026 a las 10:06
Idioma detectado de SKILL.md
inglés
Estrellas
12.787
Forks
1175

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
quiche-draft-release
description
quiche draft GitHub release automation from a release commit hash or existing tag. Use when creating draft releases for the quiche crate from a quiche/Cargo.toml version bump.
# quiche Draft Release Use this skill when the user asks to create a GitHub draft release for the `quiche` crate and provides, or should provide, either the commit hash that bumped `quiche/Cargo.toml` or an existing release tag pointing at that commit. Do not require a pre-existing tag. quiche release tags are created after the release PR is merged, because GitHub does not support fast-forward PR merges. Use the release commit hash as the source of truth when the tag does not exist yet, and let `gh release create` target that commit. If the release tag already exists, the user may provide either the tag or the commit hash. ## Inputs - Required: a release ref. This is either a commit hash for the commit that changed `quiche/Cargo.toml` to the released version, or an existing quiche release tag such as `0.29.1` that points at that commit. - Optional: a release title emoji. If none is requested, choose one consistent with existing quiche releases. If the release ref is missing or ambiguous, ask one short clarification question. ## Workflow 1. Run a dry run with the helper script: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh --dry-run <release-ref> ``` 2. Use the dry-run output to identify the version, previous quiche release tag, compare range, and whether the tag already exists. 3. Prepare release notes for `quiche/` only, following `RELEASING.md`: - Do not use a raw commit list. - Include only important user-visible changes. - Clearly mark breaking changes and security fixes. - Explain what applications need to change for breaking changes. - Use versioned `docs.rs` links for new public APIs where useful. - Ignore unrelated workspace crates, release commits, formatting, clippy, test-only changes, and internal refactors unless user-visible. 4. Write the release notes to a temporary file, for example: ```bash /tmp/quiche-release-<version>.md ``` 5. Before creating the release, unless the user has explicitly asked to proceed without confirmation, show the exact `gh release create` command and ask for confirmation. 6. Create the GitHub draft release with the helper script: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh \ --title "<emoji> <version>" \ --notes-file /tmp/quiche-release-<version>.md \ <release-ref> ``` 7. Verify the draft after creation: ```bash gh release view <version> --repo cloudflare/quiche \ --json tagName,name,isDraft,isPrerelease,url ``` GitHub draft release URLs often use `untagged-*`. Trust `tagName` from `gh release view` to verify the draft is associated with the expected version. ## Helper Script Behavior The helper script: - Resolves the supplied release ref to a commit. The ref may be a commit hash or an existing quiche release tag. - Reads the release version from `quiche/Cargo.toml` at the resolved commit. - Verifies the resolved commit changed the quiche crate version relative to its first parent. - Infers the previous quiche release tag from semver-like quiche tags merged into the release commit. - Refuses to create a release if a GitHub release for that version already exists. - Uses the existing release tag if it exists and points at the resolved commit. - Adds `--target <commit>` when the tag does not exist yet. - Creates the GitHub release as a draft only. ## Examples Dry run: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh \ --dry-run f0c7193c3 ``` Dry run with an existing tag: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh \ --dry-run 0.29.1 ``` Create a draft release: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh \ --title "🩹 0.29.1" \ --notes-file /tmp/quiche-release-0.29.1.md \ f0c7193c3 ``` Create a draft release from an existing tag: ```bash ./.codex/skills/quiche-draft-release/scripts/create-draft-release.sh \ --title "🩹 0.29.1" \ --notes-file /tmp/quiche-release-0.29.1.md \ 0.29.1 ``` ## Do Not - Do not create or move git tags manually as part of this skill. - Do not publish the release; keep it as a draft. - Do not create releases for non-`quiche` workspace crates with this skill. - Do not overwrite or edit an existing GitHub release unless the user explicitly asks for that.
Ver en GitHub