This is an automated email from the ASF dual-hosted git repository.
spetz pushed a change to branch dotnet-vsr
in repository https://gitbox.apache.org/repos/asf/iggy.git
from e94872848 feat(vsr): implement VSR wire protocol support
add 1453114da feat(metadata): state transfer for snapshot and client table
(#3765)
add 71c67e432 feat(server-ng): enforce PAT limits and expose Prometheus
metrics (#3773)
add a59a1db01 chore(deps): Bump the node group across 1 directory with 3
updates (#3779)
add 01e721028 chore(deps): Bump github.com/klauspost/compress from 1.19.0
to 1.19.1 in /bdd/go in the go group across 1 directory (#3785)
add 75a2fa286 feat(connectors): retry transient Doris Stream Load failures
in-request (#3574)
add ddead57af fix(ci): make README CLI preflight execute its commands
(#3792)
add e2bbaea1c ci(rust): skip unnecessary setup steps (#3749)
add a684e550f feat(python): add user header and origin timestamp support
(#3613)
add 3ca8695d3 feat(connectors): add Meilisearch sink connector (#3497)
add 54d8a49dd feat(server-ng): close the partition materialisation race at
the owner (#3786)
add 198364f22 chore(deps): Bump the web group across 1 directory with 16
updates (#3807)
add 4199fed86 chore(deps): Bump fast-uri from 3.1.4 to 3.1.5 in
/foreign/node (#3812)
add e4e25648b chore(deps): Bump the csharp group with 1 update (#3810)
add b452d150d fix(node): TLS + VSR connection support (#3813)
add c51b75456 perf(server-ng): cap sealed-segment read handles with
per-partition LRU (#3806)
add 60b878923 perf(server-ng): compute batch checksum in a single produce
pass (#3746)
add fbf99a6eb feat(java): add cluster metadata and leader redirection to
TCP client (#3745)
add 5c4865f55 docs(security): add SECURITY.md with ASF reporting process
(#3787)
add 3bc814dd7 fix(ci): use portable fallbacks for bash-4 builtins and GNU
sed in hook scripts (#3694)
add 935a7c2ba chore(deps): Bump the github-actions group with 2 updates
(#3817)
add 46d45b517 chore(deps): Bump the java group across 3 directories with 5
updates (#3816)
add 56b961285 feat(python): expose remaining Topic/TopicDetails fields and
partitions (#3623)
add dc8493883 test(integration): remove suites duplicating existing
coverage (#3823)
add 0d76a691c feat(server-ng): add per-client-network advertised address
selectors (#3818)
add fcef8c01c feat(server-ng): confirm committed sends with partition and
offset (#3781)
add 0a23e161b ci: skip unaffected language jobs in coverage baseline
(#3822)
add 0604cca7b chore(deps): Update testcontainers requirement from
<5.0,>=3.7.0 to >=4.15.0,<5.0 in /bdd/python (#3826)
add 125a82e8b feat(partitions): implement state transfer (#3808)
add 8b09f19d1 chore(deps): Bump rules_rust from 0.71.3 to 0.72.0 in
/foreign/cpp in the cpp group across 1 directory (#3829)
add 2e1cbfa45 chore(deps): Bump the node group across 2 directories with 2
updates (#3830)
add 50518c448 chore(deps): Bump the web group across 1 directory with 5
updates (#3831)
add 31fd870b3 Merge branch 'master' into dotnet-vsr
No new revisions were added by this update.
Summary of changes:
.github/actions/cpp-bazel/pre-merge/action.yml | 8 +-
.github/actions/php/pre-merge/action.yml | 1 +
.../actions/python-maturin/pre-merge/action.yml | 3 +
.github/actions/rust/pre-merge/action.yml | 6 +
.../actions/utils/setup-rust-with-cache/action.yml | 14 +-
.github/workflows/_common.yml | 2 +-
.github/workflows/coverage-baseline.yml | 74 +-
.github/workflows/post-merge.yml | 2 +-
.github/workflows/stale-prs.yml | 2 +-
.typos.toml | 2 +
Cargo.lock | 143 +-
Cargo.toml | 15 +-
SECURITY.md | 61 +
bdd/docker-compose.cluster.yml | 3 +
bdd/docker-compose.yml | 6 +-
bdd/go/go.mod | 2 +-
bdd/go/go.sum | 4 +-
bdd/java/build.gradle.kts | 6 +-
.../apache/iggy/bdd/LeaderRedirectionSteps.java | 274 +
bdd/python/uv.lock | 6 +-
core/ai/mcp/src/service/mod.rs | 5 +-
core/bench/Cargo.toml | 14 +-
core/bench/src/main.rs | 14 +
core/binary_protocol/Cargo.toml | 2 +-
core/binary_protocol/src/consensus/command.rs | 19 +-
core/binary_protocol/src/consensus/header.rs | 350 ++
core/binary_protocol/src/consensus/mod.rs | 3 +-
core/binary_protocol/src/consensus/operation.rs | 15 +
core/binary_protocol/src/lib.rs | 5 +-
core/binary_protocol/src/responses/messages/mod.rs | 2 +
.../src/responses/messages/send_messages.rs | 284 +
core/cli/Cargo.toml | 2 +-
core/common/Cargo.toml | 2 +-
core/common/src/error/iggy_error.rs | 5 +-
core/common/src/http/messages/send_messages.rs | 58 +-
core/common/src/lib.rs | 4 +
core/common/src/traits/binary_impls/messages.rs | 137 +-
core/common/src/traits/binary_impls/mod.rs | 2 +
core/common/src/traits/message_client.rs | 15 +-
core/common/src/traits/mod.rs | 2 +
core/common/src/types/message/mod.rs | 4 +-
core/common/src/types/partition/mod.rs | 2 +-
core/configs/Cargo.toml | 1 +
core/configs/src/server_ng_config/cluster.rs | 993 +++-
core/configs/src/server_ng_config/defaults.rs | 6 +
core/configs/src/server_ng_config/displays.rs | 20 +-
core/configs/src/server_ng_config/partition.rs | 76 +
core/configs/src/server_ng_config/validators.rs | 42 +
core/configs_derive/src/config_env.rs | 22 +-
core/connectors/README.md | 1 +
core/connectors/runtime/Cargo.toml | 2 +-
.../example_config/connectors/doris_sink.toml | 9 +
core/connectors/sinks/README.md | 1 +
core/connectors/sinks/clickhouse_sink/Cargo.toml | 2 +-
core/connectors/sinks/delta_sink/Cargo.toml | 2 +-
core/connectors/sinks/doris_sink/Cargo.toml | 2 +-
core/connectors/sinks/doris_sink/README.md | 31 +-
core/connectors/sinks/doris_sink/config.toml | 9 +
core/connectors/sinks/doris_sink/src/lib.rs | 901 +++-
.../connectors/sinks/elasticsearch_sink/Cargo.toml | 2 +-
core/connectors/sinks/http_sink/Cargo.toml | 2 +-
core/connectors/sinks/iceberg_sink/Cargo.toml | 2 +-
core/connectors/sinks/influxdb_sink/Cargo.toml | 2 +-
.../Cargo.toml | 16 +-
core/connectors/sinks/meilisearch_sink/README.md | 105 +
.../config.toml | 18 +-
core/connectors/sinks/meilisearch_sink/src/lib.rs | 1412 +++++
core/connectors/sinks/mongodb_sink/Cargo.toml | 2 +-
core/connectors/sinks/postgres_sink/Cargo.toml | 2 +-
core/connectors/sinks/quickwit_sink/Cargo.toml | 2 +-
core/connectors/sinks/s3_sink/Cargo.toml | 8 +-
core/connectors/sinks/stdout_sink/Cargo.toml | 2 +-
core/connectors/sinks/surrealdb_sink/Cargo.toml | 2 +-
.../sources/elasticsearch_source/Cargo.toml | 2 +-
core/connectors/sources/influxdb_source/Cargo.toml | 2 +-
core/connectors/sources/postgres_source/Cargo.toml | 2 +-
core/connectors/sources/random_source/Cargo.toml | 2 +-
core/consensus/Cargo.toml | 1 +
core/consensus/src/client_table.rs | 475 +-
core/consensus/src/impls.rs | 411 +-
core/consensus/src/le_cursor.rs | 115 +
core/consensus/src/lib.rs | 15 +-
core/consensus/src/metadata_helpers.rs | 27 +-
core/consensus/src/observability.rs | 4 +-
core/consensus/src/plane_helpers.rs | 15 +-
core/consensus/src/state_manifest.rs | 341 ++
core/consensus/src/state_transfer.rs | 279 +
core/consensus/src/vsr_state.rs | 112 +-
core/integration/Cargo.toml | 5 +-
core/integration/src/bench_utils.rs | 94 +-
core/integration/src/harness/config/resolve.rs | 7 +-
core/integration/src/harness/handle/server.rs | 83 +-
.../src/harness/orchestrator/harness.rs | 57 +
.../cli/message/test_message_flush_command.rs | 5 +
.../tests/cluster/client_table_restart.rs | 14 +-
.../tests/cluster/metadata_checkpoint_restart.rs | 394 ++
.../tests/cluster/metadata_state_transfer.rs | 406 ++
core/integration/tests/cluster/mod.rs | 4 +
.../cluster/multi_shard_partition_convergence.rs | 223 +
.../tests/cluster/partition_state_transfer.rs | 599 +++
.../tests/connectors/doris/doris_sink.rs | 9 +-
.../connectors/fixtures/meilisearch/container.rs | 180 +
.../fixtures/{quickwit => meilisearch}/mod.rs | 4 +-
.../tests/connectors/fixtures/meilisearch/sink.rs | 90 +
core/integration/tests/connectors/fixtures/mod.rs | 2 +
.../connectors/meilisearch/meilisearch_sink.rs | 81 +
.../tests/connectors/{delta => meilisearch}/mod.rs | 2 +-
.../connectors/{delta => meilisearch}/sink.toml | 2 +-
core/integration/tests/connectors/mod.rs | 1 +
core/integration/tests/data_integrity/mod.rs | 11 +-
.../data_integrity/verify_after_server_restart.rs | 46 +-
core/integration/tests/sdk/hello_world.rs | 1 -
core/integration/tests/sdk/mcp_parity.rs | 608 ---
core/integration/tests/sdk/messages.rs | 172 -
core/integration/tests/sdk/mod.rs | 5 +-
core/integration/tests/sdk/producer/background.rs | 6 +-
core/integration/tests/sdk/send_confirmation.rs | 268 +
.../tests/server/cluster_metadata_vsr.rs | 229 +-
.../tests/server/cluster_view_durability_vsr.rs | 17 +-
core/integration/tests/server/flush_vsr.rs | 4 +
core/integration/tests/server/general.rs | 19 +-
core/integration/tests/server/http_client.rs | 19 +-
core/integration/tests/server/http_tls.rs | 112 +-
.../server/metadata_checkpoint_recovery_vsr.rs | 138 -
core/integration/tests/server/mod.rs | 6 +-
.../tests/server/partition_view_durability_vsr.rs | 330 ++
.../server/scenarios/authentication_scenario.rs | 1 +
.../server/scenarios/create_message_payload.rs | 148 -
core/integration/tests/server/scenarios/mod.rs | 1 -
.../server/scenarios/purge_delete_scenario.rs | 95 +-
.../scenarios/segment_rotation_race_scenario.rs | 9 -
core/journal/src/lib.rs | 17 +
core/journal/src/local_gate.rs | 207 +
core/journal/src/prepare_journal.rs | 13 +
core/journal/src/superblock.rs | 68 +-
core/metadata/src/impls/metadata.rs | 777 ++-
core/metadata/src/impls/recovery.rs | 22 +-
core/metadata/src/lib.rs | 7 +-
core/metadata/src/stm/mod.rs | 10 +
core/metadata/src/stm/mux.rs | 40 +-
core/metadata/src/stm/snapshot.rs | 104 +-
core/metadata/src/stm/stream.rs | 182 +-
core/metadata/src/stm/user.rs | 64 +-
core/partitions/Cargo.toml | 1 +
core/partitions/src/iggy_index_reader.rs | 180 +-
core/partitions/src/iggy_partition.rs | 2493 ++++++++-
core/partitions/src/iggy_partitions.rs | 57 +-
core/partitions/src/journal.rs | 125 +-
core/partitions/src/lib.rs | 6 +-
core/partitions/src/log.rs | 365 +-
core/partitions/src/offset_storage.rs | 21 +-
core/partitions/src/poll_plan.rs | 212 +-
core/partitions/src/state_transfer.rs | 3002 +++++++++++
core/partitions/src/types.rs | 21 +
core/sdk/Cargo.toml | 3 +-
.../src/client_wrappers/binary_message_client.rs | 3 +-
core/sdk/src/clients/binary_message.rs | 3 +-
core/sdk/src/clients/producer.rs | 167 +-
core/sdk/src/clients/producer_dispatcher.rs | 7 +-
core/sdk/src/clients/producer_error_callback.rs | 11 +-
core/sdk/src/clients/producer_sharding.rs | 11 +-
core/sdk/src/http/messages.rs | 94 +-
core/sdk/src/prelude.rs | 15 +-
core/server-ng/Cargo.toml | 16 +-
core/server-ng/config.toml | 80 +-
core/server-ng/src/auth.rs | 31 +-
core/server-ng/src/bootstrap.rs | 288 +-
core/server-ng/src/cluster_meta.rs | 125 +-
core/server-ng/src/consumer_group.rs | 21 +-
core/server-ng/src/dispatch.rs | 429 +-
core/server-ng/src/dispatch/authz.rs | 72 +-
core/server-ng/src/http.rs | 197 +-
core/server-ng/src/http/error.rs | 126 +-
core/server-ng/src/http/extractor.rs | 22 +-
core/server-ng/src/http/handlers.rs | 85 +-
core/server-ng/src/http/metrics.rs | 297 ++
core/server-ng/src/http/reads.rs | 3 +-
core/server-ng/src/http/reply.rs | 146 +-
core/server-ng/src/http/state.rs | 30 +-
core/server-ng/src/http/submit.rs | 48 +-
core/server-ng/src/http/tls.rs | 15 +-
core/server-ng/src/partition_helpers.rs | 300 +-
core/server-ng/src/partition_reconciler.rs | 1581 +++++-
core/server-ng/src/pat.rs | 182 +-
core/server-ng/src/responses.rs | 125 +-
core/server-ng/src/segment_recovery.rs | 269 +-
core/server-ng/src/server_error.rs | 104 +
core/server-ng/src/session_manager.rs | 28 +
core/server-ng/src/users.rs | 6 +-
core/server-ng/tests/sdk_e2e.rs | 175 +-
core/server_common/src/consensus_message.rs | 34 +-
core/server_common/src/send_messages2.rs | 987 +++-
core/shard/src/builder.rs | 20 +-
core/shard/src/lib.rs | 5443 ++++++++++++++++++--
core/shard/src/metrics.rs | 161 +-
core/shard/src/router.rs | 171 +-
core/simulator/src/client.rs | 4 +-
core/simulator/src/deps.rs | 10 +
core/simulator/src/lib.rs | 127 +-
core/simulator/src/replica.rs | 27 +-
examples/go/go.mod | 2 +-
examples/go/go.sum | 4 +-
examples/java/README.md | 2 +-
examples/java/build.gradle.kts | 2 +-
examples/node/README.md | 2 +-
examples/node/package-lock.json | 26 +-
examples/node/package.json | 2 +-
examples/python/README.md | 23 +
examples/python/basic/producer.py | 50 +-
examples/python/getting-started/producer.py | 50 +-
examples/python/message-headers/common.py | 240 +
.../message-headers/plain-headers/consumer.py | 77 +
.../message-headers/plain-headers/producer.py | 59 +
.../message-headers/typed-headers/consumer.py | 77 +
.../message-headers/typed-headers/producer.py | 64 +
examples/python/pyproject.toml | 5 +
examples/python/uv.lock | 6 +-
examples/rust/README.md | 2 +-
examples/rust/src/tcp-tls/consumer/main.rs | 2 +-
examples/rust/src/tcp-tls/producer/main.rs | 2 +-
foreign/cpp/MODULE.bazel | 2 +-
foreign/cpp/MODULE.bazel.lock | 4 +-
foreign/cpp/src/client.rs | 7 +-
foreign/cpp/src/lib.rs | 27 +-
foreign/cpp/src/type_conversion.rs | 30 +-
foreign/cpp/tests/e2e/message.cpp | 9 +-
foreign/csharp/Directory.Packages.props | 2 +-
foreign/go/go.mod | 2 +-
foreign/go/go.sum | 4 +-
foreign/java/gradle.properties | 2 +-
foreign/java/gradle/libs.versions.toml | 6 +-
.../tcp/package-info.java => ConnectionInfo.java} | 26 +-
.../org/apache/iggy/client/async/SystemClient.java | 8 +
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 199 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 73 +-
.../client/async/tcp/ConsumerGroupsTcpClient.java | 23 +-
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 15 +-
.../iggy/client/async/tcp/LeaderAwareness.java | 282 +
.../client/async/tcp/LoginRedirectionHook.java | 47 +
.../iggy/client/async/tcp/MessagesTcpClient.java | 15 +-
.../iggy/client/async/tcp/PartitionsTcpClient.java | 27 +-
.../async/tcp/PersonalAccessTokensTcpClient.java | 32 +-
.../iggy/client/async/tcp/StreamsTcpClient.java | 21 +-
.../iggy/client/async/tcp/SystemTcpClient.java | 53 +-
.../iggy/client/async/tcp/TopicsTcpClient.java | 25 +-
.../iggy/client/async/tcp/UsersTcpClient.java | 42 +-
.../apache/iggy/client/blocking/SystemClient.java | 3 +
.../client/blocking/http/SystemHttpClient.java | 8 +
.../iggy/client/blocking/tcp/IggyTcpClient.java | 12 +
.../iggy/client/blocking/tcp/SystemTcpClient.java | 6 +
.../org/apache/iggy/cluster/ClusterMetadata.java} | 15 +-
.../HeaderEntry.java => cluster/ClusterNode.java} | 14 +-
.../ClusterNodeRole.java} | 29 +-
.../ClusterNodeStatus.java} | 35 +-
.../TransportEndpoints.java} | 13 +-
.../iggy/{stream => cluster}/package-info.java | 2 +-
.../org/apache/iggy/serde/BytesDeserializer.java | 47 +
.../java/org/apache/iggy/serde/CommandCode.java | 1 +
.../client/async/tcp/IggyResponseHandlerTest.java | 60 +
.../iggy/client/async/tcp/LeaderAwarenessTest.java | 328 ++
.../iggy/client/blocking/SystemClientBaseTest.java | 18 +
.../client/blocking/tcp/SystemTcpClientTest.java | 10 +
.../apache/iggy/serde/BytesDeserializerTest.java | 177 +
foreign/node/README.md | 6 +-
foreign/node/package-lock.json | 1026 ++--
foreign/node/package.json | 8 +-
foreign/node/src/client/client.config.test.ts | 19 +-
foreign/node/src/client/client.config.ts | 3 -
foreign/node/src/client/client.socket.test.ts | 50 +-
foreign/node/src/client/client.utils.test.ts | 23 +-
foreign/node/src/client/client.utils.ts | 3 -
foreign/node/src/e2e/tcp.send-message.e2e.ts | 27 +-
foreign/node/src/e2e/tls.system.e2e.ts | 4 +
foreign/node/src/index.ts | 2 +
.../src/wire/message/send-messages.command.test.ts | 110 +-
.../node/src/wire/message/send-messages.command.ts | 81 +-
foreign/node/src/wire/vsr/register.ts | 4 +-
foreign/php/iggy-php.stubs.php | 59 +-
foreign/php/src/client.rs | 9 +-
foreign/php/src/lib.rs | 4 +-
foreign/php/src/message_iterator.rs | 3 +
foreign/php/src/send_message.rs | 87 +-
foreign/php/tests/IggySdkTest.php | 20 +
foreign/python/Cargo.toml | 5 +-
foreign/python/Dockerfile.test | 2 +-
foreign/python/apache_iggy.pyi | 686 ++-
foreign/python/docker-compose.test.yml | 11 +-
foreign/python/pyproject.toml | 6 +-
foreign/python/src/client.rs | 122 +-
foreign/python/src/consumer.rs | 32 +-
foreign/python/src/lib.rs | 14 +-
foreign/python/src/receive_message.rs | 26 +
foreign/python/src/send_message.rs | 139 +-
foreign/python/src/topic.rs | 276 +-
foreign/python/src/user_headers.rs | 791 +++
foreign/python/tests/test_consumer_group.py | 98 +
foreign/python/tests/test_message_operations.py | 442 +-
foreign/python/tests/test_topic.py | 235 +-
foreign/python/uv.lock | 12 +-
scripts/ci/coverage-baseline-affected.sh | 96 +
scripts/ci/license-headers.sh | 11 +-
scripts/ci/python-sdk-version-sync.sh | 12 +-
scripts/ci/sync-python-interpreter-version.sh | 28 +-
scripts/ci/sync-rustc-version.sh | 14 +-
scripts/ci/third-party-licenses.sh | 2 +-
scripts/ci/uv-lock-check.sh | 2 +-
scripts/run-bdd-tests.sh | 2 +-
scripts/run-examples-from-readme.sh | 31 +-
scripts/utils.sh | 8 +-
scripts/verify-crates-publish.sh | 7 +-
web/package-lock.json | 971 ++--
web/package.json | 32 +-
312 files changed, 34658 insertions(+), 5141 deletions(-)
create mode 100644 SECURITY.md
create mode 100644
bdd/java/src/test/java/org/apache/iggy/bdd/LeaderRedirectionSteps.java
create mode 100644 core/binary_protocol/src/responses/messages/send_messages.rs
copy core/connectors/sinks/{surrealdb_sink => meilisearch_sink}/Cargo.toml
(83%)
create mode 100644 core/connectors/sinks/meilisearch_sink/README.md
copy core/connectors/sinks/{elasticsearch_sink =>
meilisearch_sink}/config.toml (77%)
create mode 100644 core/connectors/sinks/meilisearch_sink/src/lib.rs
create mode 100644 core/consensus/src/le_cursor.rs
create mode 100644 core/consensus/src/state_manifest.rs
create mode 100644 core/consensus/src/state_transfer.rs
create mode 100644
core/integration/tests/cluster/metadata_checkpoint_restart.rs
create mode 100644 core/integration/tests/cluster/metadata_state_transfer.rs
create mode 100644
core/integration/tests/cluster/multi_shard_partition_convergence.rs
create mode 100644 core/integration/tests/cluster/partition_state_transfer.rs
create mode 100644
core/integration/tests/connectors/fixtures/meilisearch/container.rs
copy core/integration/tests/connectors/fixtures/{quickwit =>
meilisearch}/mod.rs (89%)
create mode 100644
core/integration/tests/connectors/fixtures/meilisearch/sink.rs
create mode 100644
core/integration/tests/connectors/meilisearch/meilisearch_sink.rs
copy core/integration/tests/connectors/{delta => meilisearch}/mod.rs (97%)
copy core/integration/tests/connectors/{delta => meilisearch}/sink.toml (94%)
delete mode 100644 core/integration/tests/sdk/mcp_parity.rs
delete mode 100644 core/integration/tests/sdk/messages.rs
create mode 100644 core/integration/tests/sdk/send_confirmation.rs
delete mode 100644
core/integration/tests/server/metadata_checkpoint_recovery_vsr.rs
create mode 100644
core/integration/tests/server/partition_view_durability_vsr.rs
delete mode 100644
core/integration/tests/server/scenarios/create_message_payload.rs
create mode 100644 core/journal/src/local_gate.rs
create mode 100644 core/partitions/src/state_transfer.rs
create mode 100644 core/server-ng/src/http/metrics.rs
create mode 100644 examples/python/message-headers/common.py
create mode 100644 examples/python/message-headers/plain-headers/consumer.py
create mode 100644 examples/python/message-headers/plain-headers/producer.py
create mode 100644 examples/python/message-headers/typed-headers/consumer.py
create mode 100644 examples/python/message-headers/typed-headers/producer.py
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/{blocking/tcp/package-info.java
=> ConnectionInfo.java} (61%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/LeaderAwareness.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/LoginRedirectionHook.java
copy
foreign/java/{bench/src/main/java/org/apache/iggy/bench/models/common/generator/DataBatch.java
=> java-sdk/src/main/java/org/apache/iggy/cluster/ClusterMetadata.java} (70%)
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{message/HeaderEntry.java
=> cluster/ClusterNode.java} (65%)
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/{user/UserStatus.java
=> cluster/ClusterNodeRole.java} (64%)
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/{user/UserStatus.java
=> cluster/ClusterNodeStatus.java} (57%)
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{message/HeaderEntry.java
=> cluster/TransportEndpoints.java} (69%)
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/{stream =>
cluster}/package-info.java (96%)
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/IggyResponseHandlerTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/LeaderAwarenessTest.java
create mode 100644 foreign/python/src/user_headers.rs
create mode 100755 scripts/ci/coverage-baseline-affected.sh