From 94e90297a3a7933a441e512498323f5c8b05e3f1 Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Wed, 11 Feb 2026 03:03:07 +0100 Subject: [PATCH 1/3] Extended test matrix to cover more postgres instances --- .github/workflows/ci.yml | 75 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bca02f8..0266a6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,10 +18,11 @@ jobs: matrix: os: [ubuntu-latest] rust: [stable, beta] + postgres: ['14', '15', '16', '17', '18'] services: postgres: - image: postgres:15-alpine + image: postgres:${{ matrix.postgres }}-alpine env: POSTGRES_PASSWORD: test.123 POSTGRES_USER: postgres @@ -123,4 +124,74 @@ jobs: - name: Check for broken intra-doc links run: cargo doc --no-deps --all-features env: - RUSTDOCFLAGS: "-D warnings" \ No newline at end of file + RUSTDOCFLAGS: "-D warnings" + + coverage: + name: Code Coverage + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_PASSWORD: test.123 + POSTGRES_USER: postgres + POSTGRES_DB: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + mysql: + image: mysql:8.0 + env: + MYSQL_ROOT_PASSWORD: test.123 + MYSQL_DATABASE: cdc_db + MYSQL_USER: cdc_user + MYSQL_PASSWORD: test.123 + options: >- + --health-cmd="mysqladmin ping" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + ports: + - 3306:3306 + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + components: llvm-tools-preview + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y libpq-dev pkg-config libssl-dev + + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + + - name: Cache cargo registry + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo-coverage- + + - name: Generate coverage report + run: cargo llvm-cov --lib --lcov --output-path lcov.info + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + files: lcov.info + fail_ci_if_error: false + token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file From f85d3cbb195b33627a922c2b3f1f3f1e3ae4a378 Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Wed, 11 Feb 2026 03:05:34 +0100 Subject: [PATCH 2/3] Fixed copy-paste error --- .github/workflows/ci.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0266a6b..53c5ff2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -145,21 +145,6 @@ jobs: ports: - 5432:5432 - mysql: - image: mysql:8.0 - env: - MYSQL_ROOT_PASSWORD: test.123 - MYSQL_DATABASE: cdc_db - MYSQL_USER: cdc_user - MYSQL_PASSWORD: test.123 - options: >- - --health-cmd="mysqladmin ping" - --health-interval=10s - --health-timeout=5s - --health-retries=3 - ports: - - 3306:3306 - steps: - uses: actions/checkout@v4 From 150de64d534d3bef617ddde4e7b4ee861e01bc87 Mon Sep 17 00:00:00 2001 From: LucaCappelletti94 Date: Wed, 11 Feb 2026 03:59:57 +0100 Subject: [PATCH 3/3] Bumped dependencies --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c0b1379..cf93b05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -74,9 +74,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" @@ -105,9 +105,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "js-sys", @@ -167,9 +167,9 @@ checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" [[package]] name = "flate2" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -728,18 +728,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 30ddb84..ef19659 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,11 +17,11 @@ tokio = { version = "1.49.0", features = ["io-util", "net", "time", "macros"] } tokio-util = { version = "0.7.18", features = ["compat"] } serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" -chrono = { version = "0.4.42", features = ["serde"] } -bytes = "1.11.0" +chrono = { version = "0.4.43", features = ["serde"] } +bytes = "1.11.1" tracing = "0.1.44" libpq-sys = "0.8" -thiserror = "2.0.17" +thiserror = "2.0.18" [features] default = [] @@ -31,4 +31,4 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio = { version = "1.47.2", features = ["full"] } futures = "0.3.31" tokio-stream = { version = "0.1.18", features = ["time"] } -flate2 = "1.1.8" \ No newline at end of file +flate2 = "1.1.9" \ No newline at end of file