Skip to content

KAFKA-15216: InternalSinkRecord::newRecord should not ignore new headers#14044

Merged
C0urante merged 2 commits intoapache:trunkfrom
yashmayya:KAFKA-15216-internal-sink-record-fix
Jul 20, 2023
Merged

KAFKA-15216: InternalSinkRecord::newRecord should not ignore new headers#14044
C0urante merged 2 commits intoapache:trunkfrom
yashmayya:KAFKA-15216-internal-sink-record-fix

Conversation

@yashmayya
Copy link
Contributor

@yashmayya yashmayya commented Jul 19, 2023

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

@yashmayya yashmayya requested a review from C0urante July 19, 2023 09:46
@C0urante
Copy link
Contributor

The change from private to protected technically counts as a change to public interface, so we'd need a KIP for that. I'm also a little hesitant to upgrade the visibility of these members regardless since that would limit the compatibility of plugins that rely on them (most likely by subclassing ConnectRecord, SinkRecord, etc.), since that would render them binary incompatible with older versions of Connect where the fields were still private.

Can we reduce the scope here to use fields instead of methods wherever possible, but without altering the visibility of any parts of our public API?

@yashmayya
Copy link
Contributor Author

The change from private to protected technically counts as a change to public interface, so we'd need a KIP for that

Ah, I did wonder about this but wasn't entirely certain, thanks for the clarification!

I'm also a little hesitant to upgrade the visibility of these members regardless since that would limit the compatibility of plugins that rely on them (most likely by subclassing ConnectRecord, SinkRecord, etc.), since that would render them binary incompatible with older versions of Connect where the fields were still private.

I considered the binary compatibility impact of this change directly on plugins themselves (and there shouldn't be any), but good point on the backward compatibility restriction that would be imposed on any potential external subclasses of ConnectRecord due to this change.

Can we reduce the scope here to use fields instead of methods wherever possible, but without altering the visibility of any parts of our public API?

Done

Copy link
Contributor

@C0urante C0urante left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Yash! LGTM, will merge pending CI build.

@C0urante C0urante merged commit ea6e100 into apache:trunk Jul 20, 2023
C0urante pushed a commit that referenced this pull request Jul 20, 2023
…ers (#14044)

Reviewers: Chris Egerton <chrise@aiven.io>
C0urante pushed a commit that referenced this pull request Jul 20, 2023
…ers (#14044)

Reviewers: Chris Egerton <chrise@aiven.io>
C0urante pushed a commit that referenced this pull request Jul 20, 2023
…ers (#14044)

Reviewers: Chris Egerton <chrise@aiven.io>
jeqo pushed a commit to jeqo/kafka that referenced this pull request Jul 21, 2023
srpconfluent pushed a commit to confluentinc/kafka that referenced this pull request Jul 24, 2023
…ers (apache#14044)

Reviewers: Chris Egerton <chrise@aiven.io>
(cherry picked from commit fd47597)
Cerchie pushed a commit to Cerchie/kafka that referenced this pull request Jul 25, 2023
jeqo pushed a commit to aiven/kafka that referenced this pull request Aug 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants