elsa-release

Create GitHub releases from Git tags with curated release notes for Elsa repositories.

7.9k|1.5k|Updated Oct 1, 2018
One-click install
npx skills add https://github.com/elsa-workflows/elsa-core --skill elsa-release
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: elsa-release
Source: https://github.com/elsa-workflows/elsa-core/tree/main/.agents/skills/elsa-release
Command: npx skills add https://github.com/elsa-workflows/elsa-core --skill elsa-release

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Releasing Elsa repositories involves error-prone manual steps: retagging RC commits as stable tags, writing curated release notes, publishing GitHub releases with the correct prerelease flags, and sequencing downstream repositories. This Skill automates and safeguards that entire tag-driven release workflow.

Core Features & Use Cases

  • Dry-run release preparation: The release.py helper validates the source commit, checks tag existence, verifies branch containment, and prints exact Git/GitHub commands before any live operation.
  • Curated release notes scaffolding: The release_notes.py helper collects commits in a compare range and generates a categorized Markdown scaffold (highlights, breaking changes, features, fixes, dependencies) ready for editorial polish.
  • Stable and preview releases: Publishes stable releases that trigger NuGet publishing or prereleases without NuGet, and supports retagging an existing RC tag as a stable tag.
  • Use Case: A maintainer asks to "release stable 3.7.0 from RC1" — the Skill dry-runs the retag of 3.7.0-rc1 to 3.7.0, generates release notes from the 3.6.2...3.7.0 range, waits for explicit confirmation, then pushes the tag and creates the GitHub release.

Quick Start

Use the elsa-release skill to dry-run a stable release of tag 3.7.0 from the existing 3.7.0-rc1 tag in this repository.

Frequently Asked Questions about elsa-release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a stable GitHub release from an existing RC tag?▼

Run the release.py helper with --source-ref pointing to the RC tag, --tag set to the stable version, and --release-kind stable. It defaults to dry-run mode showing exact commands; add --execute only after explicit confirmation to push the tag and create the release.

How to generate curated release notes from a commit range?▼

Run release_notes.py with --from-ref, --to-ref, --version, and --output to produce a categorized Markdown scaffold covering highlights, breaking changes, features, fixes, and dependencies. Then edit the scaffold into polished developer-facing notes before publishing.

What tools are required to run the release scripts?▼

The scripts require git and the GitHub CLI (gh) on PATH, plus Python 3. The gh CLI must be authenticated before executing releases; if it is unauthenticated, the workflow stops and asks you to authenticate.

Does the release helper prevent accidental tag overwrites?▼

Yes. The helper fails if the target tag already exists pointing to a different commit, and it never moves, deletes, or force-updates existing tags. It also validates that the source commit is contained in origin/main or an origin/release branch unless explicitly overridden.

What is the difference between stable and preview release kinds?▼

Stable releases are created as normal GitHub releases with --latest, which triggers NuGet publishing in Elsa pipelines. Preview releases are created with --prerelease and --latest=false, publishing packages only to feedz.io without touching NuGet.