Skip to content

Commit bf845ae

Browse files
authored
Updated env variable MACOSX_DEPLOYMENT_TARGET to 15 for 3.13 python wheel generation (#2095)
* Updated env variable MACOSX_DEPLOYMENT_TARGET to 15 for 3.13 python wheel generation * Updated migration docs to include that the *assign/*unassign calls are optional
1 parent ddeafbe commit bf845ae

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

.semaphore/semaphore.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ blocks:
5050
- name: CIBW_SKIP
5151
value: cp36-* cp37-* cp38-* cp39-* cp310-* cp311-* cp312-*
5252
- name: CIBW_ENVIRONMENT_MACOS
53-
value: MACOSX_DEPLOYMENT_TARGET=13
53+
value: MACOSX_DEPLOYMENT_TARGET=15
5454
jobs:
5555
- name: Build
5656
commands:
@@ -98,7 +98,7 @@ blocks:
9898
- name: CIBW_SKIP
9999
value: cp38-* cp39-* cp310-* cp311-* cp312-*
100100
- name: CIBW_ENVIRONMENT_MACOS
101-
value: MACOSX_DEPLOYMENT_TARGET=13
101+
value: MACOSX_DEPLOYMENT_TARGET=15
102102
jobs:
103103
- name: Build
104104
commands:

docs/kip-848-migration-guide.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,11 @@ All [KIP-848](https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+N
4646
## Rebalance Callback Changes
4747

4848
- The **protocol is fully incremental** in KIP-848.
49-
- In the **rebalance callbacks**, you **must use**:
49+
- In the **rebalance callbacks**, you **must only use** (optional - if not used, client will handle it internally):
5050
- `consumer.incremental_assign(partitions)` to assign new partitions
5151
- `consumer.incremental_unassign(partitions)` to revoke partitions
5252
- **Do not** use `consumer.assign()` or `consumer.unassign()` when using `group.protocol='consumer'` (KIP-848).
53+
- If you don't provide incremental assign/unassign inside rebalance callbacks, the client will automatically use incremental assign/unassign internally.
5354
- ⚠️ The `partitions` list passed to `incremental_assign()` and `incremental_unassign()` contains only the **incremental changes** — partitions being **added** or **revoked****not the full assignment**, as was the case with `assign()` in the classic protocol.
5455
- All assignors under KIP-848 are now **sticky**, including `range`, which was **not sticky** in the classic protocol.
5556

@@ -131,11 +132,11 @@ group.protocol=consumer
131132
def on_assign(consumer, partitions):
132133
# Full partition list is provided under the classic protocol
133134
print(f"[Classic] Assigned partitions: {partitions}")
134-
consumer.assign(partitions)
135+
consumer.assign(partitions) # Optional: client handles if not used
135136

136137
def on_revoke(consumer, partitions):
137138
print(f"[Classic] Revoked partitions: {partitions}")
138-
consumer.unassign()
139+
consumer.unassign() # Optional: client handles if not used
139140
```
140141

141142
## Incremental Assignor (Including Range in Consumer / KIP-848, Any Protocol)
@@ -145,11 +146,11 @@ def on_revoke(consumer, partitions):
145146
def on_assign(consumer, partitions):
146147
# Only incremental partitions are passed here (not full list)
147148
print(f"[KIP-848] Incrementally assigning: {partitions}")
148-
consumer.incremental_assign(partitions)
149+
consumer.incremental_assign(partitions) # Optional: client handles if not used
149150

150151
def on_revoke(consumer, partitions):
151152
print(f"[KIP-848] Incrementally revoking: {partitions}")
152-
consumer.incremental_unassign(partitions)
153+
consumer.incremental_unassign(partitions) # Optional: client handles if not used
153154
```
154155

155156
**Note:** The `partitions` list contains **only partitions being added or revoked**, not the full partition list as in the classic `consumer.assign()`.
@@ -168,7 +169,7 @@ def on_revoke(consumer, partitions):
168169
3. Set `group.protocol=consumer`
169170
4. Optionally set `group.remote.assignor`; leave unspecified for broker-controlled (default: `uniform`), valid options: `uniform` or `range`
170171
5. Replace deprecated configs with new ones
171-
6. Update rebalance callbacks to **incremental APIs only**
172+
6. Update rebalance callbacks to **incremental APIs only** (if used)
172173
7. Review static membership handling (`group.instance.id`)
173174
8. Ensure proper shutdown to avoid fencing issues
174175
9. Adjust error handling for unknown topics and authorization failures

docs/kip-848-migration-guide.rst

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,15 @@ Rebalance Callback Changes
6767
^^^^^^^^^^^^^^^^^^^^^^^^^^
6868

6969
- The **protocol is fully incremental** in KIP-848.
70-
- In the **rebalance callbacks**, you **must use**:
70+
- In the **rebalance callbacks**, you **must only use** (optional - if not used, client will handle it internally):
7171

7272
- ``consumer.incremental_assign(partitions)`` to assign new
7373
partitions
7474
- ``consumer.incremental_unassign(partitions)`` to revoke partitions
7575

7676
- **Do not** use ``consumer.assign()`` or ``consumer.unassign()`` when
7777
using ``group.protocol='consumer'`` (KIP-848).
78+
- If you don't provide incremental assign/unassign inside rebalance callbacks, the client will automatically use incremental assign/unassign internally.
7879
- ⚠️ The ``partitions`` list passed to ``incremental_assign()`` and
7980
``incremental_unassign()`` contains only the **incremental changes**
8081
— partitions being **added** or **revoked** — **not the full
@@ -199,11 +200,11 @@ Range Assignor (Classic)
199200
def on_assign(consumer, partitions):
200201
# Full partition list is provided under the classic protocol
201202
print(f"[Classic] Assigned partitions: {partitions}")
202-
consumer.assign(partitions)
203+
consumer.assign(partitions) # Optional: client handles if not used
203204
204205
def on_revoke(consumer, partitions):
205206
print(f"[Classic] Revoked partitions: {partitions}")
206-
consumer.unassign()
207+
consumer.unassign() # Optional: client handles if not used
207208
208209
Incremental Assignor (Including Range in Consumer / KIP-848, Any Protocol)
209210
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -214,11 +215,11 @@ Incremental Assignor (Including Range in Consumer / KIP-848, Any Protocol)
214215
def on_assign(consumer, partitions):
215216
# Only incremental partitions are passed here (not full list)
216217
print(f"[KIP-848] Incrementally assigning: {partitions}")
217-
consumer.incremental_assign(partitions)
218+
consumer.incremental_assign(partitions) # Optional: client handles if not used
218219
219220
def on_revoke(consumer, partitions):
220221
print(f"[KIP-848] Incrementally revoking: {partitions}")
221-
consumer.incremental_unassign(partitions)
222+
consumer.incremental_unassign(partitions) # Optional: client handles if not used
222223
223224
**Note:** The ``partitions`` list contains **only partitions being added or revoked**, not the full partition list as in the classic ``consumer.assign()``.
224225

@@ -246,7 +247,7 @@ Migration Checklist (Next-Gen Protocol / `KIP-848 <https://cwiki.apache.org/conf
246247
broker-controlled (default: ``uniform``), valid options: ``uniform``
247248
or ``range``
248249
5. Replace deprecated configs with new ones
249-
6. Update rebalance callbacks to **incremental APIs only**
250+
6. Update rebalance callbacks to **incremental APIs only** (if used)
250251
7. Review static membership handling (``group.instance.id``)
251252
8. Ensure proper shutdown to avoid fencing issues
252253
9. Adjust error handling for unknown topics and authorization failures

0 commit comments

Comments
 (0)