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.