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.

Informações da origem

Repositório
cloudflare/quiche
Última atividade na origem
18 de setembro de 2026 às 10:06
Idioma detectado do SKILL.md
inglês
Estrelas
12.831
Forks
1.187

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
2 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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 no GitHub