Skip to content

DX | 20-07-2026 | Release#209

Merged
naman-contentstack merged 21 commits into
mainfrom
development
Jul 20, 2026
Merged

DX | 20-07-2026 | Release#209
naman-contentstack merged 21 commits into
mainfrom
development

Conversation

@naman-contentstack

Copy link
Copy Markdown
Contributor

No description provided.

harshitha-cstk and others added 21 commits June 19, 2026 19:17
chore: back-merge main into development
 - **New**
   - **Branch override for Entry Variants**: `Entry.Variant(uid?, branchUid?)` accepts an optional `branchUid` so a single variant call (`Find`, `Create`, `Update`, `Fetch`, `Delete`) can target a branch other than the `Stack`'s configured one, by overriding the `branch` request header. Passing `null`/whitespace falls back to the Stack's own branch.
   - **Publish/Unpublish for Entry Variants**: `EntryVariant.Publish`/`PublishAsync` and `EntryVariant.Unpublish`/`UnpublishAsync`, matching the same `PublishUnpublishDetails` contract as `Entry.Publish`/`Unpublish`, and respecting the same branch override.
chore: back-merge main into development
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…n branch-override assertions"

This reverts commit a75c310.
…iability

- Remove version duplication in AddVariantToDetails: auto-created PublishVariant
  now carries only the variant Uid, keeping entry version at the top-level only
- Snapshot service.Headers into a new Dictionary in MockHttpHandler (both sync
  and async) to prevent later mutations from corrupting header assertions
- Tighten always-true assertions in Test084/Test085 integration tests to assert
  response.IsSuccessStatusCode instead of the tautological success-or-error check
- Update Should_Publish_EntryVariant unit test to match new variant behavior

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add WaitBeforeRetryAsync to RetryPolicy base class so the async retry
  loop can await the delay instead of blocking a thread pool thread
- Override WaitBeforeRetryAsync in DefaultRetryPolicy with a proper async
  implementation; sync WaitBeforeRetry now delegates to it via GetResult
- RetryHandler.InvokeAsync now awaits WaitBeforeRetryAsync instead of
  calling the blocking WaitBeforeRetry
- Replace DateTime.UtcNow with Stopwatch in InvokeAsync_Applies_NetworkRetryDelay
  and InvokeAsync_Applies_HttpRetryDelay: Stopwatch uses QueryPerformanceCounter
  and is not subject to the 15.6ms Windows system clock resolution that caused
  the 50ms delay assertion to sporadically fail in CI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace DateTime.UtcNow with Stopwatch in all three WaitBeforeRetry timing
tests. DateTime.UtcNow has ~15ms resolution on Windows CI runners, making
tight delay assertions (>= 200ms, <= 300ms) intermittently fail. Stopwatch
uses QueryPerformanceCounter and is not subject to clock tick granularity.
Also remove upper-bound assertions — the important correctness check is that
the delay was applied (lower bound), not how long the OS scheduler took.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Catch 409/422 from Branch.Create separately so a leftover branch no
longer routes into the generic catch that calls Assert.Inconclusive.
The catch-all now only fires for genuine feature-unavailable scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Updated the release date for version 1.1.0 in the changelog.
feat: Added branch support in entry variants
@naman-contentstack
naman-contentstack requested a review from a team as a code owner July 19, 2026 08:09
@github-actions

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@naman-contentstack
naman-contentstack merged commit 4c0d902 into main Jul 20, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants