Skip to content

Improve CI#7

Merged
hubcio merged 1 commit intomasterfrom
improve_ci
Sep 8, 2023
Merged

Improve CI#7
hubcio merged 1 commit intomasterfrom
improve_ci

Conversation

@hubcio
Copy link
Copy Markdown
Contributor

@hubcio hubcio commented Sep 7, 2023

Split CI into:

  • build and test
  • tag
  • release
  • merge docker manifest

After this commit, there should be release 'latest' in dockerhub if Cargo.lock and server/Cargo.toml
were unchanged. If it was changed, there should
be also tagged release.

Besides that, fixed toggling tests by adding sleep.

@hubcio hubcio force-pushed the improve_ci branch 10 times, most recently from ac3c986 to 27d139a Compare September 8, 2023 14:55
Split CI into:
 - build and test
 - tag
 - release
 - merge docker manifest

After this commit, there should be release 'latest'
in dockerhub if Cargo.lock and server/Cargo.toml
were unchanged. If it was changed, there should
be also tagged release.

Besides that, fixed toggling tests by adding sleep.
Copy link
Copy Markdown
Contributor

@spetz spetz left a comment

Choose a reason for hiding this comment

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

Well done :D

@hubcio hubcio merged commit c95b419 into master Sep 8, 2023
@hubcio hubcio deleted the improve_ci branch September 8, 2023 15:39
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