Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NpgsqlRest/NpgsqlRest
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.17.0
Choose a base ref
...
head repository: NpgsqlRest/NpgsqlRest
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.18.0
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 5 commits
  • 22 files changed
  • 1 contributor

Commits on Jun 13, 2026

  1. fix(docker): JIT image — copy NpgsqlRest.Common shared source; CI: st…

    …op publishing on PRs
    
    The JIT Docker build (docker/Dockerfile.jit) compiles from source inside the
    container, and NpgsqlRest.csproj now compiles + global-uses the shared source
    in NpgsqlRest.Common/ (<Compile Include="..\NpgsqlRest.Common\*.cs"/>). That
    folder was never copied into the build context, so the publish failed with
    CS0234 'NpgsqlRest.Common'. Added the COPY; validated by building the image
    locally. (The other Docker variants copy a prebuilt binary, so they were fine.)
    
    CI: removed the pull_request trigger so the publish/release pipeline no longer
    runs on every PR (dependabot PRs were flooding Actions with failing publish runs
    — PRs can't publish anyway, no secrets).
    
    TEMP (this commit only): build-test-publish is if:false and build-docker-jit is
    detached from create-release, so this push runs ONLY build-docker-jit to push
    the missing v3.17.0-jit / latest-jit image. To be reverted once green.
    vbilopav committed Jun 13, 2026
    Configuration menu
    Copy the full SHA
    53ca097 View commit details
    Browse the repository at this point in the history
  2. docs(changelog): mark v3.17.0 released (2026-06-13); CI: restore full…

    … release workflow
    
    Re-enables the full release chain (build-test-publish no longer if:false;
    build-docker-jit needs create-release again) now that the v3.17.0-jit image is
    published. The pull_request trigger stays removed, so the publish/release
    pipeline runs only on push to master + manual dispatch (no PR/dependabot noise).
    vbilopav committed Jun 13, 2026
    Configuration menu
    Copy the full SHA
    1f6e407 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2026

  1. fix(http-types): fire one outbound call per distinct HTTP type (v3.17.1)

    A DB-function composite parameter is expanded into one parameter per
    field, each carrying the same TypeDescriptor.CustomType. The per-request
    list of HTTP types therefore held the type name once per field, and
    InvokeAllAsync fired InvokeAsync once per entry — making N identical
    outbound calls (N = field count) while the fill loop resolved handlers
    by distinct type name. SQL-file endpoints kept the type as a single
    composite parameter and were unaffected.
    
    Guard the firing loop to request each distinct HTTP type once, reusing
    the dictionary the fill loop already keys on. Preserves the established
    one-call-per-distinct-type contract.
    
    Adds two regression tests that count actual outbound calls via a
    WireMock callback: a 6-field type fires exactly 1 call (was 6), and two
    distinct types fire 1 call each. Verified failing pre-fix (found 6).
    
    See changelog/v3.17.1.md.
    vbilopav committed Jun 23, 2026
    Configuration menu
    Copy the full SHA
    bf78434 View commit details
    Browse the repository at this point in the history
  2. feat(http-types): response caching via @cache; parse directives after…

    … headers (v3.18.0)
    
    Add opt-in HTTP Custom Type response caching with a @cache <interval>
    type-comment directive (alongside @timeout/@retry_delay):
    
    - GET-only (warn + ignore on non-GET); success-only storage so a
      transient upstream failure is never pinned for the TTL.
    - New HttpResponseCache: in-memory store with Lazy<Task> stampede
      coalescing (one outbound call per key), max-entries cap, prune timer.
    - Cache key = method + resolved URL + content-type + headers + body.
    - HttpClientOptions.CacheEnabled (global kill switch), MaxCacheEntries,
      CachePruneIntervalSeconds; full config round-trip wired (Builder,
      appsettings.json, ConfigTemplate, ConfigDefaults, ConfigSchemaGenerator).
    
    Also fix: @timeout/@retry_delay/@cache are now parsed both before the
    request line AND after the headers. Previously only the leading position
    was recognized, so a directive after the headers (as the docs showed)
    was silently ignored. Real headers (e.g. Cache-Control) are unaffected.
    
    Folds in the v3.17.1 duplicate-outbound-call fix: version.txt and
    npm/package.json bumped to 3.18.0, changelog renamed v3.17.1 -> v3.18.0
    covering both the feature and the fix.
    
    Tests: parse-level @cache forms + both-placement directive tests;
    integration tests for cache hit, 6-field dedup+cache, error-not-cached,
    POST-ignored, TTL expiry. Full suite green (2284).
    vbilopav committed Jun 23, 2026
    Configuration menu
    Copy the full SHA
    9f67d87 View commit details
    Browse the repository at this point in the history
  3. upgrade references

    vbilopav committed Jun 23, 2026
    Configuration menu
    Copy the full SHA
    e036f3d View commit details
    Browse the repository at this point in the history
Loading