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
herd.yml is documented as a manifest a team commits so every machine gets the same PHP version and Herd Pro services via herd init. In a mixed macOS / Windows team this breaks silently at the documentation level and loudly at herd init time, because the two platforms do not offer the same services or versions:
The macOS service-versions page lists Typesense (0.26 / 29.x / 30.x), Valkey and Redis 7.0.x / 7.4.x.
The Windows service-versions page lists no Typesense and no Valkey, and Redis 7.0.0 only. /docs/windows/herd-pro-services/typesense returns 404.
The herd-yaml docs page (both macOS and Windows variants) mentions no platform caveat, no way to mark a service optional or per-platform, and no wildcard versions.
A manifest like this therefore works on macOS and fails herd init on Windows:
The same failure mode already hits single-platform teams when an exact patch version drops out of a newer Herd build's catalogue (#1595, discussion #1735), so the underlying problem is that herd init treats every services entry as a hard requirement with an exact version.
Requests
Document the platform differences on the herd-yaml page (or link the two service-versions pages from it) so teams know a committed manifest is not portable as-is.
Let herd init warn and skip a service that is unavailable on the current platform or Herd build instead of aborting, or add an explicit optional: true / platforms: [macos] key per service.
Summary
herd.ymlis documented as a manifest a team commits so every machine gets the same PHP version and Herd Pro services viaherd init. In a mixed macOS / Windows team this breaks silently at the documentation level and loudly atherd inittime, because the two platforms do not offer the same services or versions:/docs/windows/herd-pro-services/typesensereturns 404.A manifest like this therefore works on macOS and fails
herd initon Windows:The same failure mode already hits single-platform teams when an exact patch version drops out of a newer Herd build's catalogue (#1595, discussion #1735), so the underlying problem is that
herd inittreats everyservicesentry as a hard requirement with an exact version.Requests
herd initwarn and skip a service that is unavailable on the current platform or Herd build instead of aborting, or add an explicitoptional: true/platforms: [macos]key per service.8.4.x,29.x) so a manifest survives catalogue updates (this is the ask in [Bug]: Running herd init on legacy codebase sometimes fails #1595 / Services Chaos #1735 too).Environment
herd initon each platform.