Skip to content

chore(release): prepare 3.5.0 - #134

Open
lelia wants to merge 2 commits into
mainfrom
codex/release-3.5.0
Open

lelia wants to merge 2 commits into
mainfrom
codex/release-3.5.0

Conversation

@lelia

@lelia lelia commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Prepare Socket Basics 3.5.0: bump the Socket Python CLI to 2.11.13, set the release version, and write the changelog. #118 and #125 are merged, and this branch is rebuilt on main.

Version choice

3.5.0, not a patch. Both Tier 1 changes can break an existing setup: #125 changes how socket_additional_params is parsed, and #118's Socket CLI bump changes the network access Tier 1 needs.

Changes

  • Socket Python CLI 2.11.11 -> 2.11.13 in the heavy and app-tests images. 2.11.12 bumps the pinned Coana CLI to 15.14.2. 2.11.13 rejects an owner/repo value for --repo up front (the API already rejected it, so no working pipeline breaks) and deprecates --pending-head. It still pins socketdev==3.6.2. The [Unreleased] bundled-tools and socketdev entries now say 2.11.13.
  • scripts/prep_release.py --version 3.5.0 --date 2026-11-06 bumps the package versions, the action image tag, the lockfile's project entry and the current-release docs.
  • The 3.5.0 changelog section opens with the reason for a minor release. fix(scanner): preserve option values #125's entry is condensed into two upgrade notes and a fix. chore(deps): refresh bundled tool pins and make them Dependabot-readable #118's entries are unchanged.

Validation

  • 508 tests pass, 1 skipped.
  • check_release_docs.py --check in sync for 3.5.0; uv lock --check clean.

Note

Low Risk
Release housekeeping: version strings, changelog, and image pin updates; behavior changes are documented for adopters but not implemented in this diff.

Overview
Socket Basics 3.5.0 is prepared as a minor release: pyproject.toml, socket_basics package metadata, uv.lock, the GitHub Action (action.yml → ghcr.io/socketdev/socket-basics:3.5.0), and repo docs/examples now all point at 3.5.0 instead of 3.4.1.

Changelog adds a dated [3.5.0] - 2026-11-06 section explaining why this is minor (Tier 1 socket_additional_params parsing and network/egress expectations from #125/#118 can break existing setups). Upgrade notes call out api.socket.dev and storage.googleapis.com, comma-vs-= for option values, and repeating --exclude-paths. The Fixed entry describes preserving commas/quotes in socket_additional_params; bundled-tool lines now show Socket Python CLI 2.11.13 (and align socketdev pinning text).

Heavy and app-tests Dockerfiles bump SOCKET_PYTHON_CLI_VERSION from 2.11.11 to 2.11.13. README, GitHub Action guide, local Docker, pre-commit, parameters snippet, and PR-comment guide examples are updated to @v3.5.0 / ghcr.io/socketdev/socket-basics:3.5.0 (and heavy variant) for consistent pinning guidance.

Reviewed by Cursor Bugbot for commit d36afc0. Configure here.

@lelia
lelia temporarily deployed to socket-firewall November 3, 2026 23:24 — with GitHub Actions Inactive
@lelia
lelia temporarily deployed to socket-firewall November 3, 2026 23:30 — with GitHub Actions Inactive
@lelia
lelia temporarily deployed to socket-firewall November 3, 2026 23:30 — with GitHub Actions Inactive
lelia added a commit that referenced this pull request Nov 4, 2026
Moves every bundled tool to its latest release: OpenGrep v1.33.1,
TruffleHog 3.99.8, Socket npm CLI 1.13.1, Socket Python CLI 2.11.11
(previously proposed in #134), uv 0.13.7, and in the app-tests image
gosec v2.30.0 and Go 1.27.3. Trivy is already current on main.

OpenGrep moves seven minors, so the Java rule set was re-measured on
OWASP BenchmarkJava at the pinned corpus commit. 1.30.0 and 1.33.1
produce the same findings, so docs/java-sast-benchmark.md records
1.33.1 without new numbers.
@lelia
lelia temporarily deployed to socket-firewall November 4, 2026 16:39 — with GitHub Actions Inactive
@lelia
lelia temporarily deployed to socket-firewall November 4, 2026 16:40 — with GitHub Actions Inactive
lelia added a commit that referenced this pull request Nov 4, 2026
socketsecurity 2.11.11 pins socketdev==3.6.2 exactly. With the CLI bump
here and the SDK bump left to the release PR, the heavy image would run
3.6.2 in its system interpreter and 3.6.1 in the locked venv. Lock 3.6.2
and raise the source-install floor to match. Moved from #134.
lelia added a commit that referenced this pull request Nov 4, 2026
Moves every bundled tool to its latest release: OpenGrep v1.33.1,
TruffleHog 3.99.8, Socket npm CLI 1.13.1, Socket Python CLI 2.11.11
(previously proposed in #134), uv 0.13.7, and in the app-tests image
gosec v2.30.0 and Go 1.27.3. Trivy is already current on main.

OpenGrep moves seven minors, so the Java rule set was re-measured on
OWASP BenchmarkJava at the pinned corpus commit. 1.30.0 and 1.33.1
produce the same findings, so docs/java-sast-benchmark.md records
1.33.1 without new numbers.
lelia added a commit that referenced this pull request Nov 4, 2026
socketsecurity 2.11.11 pins socketdev==3.6.2 exactly. With the CLI bump
here and the SDK bump left to the release PR, the heavy image would run
3.6.2 in its system interpreter and 3.6.1 in the locked venv. Lock 3.6.2
and raise the source-install floor to match. Moved from #134.
@lelia
lelia force-pushed the codex/release-3.5.0 branch from a500540 to 0ff64fa Compare November 4, 2026 21:12
@lelia
lelia temporarily deployed to socket-firewall November 4, 2026 21:12 — with GitHub Actions Inactive
@lelia
lelia temporarily deployed to socket-firewall November 4, 2026 21:12 — with GitHub Actions Inactive
lelia added a commit that referenced this pull request Nov 6, 2026
…ble (#118)

* chore(deps): refresh bundled scanner and CLI pins

Moves every bundled tool to its latest release: OpenGrep v1.33.1,
TruffleHog 3.99.8, Socket npm CLI 1.13.1, Socket Python CLI 2.11.11
(previously proposed in #134), uv 0.13.7, and in the app-tests image
gosec v2.30.0 and Go 1.27.3. Trivy is already current on main.

OpenGrep moves seven minors, so the Java rule set was re-measured on
OWASP BenchmarkJava at the pinned corpus commit. 1.30.0 and 1.33.1
produce the same findings, so docs/java-sast-benchmark.md records
1.33.1 without new numbers.

* fix(ci): pin Docker images where Dependabot can actually read them

All three Dockerfiles pinned their base and tool images as
`FROM image:${VERSION}` against an ARG, and the comments claimed Dependabot
tracked them through those FROM lines. It never did. Its Dockerfile parser is a
regex over FROM lines whose image and tag groups both require literal
characters, and it performs no ARG substitution, so every interpolated line
matched with no version and was skipped with no error at all.

The evidence: no Docker-ecosystem pull request has ever been opened against
this repo — all 33 Dependabot PRs are `python:uv` or `github-actions` — and
`git log -L` on the ARG pins shows they have only ever moved in hand-written
PRs. That is how uv came to sit 16 patch releases behind.

Images are now pinned as literal tags on their FROM lines, which is the only
form the parser reads. `node` and `uv` join the app-tests allow list, since an
`allow:` list silently drops images it does not name, and `securego/gosec`
leaves it: gosec is installed by a shell script and has no FROM line to match.

tests/test_dockerfile_pins.py transcribes the upstream regexes and asserts
every trackable FROM line parses to a version, that the allow lists cover every
image pinned, and that the one duplicated pin — the trufflehog label ARG, which
exists because a LABEL cannot read a FROM tag back — equals its FROM tag.

Two deliberate trade-offs: `--build-arg TRUFFLEHOG_VERSION=` no longer has any
effect, and TRIVY_IMAGE stays interpolated on purpose, because Socket's Trivy
build is digest-pinned and must not move independently.

Verified by building the heavy image with the documented public-Trivy
override: opengrep 1.33.1, trufflehog 3.99.8, socket 1.13.1, socketcli
2.11.11, uv 0.13.7, and the labels carry the same versions.

* docs: document Socket Tier 1's network requirements

Socket npm CLI 1.9.0 and later fetch the Coana reachability engine from
Socket instead of npm: a signed URL from api.socket.dev, served from
storage.googleapis.com, with no npm fallback. Restricted networks that
allowed only an npm registry or mirror now fail Tier 1. The heavy
image's Python CLI made the same change in 2.11.0, which shipped
undocumented in 3.4.1.

docs/parameters.md gains a "Network access for Tier 1" section covering
both hosts, the engine cache, the retired SOCKET_CLI_COANA_LAUNCHER and
the --reach-version limit. The action, Docker, local install and README
docs point to it where Tier 1 comes up, and the changelog carries it as
an upgrade note.

* chore(deps): bump socketdev to 3.6.2 alongside the Python CLI

socketsecurity 2.11.11 pins socketdev==3.6.2 exactly. With the CLI bump
here and the SDK bump left to the release PR, the heavy image would run
3.6.2 in its system interpreter and 3.6.1 in the locked venv. Lock 3.6.2
and raise the source-install floor to match. Moved from #134.

* docs: correct Tier 1 network requirements from a live run

A Tier 1 scan behind a DNS allowlist showed three gaps in the earlier
docs:

- The engine needs the scanned ecosystem's package registry to install
  dependencies. Without it Tier 1 still reports success, but every
  vulnerability comes back as INSTALL ERROR, unless the workspace
  already has its dependencies installed.
- The Socket CLI ignores HTTPS_PROXY and SOCKET_CLI_API_PROXY for these
  requests (1.1.165 and 1.13.1 alike), so the hosts must be allowed at
  the network level.
- A Tier 1 failure does not change the scan's exit code.

The api.socket.dev and storage.googleapis.com requirements, the
ENOTFOUND error when storage is blocked, and the cache directory skipping
the download on a warm run were all confirmed.

* docs: give the Tier 1 proxy workaround and cover the Python CLI

Live runs of both CLIs behind a logging proxy and a DNS allowlist:

- The Socket npm CLI does not apply HTTPS_PROXY or SOCKET_CLI_API_PROXY
  to its own requests and fails to resolve api.socket.dev. Setting
  NODE_USE_ENV_PROXY=1 next to HTTPS_PROXY routes them through the proxy
  and a full Tier 1 scan completes.
- The Python CLI (socketcli 2.11.11, heavy image) honors HTTPS_PROXY on
  its own, uses the same three hosts, degrades to INSTALL ERROR without
  the package registry, and exits 3 when storage.googleapis.com is
  blocked.

Also corrects the Python CLI version: 2.11.0 was never published, so
2.11.1 is the first release that fetches the engine from Socket.

* fix(docker): route Socket Tier 1 through HTTPS_PROXY

The Socket npm CLI does not apply HTTPS_PROXY to its own requests, so
behind a proxy Tier 1 fails with `getaddrinfo EAI_AGAIN api.socket.dev`.
All three images now set NODE_USE_ENV_PROXY=1, which makes Node apply
HTTPS_PROXY, HTTP_PROXY and NO_PROXY and does nothing when none is set.

Verified with the standard image on a network whose only egress is a
logging proxy: with only HTTPS_PROXY set, Tier 1 completes with full
results (1 reachable, 4 unreachable) and every request goes through the
proxy. Without a proxy, results are unchanged.

The docs drop the per-run NODE_USE_ENV_PROXY instruction for the images
and keep it for native installs.

* chore(deps): bump Socket npm CLI to 1.14.0

1.14.0 carries reachability fixes for --dynamic-sbom-inference builds and
the same Coana CLI (15.14.1) and Node requirement as 1.13.1.

Verified with the standard image: a Tier 1 scan returns full results
(1 reachable, 4 unreachable) directly and on a network whose only egress
is an HTTPS_PROXY.
lelia added 2 commits November 6, 2026 17:38
2.11.12 bumps the pinned Coana CLI to 15.14.2. 2.11.13 rejects an
owner/repo value for --repo up front (the API already rejected it) and
deprecates --pending-head. It still pins socketdev==3.6.2.
Bump the release to 3.5.0 with scripts/prep_release.py and stamp
[Unreleased] as the 3.5.0 changelog. The section opens with why this is
a minor release and condenses the #125 entry into upgrade notes and a
fix.
@lelia
lelia force-pushed the codex/release-3.5.0 branch from 0ff64fa to d36afc0 Compare November 6, 2026 23:40
@lelia
lelia deployed to socket-firewall November 6, 2026 23:40 — with GitHub Actions Active
@lelia
lelia deployed to socket-firewall November 6, 2026 23:40 — with GitHub Actions Active
@lelia
lelia marked this pull request as ready for review November 6, 2026 23:42
@lelia
lelia requested a review from a team as a code owner November 6, 2026 23:42
@lelia
lelia deployed to socket-firewall November 6, 2026 23:42 — with GitHub Actions Active

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue. You can view the agent here.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit d36afc0. Configure here.

Comment thread Dockerfile.heavy Resolved

This branch was successfully deployed

1 active deployment
socket-firewall — d36afc01 Deployed Nov 6, 2026 by lelia via python-sfw-smoke-enterprise #200
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.

1 participant