惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
量子位
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Is the upstream fix released yet?
Lukas Oberhuber · 2026-06-20 · via DEV Community
Cover image for Is the upstream fix released yet?

Lukas Oberhuber

I maintain GIMP for Mac. I've done it since 2021, and most of the work isn't GIMP itself. It's the dependencies. So I can build for older Macs, I carry a pile of patches against upstream: GTK, and a fair bit of GNOME and freedesktop. I don't want any of them. Each one is a patch I'm waiting to delete.

The thing stopping me deleting a patch is one question: is the upstream fix released yet?

A lot of other people have the same problem, both on public repos and inside private companies. Pretty much anywhere you aren't doing full CI/CD, there's some amount of unreleased code.

In my case, someone fixes the bug in a commit (often it's me). A merge request merges. Good. But that's not a release. Until the fix ships in a tagged version my patch has to stay, because I actually pick up the fix through MacPorts.

So I have to check: did this fix make it into a release, and which one?

There's no easy way to do that on GitHub or GitLab. The web UI won't tell you. git tag --contains or git describe --contains will, after some shenanigans: clone the repo, fetch every tag, decode the output. Multiply that by a stack of projects, half of them on GitLab, and it adds up.

So I built released.

You can use it on https://released.blabberate.com, or in your terminal with your own tokens or just public access (when allowed) npx git-released <commit-or-pr>. For example:

$ npx git-released github.com/honojs/hono/commit/f82aba8
First released in  v4.12.11
          on date  2026-04-06
           commit  f82aba8
          also in  v4.12.12, v4.12.13, v4.12.14, v4.12.15, v4.12.16
        permalink  https://released.blabberate.com/r/honojs/hono/c/f82aba8

or try a permalink: https://released.blabberate.com/r/honojs/hono/c/f82aba8

Paste a commit, a SHA, or a merged PR/MR and it gives you the first release that contains it and the date it shipped, or a plain "not yet." No clone needed. It works on any public GitHub repo, and on the GitLab hosts I actually live in: GNOME, freedesktop, KDE, Debian (salsa), and more.

Two things come with every answer:

  • A link you can paste into an issue or a PR. Whoever opens it sees the same answer.
  • A badge. Drop it in a PR and it reads "not yet released" until the commit ships, then changes to the version on its own. I use it so I stop re-checking the same merge request.

For private repos, or if you'd rather not depend on a website, there's a CLI (npx git-released <commit-or-pr>) that uses your own token.

On the web: https://released.blabberate.com

If you maintain something, or just keep getting asked "is my fix out yet?", give it a go and tell me where it falls over. Source is on GitHub: https://github.com/lukaso/released