<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8" -->

---
title: Inside a Month of semrel: From v0.10.0 to v0.24.0
description: semrel, a Go-based semantic release automation tool, shipped 15 releases (v0.10.0 to v0.24.0) in roughly four weeks. Key additions include a lockfile for...
canonical: https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Inside a Month of semrel: From v0.10.0 to v0.24.0 | daily.dev
og:description: semrel, a Go-based semantic release automation tool, shipped 15 releases (v0.10.0 to v0.24.0) in roughly four weeks. Key additions include a lockfile for...
og:url: https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8
og:image: https://api.daily.dev/og/posts/7vUuKZ9q8.png
og:image:alt: Inside a Month of semrel: From v0.10.0 to v0.24.0
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Inside a Month of semrel: From v0.10.0 to v0.24.0

**[Medium](https://daily.dev/sources/medium_js)** · 8 min read · 0 upvotes · 0 comments

## Summary

semrel, a Go-based semantic release automation tool, shipped 15 releases (v0.10.0 to v0.24.0) in roughly four weeks. Key additions include a lockfile for reproducible plugin installs, monorepo workspace support with lockstep versioning, two new plugin categories (Packager and Publisher), scope-based release rules for finer version bump control, and contributor metadata passed to changelog generators. The official plugin catalog now spans 44 plugins across 8 categories, covering analyzers, generators, providers, publishers, conditions, hooks, updaters, and packagers — enabling polyglot organizations to standardize on a single release tool.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@markus.waldheim/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-70e858d10a91>

## Questions this post answers

### What does the semrel plugin lockfile (.semrel.lock) do and how does it prevent version drift?

.semrel.lock pins the exact resolved version of every plugin a project uses, similar to package-lock.json or go.sum but scoped to release plugins. Introduced in v0.11.0, it stops a newer plugin version from silently changing pipeline behavior on CI. Since v0.12.0, the lockfile is self-healing: semrel automatically restores any missing or mismatched plugin before each release instead of failing with a cryptic error.

_Teams standardizing release pipelines can track tooling changes like this via daily.dev to avoid CI surprises._

### What is the difference between Provider and Publisher plugins in semrel?

Providers publish the release object itself, such as a GitHub, GitLab, Gitea, or Bitbucket release, while Publishers push the built package to a registry like npm, PyPI, crates.io, or an OCI registry. Introduced in v0.18.0 alongside the Packager category, this split lets a single release trigger a GitHub release, an npm publish, and a signed OCI image push simultaneously, each handled by a separate swappable plugin.

_Developers architecting multi-target release pipelines can follow tooling breakdowns like this on daily.dev._

### How many official plugins does semrel v0.24.0 ship with and what categories do they cover?

semrel v0.24.0 ships 44 official plugins across 8 categories: 4 Analyzers, 3 Generators, 5 Providers, 5 Publishers, 6 Conditions, 7 Hooks, 13 Updaters, and 1 Packager. Updaters cover npm, Go, Cargo, Composer, Python, Maven, Gradle, Docker, Helm, pubspec, Terraform, NuGet, and Homebrew, letting a polyglot organization standardize on one release tool.

_Anyone comparing release-automation ecosystems can weigh plugin coverage like this through daily.dev._

## Similar posts on daily.dev

- [What's new in git-pkgs](https://daily.dev/posts/what-s-new-in-git-pkgs-emtpxalx0) · Andrew Nesbitt · 0 upvotes · 0 comments
- [Changesets v3: Bumps Peer Dependents by Patch and Ships ESM Only with an 88% Smaller Install](https://daily.dev/posts/changesets-v3-bumps-peer-dependents-by-patch-and-ships-esm-only-with-an-88-smaller-install-xuthjpqzd) · InfoQ · 0 upvotes · 0 comments
- [Multi-Repo to Monorepo: How I Automated 6 Go Microservice Releases and Then Made It 15x Faster](https://daily.dev/posts/multi-repo-to-monorepo-how-i-automated-6-go-microservice-releases-and-then-made-it-15x-faster-r8siuowcs) · Awesome Go · 12 upvotes · 1 comments
- [Golang Weekly Issue 577: November 5, 2025](https://daily.dev/posts/golang-weekly-issue-577-november-5-2025-bko0xsrhm) · Golang Weekly · 16 upvotes · 2 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#golang](https://daily.dev/tags/golang)

[View this post on daily.dev](https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Inside a Month of semrel: From v0.10.0 to v0.24.0","url":"https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8"},"datePublished":"2026-07-23T19:35:53.926Z","dateModified":"2026-09-14T08:53:55.354Z","description":"semrel, a Go-based semantic release automation tool, shipped 15 releases (v0.10.0 to v0.24.0) in roughly four weeks. Key additions include a lockfile for...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6b56d76f34eec7daccb10dc93e1b9d69?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6b56d76f34eec7daccb10dc93e1b9d69?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,golang","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"Inside a Month of semrel: From v0.10.0 to v0.24.0"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/inside-a-month-of-semrel-from-v0-10-0-to-v0-24-0-7vuukz9q8#faq","mainEntity":[{"@type":"Question","name":"What does the semrel plugin lockfile (.semrel.lock) do and how does it prevent version drift?","acceptedAnswer":{"@type":"Answer","text":".semrel.lock pins the exact resolved version of every plugin a project uses, similar to package-lock.json or go.sum but scoped to release plugins. Introduced in v0.11.0, it stops a newer plugin version from silently changing pipeline behavior on CI. Since v0.12.0, the lockfile is self-healing: semrel automatically restores any missing or mismatched plugin before each release instead of failing with a cryptic error. Teams standardizing release pipelines can track tooling changes like this via daily.dev to avoid CI surprises."}},{"@type":"Question","name":"What is the difference between Provider and Publisher plugins in semrel?","acceptedAnswer":{"@type":"Answer","text":"Providers publish the release object itself, such as a GitHub, GitLab, Gitea, or Bitbucket release, while Publishers push the built package to a registry like npm, PyPI, crates.io, or an OCI registry. Introduced in v0.18.0 alongside the Packager category, this split lets a single release trigger a GitHub release, an npm publish, and a signed OCI image push simultaneously, each handled by a separate swappable plugin. Developers architecting multi-target release pipelines can follow tooling breakdowns like this on daily.dev."}},{"@type":"Question","name":"How many official plugins does semrel v0.24.0 ship with and what categories do they cover?","acceptedAnswer":{"@type":"Answer","text":"semrel v0.24.0 ships 44 official plugins across 8 categories: 4 Analyzers, 3 Generators, 5 Providers, 5 Publishers, 6 Conditions, 7 Hooks, 13 Updaters, and 1 Packager. Updaters cover npm, Go, Cargo, Composer, Python, Maven, Gradle, Docker, Helm, pubspec, Terraform, NuGet, and Homebrew, letting a polyglot organization standardize on one release tool. Anyone comparing release-automation ecosystems can weigh plugin coverage like this through daily.dev."}}]}
```

