)]}'
{
  "log": [
    {
      "commit": "aa2c1c2496d287e111d70d382e5d9af07568488b",
      "tree": "c1c02fb9e638808c93a5ff1ee03056be1723f8af",
      "parents": [
        "aaafd49564b3fddf15282e68f2075c730e3f4d35"
      ],
      "author": {
        "name": "Jeremy Tan",
        "email": "jtanx@users.noreply.github.com",
        "time": "Fri Oct 30 13:40:06 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 12:40:06 2026 +0900"
      },
      "message": "fix(c/driver/postgresql): make connection init/release thread-safe (#4938)\n\nCloses #4753"
    },
    {
      "commit": "aaafd49564b3fddf15282e68f2075c730e3f4d35",
      "tree": "03b90b779dcd352050fea673245b5d8642ded6e1",
      "parents": [
        "0a844d867f5591d90bc70e2eaba16cf062f93130"
      ],
      "author": {
        "name": "ump45nose",
        "email": "52391318+ump45nose@users.noreply.github.com",
        "time": "Fri Oct 30 11:39:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 12:39:24 2026 +0900"
      },
      "message": "fix(go/driver/internal/driverbase): fall back to SetOption for unhandled typed options (#4924)\n\nFollowing the proposal in the issue, the fallback lives in the\n`database`, `connection` and `statement` wrappers, since they hold the\ndriver\u0027s implementation (`DatabaseImplBase` can\u0027t dispatch to the\ndriver\u0027s own `SetOption`).\n\nThis PR was prepared with AI assistance.\n\nCloses #4913.\n\n---------\n\nSigned-off-by: Vincent \u003c52391318+ump45nose@users.noreply.github.com\u003e"
    },
    {
      "commit": "0a844d867f5591d90bc70e2eaba16cf062f93130",
      "tree": "3449a83ed5b47bf8b0c89abe1f5a5342420617dd",
      "parents": [
        "28c6d5ef573e81bba268994794d05fa8a44eef7a"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Oct 29 16:23:52 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 12:23:52 2026 -0400"
      },
      "message": "feat(go/adbc/drivermgr): support ExecutePartitions and ReadPartition (#4963)\n\nThe Go driver manager wrapper stubbed `ExecutePartitions` and\n`ReadPartition` as NotImplemented, even when the loaded driver supports\npartitioned execution. This PR implements both."
    },
    {
      "commit": "28c6d5ef573e81bba268994794d05fa8a44eef7a",
      "tree": "853cc5ac4bf9d3ac3c04ae5a7cd2663ccb01fe9b",
      "parents": [
        "f1435728467ae03184b439770c073856b4a2b96e"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Oct 29 10:12:27 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 19:12:27 2026 +0900"
      },
      "message": "feat(go/adbc/drivermgr): support typed option getters and setters (#4957)\n\nThe Go driver manager wrapper implemented string `SetOption` on\nDatabase, Connection and Statement but had no option getters. This\nPR implements `adbc.GetSetOptions` on all three handle types."
    },
    {
      "commit": "f1435728467ae03184b439770c073856b4a2b96e",
      "tree": "2d0a9843e59faa6073d27c9c351dc74fc109eca2",
      "parents": [
        "57cb036137c7640400a1d5d27754aa7fabb6e376"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Wed Oct 28 16:55:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 16:55:20 2026 -0700"
      },
      "message": "fix(csharp): try fallback entrypoint on .NET Framework (#4977)\n\nWhen no entrypoint is specified, the driver manager tries the entrypoint\nderived from the driver\u0027s file name (e.g. `AdbcDriverSqliteInit`) and\nthen falls back to `AdbcDriverInit`. On the netstandard2.0 build (used\non .NET Framework), the fallback was never tried: that build uses its\nown `NativeLibrary` shim, whose `GetExport` returns `IntPtr.Zero` for a\nmissing export instead of throwing `EntryPointNotFoundException`, and\nthe fallback only ran when an exception was thrown. So on .NET\nFramework, a driver that exports only `AdbcDriverInit` failed to load\nwith \"Unable to find ... export\", while the same driver loaded fine on\n.NET 8 and later.\n\nThis PR adds a test for this case and tries the fallback entrypoint\nwhether the first lookup throws or returns `IntPtr.Zero`.\n\nBug found and PR created with Opus 5.5."
    },
    {
      "commit": "57cb036137c7640400a1d5d27754aa7fabb6e376",
      "tree": "0ac5efe82806e81511df8200013ea16e3957d860",
      "parents": [
        "075b302abae2db15c5586cd76224ee9423678163"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Wed Oct 28 16:55:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 16:55:02 2026 -0700"
      },
      "message": "fix(csharp): prevent freeing driver library twice (#4976)\n\nWhen `CAdbcDriverImporter.Load` is called with `canUnload: true` and the\nlibrary doesn\u0027t export the requested entrypoint, the netstandard2.0\nbuild (used on .NET Framework) frees the library twice: once before\nthrowing and again in the `finally` block. That build uses its own\n`NativeLibrary` shim, whose `GetExport` returns `IntPtr.Zero` for a\nmissing export instead of throwing, so it reaches a branch the\nnet8.0/net10.0 builds never do. Freeing twice can unload a library that\nsomething else in the process still uses.\n\nThis PR adds a test for this case and leaves freeing the library to the\n`finally` block.\n\nBug found and PR created with Opus 5.5."
    },
    {
      "commit": "075b302abae2db15c5586cd76224ee9423678163",
      "tree": "580754203e7efa9762c4ba364455b8875f69a36f",
      "parents": [
        "8015c993d7c951b65f1ec0edef1b07bddeb54b2d"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Wed Oct 28 16:54:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 16:54:37 2026 -0700"
      },
      "message": "fix(csharp): align driver and manifest loading errors with c++ (#4973)\n\nThis PR syncs the C# driver manager\u0027s failure behavior with the other\ndriver managers.\n\nI noticed the driver manager implementations don\u0027t perfectly align with\nrespect to what errors they return for various driver and manifest\nloading failures. I\u0027m not sure we need to have every driver manager\nreturn the exact same error class and detail but I noticed the C# driver\nmanager returns non-ADBC errors in some cases where the other driver\nmanagers return an ADBC error with the underlying error wrapped. I think\nat least being consistent about when the user gets an ADBC error or not\nis a good starting place.\n\nI had Opus 5.5 help me outline these cases, analyze other driver\nmanagers, and produce this table that highlights the behavioral\ndifference in the C# driver manager:\n\n| Case | C/C++ | Rust | C# |\n|---|---|---|---|\n| **Driver library given by path** (absolute or relative, with or\nwithout extension) | | | |\n| File doesn\u0027t exist | ADBC `NOT_FOUND` | ADBC `INTERNAL` |\n`System.ArgumentException` (not an ADBC error) |\n| File exists but can\u0027t be loaded (not a shared library, wrong\narchitecture) | ADBC `NOT_FOUND` | ADBC `INTERNAL` |\n`System.DllNotFoundException` (not an ADBC error) |\n| **Manifest given by path** (`.toml`, or a path without extension with\na `.toml` of the same name next to it) | | | |\n| Manifest file doesn\u0027t exist | ADBC `INVALID_ARGUMENT` | ADBC\n`INVALID_ARGUMENT` | ADBC `NOT_FOUND` |\n| Manifest isn\u0027t valid TOML | ADBC `INVALID_ARGUMENT` | ADBC\n`INVALID_ARGUMENT` | ADBC `INVALID_ARGUMENT` |\n| Manifest has no `Driver.shared` key | ADBC `INVALID_ARGUMENT` | ADBC\n`INVALID_ARGUMENT` | ADBC `INVALID_ARGUMENT` |\n| Manifest has no `Driver.shared` entry for this platform | ADBC\n`NOT_FOUND` | ADBC `INVALID_ARGUMENT` | ADBC `NOT_FOUND` |\n| Manifest\u0027s driver library doesn\u0027t exist | ADBC `NOT_FOUND` | ADBC\n`INTERNAL` | `System.ArgumentException` (not an ADBC error) |\n| Manifest\u0027s driver library exists but can\u0027t be loaded | ADBC\n`NOT_FOUND` | ADBC `INTERNAL` | `System.DllNotFoundException` (not an\nADBC error) |\n| **Driver given by bare name** (found via search paths) | | | |\n| Nothing found by that name | ADBC `NOT_FOUND` | ADBC `NOT_FOUND` |\nADBC `NOT_FOUND` |\n| Manifest found, its driver library doesn\u0027t exist | ADBC `NOT_FOUND` |\nADBC `NOT_FOUND` | `System.ArgumentException` (not an ADBC error) |\n| Manifest found, its driver library exists but can\u0027t be loaded | ADBC\n`NOT_FOUND` | ADBC `NOT_FOUND` | `System.DllNotFoundException` (not an\nADBC error) |\n\nThe PR makes C# match C++ in the above cases. Technically this could be\nmarked as a breaking change though it\u0027s less likely that users depend on\nerror behaviors in the same way they depend on non-error behaviors."
    },
    {
      "commit": "8015c993d7c951b65f1ec0edef1b07bddeb54b2d",
      "tree": "ff841b008f09edaa2ca36e5166ead5bc6d7d5d5f",
      "parents": [
        "7ef4090ecca695c2827dae630842a6505b25e18b"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Oct 28 23:20:26 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 08:20:26 2026 +0900"
      },
      "message": "feat(go/adbc/drivermgr): support ExecuteSchema (#4975)\n\nImplement `adbc.StatementExecuteSchema` in the Go driver manager\nwrapper. A driver that doesn\u0027t support it returns\n`StatusNotImplemented`."
    },
    {
      "commit": "7ef4090ecca695c2827dae630842a6505b25e18b",
      "tree": "c4b81ca69b897ba162d30effa308966b129dd0d3",
      "parents": [
        "c22f6b3f820375abce41473da30ecdff3ce8d436"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Oct 28 18:22:19 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 14:22:19 2026 -0400"
      },
      "message": "feat(go/adbc/drivermgr): support GetStatistics and GetStatisticNames (#4962)\n\nThe Go driver manager wrapper didn\u0027t implement\n`adbc.ConnectionGetStatistics`, so Go callers couldn\u0027t reach\n`AdbcConnectionGetStatistics` / `AdbcConnectionGetStatisticNames` even\nwhen the loaded driver supports them.\n\nThis PR implements both on the connection. Nil catalog/schema/table\nfilters are passed as NULL, and a compile-time assertion checks the\ninterface.\n\nRelated: #4957 (option getters for the same wrapper).\n\n---------\n\nCo-authored-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "c22f6b3f820375abce41473da30ecdff3ce8d436",
      "tree": "c4f2afb5732ccca70d870e86c65e9dce10aeaed5",
      "parents": [
        "440eceb15c993673da41b8ca5f9e130290ec003c"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Wed Oct 28 09:03:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 12:03:54 2026 -0400"
      },
      "message": "chore: update go.mod and go.sum for 1.13.0 (#4952)"
    },
    {
      "commit": "440eceb15c993673da41b8ca5f9e130290ec003c",
      "tree": "e1c10feddd07b3100682f22a1a0d7a60e538c729",
      "parents": [
        "b4fc35660a17a199ebef31ea4d6024d69445c91c"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Wed Oct 28 08:15:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 00:15:10 2026 +0900"
      },
      "message": "docs: add CDN to postrelease tasks (#4974)"
    },
    {
      "commit": "b4fc35660a17a199ebef31ea4d6024d69445c91c",
      "tree": "f00089292a53f0bf95e402088666d54a503111ae",
      "parents": [
        "29d7b516202de77b3698d98618ddfcd01dc60dfd"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Tue Oct 27 21:13:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 13:13:51 2026 +0900"
      },
      "message": "fix(rust): return NotFound on driver not found instead of Internal on Windows (#4971)\n\nThe Rust driver manager returns an inconsistent error class across\nplatforms. On non-Windows platforms, trying to load a driver that\ndoesn\u0027t exist is handled and we return NotFound. On Windows, don\u0027t catch\na failed load and just pass it upwards which results in an Internal\nerror. I don\u0027t think there\u0027s any good reason to return different errors\nfor the same behavior across platforms.\n\nThere\u0027s a TODO about this:\nhttps://github.com/apache/arrow-adbc/blob/main/rust/driver_manager/src/search.rs#L527.\n\nThis PR syncs the behavior between non-Windows and Windows platforms in\nthe Rust driver manager and adds a regression test in the Javascript\nbindings. The new behavior is tested by updating the existing\n`test_load_from_name_missing_driver` test to not only verify we return a\nnon-empty error but that we return a Driver not found error with detail."
    },
    {
      "commit": "29d7b516202de77b3698d98618ddfcd01dc60dfd",
      "tree": "8f96576902e134fda924558d05acfb8aabcca8b1",
      "parents": [
        "6d5fec37dd8ac2d56ff98aa5b967a212682f4e1b"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Tue Oct 27 20:39:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 12:39:01 2026 +0900"
      },
      "message": "test(c): increase test coverage for driver manager (#4972)\n\nAdds some basic test coverage for loading drivers by name/path. I found\nthese gaps while working on\nhttps://github.com/apache/arrow-adbc/pull/4971."
    },
    {
      "commit": "6d5fec37dd8ac2d56ff98aa5b967a212682f4e1b",
      "tree": "811765ff87874656e3114921caa567aee30b045a",
      "parents": [
        "80fe238c11c71757d1624a298e8d0528f46eb1a4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 08:33:09 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 08:33:09 2026 +0900"
      },
      "message": "chore(java): Bump com.microsoft.sqlserver:mssql-jdbc from 13.6.0.jre11 to 13.6.1.jre11 (#4964)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "80fe238c11c71757d1624a298e8d0528f46eb1a4",
      "tree": "53c7519959ba2cce81395726da74169268bd1d78",
      "parents": [
        "97ef0fa62306ebc8874c9374a44e404b90fa138c"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Tue Oct 27 16:10:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 08:10:25 2026 +0900"
      },
      "message": "test(rust): rename test manifest to avoid conflicts with local drivers (#4946)\n\nEdits the Rust driver manager tests that previously looked for a driver\nmanifest named sqlite.toml to use a path less likely to conflict with\nuser and system level versions of the sqlite driver. This is basically\nthe same thing as was fixed in 22f0f4a94.\n\nTo reproduce the failure, run `dbc install sqlite` and then run the\ndriver manager tests."
    },
    {
      "commit": "97ef0fa62306ebc8874c9374a44e404b90fa138c",
      "tree": "d2af107f67dbb38d0faec2aa62427d1fc81182b6",
      "parents": [
        "623e588a03b07f8899da6181d4add11bc9a8d0c8"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Tue Oct 27 16:04:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 08:04:52 2026 +0900"
      },
      "message": "docs(python): fix out of date statement in cookbook (#4961)\n\nI found this out of date statement in the cookbook:\n\n\u003e Right now, the PostgreSQL driver only supports bind parameters for\nqueries that don\u0027t generate result sets.\n\nI think since https://github.com/apache/arrow-adbc/pull/2065 this has\nbeen fixed.\n\nThis PR removes that note and also reworks the cookbook to make it clear\nwhat all you can do."
    },
    {
      "commit": "623e588a03b07f8899da6181d4add11bc9a8d0c8",
      "tree": "ed0a09e0fb161409ea5ae91e5b6d7de532bd7746",
      "parents": [
        "6142985940790b8d79634c04b58fdce6d676744d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 07:56:27 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 07:56:27 2026 +0900"
      },
      "message": "chore: bump the actions group with 3 updates (#4968)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6142985940790b8d79634c04b58fdce6d676744d",
      "tree": "19ff29e8df5ab6aefdd175326c2786491b6f8781",
      "parents": [
        "087333c6e266c057f53b9bb3b375bca852b5b4f4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 07:55:52 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 07:55:52 2026 +0900"
      },
      "message": "chore(rust): Bump rust-toolchain to nightly-2026-10-27 (#4965)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "087333c6e266c057f53b9bb3b375bca852b5b4f4",
      "tree": "92674f3b812125c325d31e836d1907cf8c2f5e62",
      "parents": [
        "b519e662f9e368c9dfbef313d0914b6afe50fe37"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 27 15:30:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 07:30:49 2026 +0900"
      },
      "message": "ci: optimize workflows to save some minutes (#4960)\n\n- Limit concurrency in packaging.yml to comply with ASF Infra guidelines\n- Don\u0027t trigger unnecessary pipelines on ci/rust-nightly\n- Fix(?) Gemfury upload\n  ```\n\u003d\u003d\u003d\u003d Publishing\n[...]/apache-arrow-adbc-driver-manager-darwin-arm64-0.25.0.tgz\nnpm error You must specify a tag using --tag when publishing a\nprerelease version.\n  ```\n\nAssisted-by: GPT-6.1 Astra"
    },
    {
      "commit": "b519e662f9e368c9dfbef313d0914b6afe50fe37",
      "tree": "062c4b8fd1ebc2e569de42a7bb78bea85a75852a",
      "parents": [
        "c5a76effa59f790ec4191ac1639ed4d71e186b26"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Mon Oct 26 19:51:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:51:22 2026 +0900"
      },
      "message": "chore: update versions for 26-SNAPSHOT, add changelog for 25 (#4954)"
    },
    {
      "commit": "c5a76effa59f790ec4191ac1639ed4d71e186b26",
      "tree": "5b20657a009b41e1666b98829003af6cf926853d",
      "parents": [
        "6c1bf4a70af6a64bd5725ed6f64ea27c78ebcf16"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Tue Oct 27 01:42:53 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 10:42:53 2026 +0900"
      },
      "message": "ci: use UCRT64 MSYS2 packages for x64 vcpkg builds (#4956)\n\nThe Windows x64 `C/C++` jobs in `native-vcpkg.yml` fail during\n`msys2/setup-msys2` with:\n\n```\nerror: target not found: mingw-w64-x86_64-tools\n```\n\nMSYS2 no longer ships the MINGW64 variant of `mingw-w64-tools`; only the\n`ucrt-x86_64`, `clang-x86_64` and `clang-aarch64` variants remain."
    },
    {
      "commit": "6c1bf4a70af6a64bd5725ed6f64ea27c78ebcf16",
      "tree": "271113774334110d88d5ec9fbf14b7daf4c1a5b6",
      "parents": [
        "d068ba2d15208521aa8e8b3b03ad143fd5807497"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Mon Oct 26 16:19:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:19:26 2026 +0900"
      },
      "message": "chore(javascript): format packages after we run napi (#4959)\n\nIn https://github.com/apache/arrow-adbc/pull/4954 we saw the\nLint/CheckJS job fail:\n\n```\nChecking formatting...\n[warn] npm/darwin-arm64/package.json\n[warn] npm/darwin-x64/package.json\n[warn] npm/linux-arm64-gnu/package.json\n[warn] npm/linux-x64-gnu/package.json\n[warn] npm/win32-arm64-msvc/package.json\n[warn] npm/win32-x64-msvc/package.json\n[warn] Code style issues found in 6 files. Run Prettier with --write to fix.\nError: Process completed with exit code 1.\n```\n\nIn dev/release/utils-prepare.sh we run `npx --yes napi version` which,\nwhen it writes out new `package.json` files, doesn\u0027t add trailing\nnewlines. I think we should reformat after we run `napi` so this PR adds\nan `npm run fix` after we run `napi version` so the result of `napi`\npasses our lint step."
    },
    {
      "commit": "d068ba2d15208521aa8e8b3b03ad143fd5807497",
      "tree": "ab8d1163e3210c332034e8fd549867d92ec0f70f",
      "parents": [
        "64af51f75762ad5de0d5bef31d12c0a87a63b57b"
      ],
      "author": {
        "name": "Bryce Mecum",
        "email": "petridish@gmail.com",
        "time": "Mon Oct 26 16:14:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 08:14:24 2026 +0900"
      },
      "message": "chore: move JNI verification test selection into Java test (#4943)\n\nThis was put into the bash script in\nhttps://github.com/apache/arrow-adbc/pull/4937 for the purpose of the\nrelease but now we can move it into the Java test code."
    },
    {
      "commit": "64af51f75762ad5de0d5bef31d12c0a87a63b57b",
      "tree": "0f94a5e81f65e887ee88b35408a1dc625a486d3f",
      "parents": [
        "819325f10f4732e98ddcc663a3301b64b9b96390"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Mon Oct 26 14:29:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 14:29:22 2026 -0700"
      },
      "message": "ci: pin miniforge (#4950)\n\nLikely cause: https://github.com/conda-forge/miniforge/issues/913"
    },
    {
      "commit": "819325f10f4732e98ddcc663a3301b64b9b96390",
      "tree": "d26821020f3d55e41419db42441cc02f0700cab8",
      "parents": [
        "9cd7f589a0e6fc53dc95d39c8693eed1e086ef8d"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sun Oct 25 19:34:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 11:34:30 2026 +0900"
      },
      "message": "ci: trigger nightly-verify.yml on dev/release/verify* (#4951)\n\nhttps://github.com/apache/arrow-adbc/pull/4948 didn\u0027t trigger relevant\npipelines."
    },
    {
      "commit": "9cd7f589a0e6fc53dc95d39c8693eed1e086ef8d",
      "tree": "231a0583bfb34b76c765e1c437af7d801ffcb10e",
      "parents": [
        "3a4843e9bbd6574a4b48b6b4d4c4101c91228c07"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Mon Oct 26 09:13:26 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:13:26 2026 +0900"
      },
      "message": "fix(dev/release): pin surefire version for Java JAR verification (#4948)\n\nDebian\u0027s Maven package patches the default surefire version to 2.17,\nwhich doesn\u0027t support the JUnit Platform. As a result, no tests in\nVerifyReleaseCandidateTest were run and the verification passed without\nchecking anything.\n\nPin maven-surefire-plugin to 3.5.2 and enable failIfNoTests so that the\nverification fails if no tests are run.\n\nCloses #4947.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "3a4843e9bbd6574a4b48b6b4d4c4101c91228c07",
      "tree": "9229e0ac82f8a0665ec62a41fa4421b15bef62df",
      "parents": [
        "a5cfe1cb7d487c23edd04b5ed361772c91e36704"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sat Oct 24 17:26:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 09:26:11 2026 +0900"
      },
      "message": "chore: remove apparently unsupported .asf.yaml key (#4949)\n\nIt seems ASF Infra may not have deployed the version that supports\n\u0027include_drafts: true\u0027:\n\n```\nwhile parsing a mapping\nunexpected key not in schema \u0027include_drafts\u0027\n  in \"arrow-adbc.git/.asf.yaml::github\", line 24, column 1:\n        include_drafts: \u0027true\u0027\n    ^ (line: 24)\n```"
    },
    {
      "commit": "a5cfe1cb7d487c23edd04b5ed361772c91e36704",
      "tree": "ddcf5d264bed4acfbea3c095f11169b85ce940fc",
      "parents": [
        "032775861123dd07e198b0d333c5f6aab97b2932"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sat Oct 24 03:58:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 19:58:47 2026 +0900"
      },
      "message": "docs: update contributing guide, set open PR limit (#4940)\n\nWe haven\u0027t quite run into trouble from agents so far but having just\nseen someone open half a dozen PRs to another Arrow repo in one go, I\nfigure we should head off that kind of thing."
    },
    {
      "commit": "032775861123dd07e198b0d333c5f6aab97b2932",
      "tree": "7c0ba840450511eee26b180df330f584d21b2d7e",
      "parents": [
        "2042317c2d80387a754394e8b52265e9e1bc856f"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 22 15:56:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 07:56:02 2026 +0900"
      },
      "message": "chore: update google-java-format pre-commit hook (#4942)\n\nWe need a new version to run on newer JRE versions."
    },
    {
      "commit": "2042317c2d80387a754394e8b52265e9e1bc856f",
      "tree": "8931e25321fc8b1401eed4bc4e3ccd6fa4e48aa8",
      "parents": [
        "d633d4e0fc8f6293a89d946f9ccb96759dd37882"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Thu Oct 22 13:10:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 13:10:09 2026 -0700"
      },
      "message": "chore(csharp): add variant tests using DuckDB (#4944)\n\nAdd tests for reading and ingesting variants using DuckDB. (These are\nskipped pre-DuckDB 2.0.)\nAlso fixes path concatenation of DuckDB driver file path."
    },
    {
      "commit": "d633d4e0fc8f6293a89d946f9ccb96759dd37882",
      "tree": "70106b8840705f52adbc1bc51d13c689c6ebe03d",
      "parents": [
        "ed48aa5664f83255f2d9596a14eaa5ef9aa59024"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 22 07:27:04 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 23:27:04 2026 +0900"
      },
      "message": "chore(dev/release): fix more verification issues (#4941)\n\nGenerated-by: GPT-6 Astra"
    },
    {
      "commit": "ed48aa5664f83255f2d9596a14eaa5ef9aa59024",
      "tree": "75fc9efd2cec839329679e05c5e3221e94dab5f7",
      "parents": [
        "e1795cf6a3175fafcc4f94a8252424f025b2b3e7"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 22 07:18:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 23:18:56 2026 +0900"
      },
      "message": "chore: drop cmake-format pre-commit hook (#4934)\n\nOn Python 3.15, it breaks because it\u0027s misusing re.Scanner:\n\n```\n  File \"[...]/cmakelang/lex/__init__.py\", line 135, in tokenize\n    scanner \u003d re.Scanner([\n        # double quoted string\n    ...\u003c48 lines\u003e...\n         lambda s, t: (TokenType.UNQUOTED_LITERAL, t)),\n    ], re.DOTALL)\n  File \"[...]/lib/python3.15/re/__init__.py\", line 406, in __init__\n    raise ValueError(\"Cannot use capturing groups in re.Scanner\")\nValueError: Cannot use capturing groups in re.Scanner\n```\n\nThere are potential alternatives, but for now, let\u0027s remove this hook.\nNote that the official recommendation from CMake themselves is to format\nby hand:\nhttps://gitlab.kitware.com/cmake/cmake/-/work_items/19959"
    },
    {
      "commit": "e1795cf6a3175fafcc4f94a8252424f025b2b3e7",
      "tree": "b3497ef9672a8b55ad554e0f8a0152f064b9cb9a",
      "parents": [
        "1910dff0c73e7957cca6e3ccd8a968e6502209e3"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Wed Oct 21 22:19:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 14:19:39 2026 +0900"
      },
      "message": "chore(dev/release): fix verification issues (#4937)\n\nAssisted-by: GPT-6 Astra"
    },
    {
      "commit": "1910dff0c73e7957cca6e3ccd8a968e6502209e3",
      "tree": "d04b5b8bc01d5d03c33e407c50583ac7ccfb439b",
      "parents": [
        "5060a16859538cb534db2f9fc9e4e28c262dc4d3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 18:28:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 18:28:31 2026 -0700"
      },
      "message": "chore(csharp): Bump Microsoft.SourceLink.GitHub from 10.0.401 to 10.0.402 (#4931)\n\nUpdated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)\nfrom 10.0.401 to 10.0.402.\n\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\n_Sourced from [Microsoft.SourceLink.GitHub\u0027s\nreleases](https://github.com/dotnet/dotnet/releases)._\n\n## 10.0.402\n\nYou can build .NET 10.0 from the repository by cloning the release tag\n`v10.0.402` and following the build instructions in the [main\nREADME.md](https://github.com/dotnet/dotnet/blob/v10.0.402/README.md#building).\n\nAlternatively, you can build from the sources attached to this release\ndirectly.\nMore information on this process can be found in the [dotnet/dotnet\nrepository](https://github.com/dotnet/dotnet/blob/v10.0.402/README.md#building-from-released-sources).\n\nAttached are PGP signatures for the GitHub generated tarball and\nzipball. You can find the public key at https://dot.net/release-key-2023\n\nCommits viewable in [compare\nview](https://github.com/dotnet/dotnet/compare/v10.0.401...v10.0.402).\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5060a16859538cb534db2f9fc9e4e28c262dc4d3",
      "tree": "908cd4d0109cc0e1d2c301834e9838ade0aecc90",
      "parents": [
        "f701ef1dcc4d6f40755f951c7a3a953202278125"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 20 17:23:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:23:09 2026 +0900"
      },
      "message": "chore: bump Go toolchain to 1.26.10 (#4936)"
    },
    {
      "commit": "f701ef1dcc4d6f40755f951c7a3a953202278125",
      "tree": "807e38e7b1481b5c685abfe346f21dc4ac6e2afe",
      "parents": [
        "4f30824eb38ea55d0bc619ad0b429308351a3117"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:58:20 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:58:20 2026 +0900"
      },
      "message": "chore(javascript): bump markdown-it from 14.3.2 to 14.3.3 (#4935)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4f30824eb38ea55d0bc619ad0b429308351a3117",
      "tree": "4f7c45f30f272fe761868cb756690020c7730a50",
      "parents": [
        "b14f6bd06f6ef2087fcafee5fbf4f90fbb330f38"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:43:34 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:43:34 2026 +0900"
      },
      "message": "chore(rust): bump rust-toolchain to nightly-2026-10-20 (#4927)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b14f6bd06f6ef2087fcafee5fbf4f90fbb330f38",
      "tree": "4a5445bb1bd5414e0d0f75cf74a6d684458b6cc4",
      "parents": [
        "a67c56ccd59f4960546b57792a42fe4a7873088d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:40:31 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:40:31 2026 +0900"
      },
      "message": "chore(rust): bump toml from 1.1.7+spec-1.1.0 to 1.1.8+spec-1.1.0 (#4926)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a67c56ccd59f4960546b57792a42fe4a7873088d",
      "tree": "2c22bf0cfa7e53b2cfce917f559fdb3134591d4e",
      "parents": [
        "5d95df3587f67441b68f3e1e09f86d738e6f8ed7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:40:22 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:40:22 2026 +0900"
      },
      "message": "chore(java): bump com.github.ben-manes.caffeine:caffeine from 3.3.0 to 3.3.1 (#4925)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5d95df3587f67441b68f3e1e09f86d738e6f8ed7",
      "tree": "9ad5b28497ae68394b9bec7a9caf1ca24c9282af",
      "parents": [
        "56e30f8fdb57e351288f541c82768f39830675a2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:34:17 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:34:17 2026 +0900"
      },
      "message": "chore(go): bump golang.org/x/tools from 0.51.0 to 0.52.0 (#4928)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "56e30f8fdb57e351288f541c82768f39830675a2",
      "tree": "3f34c53071a8a6583c55d958b939ba082a72782f",
      "parents": [
        "517478322a0099a8fcc9d7494e72c48116cea553"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:28:21 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:28:21 2026 +0900"
      },
      "message": "chore: bump the actions group with 2 updates (#4930)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "517478322a0099a8fcc9d7494e72c48116cea553",
      "tree": "f1f32e64ee02fe57fcc59596f1e61e1fd253980c",
      "parents": [
        "b85c632000b932500bd6c867dab6456430049f37"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 14:20:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 14:20:16 2026 -0700"
      },
      "message": "chore(csharp): Bump Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0 (#4929)\n\nUpdated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)\nfrom 18.10.1 to 18.11.0.\n\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\n_Sourced from [Microsoft.NET.Test.Sdk\u0027s\nreleases](https://github.com/microsoft/vstest/releases)._\n\n## 18.11.0\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat rel/18.11 --\u003e\n\n## What\u0027s Changed\n* Fix TRX logger mangling astral-plane (non-BMP) characters by\n@​azat-msft in https://github.com/microsoft/vstest/pull/16318\n* Disable the MTP testhost by default by @​nohwnd in\nhttps://github.com/microsoft/vstest/pull/16337\n* Fix OS-blind apphost probe in MTP bridge on Unix (regression from\n#​16201) by @​azat-msft in\nhttps://github.com/microsoft/vstest/pull/16336\n* Retarget the MTP client onto\nMicrosoft.Testing.Platform.ServerMode.Client.Sources by @​nohwnd in\nhttps://github.com/microsoft/vstest/pull/16300\n* Pass arguments to PowerShell with -File instead of -command by\n@​nohwnd in https://github.com/microsoft/vstest/pull/16363\n* Respect console logger verbosity from a settings file by @​nohwnd in\nhttps://github.com/microsoft/vstest/pull/16044\n* Fix backslash normalization in VSTestCLIRunSettings on Unix by\n@​nohwnd in https://github.com/microsoft/vstest/pull/15795\n* Docs: fix typo explicitely -\u003e explicitly by @​vaibhav8a in\nhttps://github.com/microsoft/vstest/pull/16397\n* Copy acceptance test diagnostic logs into the test results directory\nby @​nohwnd in https://github.com/microsoft/vstest/pull/16403\n\n## New Contributors\n* @​vaibhav8a made their first contribution in\nhttps://github.com/microsoft/vstest/pull/16397\n\n**Full Changelog**:\nhttps://github.com/microsoft/vstest/compare/v18.10.1...v18.11.0\n\nCommits viewable in [compare\nview](https://github.com/microsoft/vstest/compare/v18.10.1...v18.11.0).\n\u003c/details\u003e\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dMicrosoft.NET.Test.Sdk\u0026package-manager\u003dnuget\u0026previous-version\u003d18.10.1\u0026new-version\u003d18.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b85c632000b932500bd6c867dab6456430049f37",
      "tree": "de0172044f154d820122b321e18e439c875dbf9b",
      "parents": [
        "4062396adcaa2142657a7a38941a454a701285c7"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Tue Oct 20 03:22:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 03:22:30 2026 -0700"
      },
      "message": "fix(csharp): match the driver manager spec for entry point name (#4912)\n\nRelates to #4751"
    },
    {
      "commit": "4062396adcaa2142657a7a38941a454a701285c7",
      "tree": "e7fe0bc684fc9f7a2b50b9e1e9436594f61199fc",
      "parents": [
        "2ee9a106678bb713e1dd0137e50122bf33c54546"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Tue Oct 20 03:22:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 03:22:10 2026 -0700"
      },
      "message": "feat(csharp): version core packages as 1.0, separately from drivers (#4923)\n\nFor the upcoming release, the core C# packages ship as 1.0 while the\ndrivers stay at 0.x.\n\n**1.0.0:** Apache.Arrow.Adbc, Apache.Arrow.Adbc.Client,\nApache.Arrow.Adbc.Telemetry.Traces.Exporters,\nApache.Arrow.Adbc.Telemetry.Traces.Listeners, Apache.Arrow.Adbc.Testing\n**0.25.0:** all drivers, including\nApache.Arrow.Adbc.Drivers.Interop.FlightSql\n\nChanges:\n- `csharp/Directory.Build.props`: new `AdbcCoreVersionPrefix` (1.0.0),\nplus `AdbcCoreVersion`, which includes the version suffix.\n`VersionPrefix` is still the default and is what the drivers use.\n- The core projects opt in with\n`\u003cVersionPrefix\u003e$(AdbcCoreVersionPrefix)\u003c/VersionPrefix\u003e`.\n- The smoke tests now reference Apache.Arrow.Adbc.Client at\n`$(AdbcCoreVersion)`.\n- Release tooling: new `VERSION_CSHARP_CORE` in `versions.env`.\n`utils-prepare.sh` bumps it, `post-07-csharp.sh` pushes the core\npackages under it, and the vote email, website post, verification script\nand changelog list both C# versions.\n\nVerified:\n- `dotnet pack` produces the versions above, and driver packages depend\non `Apache.Arrow.Adbc 1.0.0-SNAPSHOT`.\n- `--version-suffix` and an empty suffix apply correctly to both groups.\n- The release-prep `sed` replacements update all three properties.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2ee9a106678bb713e1dd0137e50122bf33c54546",
      "tree": "f7e51f76facaf25c93ecb179edc259475c5659c2",
      "parents": [
        "ac1aebe5fcdbebb4c952bc5ce408e45c783c0a67"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Mon Oct 19 16:42:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 16:42:06 2026 -0700"
      },
      "message": "feat(csharp): support typed options in connection profiles (#4914)\n\nThis adds support for typed options in connection profiles. This\ndiverges from the C implementation for backwards compatibility.\nOtherwise, a profile like\n```\n[Options]\nadbc.snowflake.sql.client_option.max_retry_count \u003d 3\n```\nwould fail in `AdbcDatabaseInit`. See #4913.\n\nRelates to #4751"
    },
    {
      "commit": "ac1aebe5fcdbebb4c952bc5ce408e45c783c0a67",
      "tree": "b525253a13d928eef5951bd7b8e068fbfca30110",
      "parents": [
        "ddf023d23b9f4e4ff0f46f1214c4550007c1e4a7"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 11:09:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 11:09:08 2026 -0700"
      },
      "message": "test(csharp): test NaN and infinity in variant values (#4922)\n\n## What\u0027s changed\n\nAdds the variant test promised in #4919. Variants converted to JSON use\nthe same writer as structs, so they already get the behavior from #4921:\nNaN and ±Infinity are written as the strings `\"NaN\"`, `\"Infinity\"` and\n`\"-Infinity\"`. This test pins that down.\n\n`VariantNonFiniteValues` reads a variant column with a non-finite double\nand float inside an object and an array, and a top-level NaN:\n- With `StructBehavior.JsonString`, it checks the exact JSON.\n- With `StructBehavior.Strict`, it checks that the .NET values keep the\nactual NaN and infinity values.\n\nWith the #4921 change reverted, the JSON case fails with the original\n`ArgumentException`.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "ddf023d23b9f4e4ff0f46f1214c4550007c1e4a7",
      "tree": "65bff199230c7cdbbc09abb3660ea5458f4a5299",
      "parents": [
        "52f7928d7eac545ff547e91f777090a64a894c7f"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 10:59:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 10:59:08 2026 -0700"
      },
      "message": "feat(csharp): support extension types in the ADO.NET client (#4919)\n\n## What\u0027s changed\n\nThe ADO.NET client now reads and binds the canonical extension types\nthat Apache.Arrow 23 implements.\n\n| Extension | .NET value | Binding |\n|---|---|---|\n| `arrow.uuid` | `Guid` | `DbType.Guid` (from a `Guid`, a string, or 16\nbytes) |\n| `arrow.bool8` | `bool` | — |\n| `arrow.timestamp_with_offset` | `DateTimeOffset`, keeping the original\noffset | — |\n| `arrow.parquet.variant` | JSON string or `Dictionary`/`List`/scalar,\ndepending on `StructBehavior` | — |\n| any other extension type | the storage value | — |\n\nPreviously, any extension column made the reader throw\n`NotSupportedException`.\n\n### Drivers loaded through the C API\n\n`CArrowArrayStreamImporter` doesn\u0027t take an extension registry, so a\nnative driver\u0027s UUID column arrives as `fixed_size_binary(16)` with only\n`ARROW:extension:name` in its field metadata. The reader resolves these\nfields using the built-in definitions plus anything registered in\n`ExtensionTypeRegistry.Default`, then wraps the storage column in the\nextension array the first time it\u0027s read in each batch. The new\n`AdbcDataReader.GetArrowArray(ordinal)` returns that wrapped array. Once\napache/arrow-dotnet#466 adds a registry overload to the stream importer,\nthis becomes a fallback.\n\n### Other changes\n\n- `IArrowArrayExtensions.ValueAt` and `GetValueConverter` handle\n`GuidArray`, `Bool8Array`, `TimestampWithOffsetArray` and\n`VariantArray`, and fall back to storage for other extension arrays.\nThey also now support `fixed_size_binary`. Extension types nested in\nstructs and lists are resolved and converted the same way as top-level\nones.\n- `Prepare()` maps uuid, bool8 and timestamp_with_offset parameters to\n`DbType.Guid`, `DbType.Boolean` and `DbType.DateTimeOffset`.\n- `DbType.DateTimeOffset` parameters are bound as UTC timestamps, which\nevery driver understands; the original offset is not sent.\n- Shredded variants are opt-in. Unshredded variants need only\n`Apache.Arrow`, but reading a shredded one needs\n`Apache.Arrow.Operations`, which neither package references. An\napplication that expects shredded results references it and sets\n`ShreddedVariants.Reader \u003d (array, index) \u003d\u003e\narray.GetLogicalVariantValue(index)` once; otherwise reading a shredded\nvariant throws `NotSupportedException`. Variant JSON uses the same\nwriter as structs.\n- `ListArray.GetSlicedValues` returns null for lists of extension values\n(apache/arrow-dotnet#468), so the list conversion slices the values\ndirectly in that case.\n- The client readme documents the mappings.\n\n### Tests\n\n- Mocked-driver tests cover each type, both as real extension arrays and\nas storage with extension metadata, plus user-registered definitions,\nunknown extension types, parameter binding and `Prepare()`.\n- A DuckDB test with `arrow_lossless_conversion` reads UUID and BOOLEAN\nas `Guid` and `bool` and round-trips `Guid` parameters. DuckDB 1.5.6\ncan\u0027t export VARIANT over Arrow, so variants are only covered by the\nmocked tests.\n\nCloses #4918.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "52f7928d7eac545ff547e91f777090a64a894c7f",
      "tree": "5f4ed5ee15c97b715b4a98ff39ded08b394b3afa",
      "parents": [
        "23e04c4bb350fdf9c7967f9552b66dd9bf34e797"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 10:56:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 10:56:34 2026 -0700"
      },
      "message": "fix(csharp): serialize NaN and infinity in struct JSON (#4921)\n\n## What\u0027s changed\n\nWhen a struct is serialized to JSON (the default\n`StructBehavior.JsonString`), float and double fields are written with\n`Utf8JsonWriter.WriteNumberValue`. That throws `ArgumentException` for\nNaN and ±Infinity, so a single non-finite value made its whole row\nunreadable.\n\nThese values are now written as the strings `\"NaN\"`, `\"Infinity\"` and\n`\"-Infinity\"`. That\u0027s how System.Text.Json writes them when\n`JsonNumberHandling.AllowNamedFloatingPointLiterals` is set.\n`StructBehavior.Strict` is unchanged and still returns the actual\n`float`/`double` values.\n\nThis came up in review of #4919, where variants serialized to JSON use\nthe same writer.\n\n### Tests\n\n`NonFiniteFloat` and `NonFiniteDouble` check the JSON for NaN, Infinity\nand -Infinity. `NonFiniteDouble` also checks that the struct result\nkeeps the actual NaN value. Without the fix, both throw the\n`ArgumentException`.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "23e04c4bb350fdf9c7967f9552b66dd9bf34e797",
      "tree": "fc9bc93439f05df467d89f957c8df503f10e717a",
      "parents": [
        "248eadaa19db3f572fad9bf187030125b3533a91"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 10:24:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 10:24:10 2026 -0700"
      },
      "message": "fix(csharp): return true from AdbcDataReader.IsDBNull for null values (#4920)\n\n## What\u0027s changed\n\n`AdbcDataReader.IsDBNull` checked `GetValue(ordinal) \u003d\u003d null`, but\n`GetValue` returns `DBNull.Value` for null values, so `IsDBNull` always\nreturned `false`. It now checks for `DBNull`.\n\nIt still goes through `GetValue`, so a value supplied by an `OnGetValue`\nhandler continues to count as not null.\n\nFound while working on #4919.\n\n### Tests\n\n`TestIsDBNull` reads a column whose fourth row is null and checks\n`IsDBNull` for every row.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "248eadaa19db3f572fad9bf187030125b3533a91",
      "tree": "4945348742b184ef6c5a46e13ebe1e680ea58af4",
      "parents": [
        "0a40cf30d0458867cea48d0fbc5283340b59b40f"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Sun Oct 18 08:44:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 08:44:57 2026 -0700"
      },
      "message": "feat(csharp): collect garbage when an exported driver goes idle (#4917)\n\n## What\u0027s changed\n\nA driver published with NativeAOT gets its own GC heap, and the runtime\nonly collects that heap in response to allocations. Nothing collects it\non a timer, and the low-memory notification doesn\u0027t collect an idle heap\neither. So once a caller releases its databases, the memory the driver\nlast used stays committed for the rest of the process\u0027s life.\n\n`CAdbcDriverExporter` now counts the databases it has open. A collection\nis scheduled when the last database is released, or when the driver is\nreleased while no databases are open. It runs on a thread-pool thread\nafter `IdleCollectionDelay`, and only if no database was opened in the\nmeantime. The collection is `Collect` + `WaitForPendingFinalizers` + an\naggressive, compacting gen2 collection.\n\n- `IdleCollectionDelay` is a new public static `TimeSpan?`, and `null`\nturns the feature off.\n- It defaults to one second when running under NativeAOT\n(`!RuntimeFeature.IsDynamicCodeSupported`). It defaults to `null` under\nJIT, where the driver shares its heap with the host, and on the\n`netstandard2.0` build.\n- Waiting for finalizers is needed for now because exported record\nbatches are freed by their finalizers rather than when the consumer\nreleases them (apache/arrow-dotnet#464).\n- A plain `GC.Collect()` empties the heap but leaves the memory\ncommitted. `GCCollectionMode.Aggressive` decommits it.\n\n### Measurements\n\nA NativeAOT driver built on the exporter was loaded by a C host, which\nran a workload and then released everything. The host never asks for a\ncollection. Numbers are process private bytes; the baseline is about 3\nMB.\n\n| Workload | After release | 10 s later, with this change |\n|---|---|---|\n| 2 × 6 batches × 4M rows | 419 MB | 5.9 MB |\n| 3 × 50 batches × 64K rows | 24.5 MB | 4.4 MB |\n\nWithout this change, the 64K-row run was sampled every 10 s for 60 s\nafter release, and its memory never went down.\n\nThe forced collection took 2–32 ms in these runs.\n\n### NativeAOT workaround\n\n`AdbcDriverInit` now evaluates `Encoding.UTF8` on the caller\u0027s thread.\nStarting the idle timer starts a thread in the driver\u0027s runtime, and on\nLinux that can hit a NativeAOT bug that fails the process fast\n(dotnet/runtime#136031). The thread runs `UTF8Encoding`\u0027s static\nconstructor while it sets its name, and if it contends on another type\u0027s\nconstructor lock at that moment, `Lock`\u0027s statics initialization\nre-enters the encoding while its static instance is still null. Without\nthe workaround, the AOT fixture tests crashed on every run on Linux.\n\n### Tests\n\n`IdleCollectorTests` covers:\n- collecting after the last database is released;\n- collecting only once when the driver is released after the databases;\n- skipping when a database is reopened during the delay;\n- collecting again after a later idle period;\n- disabling with a `null` delay, and rejecting a negative delay;\n- the JIT default.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "0a40cf30d0458867cea48d0fbc5283340b59b40f",
      "tree": "07506d4a08d9b2091d27c62e285a842ebd9bbc57",
      "parents": [
        "c91ed8ed6e02c054dfa6fe7ade3491270ec14745"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Thu Oct 15 20:59:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 20:59:19 2026 -0700"
      },
      "message": "test(csharp): test the ADBC 1.1 and async APIs against DuckDB (#4911)\n\n## What\u0027s changed\n\nThis adds tests that exercise the ADBC 1.1 APIs and the\nasync/cancellation support through the imported DuckDB driver. The other\ntests use the managed round-trip fixture; these check the C# importer\nagainst a real native 1.1 driver.\n\nThis is the last of the PRs implementing ADBC 1.1 in C#:\n- #4884 fixed bugs in the C importer and exporter.\n- #4885 added the 1.1 APIs to the base classes.\n- #4895 added async methods and cancellation.\n- #4901 used them in the Client.\n\nThere are no library changes in this PR.\n\n### New tests in `ImportedDuckDbTests`\n\n- **Options:**\n- `DatabaseGetOption` and `TypedDatabaseOptionsAreAppliedAtOpen`. A\n`long` value reaches DuckDB through `DatabaseSetOptionInt`.\n- `StandardConnectionOptionsComeFromTheDriver`, for autocommit, current\ncatalog and current schema.\n- `SetCurrentDbSchema`, which also uses `SetOptionAsync` and\n`GetOptionAsync`.\n  - `ConnectWithTypedOptions` and `ConnectWithTypedOptionsAsync`.\n  - `StatementGetOption`.\n- `UnsupportedOptions`, which checks the `NotFound` and `NotImplemented`\nstatuses at each level.\n- **Errors:** `ErrorDetails` checks the 1.1 error details\n(`duckdb:error_type`). It also checks that the vendor code field, which\nthe 1.1 error layout reuses, doesn\u0027t leak into `NativeError`.\n- **Statistics:** `Statistics` covers `GetStatisticsNames` and\n`GetStatistics`.\n- **Async:**\n  - `OpenAndConnectAsync`.\n  - `ExecuteAsyncWithCancellationToken`.\n  - `TransactionsAsync`, for `CommitAsync` and `RollbackAsync`.\n- `CancellationTokenCancelsQuery`. Like `CancelStatement` and\n`CancelConnection`, it keeps cancelling until the query ends, because\nDuckDB discards a cancel that arrives before the query has started.\n\n`DuckDbFixture` gains an `OpenDatabase` overload that takes `object`\nvalues, and an `OpenDatabaseAsync`.\n\n### DuckDB 1.5.6 behavior the tests allow for\n\nEach of these is commented where a test allows for it:\n- **Interrupted queries** are reported as `InvalidArgument` rather than\n`Cancelled`.\n- **Unknown statement options** set as a string or integer get\n`InvalidArgument` rather than the spec\u0027s `NotImplemented`. The test\naccepts either, so a DuckDB fix won\u0027t break it.\n- **Unknown database options** set as a string, integer or double on an\nopen database are accepted without an error, so the test doesn\u0027t check\nthose three setters.\n- **Autocommit:** after the current catalog or schema has been read, a\nlater attempt to disable autocommit is silently ignored. The test checks\nthe catalog and schema last.\n\n## Testing\n\n- The full solution builds without warnings, and `dotnet format\n--verify-no-changes` is clean.\n- The core test project passes on net10.0, net8.0 and net472.\n- 10 full runs with `DOTNET_PROCESSOR_COUNT\u003d2` had no failures.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "c91ed8ed6e02c054dfa6fe7ade3491270ec14745",
      "tree": "2f94c20f0c1fcd6c17aad9166220b3dffe9ee263",
      "parents": [
        "420255664cefae85e3db7fba0720f4167c5051b8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:57:07 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:57:07 2026 +0900"
      },
      "message": "chore(rust): bump rust-toolchain to nightly-2026-10-15 (#4903)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "420255664cefae85e3db7fba0720f4167c5051b8",
      "tree": "fe4e8edfb646b29af93417f2ac35644d2c6ac69f",
      "parents": [
        "7ee20f4e084e377dc863204f4962acf26d58166b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:56:06 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:56:06 2026 +0900"
      },
      "message": "chore(go): bump otelgrpc from 0.71.0 to 0.72.0 (#4910)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7ee20f4e084e377dc863204f4962acf26d58166b",
      "tree": "3f2784b61352ad4c036ea63d58b802bc26d3edfd",
      "parents": [
        "91a93f7b1ca707cd48a489d4598745d930e85c0f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:53:20 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:53:20 2026 +0900"
      },
      "message": "chore(go): bump modernc.org/sqlite from 1.59.0 to 1.60.1 (#4909)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "91a93f7b1ca707cd48a489d4598745d930e85c0f",
      "tree": "21aacc9bdef31a144c480f3be607e375a1f235f3",
      "parents": [
        "95c6247ec35182bfaa50b0e12d71f0a8dad3efd8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:13:14 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:13:14 2026 +0900"
      },
      "message": "chore(java): bump the linters group (#4902)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "95c6247ec35182bfaa50b0e12d71f0a8dad3efd8",
      "tree": "d419961ca99157c524de2eba1d9a9ba160677da9",
      "parents": [
        "35ee71017203fa7fcb82213171a94372362e90c4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:12:30 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:12:30 2026 +0900"
      },
      "message": "chore(java): bump org.postgresql:postgresql from 42.7.13 to 42.7.14 (#4904)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "35ee71017203fa7fcb82213171a94372362e90c4",
      "tree": "cfa0a6ba0e3b2f3ec35846ab85e61694a1933a73",
      "parents": [
        "d4d75428b6e7b84eb7f44ba43699adcb024efe48"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 09:05:38 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 09:05:38 2026 +0900"
      },
      "message": "chore(go): bump the opentelemetry group (#4907)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d4d75428b6e7b84eb7f44ba43699adcb024efe48",
      "tree": "3c9c771f40f16de38bcbce057067e05dc50edf80",
      "parents": [
        "5c4adb3ad6a9cf83f2cea5d9e0264de0eef32d35"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 08:43:41 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:43:41 2026 +0900"
      },
      "message": "chore(java): bump com.diffplug.spotless:spotless-maven-plugin from 3.10.3 to 3.10.4 (#4906)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5c4adb3ad6a9cf83f2cea5d9e0264de0eef32d35",
      "tree": "04fbaf7ad9a42842796d7ec69f2d995aa50f98d8",
      "parents": [
        "c9ec4d3f095de8b43ca7bce5a0c0ebf09e81e300"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 08:35:02 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:35:02 2026 +0900"
      },
      "message": "chore(go): bump the golang-org-x group (#4905)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c9ec4d3f095de8b43ca7bce5a0c0ebf09e81e300",
      "tree": "54769a23ff6276c36d2faf7fddb59fbc08bdbc6d",
      "parents": [
        "6365d73ca0a9ce194d78fecb520484d78fbed950"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 08:26:27 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:26:27 2026 +0900"
      },
      "message": "chore(rust): bump toml from 1.1.6+spec-1.1.0 to 1.1.7+spec-1.1.0 (#4908)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6365d73ca0a9ce194d78fecb520484d78fbed950",
      "tree": "e8f91af0567369b74780dab4f71d9c0dbab583ed",
      "parents": [
        "1b8970cef3e704e1a53b3356e7edd39b8b855e04"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 15 16:16:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:16:06 2026 +0900"
      },
      "message": "chore(go): bump go toolchain to 1.26.9 (#4894)"
    },
    {
      "commit": "1b8970cef3e704e1a53b3356e7edd39b8b855e04",
      "tree": "91c2c29d23e32cbfe36fe7c619d08c1d65d09732",
      "parents": [
        "5c82d7585d6f00c6f5d5953847b1ed57fdb50647"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 15 16:05:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 08:05:37 2026 +0900"
      },
      "message": "docs: update drivers list (#4897)"
    },
    {
      "commit": "5c82d7585d6f00c6f5d5953847b1ed57fdb50647",
      "tree": "54c5f65b5a409e96ff457aa6c712bf38b229b376",
      "parents": [
        "9ee52cd2fe3420e9050b3e2629a28883abec8636"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 15 15:56:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 07:56:55 2026 +0900"
      },
      "message": "ci: include /go/driver in dependabot config (#4893)"
    },
    {
      "commit": "9ee52cd2fe3420e9050b3e2629a28883abec8636",
      "tree": "279b1af0d1b9abc8836b1373c7c1985f4bdf6884",
      "parents": [
        "2be84b1a5cd0319af107081a6e0233484a38588c"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Thu Oct 15 13:07:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 13:07:08 2026 -0700"
      },
      "message": "feat(csharp/src/Client): use the cancellable statement APIs in AdbcCommand (#4901)\n\n## What\u0027s changed\n\nThe ADO.NET wrapper\u0027s `AdbcCommand` now uses the asynchronous,\ncancellable statement methods added in #4895:\n\n- **`ExecuteReaderAsync`** passes its `CancellationToken` to\n`AdbcStatement.ExecuteQueryAsync(CancellationToken)`. Before, the token\nwas checked once up front and then dropped.\n- **`ExecuteNonQueryAsync`** is now overridden to call\n`AdbcStatement.ExecuteUpdateAsync(CancellationToken)`. The `DbCommand`\ndefault it replaces runs `ExecuteNonQuery` synchronously on the caller\u0027s\nthread and ignores the token once the command has started.\n- **`Cancel`** now calls `AdbcStatement.Cancel` instead of throwing\n`NotImplementedException`. As the `DbCommand.Cancel` contract requires,\nit does nothing if there\u0027s nothing to cancel, and it doesn\u0027t throw if\nthe driver can\u0027t cancel.\n\nThis is the fourth of several PRs implementing ADBC 1.1. #4884 fixed\nbugs in the C importer and exporter, #4885 added the 1.1 APIs to the\nbase classes, and #4895 added async methods and cancellation. Wider\nDuckDB tests come next.\n\n### Compatibility\n\n- **Drivers that implement only the synchronous methods** keep working\nthrough the base class defaults, which run them on the thread pool.\n- **Drivers that override the older parameterless `ExecuteQueryAsync()`\nor `ExecuteUpdateAsync()`** still have those overrides called, because\nthe token overloads forward to them by default.\n- **`Cancel` no longer throws `NotImplementedException`.** Code that\nrelied on that exception would see a change, but `DbCommand.Cancel`\nisn\u0027t supposed to throw.\n- **`ExecuteScalarAsync` and `PrepareAsync`** still use the `DbCommand`\ndefaults. `ExecuteScalar` isn\u0027t implemented yet, so they\u0027re left for a\nfollow-up.\n\n## Testing\n\nNew and updated tests in `ClientTests`:\n\n- **Token passing:** `ExecuteReaderAsync` and `ExecuteNonQueryAsync`\npass the caller\u0027s token to the statement.\n- **Sync fallback:** `ExecuteNonQueryAsync` works with a driver that\nimplements only `ExecuteUpdate`.\n- **Pre-cancelled tokens:** a token that\u0027s already cancelled stops\n`ExecuteNonQueryAsync` before it reaches the statement.\n- **`Cancel`:** it forwards to the statement, and it doesn\u0027t throw when\nthe driver can\u0027t cancel.\n- **Updated mocks:** the existing tests now set up the token overload of\n`ExecuteQueryAsync`, which the command calls.\n\n**Results:**\n- The full solution builds without warnings, and `dotnet format\n--verify-no-changes` is clean.\n- The core test project passes on net10.0, net8.0 and net472.\n- 10 full runs with `DOTNET_PROCESSOR_COUNT\u003d2` had no failures.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2be84b1a5cd0319af107081a6e0233484a38588c",
      "tree": "6fa4b0e1a0df353070e3d71fc2dadc41ea5de706",
      "parents": [
        "fc84f5efc853de73a5da2cf18653237bf55ee876"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Thu Oct 15 12:23:23 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 12:23:23 2026 -0700"
      },
      "message": "feat(csharp): add async and cancellation support to the base classes (#4895)\n\n## What\u0027s changed\n\nThis adds asynchronous methods that take a `CancellationToken` to the C#\nbase classes (`AdbcDriver`, `AdbcDatabase`, `AdbcConnection` and\n`AdbcStatement`). The base classes also now implement\n`IAsyncDisposable`.\n\nThis is the third of several PRs implementing ADBC 1.1. #4884 fixed bugs\nin the C importer and exporter, and #4885 added the 1.1 APIs to the base\nclasses. The Client changes and wider DuckDB tests come next.\n\n### Backwards compatibility\n\nEvery new member is virtual and has a default implementation, so\nexisting drivers compile and behave as before:\n\n- **Default async methods** run the synchronous method on the thread\n  pool. When the token is cancelled, they call the object\u0027s `Cancel`\n  method, so a driver that supports cancellation stops work without\n  overriding anything.\n- **Cancellation is reported only when it took effect.** An\n  `OperationCanceledException` is thrown when the token was cancelled\n  and either `Cancel` succeeded or the driver reported\n  `AdbcStatusCode.Cancelled`. Otherwise the driver\u0027s own error is\n  rethrown, so a driver that can\u0027t cancel doesn\u0027t have its failures\n  hidden.\n- **Existing async overrides are honored.** The existing\n  `ExecuteQueryAsync()` and `ExecuteUpdateAsync()` keep their\n  signatures. The new `ExecuteQueryAsync(CancellationToken)` and\n  `ExecuteUpdateAsync(CancellationToken)` call them by default, adding\n  cancellation through `Cancel`. That way a driver that already\n  overrides the parameterless versions keeps its asynchronous\n  implementation.\n- **Existing calls bind the same way.** No new overload changes which\n  method an existing call resolves to.\n\n### New APIs\n\n- **`AdbcDriver`:** `OpenAsync`.\n- **`AdbcDatabase`:** `ConnectAsync` and `ConnectWithTypedOptionsAsync`.\n- **`AdbcConnection`:**\n  - `GetInfoAsync`, `GetObjectsAsync`, `GetTableSchemaAsync` and\n    `GetTableTypesAsync`\n  - `GetStatisticsAsync` and `GetStatisticsNamesAsync`\n  - `ReadPartitionAsync`\n  - `CommitAsync` and `RollbackAsync`\n  - `SetOptionAsync` and `GetOptionAsync`\n- **`AdbcStatement`:**\n  - `ExecuteQueryAsync(CancellationToken)` and\n    `ExecuteUpdateAsync(CancellationToken)`\n  - `ExecuteSchemaAsync` and `ExecutePartitionedAsync`\n  - `GetParameterSchemaAsync` and `PrepareAsync`\n- **`DisposeAsync`** on the database, connection and statement.\n\nThere are no C interop changes. Imported drivers get the default async\nmethods, which call the synchronous ones. Those already include the 1.0\nfallbacks from #4885.\n\n## Testing\n\n- **`BaseClassDefaultsTests`:** covers the defaults with drivers that\n  implement only the synchronous members:\n  - tokens cancelled before and during a call\n  - drivers whose `Cancel` succeeds or fails\n  - existing `ExecuteQueryAsync()`/`ExecuteUpdateAsync()` overrides\n  - `DisposeAsync`\n- **`ExportedDriverRoundTrip11Tests`:**\n  - a `CancellationToken` cancels a statement running in a driver that\n    was exported and imported again\n  - async option round trips\n  - async calls on an imported 1.0 driver report the same statuses as\n    the synchronous calls\n- **AoT interop tests:** `ExecuteQueryAsync` with a token round trips\n  through the native AoT fixture.\n- **Results:**\n  - The full solution builds without warnings, and\n    `dotnet format --verify-no-changes` is clean.\n  - The core test project passes on net10.0, net8.0 and net472.\n  - The AoT interop tests pass against a fixture published from this\n    branch.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "fc84f5efc853de73a5da2cf18653237bf55ee876",
      "tree": "b9dc0d994027151db40dab1d1ecd0b0f8ca7ae86",
      "parents": [
        "d94c17ea57bc65b84c757159d1cdad5ff8733519"
      ],
      "author": {
        "name": "Ian Cook",
        "email": "ianmcook@gmail.com",
        "time": "Thu Oct 15 08:07:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 21:07:39 2026 +0900"
      },
      "message": "docs: update java entry to include kotlin and scala (#4896)\n\nCo-authored-by: David Li \u003cli.davidm96@gmail.com\u003e"
    },
    {
      "commit": "d94c17ea57bc65b84c757159d1cdad5ff8733519",
      "tree": "7f4f5d22d871a183cf6481d273757d34288b1057",
      "parents": [
        "73a67e9022ac5d259e90abf7802e002737396962"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 13:31:33 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 13:31:33 2026 +0900"
      },
      "message": "chore(java): bump the linters group (#4891)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "73a67e9022ac5d259e90abf7802e002737396962",
      "tree": "385cb68fbef4fd11c43a9d5e19b8e68c3c98f85c",
      "parents": [
        "7edf7a2a0b015b48e37abf0eeedf1e99e570086c"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Wed Oct 14 20:14:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 20:14:48 2026 -0700"
      },
      "message": "feat(csharp): add ADBC 1.1 support to the base classes and C interop (#4885)\n\n## What\u0027s changed\n\nThis adds the ADBC 1.1 APIs to the main C# base classes (`AdbcDriver`,\n`AdbcDatabase`, `AdbcConnection` and `AdbcStatement`). They also work\nacross the C boundary in both directions: a managed driver can be\nexported as an ADBC 1.1 driver, and an imported 1.1 driver works through\nthe base classes.\n\nUntil now, 1.1 support lived in separate `*11` types that nothing\nimplemented. Adding the APIs to the existing classes means every driver\ngets them without changing its base class. The `*11` types are now\nmarked `[Obsolete]`.\n\nThis is the second of several PRs. The first, #4884, fixed bugs in the\nimporter and exporter. Async methods with `CancellationToken` support\ncome next, then the Client changes and wider DuckDB tests.\n\n### Backwards compatibility\n\nEvery new member is virtual and has a default implementation, so\nexisting drivers compile and behave as before:\n\n- The typed setters (`SetOptionInt64`, `SetOptionDouble`) convert the\n  value to a string and call `SetOption(string, string)`. The typed\n  getters parse the result of `GetOption(string)`. Binary options throw\n  `NotImplemented` unless the driver overrides them.\n- `GetOption` throws `NotFound` by default. On `AdbcConnection`, it\n  instead answers the standard options (autocommit, read-only, isolation\n  level, current catalog and current schema) from the existing\n  properties.\n- `AdbcDriver.Open(IReadOnlyDictionary\u003cstring, object\u003e)` used to throw.\n  It now converts values to strings and calls the string overload, then\n  applies any binary values through `SetOptionBytes`.\n- No existing method gets a new overload that changes how existing calls\n  bind. That\u0027s why typed connection options use a new name,\n  `ConnectWithTypedOptions`. A `Connect` overload would make existing\n  `Connect(null)` calls ambiguous.\n\n### New APIs\n\n- **Typed options** at all three levels:\n  - `SetOptionInt64`, `SetOptionDouble` and `SetOptionBytes`.\n  - `GetOption`, `GetOptionInt64`, `GetOptionDouble` and\n    `GetOptionBytes`.\n- **`AdbcDatabase.SetOption(string, object)`** sends each value to the\n  matching typed setter.\n- **`AdbcDatabase.ConnectWithTypedOptions`** connects with options that\n  aren\u0027t all strings.\n- **`AdbcConnection.CurrentCatalog` and `CurrentDbSchema`** properties.\n- **`AdbcException.Details`** for ADBC 1.1 error details.\n- `AdbcDriver.DriverVersion` is now documented.\n\n### C interop\n\n- **Exporter:** a managed driver exported through `CAdbcDriverExporter`\n  now provides the 1.1 driver functions:\n  - option getters and setters at every level\n  - `ErrorGetDetailCount` and `ErrorGetDetail`\n  - `ConnectionGetStatistics` and `ConnectionGetStatisticNames`\n  - `StatementExecuteSchema`\n  - `ConnectionCancel` and `StatementCancel`\n\n  Options set before `DatabaseInit` or `ConnectionInit` are stored with\n  their types, and are passed on when the object is created.\n  `OperationCanceledException` is reported as\n  `ADBC_STATUS_CANCELLED`.\n- **Importer:** an imported driver\u0027s 1.1 functions are reachable through\n  the base classes. For a 1.0 driver, the importer falls back to 1.0\n  behavior: typed setters become string options, and getters report\n  `NotFound`. `GetOption` follows the C API\u0027s buffer protocol, retrying\n  with a larger buffer when the first one is too small.\n\n## Testing\n\n- **`BaseClassDefaultsTests`:** the default implementations on the base\n  classes, using drivers that override only the 1.0 members.\n- **`ExportedDriverRoundTrip11Tests`:** a managed 1.1 driver is exported\n  and imported again, then exercised through the base classes. This\n  covers:\n  - typed options at each level, before and after init\n  - error details, vendor codes, statistics, partitions and updates\n  - cancellation of a running statement\n  - the importer\u0027s fallbacks for a 1.0 driver\n- **AoT interop tests:** the native AoT fixture driver now implements\n  1.1 typed options and error details, and the tests use them through\n  the C API.\n- **Results:**\n  - The full solution builds without warnings, and\n    `dotnet format --verify-no-changes` is clean.\n  - The core test project passes on net10.0, net8.0 and net472.\n  - The AoT interop tests pass against a fixture published from this\n    branch.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01WWRrCH8uXJhAvRpEHWeadU\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "7edf7a2a0b015b48e37abf0eeedf1e99e570086c",
      "tree": "c698ba64aceb8dd0c4a729c9d529133a71a572af",
      "parents": [
        "85ebdff6914b54fd8f29632eb752ee4fbd6d45f8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 10:20:58 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 10:20:58 2026 +0900"
      },
      "message": "chore(go/adbc): bump golang.org/x/tools from 0.50.0 to 0.51.0 (#4890)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "85ebdff6914b54fd8f29632eb752ee4fbd6d45f8",
      "tree": "9508108a7be2b0a658a2820b35105bf04568798a",
      "parents": [
        "db1d0aa8d932d3942fd8a7fe577038402e1a2560"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 08:55:01 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 08:55:01 2026 +0900"
      },
      "message": "chore(rust): bump rust-toolchain to nightly-2026-10-14 (#4887)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "db1d0aa8d932d3942fd8a7fe577038402e1a2560",
      "tree": "c87a5ef9f16634939804c904c644a2ba237392ea",
      "parents": [
        "2acedf0ea29526218b5f85632d4f501de629fce7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 08:54:06 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 08:54:06 2026 +0900"
      },
      "message": "chore: bump the actions group (#4892)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2acedf0ea29526218b5f85632d4f501de629fce7",
      "tree": "49b65db93e362fa765ff351e6ba4c1541ee8eea3",
      "parents": [
        "888d11e27b0e818dc534959c4f261fd3044b3212"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 08:40:10 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 08:40:10 2026 +0900"
      },
      "message": "chore(go/adbc): bump the opentelemetry group (#4889)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "888d11e27b0e818dc534959c4f261fd3044b3212",
      "tree": "886f61b3365f21d3ccf041c508506ae02ff38799",
      "parents": [
        "a485f3ad09aa0309f43aabcea80b7622ce74a4ab"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 15 08:34:07 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 08:34:07 2026 +0900"
      },
      "message": "chore(javascript): bump the napi group across (#4888)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a485f3ad09aa0309f43aabcea80b7622ce74a4ab",
      "tree": "42f1e5907dac6e457ca1b29b41f59a7cb3c7f14f",
      "parents": [
        "fe88b72a9917763a1ff2eb694341b5b6da8aa6f4"
      ],
      "author": {
        "name": "Ian Cook",
        "email": "ianmcook@gmail.com",
        "time": "Wed Oct 14 13:41:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 13:41:48 2026 -0400"
      },
      "message": "docs: update OG image to use new ADBC logo lockup (#4886)"
    },
    {
      "commit": "fe88b72a9917763a1ff2eb694341b5b6da8aa6f4",
      "tree": "b6e75af393bbf78c1efef71ef95e6581549e52f7",
      "parents": [
        "f6a13226c883d654d24fcb7535e7b9c5b27ed1c1"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 13 21:24:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 13:24:29 2026 +0900"
      },
      "message": "build: distribute wheels for Python 3.15/3.15t (#4879)\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "f6a13226c883d654d24fcb7535e7b9c5b27ed1c1",
      "tree": "4ef6e9a330ef03491900c6d3476172b64b30da26",
      "parents": [
        "71abbfc2c4b6be2cbc769bc262cfaacbbf68fa73"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 13 16:53:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 08:53:33 2026 +0900"
      },
      "message": "ci: work around missing OTel dependency (#4882)\n\nIt _appears_ the 26.0.0 packages don\u0027t depend on OpenTelemetry, leading\nto a crash:\n\n```\n  (null)-WARNING **: Failed to load shared library \u0027libadbc-arrow-glib.so.1\u0027 referenced by the typelib: libopentelemetry_exporter_otlp_http_log.so: cannot open shared object file: No such file or directory\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:251:in `load_object_info\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:73:in `load_info\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:47:in `block (2 levels) in load\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/repository.rb:34:in `block (2 levels) in each\u0027\n  \tfrom \u003cinternal:numeric\u003e:237:in `times\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/repository.rb:33:in `block in each\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/repository.rb:32:in `each\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/repository.rb:32:in `each\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:46:in `block in load\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:646:in `prepare_class\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection/loader.rb:41:in `load\u0027\n  \tfrom /var/lib/gems/3.3.0/gems/gobject-introspection-4.3.9/lib/gobject-introspection.rb:44:in `load\u0027\n  \tfrom -e:1:in `\u003cmain\u003e\u0027\n  /host/dev/release/verify-apt.sh: line 202:  6853 Trace/breakpoint trap   (core dumped) ruby -r gi -e \"p GI.load(\u0027ADBCArrow\u0027)\"\n```\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "71abbfc2c4b6be2cbc769bc262cfaacbbf68fa73",
      "tree": "894a396ae89de21e4b9c715925614594837039c5",
      "parents": [
        "2f0d732d2c9c800cd1cf125a72eea9644dd77973"
      ],
      "author": {
        "name": "Ian Cook",
        "email": "ianmcook@gmail.com",
        "time": "Tue Oct 13 12:20:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 12:20:00 2026 -0400"
      },
      "message": "docs: use new logo and add visual identity page (#4870)"
    },
    {
      "commit": "2f0d732d2c9c800cd1cf125a72eea9644dd77973",
      "tree": "269a691a639224e3bf7a30ee03660e7a6cdd790a",
      "parents": [
        "2fb366fcf921ce9b67fae5ddf6b4d27e0bf49341"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Tue Oct 13 08:27:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 08:27:06 2026 -0700"
      },
      "message": "fix(csharp): fix bugs in the C driver importer and exporter (#4884)\n\n## What\u0027s changed\n\nThis fixes bugs in the C# driver importer (`CAdbcDriverImporter`) and\nexporter (`CAdbcDriverExporter`), plus one in `AdbcOptions`. All of them\nare in the code on `main` today. I found them while working on fuller\nADBC 1.1 support in C#, which will follow in a separate PR. None of\nthese fixes depends on that work, and none is a regression from it.\n\nEach fix is a separate commit with its own explanation, so the PR can be\nreviewed one commit at a time.\n\n### Crashes and memory safety\n\n- **`ExecutePartitioned` could crash the process.**\n  - The importer allocated the partitions struct without zeroing it.\n    It then called its `release` callback whether or not the driver\n    had written the struct. Any failure, including a driver that\n    doesn\u0027t implement partitions, called a garbage function pointer.\n  - On netstandard2.0, `release !\u003d null` on an `IntPtr` is always true,\n    so the callback was also called when it was zero.\n  - In the exporter, the result schema was never exported. The\n    partitions struct was also published before its buffers were\n    allocated.\n- **Error messages were freed with the wrong allocator.**\n  - On .NET 5+, the exporter allocated error messages with CoTaskMem\n    but freed them with `FreeHGlobal`.\n  - On netstandard2.0, `MarshalExtensions.StringToCoTaskMemUTF8`\n    allocated with HGlobal, but the importer frees those strings with\n    `FreeCoTaskMem`.\n- **The exporter\u0027s error reporting could crash the caller or itself.**\n  - It dereferenced a NULL `error`, though the argument is optional.\n  - It freed an error left in the caller\u0027s struct as if this exporter\n    had created it, instead of calling that error\u0027s own `release`.\n  - It could throw out of an unmanaged entry point, for example from a\n    driver\u0027s `SqlState` override, which ends the process.\n\n### Incorrect behavior\n\n- **Updates failed through the exporter.** A NULL stream passed to\n  `StatementExecuteQuery` means the caller doesn\u0027t want a result set.\n  The exporter ignored that and exported into the NULL pointer. The\n  importer\u0027s own `ExecuteUpdate` passes NULL, so exporting a managed\n  driver and importing it again broke updates.\n- **Vendor error codes were lost in both directions.** The exporter\n  always reported 0. The importer read the vendor code only when the\n  error also had a SQLSTATE.\n- **Missing functions failed on .NET Framework.** When a driver leaves\n  `ConnectionCommit`, `ConnectionRollback`, `ConnectionCancel` or\n  `StatementCancel` empty, the importer fills in a function that\n  reports `NotImplemented`. On .NET Framework, calling it threw\n  `InvalidCastException` instead. The fill-ins were created with a\n  different delegate type from the one they\u0027re called through, and\n  .NET Framework returns the original delegate for a function pointer\n  created from a managed delegate.\n- **A failed cleanup hid the real error.** When creating a database,\n  connection or statement failed and the importer\u0027s cleanup release\n  also failed, the caller saw the release error.\n- **Managed streams leaked if exporting them failed.**\n- **Two ingest modes were unrecognized.**\n  `AdbcOptions.GetIngestMode(string)` didn\u0027t recognize the ADBC 1.1\n  ingest modes `replace` and `create_append`.\n\n### Docs\n\n- `AdbcConnection.GetInfo` now says that an empty code list requests\n  all codes. The drivers already treat it that way, and it\u0027s how a\n  NULL list from the C API arrives.\n\n## Testing\n\n- **New tests:** most fixes have a test in\n  `ExportedDriverRoundTripTests` or the new `AdbcOptionsTests`. I ran\n  these against `main` without their fixes, and each one fails:\n  - The update test fails.\n  - The vendor-code test fails.\n  - The cleanup-error test fails.\n  - The partitions test crashes the test host with an access violation.\n  - The missing-functions test fails with `InvalidCastException` on\n    net472.\n- **Tests that only run on .NET 5 and later:** two tests call the\n  exporter\u0027s function pointers directly. They cover the cleanup-error\n  fix and the error-reporting fix.\n- **No test:** the allocator fix and the stream leak. Making the\n  export fail would mean writing through a NULL output pointer.\n- **Results:**\n  - The full solution builds without warnings.\n  - The core test project passes on net10.0, net8.0 and net472.\n  - The AoT interop tests pass against a fixture published from this\n    branch.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2fb366fcf921ce9b67fae5ddf6b4d27e0bf49341",
      "tree": "db2dfb37e69507fc31ea7d1df74d3ac7c8c09366",
      "parents": [
        "d98fc62e2cd137ad59abe5563e3813913135b4b7"
      ],
      "author": {
        "name": "Curt Hagenlocher",
        "email": "curt@hagenlocher.org",
        "time": "Mon Oct 12 19:04:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 19:04:45 2026 -0700"
      },
      "message": "test(csharp): upgrade DuckDB to 1.5.6 and test ADBC 1.1 APIs (#4883)\n\n## What\u0027s changed\n\nDuckDB 1.5 adds support for ADBC 1.1. This upgrades the DuckDB used by\nthe C# tests to 1.5.6 and adds tests for the ADBC 1.1 APIs that the C#\nimporter currently exposes:\n\n- `StatementExecuteSchema`: checks the returned schema against the\nactual result schema, and that `ExecuteSchema` doesn\u0027t execute the\nstatement (`INSERT ... RETURNING` inserts no rows).\n- `ConnectionCancel` / `StatementCancel`: cancelling while idle is\nharmless, and cancelling a long-running query interrupts it.\n\n### Fetching DuckDB\n\n`DuckDB.NET.Bindings.Full` 1.5.x no longer targets `netstandard2.0`, so\na `PackageReference` fails to restore for net472. The tests (and\nBenchmarks) only use the native library from the package, so it\u0027s now\nfetched with `PackageDownload`, which skips the framework compatibility\ncheck. The version lives in a `DuckDbVersion` property in\n`Directory.Packages.props`. As a result, all target frameworks now test\nagainst the same DuckDB version.\n\n`PackageDownload` didn\u0027t restore when its version came from central\npackage management, which is why the version is a property instead.\nDependabot probably won\u0027t update it.\n\n### Notes\n\n- DuckDB reports a cancelled query as `ADBC_STATUS_INVALID_ARGUMENT`\n(\"INTERRUPT Error: Interrupted!\") rather than `ADBC_STATUS_CANCELLED`,\nso the cancel tests check the message.\n- `GetOption` and typed `SetOption` aren\u0027t yet exposed by the C#\nimporter, so they\u0027re not tested here. That will be a follow-up PR.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "d98fc62e2cd137ad59abe5563e3813913135b4b7",
      "tree": "fd8ad2d5436524066c43d8de512557d3825c9570",
      "parents": [
        "ecd98b42118c21547f509a11cc037f2faa902430"
      ],
      "author": {
        "name": "Hyukjin Kwon",
        "email": "gurwls223@gmail.com",
        "time": "Mon Oct 12 16:51:12 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 16:51:12 2026 +0900"
      },
      "message": "fix(go/adbc/pkg): treat the \"warn\" log level as warning (#4881)\n\n`case \"warn\":` had no body, so `warn` kept the error level. Fold it into\nthe `warning` case in the template, and apply the same change to the\ngenerated Flight SQL and panicdummy drivers.\n\nCloses #4880\n\nGenerated-by: Isaac \u003cno-reply@databricks.com\u003e"
    },
    {
      "commit": "ecd98b42118c21547f509a11cc037f2faa902430",
      "tree": "89be6c831c91480b540b01662ab41875d312fc67",
      "parents": [
        "8cc3971a682a31ae63a406b092e94aef2f805ccc"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sun Oct 11 20:03:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 12:03:12 2026 +0900"
      },
      "message": "fix(rust/ffi): avoid potential overlapping \u0026mut in exporter (#4875)\n\nStacked on #4871.\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "8cc3971a682a31ae63a406b092e94aef2f805ccc",
      "tree": "b0226784381521af9e9b203e23d9291a00ad8e0b",
      "parents": [
        "f088fc72823be58986dc5c0d24c21b8bd15f039d"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sun Oct 11 16:36:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 08:36:16 2026 +0900"
      },
      "message": "fix(rust/ffi): avoid undefined behavior in exported drivers (#4871)\n\n- Use \u0026 instead of \u0026mut to avoid violating borrowing rules\n- Use Mutex to ensure even misbehaved clients don\u0027t violate safety\n- Use Mutex to also provide interior mutability\n- Some minor refactoring\n\nDepends on #4861.\n\nAssisted-by: GPT-6 Astra"
    },
    {
      "commit": "f088fc72823be58986dc5c0d24c21b8bd15f039d",
      "tree": "192fe17a525a3046ea006f27427cc597c8a337bd",
      "parents": [
        "229270d5e90ee42cb3657b4f8359c3b506cd2da7"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Sun Oct 11 15:58:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 07:58:56 2026 +0900"
      },
      "message": "fix(rust/ffi)!: importing partitions is unsafe (#4876)\n\nWe can\u0027t validate that the pointers and such are valid, so we shouldn\u0027t\nmake the conversion safe - instead it must be unsafe.\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "229270d5e90ee42cb3657b4f8359c3b506cd2da7",
      "tree": "934a134894e5cdcc160dcee01bcce6a5e0312caa",
      "parents": [
        "0a4048050705a6e5de3e7aa93463dd54ff51896a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 10 07:18:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 07:18:41 2026 -0700"
      },
      "message": "chore(csharp): Bump Moq from 4.20.72 to 4.21.0 (#4868)\n\nUpdated [Moq](https://github.com/moq/moq) from 4.20.72 to 4.21.0.\n\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\n_Sourced from [Moq\u0027s releases](https://github.com/moq/moq/releases)._\n\n## 4.21.0\n\n\u003c!-- Release notes generated using configuration in .github/release.yml\nat main --\u003e\n\n## What\u0027s Changed\n### ✨ Implemented enhancements\n* Improve performance of It.Is matcher when used with an expression by\ncompiling only once by @​peterder72 in\nhttps://github.com/devlooped/moq/pull/1512\n* Updated ctor params to support nullable args by @​Asafima in\nhttps://github.com/devlooped/moq/pull/1518\n* Performance improvement for Mocking many large classes by @​crinksdr\nin https://github.com/devlooped/moq/pull/1530\n### 🐛 Fixed bugs\n* Minor enhancement to avoid null exceptions by @​ShirAvneri in\nhttps://github.com/devlooped/moq/pull/1542\n* Fix #​1648 reliably (lazy ValueTask registration + committed harness\nverification) by @​kzu in https://github.com/devlooped/moq/pull/1680\n### 🔨 Other\n* Updated IVerifies.Verifiable method documentation code example by\n@​Asafima in https://github.com/devlooped/moq/pull/1528\n* Bump dependencies by @​kzu in\nhttps://github.com/devlooped/moq/pull/1545\n* Address build warnings by @​kzu in\nhttps://github.com/devlooped/moq/pull/1546\n* Enable nullable references in Moq.csproj by @​andrewimcclement in\nhttps://github.com/devlooped/moq/pull/1535\n* Bump NuGetizer to 1.4.9 by @​kzu with @​Copilot in\nhttps://github.com/devlooped/moq/pull/1684\n\n## New Contributors\n* @​peterder72 made their first contribution in\nhttps://github.com/devlooped/moq/pull/1512\n* @​Asafima made their first contribution in\nhttps://github.com/devlooped/moq/pull/1518\n* @​crinksdr made their first contribution in\nhttps://github.com/devlooped/moq/pull/1530\n* @​ShirAvneri made their first contribution in\nhttps://github.com/devlooped/moq/pull/1542\n* @​andrewimcclement made their first contribution in\nhttps://github.com/devlooped/moq/pull/1535\n* @​kzu with @​Copilot made their first contribution in\nhttps://github.com/devlooped/moq/pull/1684\n\n**Full Changelog**:\nhttps://github.com/devlooped/moq/compare/v4.20.72...v4.21.0\n\n\u003c!-- sponsors --\u003e\n\n\u003c!-- avoid this section by leaving a nosponsors tag --\u003e\n## Sponsors\n\nThe following sponsors made this release possible: @​clarius,\n@​MFB-Technologies-Inc, @​sandrock, @​drivenet, @​Keflon, @​tbolon,\n@​rbnswartz, @​jfoshee, @​Mrxx99, @​eajhnsn1, @​Jonathan-Hickey,\n@​KenBonny, @​SimonCropp, @​agileworks-eu, @​arsdragonfly, @​vezel-dev,\n@​ChilliCream, @​4OTC, @​DominicSchell, @​adalon, @​torutek,\n@​mccaffers, @​SeikaLogiciel, @​wizardness, @​eska-gmbh, @​geodata-no.\n\nThanks 💜\n\n\u003c!-- /sponsors --\u003e\n\n\n\nCommits viewable in [compare\nview](https://github.com/moq/moq/compare/v4.20.72...v4.21.0).\n\u003c/details\u003e\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dMoq\u0026package-manager\u003dnuget\u0026previous-version\u003d4.20.72\u0026new-version\u003d4.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0a4048050705a6e5de3e7aa93463dd54ff51896a",
      "tree": "48a352dddab172208bb67558a64c1d5bf576a651",
      "parents": [
        "9cd246e5f5a68da07b0215afdf72820fd1389f71"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 08 18:57:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 10:57:10 2026 +0900"
      },
      "message": "test(rust): run miri tests (#4861)\n\nDepends on #4858.\nCloses #4857."
    },
    {
      "commit": "9cd246e5f5a68da07b0215afdf72820fd1389f71",
      "tree": "7760b7e16e8f50f532cf4b51ed3394d17a3955e7",
      "parents": [
        "a43f0fecda799a7d6aa3efbf454aa5a97630d865"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 08 17:16:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 09:16:27 2026 +0900"
      },
      "message": "fix(rust/ffi)!: require `Send` for exported types (#4874)\n\nThis matches the specification in the C header: handles aren\u0027t\nnecessarily usable concurrently, but they can be used from different\nthreads so long as access does not overlap.\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "a43f0fecda799a7d6aa3efbf454aa5a97630d865",
      "tree": "a9ae0a9c8adc5a5eb17f14a970d480e3d7526bfb",
      "parents": [
        "20b243955bbecc1edecefd28b626d5393ee85599"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 08 15:39:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 07:39:13 2026 +0900"
      },
      "message": "fix(rust/driver_manager): allow cancel to be truly concurrent (#4858)\n\nN.B. the driver exporter is not covered by this PR.\n\nCloses #4817.\n\nAssisted-by: GPT-6 Astra"
    },
    {
      "commit": "20b243955bbecc1edecefd28b626d5393ee85599",
      "tree": "46a8373b18679a630345998ca1ef4a2c6a909f58",
      "parents": [
        "ebf2aea170f109fd7ad71b5c421e9b4ae6f45c7d"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 08 13:57:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 05:57:28 2026 +0900"
      },
      "message": "fix(rust/ffi): don\u0027t assume errors have extended info (#4872)\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "ebf2aea170f109fd7ad71b5c421e9b4ae6f45c7d",
      "tree": "a352eaea3e01c1cfcbd3cc91787bf053caa034a1",
      "parents": [
        "0ea9ede6303d457a17d7c4a8a18fec91754e9392"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Thu Oct 08 13:54:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 09 05:54:14 2026 +0900"
      },
      "message": "fix(rust/ffi): clear release callback on partitions after release (#4873)\n\nAssisted-by: GPT-6.1 Sol"
    },
    {
      "commit": "0ea9ede6303d457a17d7c4a8a18fec91754e9392",
      "tree": "7fa2c56f630a4f53a8f941fb53f8cc3eeffae161",
      "parents": [
        "9841bf502326239dfe6d6a9fb4d853f3cf525e6a"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 06 20:18:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 12:18:17 2026 +0900"
      },
      "message": "test(c/driver/postgresql): use hypothesis to test decimal ingest (#4852)\n\nWe keep finding bugs in decimals; try to add another layer of\nvalidation."
    },
    {
      "commit": "9841bf502326239dfe6d6a9fb4d853f3cf525e6a",
      "tree": "09b0ea18307d2a757a4ec795c08fd7d7d253ef86",
      "parents": [
        "d0929c146b4d9125f3d8bc62337c17810886b0b0"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 06 18:43:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 18:43:30 2026 -0700"
      },
      "message": "chore(python): drop support for Python 3.10 (EOL) (#4859)\n\nWe can\u0027t add 3.15 until it is finally released and PyArrow adds wheels."
    },
    {
      "commit": "d0929c146b4d9125f3d8bc62337c17810886b0b0",
      "tree": "acb4de5923ef49098d0bf65528ccdc596d6096ee",
      "parents": [
        "d3bf535902e290132cc40484feae912e93b10f3f"
      ],
      "author": {
        "name": "David Li",
        "email": "li.davidm96@gmail.com",
        "time": "Tue Oct 06 18:08:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 10:08:56 2026 +0900"
      },
      "message": "build(c/driver/sqlite): work around macOS modifications to sqlite (#4860)\n\nTrimmed example of errors:\n\n```\nc/driver/sqlite/sqlite.cc:760:50: error: \u0027sqlite3_txn_state\u0027 is only available on macOS 12.0 or newer [-Werror,-Wunguarded-availability-new]\n/usr/include/sqlite3.h:6947:16: note: \u0027sqlite3_txn_state\u0027 has been marked as being introduced in macOS 12.0 here, but the deployment target is macOS 10.15.0\nc/driver/sqlite/sqlite.cc:760:50: note: enclose \u0027sqlite3_txn_state\u0027 in a __builtin_available check to silence this warning\nc/driver/sqlite/sqlite.cc:1168:43: error: \u0027sqlite3_total_changes64\u0027 is only available on macOS 12.3 or newer [-Werror,-Wunguarded-availability-new]\n/usr/include/sqlite3.h:2870:26: note: \u0027sqlite3_total_changes64\u0027 has been marked as being introduced in macOS 12.3 here, but the deployment target is macOS 10.15.0\n/Users/runner/work/arrow-adbc/arrow-adbc/c/driver/sqlite/sqlite.cc:1168:43: note: enclose \u0027sqlite3_total_changes64\u0027 in a __builtin_available check to silence this warning\n```"
    },
    {
      "commit": "d3bf535902e290132cc40484feae912e93b10f3f",
      "tree": "ad5f58a29b54aac12fc66e9b906716fb68947b96",
      "parents": [
        "9012106d581e97cabd4867360f611b6135a6909d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:50:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:50:48 2026 -0700"
      },
      "message": "chore(javascript): bump thiserror from 2.0.20 to 2.0.21 (#4866)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9012106d581e97cabd4867360f611b6135a6909d",
      "tree": "a1e63959c7ed257f910edb585ba85622ab92ac52",
      "parents": [
        "dd19220390f3843be21fb17d24e0ca0fe15c322e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:41:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:41:14 2026 -0700"
      },
      "message": "chore(java): bump com.diffplug.spotless:spotless-maven-plugin from 3.10.2 to 3.10.3 (#4864)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "dd19220390f3843be21fb17d24e0ca0fe15c322e",
      "tree": "22a502c6f003eee66a9b3ef9ed43d75f55fa95fc",
      "parents": [
        "a174477060ebed6ec3e8a9828088a36c5ec0635a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:35:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:35:45 2026 -0700"
      },
      "message": "chore(java): bump com.uber.nullaway:nullaway from 0.14.1 to 0.14.2 (#4863)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a174477060ebed6ec3e8a9828088a36c5ec0635a",
      "tree": "ded0475a542d95c33703b7abbeaed5bc921c54d0",
      "parents": [
        "07d7e2f504298e54d5fc6c7348e09de9fa9bf4ad"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:34:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:34:44 2026 -0700"
      },
      "message": "chore(rust): bump rust-toolchain to nightly-2026-10-06 (#4865)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "07d7e2f504298e54d5fc6c7348e09de9fa9bf4ad",
      "tree": "1232cd493423311f2d03c8b17c00ef953962d9c9",
      "parents": [
        "13abd30b16ba3ae52c1867ff3c39459a53749210"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:24:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:24:17 2026 -0700"
      },
      "message": "chore(csharp): Bump coverlet.collector from 10.0.1 to 10.1.0 (#4867)\n\nUpdated\n[coverlet.collector](https://github.com/coverlet-coverage/coverlet) from\n10.0.1 to 10.1.0.\n\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\n_Sourced from [coverlet.collector\u0027s\nreleases](https://github.com/coverlet-coverage/coverlet/releases)._\n\n## 10.1.0\n\n### Improvements\n\n- Publish Microsoft.Testing.Platform coverage messages from coverlet.MTP\n[#​2019](https://github.com/coverlet-coverage/coverlet/pull/2019)\n- Implement dynamic exclusion filters for assemblies (Coverlet.MTP)\n[#​1946](https://github.com/coverlet-coverage/coverlet/pull/1946)\n- Replace legacy .sln files with modern .slnx format\n[#​1966](https://github.com/coverlet-coverage/coverlet/pull/1966)\n- coverlet.console: add trace diagnostics and actionable warnings for\ninstrumentation/hit/empty-result failures\n[#​2005](https://github.com/coverlet-coverage/coverlet/pull/2005)\n- Relax auto-property skip logic and improve coverage for records\n[#​1941](https://github.com/coverlet-coverage/coverlet/pull/1941)\n\n### Fixed\n\n- Fix coverlet.MTP does not collect coverage on the .NET Framework\nportion of a large project\n[#​1980](https://github.com/coverlet-coverage/coverlet/pull/1980)\n[#​1967](https://github.com/coverlet-coverage/coverlet/pull/1967)\n- Fix Regression in branch coverage for lambda expressions\n[#​1938](https://github.com/coverlet-coverage/coverlet/pull/1938)\n- Fix When using \"is\" with \"or\" in pattern matching, branch coverage is\nlower than normal\n[#​1979](https://github.com/coverlet-coverage/coverlet/pull/1979)\n- Fix silent zero coverage on .NET Framework since 8.0.0\n[#​1985](https://github.com/coverlet-coverage/coverlet/pull/1985) by\n@​tobiwae\n- Fix Race condition between ProcessExit hit-file write and out-of-proc\ncoverage read causes EndOfStreamException\n[#​1987](https://github.com/coverlet-coverage/coverlet/pull/1987)\n[#​1988](https://github.com/coverlet-coverage/coverlet/pull/1988) by\n@​bkoelman\n- Fix Regression TypeInitializationException when targeting .NET\nFramework - Could not load type\n\u0027System.Collections.Concurrent.ConcurrentBag\n[#​2010](https://github.com/coverlet-coverage/coverlet/pull/2010)\n- Fix use --config-file CLI arg in coverlet.MTP\n[#​2030](https://github.com/coverlet-coverage/coverlet/pull/2030) by\nalexthornton1\n- Fix silently empty coverage for shared-framework assemblies missing\nfrom compileLibraries\n[#​2032](https://github.com/coverlet-coverage/coverlet/pull/2032) by\n@​Eljees\n\n[Diff between 10.0.1 and\n10.1.0](https://github.com/coverlet-coverage/coverlet/compare/v10.0.1...v10.1.0)\n\nCommits viewable in [compare\nview](https://github.com/coverlet-coverage/coverlet/compare/v10.0.1...v10.1.0).\n\u003c/details\u003e\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dcoverlet.collector\u0026package-manager\u003dnuget\u0026previous-version\u003d10.0.1\u0026new-version\u003d10.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "13abd30b16ba3ae52c1867ff3c39459a53749210",
      "tree": "434a102b713561bf772bc86a545f270101e6a497",
      "parents": [
        "2dd3d10d8b45d7ac212826e52d8e24e2a14770f7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 06 16:13:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 16:13:17 2026 -0700"
      },
      "message": "chore: bump the actions group with 4 updates (#4869)\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2dd3d10d8b45d7ac212826e52d8e24e2a14770f7",
      "tree": "54c4bdc96ef3e37351e43ff76b5ad9b399003cd7",
      "parents": [
        "47e1a3cbd2f1a0f2be9353473e98c4aec89f5864"
      ],
      "author": {
        "name": "Josh Ferguson",
        "email": "josh@besquared.net",
        "time": "Sun Oct 04 19:16:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 04 19:16:28 2026 -0700"
      },
      "message": "feat(c/driver/postgresql): expose numeric result type modifiers (#4798)\n\n## Summary\n\nCarry libpq PQfmod into numeric result-field metadata as\nPOSTGRESQL:typmod.\n\nCloses #4797.\n\nAssisted-by: OpenAI Codex"
    },
    {
      "commit": "47e1a3cbd2f1a0f2be9353473e98c4aec89f5864",
      "tree": "fd5679912292426bec4b419ea8756fce55a30588",
      "parents": [
        "ba5940b429507bbcb552e6ad156231078d9ab75e"
      ],
      "author": {
        "name": "Yifan Chen",
        "email": "30335308+emecii@users.noreply.github.com",
        "time": "Sun Oct 04 18:33:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 04 18:33:40 2026 -0700"
      },
      "message": "feat(c/driver_manager): polyfill numeric options for 1.0 drivers (#4774)\n\n## Summary\n\n- track the version actually accepted during driver negotiation\n- for drivers negotiated down to ADBC 1.0, implement integer and double\nsetters through the legacy string setter\n- use locale-independent numeric formatting\n\nOpenAI Codex was used to help implement and test this change.\n\nCloses #4115"
    }
  ],
  "next": "ba5940b429507bbcb552e6ad156231078d9ab75e"
}
