fix(release): keep documentation versions in sync - #106
Merged
Conversation
Eric Hibbs (flowstate)
approved these changes
Aug 12, 2026
lelia
added a commit
that referenced
this pull request
Sep 2, 2026
* docs(changelog): draft 3.1.0 entry for the bundled release Covers #97, #98, #104, #105 and #106. Internal-only changes (#104, #106) are collapsed into a short section; customer-facing changes keep the detail needed to plan an upgrade, including the behavioral change where an unresolvable changed_files scope now fails instead of scanning. * chore(deps): refresh Socket-owned tool pins Socket npm CLI 1.1.154 -> 1.1.165 across all three images, matching the current npm release. Socket Python CLI 2.6.3 -> 2.7.0 in the heavy and app-tests images. 2.7.0 is NOT published to PyPI yet (latest is 2.6.11), so this is scaffolding: the heavy and app-tests image builds and core-tool-watch both fail until it lands. Keep this commit separate so it can be dropped or held if the CLI release slips. The socketdev Python SDK is already current at 3.5.0, so no change. * chore(release): 3.1.0 Version metadata, uv.lock, CHANGELOG date stamp, and 74 current-release documentation references, via scripts/prep_release.py --version 3.1.0. * fix(app-tests): refresh socketsecurity index metadata on install This install pins an exact version, so a stale cached uv index response makes a freshly published release look like it does not exist. Use --refresh-package for just this package rather than --no-cache, which would discard the cache mount's benefit for bandit and built wheels. Dockerfile.heavy already passes --no-cache-dir on its pip equivalent. * test: assert the socketsecurity pin, not the RUN's formatting The assertion matched an exact literal, so it broke when the install gained a --refresh-package flag and a line continuation even though the version pin it guards was unchanged. Collapse continuations and match the ARG-pinned spec after 'uv tool install' instead. Verified the guard still fails for an unpinned spec and for a hardcoded version that bypasses the ARG.
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.
What changed
scripts/check_release_docs.pyto check or rewrite current Socket Basics action and image references in README anddocs/**/*.md.scripts/prep_release.py, so manual release PRs mechanically update documentation alongside release metadata,uv.lock, andCHANGELOG.md.python-testsworkflow whenever release metadata, release tooling, README, or docs change.2.0.3to the current3.0.0release.Root cause
The former
.hooks/version-check.pycoupled documentation rewriting to an automatic version-bump flow. When that flow was removed in favor of human-authored release PRs, the useful docs-sync behavior disappeared with it. Release metadata advanced to3.0.0, but in-repo usage examples remained on2.0.3.Impact
Future release preparation updates known Socket Basics action tags, image tags, SHA-version comments, and related current-release prose before the release PR is opened. CI reports exact stale file and line locations and prevents a release or docs PR from silently reintroducing version drift. Scanner versions, third-party Action versions, and historical security guidance are not rewritten.
This remains a human-reviewed release flow: the tooling prepares and validates the diff but does not create tags, publish releases, or write across repositories.
Validation
python3 scripts/check_release_docs.py --check3.0.1— 73 references identified, no files writtenpython3 scripts/sync_release_version.py --checkuv lock --lockeduv run --no-sync pytest -q— 227 passedactionlint .github/workflows/python-tests.ymlzizmor .github/workflows/python-tests.yml— no findingsgit diff --checkNote
Low Risk
Changes are release/docs tooling and example version strings in documentation; no runtime scanner or auth logic is modified.
Overview
Restores mechanical alignment between the canonical release version in
pyproject.tomland current-release examples inREADME.mdanddocs/**/*.md(action tags, image tags, SHA comments, and related prose). This PR also normalizes 73 stale2.0.3references to3.0.0.Adds
scripts/check_release_docs.pywith--check/--writemodes. Matching is narrow: only Socket Basics action/image/tag patterns are updated; third-party pins (checkout, Trivy, scanner versions) stay untouched.scripts/prep_release.pynow invokes the docs writer during release prep, alongside existing version metadata anduv.locksync. The release PR checklist in.github/PULL_REQUEST_TEMPLATE.mdis simplified aroundprep_release.py.CI (
python-tests.yml) runs the read-only docs check when release tooling, README, or docs change, with expanded path filters. Regression tests intests/test_release_docs.pycover selective rewriting and prep-release integration.Reviewed by Cursor Bugbot for commit 11a3362. Configure here.