Feature/phase5 conformance docs release - #48
Merged
Merged
Conversation
Isolate root auto-versioning from v2 commit history so v2 feat!/refactor! commits cannot accidentally trigger a root major bump. Add a manual release-v1.yml workflow modeled on release-v2.yml with test/vet/build gates and duplicate-tag protection. Strengthen CI with a root-only consumer build job verifying the unsuffixed import path on Go 1.27. Add MIGRATION.md for v0.28.1 to v1.x and correct version-status text in README.md and v2/README.md. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…r helpers Add opt-in RFC 9457 Problem Details model and mapper to v1 response package, mapping libError.ErrorData and response.ErrorData to sanitized problem fields without exposing internal messages or causes. Extend WebHanlder with OKWithStatus/OKWithStatusAndHeaders for configurable 2xx success statuses with 204/205 body suppression. Add StatusAwareResponder optional interface without widening ResponseHandler. Extend HandlerParameters with SuccessStatus and SuccessHeaders, applied through BaseHandler success paths. Add httpsemantics package in both v1 and v2 with OAuth no-store (Cache-Control/Pragma) and RFC 6750 Bearer challenge helpers with header-injection-safe escaping. Add v2 regression tests for 201+Location, 204 no body, HEAD suppression, and mapper sanitization. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…feature/phase3-conditional-requests-link-retryafter-trace
…Context Add httpsemantics conditional request helpers (ETag parsing, If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since) with RFC 9110 precondition evaluation in precedence order. Add RFC 8288 Link header serialization with pagination link builder that preserves query params and omits unavailable relations. Add RFC 9110 Retry-After parsing (delta-seconds and HTTP-date) with clamping to prevent DoS. Add W3C Trace Context extraction/injection helpers for inbound and outbound propagation. Extend libCallApi.RemoteCallError with Headers field and populate it in StatusPreservingBuilder and handlers.callApi. Add HonorRetryAfter and MaxRetryAfterDelay to libRetry.RetryPolicy so the retry loop honors server-provided Retry-After delays (clamped) instead of fixed backoff when enabled. Mirror all helpers in v2/httpsemantics. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add idempotency package with reusable contracts for HTTP idempotency key handling: key validation (format, length, printable ASCII only), request fingerprinting (deterministic SHA-256 of method, path, body hash), Store interface for application-owned durable storage, Record lifecycle (in-progress, completed, failed), SafeHeaders to strip sensitive headers before storage, and IsSafeMethod/RequiresIdempotencyKey helpers. Add MemoryStore for testing and single-process development with race-safe concurrent reservation. Never expose raw idempotency keys in telemetry or response bodies. Application retains ownership of durable storage, transaction boundaries, and replay policy. Mirror all contracts in v2/idempotency. Race tests verify concurrent reservation produces exactly one success and N-1 conflicts. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… readiness Add conformance package with shared data-only HTTP conformance vectors for Bearer challenges, Retry-After, ETags, preconditions, idempotency keys, no-body statuses, pagination links, and security sanitization. Add conformance tests in both v1 and v2 that run against the same shared vectors, verifying cross-version behavioral parity. Update MIGRATION.md to document W3C Trace Context helpers and cross-version conformance package. Run go mod tidy to reconcile v2 dependencies (otelhttp, otel/sdk, sqlite test driver promoted from indirect to direct). All tests pass with race detection in both modules; go vet clean; go build clean; go mod tidy produces no unexpected changes. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.