elastic / elastic/beats

[breaking-change] Undocumented breaking changes detected (2026-06-05)

Open
#51,124 1 comment 0 reactions 0 assignees View on GitHub
breaking-change needs_team
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.