This is an automated email from the ASF dual-hosted git repository.
hgruszecki pushed a change to branch harness-derive
in repository https://gitbox.apache.org/repos/asf/iggy.git
omit b3899de12 Merge branch 'master' into harness-derive
omit 47c167336 feat(integration): add iggy_harness proc macro and use it in
mcp tests
add fd638a283 feat(java): refactor SDK with fluent builder API and
exception hierarchy (#2630)
add d4f9ebc10 fix(ci): pin ginkgo CLI to v2.23.4 to match go.mod (#2642)
add 393b0f6fa feat(connectors): extend published stats (#2640)
add 9f0057685 chore(repo): bump Rust version to 1.93.0 (#2644)
add f2c56d8fa feat(metadata): expose metadata generics and create journal
handle (#2624)
add e84daf4e0 perf(ci): optimize hot dependencies in dev profile (#2645)
add d850ab6ff test(connectors): add integration tests for Quickwit sink
(#2636)
add 69d7ed936 ci: add stale PR workflow (#2641)
add 667e69ea4 feat(server,sdk): allow arbitrary (non-string) header key
kind (#2637)
add 006dd98c7 docs(repo): add pre-commit hooks checklist to PR template
(#2646)
add a2c10522d fix(configs): remove configs_derive re-export from common
crate (#2649)
add a5e12cdef perf(ci): add reusable Go setup action and reduce cache
bloat (#2648)
add 29ab31855 chore(python): upgrade pyo3 to 0.27 and fix deprecations
(#2643)
new 6e1d829a9 feat(integration): add iggy_harness proc macro and use it in
mcp tests
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (b3899de12)
\
N -- N -- N refs/heads/harness-derive (6e1d829a9)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/actions/go/pre-merge/action.yml | 29 +-
.github/actions/rust/pre-merge/action.yml | 32 +-
.github/actions/utils/docker-buildx/action.yml | 4 +-
.../actions/utils/setup-go-with-cache/action.yml | 104 +
.github/workflows/_common.yml | 27 +-
.github/workflows/_detect.yml | 2 -
.github/workflows/_test.yml | 2 -
.github/workflows/_test_bdd.yml | 2 -
.github/workflows/_test_examples.yml | 10 +-
.github/workflows/pre-merge.yml | 3 -
.github/workflows/stale-prs.yml | 56 +
Cargo.lock | 41 +-
Cargo.toml | 24 +-
DEPENDENCIES.md | 36 +-
Dockerfile | 2 +-
PULL_REQUEST_TEMPLATE.md | 6 +-
bdd/go/Dockerfile | 2 +-
bdd/go/tests/tcp_test/messages_steps.go | 8 +-
bdd/java/Dockerfile | 2 +-
.../org/apache/iggy/bdd/BasicMessagingSteps.java | 1 +
bdd/python/Dockerfile | 2 +-
bdd/rust/Dockerfile | 2 +-
core/ai/mcp/Cargo.toml | 2 +-
core/ai/mcp/Dockerfile | 2 +-
core/bench/Cargo.toml | 2 +-
core/bench/dashboard/server/Dockerfile | 2 +-
core/binary_protocol/Cargo.toml | 2 +-
.../src/cli/binary_message/poll_messages.rs | 8 +-
core/cli/Cargo.toml | 2 +-
core/cli/src/args/message.rs | 83 +-
core/common/Cargo.toml | 3 +-
core/common/src/commands/messages/send_messages.rs | 25 +-
core/common/src/lib.rs | 36 +-
core/common/src/types/message/iggy_message.rs | 73 +-
core/common/src/types/message/mod.rs | 5 +-
core/common/src/types/message/user_headers.rs | 2043 ++++++++++++--------
core/common/src/utils/mod.rs | 35 +-
.../{server/src => common/src/utils}/versioning.rs | 27 +-
core/connectors/runtime/Cargo.toml | 2 +-
core/connectors/runtime/Dockerfile | 2 +-
core/connectors/runtime/src/stats.rs | 30 +-
core/connectors/sdk/Cargo.toml | 2 +-
.../connectors/sinks/elasticsearch_sink/Cargo.toml | 2 +-
core/connectors/sinks/iceberg_sink/Cargo.toml | 2 +-
core/connectors/sinks/postgres_sink/Cargo.toml | 2 +-
core/connectors/sinks/quickwit_sink/Cargo.toml | 2 +-
core/connectors/sinks/stdout_sink/Cargo.toml | 2 +-
.../sources/elasticsearch_source/Cargo.toml | 2 +-
core/connectors/sources/postgres_source/Cargo.toml | 2 +-
core/connectors/sources/random_source/Cargo.toml | 2 +-
core/integration/Cargo.toml | 4 +
.../tests/cli/message/test_message_poll_command.rs | 9 +-
.../tests/cli/message/test_message_send_command.rs | 18 +-
core/integration/tests/connectors/mod.rs | 1 +
.../{postgres/sink.toml => quickwit/config.toml} | 2 +-
core/integration/tests/connectors/quickwit/mod.rs | 285 +++
.../tests/connectors/quickwit/quickwit_sink.rs | 153 ++
.../tests/connectors/quickwit/sinks/quickwit.toml} | 25 +-
.../server/scenarios/create_message_payload.rs | 21 +-
.../tests/server/scenarios/encryption_scenario.rs | 54 +-
.../server/scenarios/message_headers_scenario.rs | 21 +-
.../server/scenarios/message_size_scenario.rs | 26 +-
.../tests/server/scenarios/offset_scenario.rs | 15 +-
.../tests/server/scenarios/timestamp_scenario.rs | 15 +-
core/integration/tests/state/mod.rs | 5 +-
core/journal/src/lib.rs | 24 +-
core/metadata/src/impls/metadata.rs | 89 +-
core/sdk/Cargo.toml | 2 +-
core/sdk/src/prelude.rs | 12 +-
core/server/Cargo.toml | 2 +-
core/server/Dockerfile | 2 +-
core/server/server.http | 26 +-
core/server/src/bootstrap.rs | 2 +-
core/server/src/configs/cluster.rs | 2 +-
core/server/src/configs/http.rs | 2 +-
core/server/src/configs/quic.rs | 2 +-
core/server/src/configs/server.rs | 4 +-
core/server/src/configs/sharding.rs | 2 +-
core/server/src/configs/system.rs | 2 +-
core/server/src/configs/tcp.rs | 3 +-
core/server/src/configs/websocket.rs | 2 +-
core/server/src/lib.rs | 8 +-
core/server/src/main.rs | 2 +-
core/server/src/shard/builder.rs | 5 +-
core/server/src/shard/mod.rs | 7 +-
core/server/src/shard/system/info.rs | 5 +-
core/server/src/state/file.rs | 5 +-
core/tools/src/data-seeder/seeder.rs | 10 +-
.../Utils.cs | 2 +-
.../Utils.cs | 2 +-
.../iggy/examples/async/AsyncConsumerExample.java | 10 +-
.../apache/iggy/examples/async/AsyncProducer.java | 12 +-
.../consumer/GettingStartedConsumer.java | 2 +-
.../producer/GettingStartedProducer.java | 2 +-
.../consumer/MessageEnvelopeConsumer.java | 2 +-
.../producer/MessageEnvelopeProducer.java | 2 +-
.../consumer/MessageHeadersConsumer.java | 11 +-
.../producer/MessageHeadersProducer.java | 9 +-
.../multitenant/consumer/MultiTenantConsumer.java | 4 +-
.../multitenant/producer/MultiTenantProducer.java | 4 +-
.../sinkdataproducer/SinkDataProducer.java | 2 +-
.../iggy/examples/streambuilder/StreamBasic.java | 2 +-
examples/rust/Cargo.toml | 10 +-
examples/rust/README.md | 9 +-
.../message-headers/message-type/consumer/main.rs | 2 +-
.../message-headers/message-type/producer/main.rs | 5 +-
.../typed-headers}/consumer/main.rs | 23 +-
.../producer/main.rs | 50 +-
examples/rust/src/shared/codec.rs | 4 +-
.../FetchMessagesTests.cs | 4 +-
.../Fixtures/FetchMessagesFixture.cs | 4 +-
.../SendMessagesTests.cs | 8 +-
.../csharp/Iggy_SDK/Contracts/MessageResponse.cs | 4 +
.../csharp/Iggy_SDK/Contracts/Tcp/TcpContracts.cs | 31 +-
foreign/csharp/Iggy_SDK/Headers/HeaderKey.cs | 73 +-
foreign/csharp/Iggy_SDK/Headers/HeaderKind.cs | 24 +-
foreign/csharp/Iggy_SDK/Headers/HeaderValue.cs | 4 +
.../Implementations/HttpMessageStream.cs | 5 +-
foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 2 +-
.../Iggy_SDK/JsonConverters/HeaderKeyConverter.cs | 46 -
.../Iggy_SDK/JsonConverters/MessageConverter.cs | 25 +-
.../JsonConverters/UserHeadersConverter.cs | 257 +++
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 23 +-
.../Iggy_SDK/Utils/TcpMessageStreamHelpers.cs | 2 +-
.../send_messages_request_serializer_test.go | 10 +-
foreign/go/contracts/messages.go | 2 +-
foreign/go/contracts/user_headers.go | 106 +-
foreign/java/README.md | 129 ++
.../flink/source/IggyPartitionSplitReader.java | 2 +-
.../iggy/connector/flink/source/IggySource.java | 12 +-
.../flink/source/IggySourceSplitEnumerator.java | 2 +-
.../flink/example/AsyncTcpMessagePollTest.java | 30 +-
.../flink/example/AsyncTcpMessageSendTest.java | 26 +-
.../iggy/flink/example/SendTextDataTest.java | 11 +-
.../pinot/consumer/IggyPartitionGroupConsumer.java | 9 +-
.../pinot/metadata/IggyStreamMetadataProvider.java | 9 +-
foreign/java/gradle.properties | 2 +-
foreign/java/java-sdk/build.gradle.kts | 18 +
.../src/main/java/org/apache/iggy/Iggy.java | 86 +-
.../src/main/java/org/apache/iggy/IggyVersion.java | 135 ++
.../org/apache/iggy/builder/HttpClientBuilder.java | 66 +
.../org/apache/iggy/builder/TcpClientBuilder.java | 86 +
.../apache/iggy/client/async/MessagesClient.java | 12 +-
.../apache/iggy/client/async/StreamsClient.java | 22 +-
.../org/apache/iggy/client/async/TopicsClient.java | 10 +-
.../org/apache/iggy/client/async/UsersClient.java | 4 +-
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 307 +--
.../async/tcp/AsyncIggyTcpClientBuilder.java | 246 +++
.../iggy/client/async/tcp/AsyncTcpConnection.java | 17 +-
.../client/async/tcp/ConsumerGroupsTcpClient.java | 4 +-
.../iggy/client/async/tcp/MessagesTcpClient.java | 30 +-
.../iggy/client/async/tcp/StreamsTcpClient.java | 34 +-
.../iggy/client/async/tcp/TopicsTcpClient.java | 60 +-
.../iggy/client/async/tcp/UsersTcpClient.java | 13 +-
.../iggy/client/blocking/IggyClientBuilder.java | 37 -
.../blocking/http/ConsumerGroupsHttpClient.java | 5 +-
.../iggy/client/blocking/http/IggyHttpClient.java | 76 +-
.../blocking/http/IggyHttpClientBuilder.java | 237 +++
.../client/blocking/http/InternalHttpClient.java | 75 +-
.../client/blocking/http/ObjectMapperFactory.java | 4 +-
.../client/blocking/http/SystemHttpClient.java | 3 +-
.../iggy/client/blocking/http/UrlValidator.java | 60 +
.../iggy/client/blocking/http/UsersHttpClient.java | 5 +-
.../client/blocking/http/error/IggyHttpError.java | 22 -
.../iggy/client/blocking/tcp/IggyTcpClient.java | 338 +---
.../client/blocking/tcp/IggyTcpClientBuilder.java | 245 +++
.../client/blocking/tcp/InternalTcpClient.java | 15 +-
.../iggy/client/blocking/tcp/UsersTcpClient.java | 5 +-
.../java/org/apache/iggy/config/RetryPolicy.java | 130 ++
.../exception/IggyAuthenticationException.java | 70 +
.../iggy/exception/IggyAuthorizationException.java | 63 +
.../IggyClientException.java} | 32 +-
.../iggy/exception/IggyConflictException.java | 69 +
.../exception/IggyConnectionClosedException.java | 52 +
.../IggyConnectionException.java} | 32 +-
.../IggyEmptyResponseException.java} | 28 +-
.../org/apache/iggy/exception/IggyErrorCode.java | 162 ++
.../org/apache/iggy/exception/IggyException.java | 58 +
.../IggyInvalidArgumentException.java} | 32 +-
.../IggyMalformedResponseException.java} | 29 +-
.../IggyMissingCredentialsException.java} | 34 +-
.../IggyNotConnectedException.java} | 25 +-
.../IggyOperationNotSupportedException.java | 72 +
.../IggyProtocolException.java} | 32 +-
.../exception/IggyResourceNotFoundException.java | 76 +
.../apache/iggy/exception/IggyServerException.java | 206 ++
.../IggyTimeoutException.java} | 36 +-
.../IggyTlsException.java} | 32 +-
.../iggy/exception/IggyValidationException.java | 80 +
.../org/apache/iggy/identifier/Identifier.java | 5 +-
.../org/apache/iggy/message/BytesMessageId.java | 3 +-
.../message/{HeaderValue.java => HeaderEntry.java} | 6 +-
.../java/org/apache/iggy/message/HeaderKey.java} | 45 +-
.../java/org/apache/iggy/message/HeaderKind.java | 20 +-
.../java/org/apache/iggy/message/HeaderValue.java | 225 ++-
.../main/java/org/apache/iggy/message/Message.java | 50 +-
.../java/org/apache/iggy/message/MessageState.java | 4 +-
.../java/org/apache/iggy/message/Partitioning.java | 10 +-
.../org/apache/iggy/serde/Base64Serializer.java} | 16 +-
.../org/apache/iggy/serde/BytesDeserializer.java | 24 +-
.../org/apache/iggy/serde/BytesSerializer.java | 31 +-
.../apache/iggy/serde/UserHeadersSerializer.java | 44 +
.../apache/iggy/topic/CompressionAlgorithm.java | 4 +-
.../main/java/org/apache/iggy/user/UserStatus.java | 3 +-
.../src/main/resources/iggy-version.properties | 3 +
.../src/test/java/org/apache/iggy/IggyTest.java | 74 +-
.../test/java/org/apache/iggy/IggyVersionTest.java | 113 ++
.../client/async/AsyncClientIntegrationTest.java | 41 +-
.../iggy/client/async/AsyncPollMessageTest.java | 31 +-
.../async/tcp/AsyncIggyTcpClientBuilderTest.java | 187 +-
.../iggy/client/blocking/IntegrationTest.java | 1 +
.../client/blocking/http/HttpClientFactory.java | 3 +-
.../client/blocking/http/UrlValidatorTest.java | 90 +
.../client/blocking/tcp/BytesSerializerTest.java | 34 +-
.../blocking/tcp/IggyTcpClientBuilderTest.java | 103 +-
.../iggy/client/blocking/tcp/TcpClientFactory.java | 13 +-
.../apache/iggy/exception/IggyErrorCodeTest.java | 149 ++
.../iggy/exception/IggyServerExceptionTest.java | 156 ++
.../apache/iggy/serde/BytesDeserializerTest.java | 85 +-
foreign/node/package.json | 2 +-
foreign/node/src/bdd/message.ts | 64 +-
foreign/node/src/examples/stream-file-to-topic.ts | 85 +-
foreign/node/src/index.ts | 8 +-
foreign/node/src/tcp.sm.utils.ts | 90 +-
foreign/node/src/wire/message/header.type.ts | 137 +-
foreign/node/src/wire/message/header.utils.test.ts | 62 +-
foreign/node/src/wire/message/header.utils.ts | 402 ++--
foreign/node/src/wire/message/index.ts | 11 +-
foreign/node/src/wire/message/poll.utils.ts | 146 +-
.../src/wire/message/send-messages.command.test.ts | 187 +-
foreign/python/Cargo.toml | 12 +-
foreign/python/src/client.rs | 12 +-
foreign/python/src/consumer.rs | 16 +-
rust-toolchain.toml | 2 +-
scripts/check-backwards-compat.sh | 4 +-
.../lib/components/Modals/InspectMessage.svelte | 132 +-
.../RouteComponents/Settings/UsersTab.svelte | 8 +-
web/src/lib/domain/Message.ts | 7 +-
web/src/lib/domain/User.ts | 2 +-
.../routes/dashboard/settings/users/+page.svelte | 10 +-
240 files changed, 8011 insertions(+), 3292 deletions(-)
create mode 100644 .github/actions/utils/setup-go-with-cache/action.yml
create mode 100644 .github/workflows/stale-prs.yml
rename core/{server/src => common/src/utils}/versioning.rs (94%)
copy core/integration/tests/connectors/{postgres/sink.toml =>
quickwit/config.toml} (94%)
create mode 100644 core/integration/tests/connectors/quickwit/mod.rs
create mode 100644 core/integration/tests/connectors/quickwit/quickwit_sink.rs
copy core/{connectors/runtime/example_config/connectors/stdout.toml =>
integration/tests/connectors/quickwit/sinks/quickwit.toml} (72%)
copy examples/rust/src/{basic =>
message-headers/typed-headers}/consumer/main.rs (75%)
copy examples/rust/src/message-headers/{message-type =>
typed-headers}/producer/main.rs (71%)
delete mode 100644 foreign/csharp/Iggy_SDK/JsonConverters/HeaderKeyConverter.cs
create mode 100644
foreign/csharp/Iggy_SDK/JsonConverters/UserHeadersConverter.cs
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/IggyVersion.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/builder/HttpClientBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/builder/TcpClientBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilder.java
delete mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/IggyClientBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/http/IggyHttpClientBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/http/UrlValidator.java
delete mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/http/error/IggyHttpError.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/tcp/IggyTcpClientBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/config/RetryPolicy.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyAuthenticationException.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyAuthorizationException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyClientException.java} (54%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyConflictException.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyConnectionClosedException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyConnectionException.java} (52%)
rename
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/blocking/IggyClient.java
=> exception/IggyEmptyResponseException.java} (53%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyErrorCode.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyInvalidArgumentException.java} (51%)
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyMalformedResponseException.java} (55%)
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyMissingCredentialsException.java} (50%)
rename
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/blocking/http/error/IggyHttpException.java
=> exception/IggyNotConnectedException.java} (57%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyOperationNotSupportedException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyProtocolException.java} (53%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyResourceNotFoundException.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyServerException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyTimeoutException.java} (52%)
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/{client/async/UsersClient.java
=> exception/IggyTlsException.java} (54%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/exception/IggyValidationException.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/{HeaderValue.java
=> HeaderEntry.java} (81%)
copy
foreign/java/{external-processors/iggy-connector-flink/iggy-flink-examples/src/main/java/org/apache/iggy/flink/example/model/WordCount.java
=> java-sdk/src/main/java/org/apache/iggy/message/HeaderKey.java} (55%)
copy
foreign/java/java-sdk/src/{test/java/org/apache/iggy/client/blocking/tcp/PartitionsTcpClientTest.java
=> main/java/org/apache/iggy/serde/Base64Serializer.java} (63%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/serde/UserHeadersSerializer.java
create mode 100644
foreign/java/java-sdk/src/main/resources/iggy-version.properties
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/IggyVersionTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/UrlValidatorTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/exception/IggyErrorCodeTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/exception/IggyServerExceptionTest.java