[breaking-change] Undocumented breaking changes detected (2026-06-05)
- Dominant language
- Go
- Stars
- 12.7k
- Forks
- 5k
- Avg merge
- 2d 15m
- Merged PRs (30d)
- 385
Description
Recent commits introduced a breaking change that appears undocumented for downstream `libbeat` API consumers.
## Breaking Changes
### 1. `queue.Batch` interface now requires `Release()`
**Commit(s):** [`37398496f5`](https://github.com/elastic/beats/commit/37398496f5)
**PR:** https://github.com/elastic/beats/pull/51047
**What broke:** `libbeat/publisher/queue.Batch` gained a new required method (`Release()`), which is a compile-time breaking change for any downstream/custom implementation of this interface.
**Evidence:**
- `libbeat/publisher/queue/queue.go:108-140` now defines:
- `type Batch[T any] interface { ... Release() ... }`
- The release fragment for this PR is only an enhancement note, with no migration guidance:
- `changelog/fragments/1780408365-slabqueue-multi-pipeline.yaml:1-3`
**Why undocumented:**
- PR description focuses on slabqueue design/performance and does not call out this API contract change or migration action for external implementers.
- The changelog fragment is `kind: enhancement` and does not include a breaking-change or upgrade note.
- No README/DEVELOPING/RELEASE guidance was added for this interface change in this changeset.
**Suggested fix:** Add a breaking-change/migration note stating that external `queue.Batch` implementations must add `Release()` and describe expected shutdown semantics.
## Suggested Actions
- [ ] Document this interface break in release notes/changelog as a breaking change
- [ ] Add migration guidance for downstream/custom `libbeat` queue implementations
> [!NOTE]
>
> 🔒 Integrity filter blocked 5 items
>
> The following items were blocked because they don't meet the GitHub integrity level.
>
> - [#51000](https://github.com/elastic/beats/pull/51000) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - [#51078](https://github.com/elastic/beats/pull/51078) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - [#50303](https://github.com/elastic/beats/pull/50303) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - [#50585](https://github.com/elastic/beats/pull/50585) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - [#51047](https://github.com/elastic/beats/pull/51047) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
>
> To allow these resources, lower `min-integrity` in your GitHub frontmatter:
>
> ```yaml
> tools:
> github:
> min-integrity: approved # merged | approved | unapproved | none
> ```
>
>
---
[What is this?](https://ela.st/github-ai-tools) | [From workflow: Breaking Change Detect](https://github.com/elastic/beats/actions/runs/27019185227)
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
> - [x] expires on Jun 12, 2026, 2:08 PM UTC
Contributor guide
Research direction
Read libbeat/publisher/queue/queue.go:108-140 to confirm the Batch interface change and inspect changelog/fragments/1780408365-slabqueue-multi-pipeline.yaml:1-3 for the existing release note. Update the changelog or release documentation with a breaking-change and migration note explaining that external queue.Batch implementations must add Release() and documenting the expected shutdown semantics.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100