@@ -5,41 +5,42 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) .
66
77> ** Versioning note:** Releases through ` 1.1.3 ` used bare semver tags (e.g. ` 1.1.3 ` ).
8- > Starting with ` v2.0.0 ` the project follows the [ GitHub Actions tag convention] [ gha-tags ]
9- > using a ` v ` prefix (e.g. ` v2.0.0 ` ) with a floating major tag (` v2 ` ).
10-
11- [ gha-tags ] : https://docs.github.com/en/actions/sharing-automations/creating-actions/releasing-and-maintaining-actions
8+ > Starting with ` v2.0.0 ` the project uses a ` v ` prefix (e.g. ` v2.0.0 ` ). Floating major
9+ > tags (` v2 ` ) are intentionally not published — immutable version tags and SHA pinning
10+ > are the recommended consumption pattern for a security tool.
1211
1312---
1413
1514## [ Unreleased]
1615
1716### Added
18- - Multi-stage Dockerfiles for both ` socket-basics ` and ` socket-basics-app-tests ` — Trivy,
19- TruffleHog, and Go are now pulled from their official registry images as named stages,
20- making them Dependabot-trackable via ` FROM ` lines
21- - GHCR + Docker Hub publish workflow (` publish-docker.yml ` ) with build → smoke test →
22- integration test → push fail-fast pipeline
23- - Integration test script (` scripts/integration-test-docker.sh ` ) that runs a real
24- opengrep scan and socket-basics CLI scan without requiring API credentials
25- - Dependabot configuration for Docker images, ` app_tests/ ` Dockerfile, and GitHub Actions
26- - Buildkite-style dynamic CI pipeline via ` scripts/ci_matrix.py ` — image and Python
27- version matrices are now Python-driven, not hardcoded in YAML
28- - Reusable ` _docker-pipeline.yml ` workflow as a single lego-brick called by both
29- ` smoke-test.yml ` and ` publish-docker.yml `
30- - Floating major version tag automation (` v2 ` auto-updated on every release)
17+ - Multi-stage Dockerfiles — Trivy, TruffleHog, Go, and uv pulled via named ` FROM ` stages
18+ (Dependabot-trackable); ` python:3.12-slim ` base; BuildKit cache mounts throughout
19+ - GHCR + Docker Hub publish workflow (` publish-docker.yml ` ): build → smoke test →
20+ integration test → push; fail-fast, per-job least-privilege permissions
21+ - Reusable ` _docker-pipeline.yml ` lego-brick workflow shared by smoke and publish pipelines
3122- OCI image labels baked into published images (` com.socket.trivy-version ` , etc.)
32- - ` python:3.12-slim ` base image (~ 850 MB smaller than full)
33- - Root ` .dockerignore ` to exclude tests, docs, and artifacts from the build context
34- - This changelog and automated changelog update workflow
23+ - Integration test script (` scripts/integration-test-docker.sh ` ) — no API key required
24+ - Dependabot configuration for Docker images and GitHub Actions
25+ - ` docs/releasing.md ` — maintainer release guide including immutable tag setup
26+ - ` .github/PULL_REQUEST_TEMPLATE.md ` — release checklist baked into every PR
27+ - ` commit-lint.yml ` + ` .commitlintrc.yml ` — Conventional Commits enforcement on PR titles
28+ - Full retroactive ` CHANGELOG.md ` from ` 1.0.2 ` ; automated update on every release
29+ - Root ` .dockerignore `
3530
3631### Changed
3732- ` uv ` pinned to ` 0.10.11 ` (was ` :latest ` )
38- - ` smoke-test.yml ` restructured as a matrix pipeline driven by ` ci_matrix.py `
39- (previously only tested the main image; ` socket-basics-app-tests ` will be re-enabled
40- once its missing source files are committed — see ` ci_matrix.py ` TODO)
41- - ` smoke-test-docker.sh ` gains ` --skip-build ` and ` --check-set ` flags for use in CI
42- pipelines that build separately
33+ - ` smoke-test-docker.sh ` gains ` --skip-build ` and ` --check-set ` flags
34+ - ` python-tests.yml ` gains CI assertions for version file sync and ` action.yml ` image ref
35+ - Tag convention: ` v ` -prefix (` v2.0.0 ` ), immutable only — ` :latest ` and floating major
36+ tags (` v2 ` ) intentionally not published; SHA pinning + Dependabot is the recommended
37+ consumption pattern (see ` docs/github-action.md ` )
38+ - Pinning strategy docs rewritten with security philosophy section
39+
40+ ### Removed
41+ - ` .hooks/version-check.py ` and ` .claude/commands/bump-version.md ` — auto-bump-on-commit
42+ antipattern; replaced by CI assertions in ` python-tests.yml `
43+ - ` scripts/ci_matrix.py ` — preserved in ` basics-temp/ ` for future ce-tools use
4344
4445---
4546
@@ -67,15 +68,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6768[ #36 ] : https://github.com/SocketDev/socket-basics/pull/36
6869[ #39 ] : https://github.com/SocketDev/socket-basics/pull/39
6970
70- ## [ 1.1.1] - 2026-02-26
71-
72- ### Fixed
73- - Webhook notifier not reading URL from dashboard config ([ #34 ] )
74- - ` CODEOWNERS ` syntax error ([ #35 ] )
75-
76- [ #34 ] : https://github.com/SocketDev/socket-basics/pull/34
77- [ #35 ] : https://github.com/SocketDev/socket-basics/pull/35
78-
7971## [ 1.1.0] - 2026-02-20
8072
8173### Fixed
@@ -167,13 +159,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
167159
168160[ #11 ] : https://github.com/SocketDev/socket-basics/pull/11
169161
170- ## [ 1.0.11] - 2025-10-22
171-
172- ### Fixed
173- - Git detection logic not using ` workspace ` or ` GITHUB_WORKSPACE ` correctly ([ #10 ] )
174-
175- [ #10 ] : https://github.com/SocketDev/socket-basics/pull/10
176-
177162## [ 1.0.10] - 2025-10-22
178163
179164### Changed
@@ -215,10 +200,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
215200
216201<!-- Comparison links — updated automatically by scripts/update_changelog.py on each release -->
217202[ Unreleased ] : https://github.com/SocketDev/socket-basics/compare/1.1.3...HEAD
218- [ 2.0.0 ] : https://github.com/SocketDev/socket-basics/compare/1.1.3...v2.0.0
219203[ 1.1.3 ] : https://github.com/SocketDev/socket-basics/compare/1.1.2...1.1.3
220- [ 1.1.2 ] : https://github.com/SocketDev/socket-basics/compare/1.1.1...1.1.2
221- [ 1.1.1 ] : https://github.com/SocketDev/socket-basics/compare/1.1.0...1.1.1
204+ [ 1.1.2 ] : https://github.com/SocketDev/socket-basics/compare/1.1.0...1.1.2
222205[ 1.1.0 ] : https://github.com/SocketDev/socket-basics/compare/1.0.29...1.1.0
223206[ 1.0.29 ] : https://github.com/SocketDev/socket-basics/compare/1.0.28...1.0.29
224207[ 1.0.28 ] : https://github.com/SocketDev/socket-basics/compare/1.0.27...1.0.28
@@ -228,8 +211,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
228211[ 1.0.24 ] : https://github.com/SocketDev/socket-basics/compare/1.0.23...1.0.24
229212[ 1.0.23 ] : https://github.com/SocketDev/socket-basics/compare/1.0.21...1.0.23
230213[ 1.0.21 ] : https://github.com/SocketDev/socket-basics/compare/1.0.20...1.0.21
231- [ 1.0.20 ] : https://github.com/SocketDev/socket-basics/compare/1.0.11...1.0.20
232- [ 1.0.11 ] : https://github.com/SocketDev/socket-basics/compare/1.0.10...1.0.11
214+ [ 1.0.20 ] : https://github.com/SocketDev/socket-basics/compare/1.0.10...1.0.20
233215[ 1.0.10 ] : https://github.com/SocketDev/socket-basics/compare/1.0.9...1.0.10
234216[ 1.0.9 ] : https://github.com/SocketDev/socket-basics/compare/1.0.3...1.0.9
235217[ 1.0.3 ] : https://github.com/SocketDev/socket-basics/compare/1.0.2...1.0.3
0 commit comments