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: SocketDev/socket-python-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.5.9
Choose a base ref
...
head repository: SocketDev/socket-python-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.6.0
Choose a head ref
  • 3 commits
  • 16 files changed
  • 2 contributors

Commits on Aug 5, 2026

  1. Make package and Docker previews opt-in (#287)

    * Make package previews opt-in
    
    * Fix Dockerfile smoke build mode
    
    * Document contributing and preview workflows
    
    * Harden opt-in preview publishing
    lelia authored Aug 5, 2026
    Configuration menu
    Copy the full SHA
    142449b View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2026

  1. Harden PyPI install verification against stale cache (#290)

    * Harden release verify step against PyPI index propagation delays
    
    The verify loop assumed a new release appears in PyPI's simple index
    within its 10-minute budget. Both socketsecurity 2.5.9 and socketdev
    3.4.2 (2026-08-05) took longer than that: the upload succeeded and the
    JSON API showed the release immediately, but the CDN-cached simple
    index kept serving a stale version list past the loop's last attempt,
    failing the release and skipping the Docker publish.
    
    Extend the retry window to 30 minutes, add --no-cache-dir so each
    attempt refetches the index rather than revalidating pip's locally
    cached stale copy, and log when the JSON API already has the version
    so index staleness is distinguishable from a failed publish.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Align release verify step with socket-sdk-python hardening
    
    Use python -m pip with an explicit production Simple-index URL, quote
    workflow outputs, and skip the sleep after the final attempt, matching
    the socket-sdk-python release workflow so the verify step is identical
    in both repos.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Trim release-specific details from verify step comment
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    ---------
    
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
    lelia and claude authored Aug 6, 2026
    Configuration menu
    Copy the full SHA
    0b577a9 View commit details
    Browse the repository at this point in the history
  2. Pin all Python dependencies (#289)

    * Pin all Python dependencies
    
    Pin every runtime dependency in pyproject.toml to an exact version,
    replace the bs4 shim with a direct beautifulsoup4 dependency, pin the
    socketdev SDK to 3.4.2, and install Docker image dependencies from the
    committed uv.lock with pip hash verification so image builds no longer
    resolve loose versions from PyPI at build time. Also pins the hatchling
    build backend and the uv binary used in the Dockerfile.
    
    Refs CE-359.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Keep locked dep install on prod PyPI; run pip check before SDK override
    
    Pass explicit production index flags on the hash-locked dependency
    install so the PIP_INDEX_URL/PIP_EXTRA_INDEX_URL build args (pointed at
    TestPyPI by the preview build scripts) don't leak in via pip's env
    vars, and move pip check ahead of the SDK_VERSION override so a preview
    SDK that deviates from the exact socketdev pin doesn't abort the build.
    
    Addresses PR#289 review findings.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Fail the Docker build when pip check fails
    
    Docker's shell-form RUN only propagates the last command's exit status,
    so once pip check moved ahead of the SDK_VERSION block its failure was
    silently discarded whenever SDK_VERSION was empty or the override
    install succeeded. Gate it explicitly with || exit 1.
    
    Addresses PR#289 review finding.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Drop ticket reference from changelog entry
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Bump version to 2.6.0
    
    Switching to fully pinned dependencies warrants a minor bump rather
    than a patch.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * Pin socketdev to 3.5.0
    
    Ingest the SDK release that bounds its own runtime dependency ranges,
    so the pinned closure is hygienic end to end.
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    * ci(e2e): retry reachability on empty results, upload diagnostics on failure
    
    The e2e-reachability job intermittently fails with 'no components with
    alerts in .socket.facts.json': the tier-1 reachability backend can
    return empty results while the CLI reports success (ENG-5093), and the
    same flake has hit unrelated PRs.
    
    - Add a retry-probe hook to the e2e matrix: entries that define it get
      up to 3 scan attempts, retrying only when the probe says the output
      looks incomplete. Persistent failures still fail via the validate
      step. Each retry emits a warning annotation and a step-summary line
      so flake frequency stays visible.
    - Add tests/e2e/reach-facts-probe.sh: exits 0 when the facts file has
      alerted components, non-zero (retry) when empty or missing.
    - Upload /tmp/e2e-output.log, SARIF/GitLab outputs, and facts files as
      artifacts when any e2e job fails, so flakes are diagnosable without
      a re-run.
    
    Also bump version to 2.6.2 (2.6.0 and 2.6.1 are being released ahead
    of this PR).
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    
    * ci(e2e): classify known empty reachability backend result
    
    * Drop ticket references from e2e hardening and note it in the changelog
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    
    ---------
    
    Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
    Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
    lelia and claude authored Aug 6, 2026
    Configuration menu
    Copy the full SHA
    72bf0c2 View commit details
    Browse the repository at this point in the history
Loading