docs(blog): add DDEV v1.25.3 release post and update related articles#658
Conversation
## The Issue Website coverage for the DDEV v1.25.3 release. Companion to ddev/ddev#8553, ddev/ddev#8544, ddev/ddev#8434. ## How This PR Solves The Issue - Add `release-v1-25-3.md` for v1.25.3: faster `ddev start`/`ddev stop`, Docker Compose SDK, stable Podman/Docker Rootless, Node.js fixes, `DDEV_XDG_CONFIG_HOME`. - Update `podman-and-docker-rootless.md`: Podman and Docker Rootless are stable; setup steps moved to the docs. - Update `docker-buildx-requirement-v1-25-1.md` for the Compose SDK switch and `ddev config global --docker-buildx-version`. - Bump the Windows quickstart WSL2 distro to Ubuntu 26.04. - Add release banner SVGs and `ddev start`/`ddev stop` comparison GIFs. - Point AGENTS.md at the `ddev prettier`/`ddev textlint` custom commands. ## Manual Testing Instructions `ddev npm run build`, then check the three articles render with working images and links. `ddev prettier` and `ddev textlint` pass. ## Automated Testing Overview None. Content and docs only. ## Release/Deployment Notes Deploys via Cloudflare Pages on merge. Links to the `v1.25.3` tag and `scripts/compare-start-perf.sh` resolve once that tag is pushed to ddev/ddev. 🤖 Developed with assistance from [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
DDEV start/stop GIF recording processTools
1. Tape filesFour tapes, one per command per version: Same for
2. Measure durationsffprobe -v error -select_streams v:0 -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 <file>.gifResults:
3. Pad shorter GIF to match# frame count of the file being padded
gifsicle --info ddev-start-v1-25-3.gif | grep -c '^\s*+ image' # 551 -> last index 550
gifsicle --info ddev-stop-v1-25-3.gif | grep -c '^\s*+ image' # 160 -> last index 159
# new last-frame delay (cs) = original 4cs + pad needed
# start: 4 + 240 (2.40s) = 244
# stop: 4 + 984 (9.84s) = 988
gifsicle ddev-start-v1-25-3.gif '#0-549' -d244 '#550' -o ddev-start-v1-25-3.gif
gifsicle ddev-stop-v1-25-3.gif '#0-158' -d988 '#159' -o ddev-stop-v1-25-3.gif
Result: both pairs match exactly (24.44s / 16.24s). 4. Merge each pair into one GIF (top/bottom)Two separate ffmpeg -y -i ddev-start-v1-25-2.gif -i ddev-start-v1-25-3.gif -filter_complex \
"[0:v][1:v]vstack=inputs=2[stacked];[stacked]split[s0][s1];[s0]palettegen=stats_mode=diff[p];[s1][p]paletteuse=dither=bayer" \
ddev-start-v1-25-2-vs-v1-25-3.gif
ffmpeg -y -i ddev-stop-v1-25-2.gif -i ddev-stop-v1-25-3.gif -filter_complex \
"[0:v][1:v]vstack=inputs=2[stacked];[stacked]split[s0][s1];[s0]palettegen=stats_mode=diff[p];[s1][p]paletteuse=dither=bayer" \
ddev-stop-v1-25-2-vs-v1-25-3.gifRequires matching width and framerate between inputs (both were 1200px wide, 25fps). Output: |
Deploying ddev-com-front-end with
|
| Latest commit: |
2c81c86
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f4235213.ddev-com-front-end.pages.dev |
| Branch Preview URL: | https://20260703-stasadev-v1-25-3.ddev-com-front-end.pages.dev |
| Summary (ddev start from stopped state) | ||
| ------------------------------------------------------------------- | ||
| A (v1.25.2): median=11.03s trimmed-mean=10.49s | ||
| B (v1.25.3): median=7.91s trimmed-mean=7.84s | ||
| B is FASTER than A by 3.12s (-28.3%) on median |
There was a problem hiding this comment.
@rfay, this is a copy of the result you sent me in Discord. I didn't run any comparison myself.
There was a problem hiding this comment.
I added benchmark on Linux.
rfay
left a comment
There was a problem hiding this comment.
This is really fantastic, thanks. I love the animations, and people will also.
- Consider mentioning that it's 125 PRs (this might fit in the fantastic opening section, which I loved).
- It might be too much to talk about, but the difference of
ddev restartof a running project is amazing. An animation of that might be interesting, but maybe there are too many anyway. Maybe doddev restartinstead ofddev stop?
The tone here is absolutely perfect, and you've focused on the key things. Thank you!
53f1320 to
8534675
Compare
8534675 to
63d6c3e
Compare
| **Bottom line**: Stick with traditional Docker unless organizational policy or security requirements force you to use an alternative. The alternatives work, but have significant trade-offs. Follow the setup for [Docker Rootless](https://docs.ddev.com/en/stable/users/install/docker-installation/#linux-docker-rootless) or [Podman Rootless](https://docs.ddev.com/en/stable/users/install/docker-installation/#linux-podman-rootless) in the Docker installation docs. | ||
|
|
||
| ### Podman Rootless Performance Optimization | ||
| #### Configuring Podman Rootful on Linux (not recommended) |
There was a problem hiding this comment.
Consider just removing this section in the future. I guess maybe it's already essentially removed.
There was a problem hiding this comment.
I want to keep it for historical reasons. I struggled with Podman rootful, and I don't want to throw away this setup (which is heavily simplified) after putting so much effort into it.
@rfay [skip ci] Co-authored-by: Randy Fay <randy@randyfay.com>
Co-authored-by: Randy Fay <randy@randyfay.com>
f55a79b to
054902b
Compare
The Issue
Website coverage for the DDEV v1.25.3 release. Companion to:
How This PR Solves The Issue
release-v1-25-3.mdfor v1.25.3: fasterddev start/ddev stop, Docker Compose SDK, stable Podman/Docker Rootless, Node.js fixes,DDEV_XDG_CONFIG_HOME.podman-and-docker-rootless.md: Podman and Docker Rootless are stable; setup steps moved to the docs.docker-buildx-requirement-v1-25-1.mdfor the Compose SDK switch andddev config global --docker-buildx-version.ddev start/ddev stopcomparison GIFs.ddev prettier/ddev textlintcustom commands.Manual Testing Instructions