You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Step 1: Sync with remote and verify repository state
18
+
19
+
```bash
20
+
# Ensure we are on the main branch
21
+
git rev-parse --abbrev-ref HEAD
22
+
```
23
+
24
+
Abort with a warning if not on `main`.
25
+
26
+
```bash
27
+
# Ensure working tree is clean
28
+
git diff --quiet && git diff --cached --quiet
29
+
```
30
+
31
+
If there are uncommitted changes, stash them or abort and warn the user.
18
32
19
33
```bash
20
34
git pull
21
35
```
22
36
23
-
### Step 2: Check all dependencies (run in parallel)
37
+
### Step 2: Check all dependencies
38
+
39
+
Run the automated checker script first:
24
40
25
-
#### 2a. HA base image
41
+
```bash
42
+
./scripts/check-updates.sh
43
+
```
26
44
27
-
Read the current base image tag from `socket-proxy/build.yaml`. Then check for the latest available tag:
45
+
This script extracts current pins and queries remote APIs / Docker for latest versions. It exits non-zero when updates are available and prints a summary table.
28
46
47
+
If the script is missing or a check fails, fall back to the manual checks below.
48
+
49
+
#### Manual fallback checks
50
+
51
+
**2a. HA base image**
52
+
53
+
Current tag (extract with):
29
54
```bash
30
-
# Check what's available — look at the GitHub container registry
Use `WebFetch` to check `https://github.com/home-assistant/docker-base/pkgs/container/amd64-base` for the latest tag. Compare to the current pin in `socket-proxy/build.yaml`.
58
+
Latest: use `FetchURL` on `https://github.com/home-assistant/docker-base/pkgs/container/amd64-base` or query Alpine Docker Hub as a proxy:
docker run --rm ghcr.io/home-assistant/amd64-base:<TAG> sh -c "apk update >/dev/null 2>&1 && apk list -a haproxy"
72
+
docker run --rm ghcr.io/home-assistant/amd64-base:<TAG> sh -c "apk update >/dev/null 2>&1 && apk list -a haproxy"| grep -oP 'haproxy-\K[0-9.r-]+'| head -1
41
73
```
42
74
43
-
Compare to the pin in `socket-proxy/Dockerfile` (the `apk add --no-cache haproxy=X.X.X` line).
75
+
> If Docker is unavailable, skip this check and note it in the report.
44
76
45
-
If the base image is being updated, re-check HAProxy availability in the new image.
Read `.github/workflows/ci.yaml` and note every pinned action (e.g. `actions/checkout@v4`, `actions/setup-python@v5`). For each action, use `WebFetch` to check the latest major version tag on GitHub (e.g. `https://github.com/actions/checkout/releases/latest` and `https://github.com/actions/setup-python/releases/latest`). Compare to the versions pinned in the workflow file.
107
+
Only flag an update when the **major version** changes (e.g. `v5` → `v6`).
62
108
63
109
### Step 3: Report findings
64
110
@@ -67,11 +113,11 @@ Present a markdown summary table:
67
113
| Dependency | Current | Latest | Update needed? |
68
114
|---|---|---|---|
69
115
| HA base image | 3.23 | ... | ... |
70
-
| HAProxy | 3.2.13-r0 | ... | ... |
71
-
| Upstream LS | 3.2.13-r0-ls70| ... | ... |
116
+
| HAProxy | 3.2.15-r0 | ... | ... |
117
+
| Upstream LS | 3.2.15-r0-ls75| ... | ... |
72
118
| Pre-commit hooks | ... | ... | ... |
73
-
| actions/checkout |v4| ... | ... |
74
-
| actions/setup-python |v5| ... | ... |
119
+
| actions/checkout |v6| ... | ... |
120
+
| actions/setup-python |v6| ... | ... |
75
121
76
122
**If nothing needs updating, stop here and inform the user.**
77
123
@@ -81,27 +127,24 @@ Update files per dependency type. Always read each file before editing.
81
127
82
128
#### HA base image update
83
129
-`socket-proxy/build.yaml` — both `aarch64` and `amd64` entries
84
-
-`CLAUDE.md` — version pins section and any build commands referencing the tag
85
-
-`/home/ferg/.claude/projects/-home-ferg-code-ha-app-socket_proxy/memory/MEMORY.md` — version pins
130
+
-`Makefile` — `BUILD_FROM` in the `build` target
131
+
-`tests/test_addon.sh` — the `docker build` command in the "Docker build" section
86
132
87
133
#### HAProxy update
88
134
-`socket-proxy/Dockerfile` — the `apk add --no-cache haproxy=` line
89
-
-`CLAUDE.md` — version pins section
90
-
-`/home/ferg/.claude/projects/-home-ferg-code-ha-app-socket-proxy/memory/MEMORY.md` — version pins
-`socket-proxy/rootfs/templates/haproxy.cfg` — fetch the upstream file from `https://raw.githubusercontent.com/linuxserver/docker-socket-proxy/main/root/defaults/haproxy.cfg` and diff against the local copy. If changed, replace the local copy entirely.
96
-
- If upstream added new ACL endpoints, also update these files per the consistency requirements in CLAUDE.md:
139
+
-`socket-proxy/rootfs/templates/haproxy.cfg` — fetch the upstream file from `https://raw.githubusercontent.com/linuxserver/docker-socket-proxy/main/root/templates/haproxy.cfg`(note: path changed from `root/defaults/` to `root/templates/`) and diff against the local copy. Do **not** blindly replace the local copy — this project adds custom `@@ALLOWED_SRC_ACL@@` and `@@ALLOWED_SRC_REJECT@@` placeholders and an attribution header that upstream does not have. Only adopt new upstream ACL endpoint rules or other structural changes, preserving the local additions.
140
+
- If upstream added new ACL endpoints, also update these files per the consistency requirements in `AGENTS.md`:
97
141
-`socket-proxy/config.yaml` — new schema entry with default value
98
142
-`socket-proxy/rootfs/etc/services.d/socket-proxy/run` — bashio read + env var export
99
143
-`socket-proxy/translations/en.yaml` — UI label and description
100
-
-`CLAUDE.md` — upstream reference
101
144
102
145
#### Pre-commit hooks update
103
146
```bash
104
-
cd /home/ferg/code/ha_app_socket_proxy &&pre-commit autoupdate
147
+
pre-commit autoupdate
105
148
```
106
149
107
150
#### GitHub Actions update
@@ -110,49 +153,73 @@ Edit `.github/workflows/ci.yaml` to update any pinned action versions to their l
-**Minor** — upstream LinuxServer update that adds new features/endpoints
158
+
-**Major** — breaking changes (rare for this add-on)
115
159
116
160
Update these files (read each first):
117
161
1.`socket-proxy/config.yaml` — `version` field (line 6)
118
162
2.`socket-proxy/rootfs/etc/services.d/socket-proxy/run` — `ADDON_VERSION` variable (keep in sync with config.yaml)
119
-
3.`socket-proxy/CHANGELOG.md` — add new version entry at the top, below the `# Changelog` heading
163
+
3.`socket-proxy/CHANGELOG.md` — add new version entry at the top, below the `# Changelog` heading. Follow the existing format:
164
+
165
+
```markdown
166
+
## X.Y.Z
167
+
168
+
- Bump HAProxy from A.B.C-rX to D.E.F-rY
169
+
- Bump upstream reference to linuxserver/docker-socket-proxy D.E.F-rY-lsZ
170
+
- Update pre-commit hooks: ...
171
+
- Update GitHub Actions: ...
172
+
```
120
173
121
174
### Step 6: Verify
122
175
123
-
Run tests and build sequentially:
176
+
Run the full verification suite sequentially:
124
177
125
178
```bash
126
-
cd /home/ferg/code/ha_app_socket_proxy &&make test
179
+
make lint
127
180
```
128
181
129
182
```bash
130
-
cd /home/ferg/code/ha_app_socket_proxy &&make build
183
+
make test
131
184
```
132
185
133
-
If either fails, diagnose and fix before proceeding.
186
+
```bash
187
+
make build
188
+
```
189
+
190
+
If any step fails, diagnose and fix before proceeding. Do not commit broken changes.
134
191
135
192
### Step 7: Commit and push
136
193
137
-
Stage changed files explicitly (never use `git add -A` or `git add .`):
194
+
Stage changed files explicitly (never use `git add -A` or `git add .`). Use `git status` to see which files were actually modified, then stage only those:
0 commit comments