Skip to content

Add initial version of CI#5

Merged
spetz merged 1 commit intomasterfrom
poor_ci
Aug 31, 2023
Merged

Add initial version of CI#5
spetz merged 1 commit intomasterfrom
poor_ci

Conversation

@hubcio
Copy link
Copy Markdown
Contributor

@hubcio hubcio commented Aug 31, 2023

Revamped github action, modified docker image,
fixed some tests. This is only initial version,
more work is still needed.

After this commit, any push to master should
generate docker image for x86_64.

Revamped github action, modified docker image,
fixed some tests. This is only initial version,
more work is still needed.

After this commit, any push to master should
generate docker image for x86_64.
@spetz spetz merged commit 56bee28 into master Aug 31, 2023
@spetz
Copy link
Copy Markdown
Contributor

spetz commented Aug 31, 2023

Awesome! :D

@spetz spetz deleted the poor_ci branch August 31, 2023 19:18
ryerraguntla referenced this pull request in ryerraguntla/iggy-1 Feb 23, 2026
…n-step

fix: macOS build failure: install hwloc before building Rust binaries
mlevkov added a commit to mlevkov/iggy that referenced this pull request Mar 21, 2026
Functional changes addressing hubcio's review feedback:

apache#1  Consuming iterator: all 4 send methods now iterate `for message in
    messages` (owned) instead of `for message in &messages` with
    `.clone()` on payloads. Uses `std::mem::replace` to extract payload
    while keeping message intact for `build_envelope()`.

apache#2  DRY refactor: extracted `send_per_message()` — shared per-message
    loop with circuit breaker, partial delivery accounting, and payload
    size enforcement. `send_individual()` and `send_raw()` are now thin
    closures over the shared method.

apache#4  Pre-built HeaderMap: headers are parsed once in `open()` after
    validation, stored as `reqwest::header::HeaderMap`, and cloned per
    request in `send_with_retry()`. Removes `request_builder()` method.

apache#5  UUID v8: `format_u128_as_uuid()` now uses `Uuid::new_v8()` to set
    proper RFC 4122 version/variant bits. Adds `uuid` dep with `v8`
    feature.

apache#6  HashSet for success_status_codes: O(1) lookup in the hot path
    (`send_with_retry()`) instead of O(n) Vec scan.

apache#7  Zero-alloc UUID: `Uuid::to_string()` uses stack-allocated formatting
    (resolved by apache#5's Uuid switch).

apache#9  Forward iggy message headers: `build_envelope()` includes
    `iggy_headers` in metadata when `ConsumedMessage.headers` is present.
    Uses `to_string_value()` for human-readable key/value strings.

apache#10 Success/transient overlap warning: `open()` warns when
    `success_status_codes` overlap with transient retry codes (429, 5xx).

apache#11 Worst-case latency doc: `consume()` doc comment documents
    `batch_length * (max_retries + 1) * max_retry_delay` formula.

62 unit tests pass, zero clippy warnings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants