Przejdź do treści
Biblioteka skilli
DevOps i chmura · Automatyzacja

release

/release

Przygotowuje wydanie pyhubblenetwork: podbija wersję, generuje notatki z commitów i wypycha tag uruchamiający PyPI.

Licencja
Apache-2.0
Ostatnia zmiana repozytorium
20.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
1
Przestarzałość

Brak sygnałów. Repozytorium zmienione 20.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Przygotowuje wydanie pyhubblenetwork: podbija wersję, generuje notatki z commitów i wypycha tag uruchamiający PyPI.

Oryginalny opis (EN)

Cut a release of pyhubblenetwork — bumps version, generates release notes from commits, commits, tags, and pushes to trigger the PyPI release workflow. Use this skill when the user wants to release, publish, cut a release, bump version, or push a new version to PyPI. Invoke via /release.

Jak działa

  1. Step 1: Pre-flight checks
  2. Step 2: Determine the new version
  3. Step 3: Generate release notes
  4. Step 4: Present draft for review
  5. Step 5: Apply changes
  6. Step 6: Tag and push
Sekcje z nagłówków SKILL.md, w oryginale · 119 linii, 539 słów
Podgląd SKILL.md
---
name: release
description: Cut a release of pyhubblenetwork — bumps version, generates release notes from commits, commits, tags, and pushes to trigger the PyPI release workflow. Use this skill when the user wants to release, publish, cut a release, bump version, or push a new version to PyPI. Invoke via /release.
user_invocable: true
---

# Release pyhubblenetwork

Automates the full release flow: version bump, release notes generation, commit, tag, and push. The tag push triggers the GitHub Actions workflow that runs tests, builds, creates a GitHub Release, and publishes to PyPI.

## Step 1: Pre-flight checks

Before anything else, verify the repo is in a clean, releasable state.

```bash
# All three checks in one go
git status --porcelain
git branch --show-current
git fetch origin main && git rev-list --left-right --count origin/main...HEAD
```

**Abort if:**
- Working tree has uncommitted changes (dirty status)
- Not on the `main` branch
- Local is behind remote (left count > 0 means remote has commits you don't have)

Tell the user what's wrong and how to fix it. Don't proceed.

## Step 2: Determine the new version

Read the current version from `pyproject.toml`:

```bash
python3 -c "
import tomllib
with open('pyproject.toml', 'rb') as f:
    data = tomllib.load(f)
print(data['project']['version'])
"
```

Parse into major.minor.patch and compute the three bump options. Present them to the user using AskUserQuestion with these options:

- **Patch** (X.Y.Z+1) — bug fixes, backwards compatible
- **Minor** (X.Y+1.0) — new features, backwards compatible
- **Major** (X+1.0.0) — breaking changes

Wait for the user to choose before continuing.

## Step 3: Generate release notes

Get commits since the last release tag:

```bash
git describe --tags --abbrev=0   # gets the last tag, e.g. v0.5.0
git log <last-tag>..HEAD --oneline
```

Categorize each commit by its conventional commit prefix:

| Prefix | Category heading |
|--------|-----------------|
| `feat` | `### Added` |
| `fix` | `### Fixed` |
| `docs` | `### Documentation` |
| `test` | `### Tests` |
| `chore`, `ci`, `build`, `refactor`, `perf`, `style` | `### Maintenance` |

**Skip** commits whose message starts with `chore: release` or `release: bump` — these are previous release commits.

Format each entry as a bullet matching the existing style in `release-notes.md`:
```
- feat(cli): add org delete-device command with confirmation prompt
```

Use the full commit subject line (the oneline message) as the bullet text. Only include category headings that have entries. Order categories: Added, Fixed, Documentation, Tests, Maintenance.

## Step 4: Present draft for review

Show the user the complete release notes entry that will be added:

```
## [X.Y.Z] - YYYY-MM-DD

### Added
- feat(...): ...

### Fixed
- fix(...): ...
```

Use AskUserQuestion with options:
- **Approve** — proceed with this draft as-is
- **Abort** — cancel the release

If the user picks "Other" to provide edits, apply their requested changes and show the updated draft again for confirmation.

## Step 5: Apply changes

Once approved:

1. **Update `pyproject.toml`**: Change the `version = "..."` line to the new version using the Edit tool.

2. **Update `release-notes.md`**: Insert the new release notes section immediately after the `# Release Notes` header (before the first `## [` entry) using the Edit tool.

3. **Commit**:
```bash
git add pyproject.toml release-notes.md
git commit -m "chore: release X.Y.Z"
```

## Step 6: Tag and push

```bash
git tag vX.Y.Z
git push origin main
git push origin vX.Y.Z
```

After pushing, tell the user:
- The release workflow has been triggered
- Link them to check progress: `https://github.com/HubbleNetwork/pyhubblenetwork/actions`
- Remind them to approve the publish step in GitHub Actions (the `pypi` environment gate)

Wersje

RepozytoriumWynikLicencja
Ta strona · HubbleNetwork/pyhubblenetwork100Apache-2.0
max-sixty/worktrunk100MIT
gtapps/hermitd100MIT
gtapps/hermitd100MIT
anthony-chaudhary/fak100Apache-2.0
tractorjuice/arc-kit100MIT
drvoss/everything-copilot-cli100MIT
sma1lboy/rove100MIT
codealong/codealong100Apache-2.0

Migawka bazy z 28.10.2026 · wersja paczki 5b215c7eaa9f (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100version-release
    Podbija wersję, tworzy tag wydania i wypycha tag do repozytorium.
  • 100do-deploy
    Wdraża popoto: uruchamia testy, podbija wersję, taguje wydanie, publikuje w PyPI i wdraża dokumentację.
  • 100release-cli
    Wydaje nową wersję CLI pd: uruchamia testy, podbija wersję, tworzy tag i wypycha go do zdalnego repozytorium.
  • 100making-a-release
    Prowadzi wydanie fused-render: podbija __version__, wprowadza zmianę na chronioną gałąź main przez pull request, taguje vX.Y.Z i wypycha tag, co uruchamia workflow z buildami DMG i AppImage, GitHub Release i PyPI.
  • 100ship
    Przeprowadza wydanie od początku do końca: podbija wersję wszędzie, pisze changelog i dokumentację, taguje, publikuje na PyPI i npm.
  • 100nvidia-nemoclaw-maintainer-cut-release-tag
    Wydaje nową wersję semver: podbija numery wersji skryptem bump-version.ts, otwiera pull request wydania, a po scaleniu taguje main i wypycha tag.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.