Skip to content

Commit 6922371

Browse files
authored
chore(release): v0.27.0 (#736)
Release prep for **v0.27.0** (minor). Dates the CHANGELOG `[Unreleased]` section as `0.27.0 - 2026-06-25`. Version is tag-driven (ldflags / goreleaser `{{.Version}}`), so there is no version file to bump — this PR is the CHANGELOG date only. ### Included since [v0.27.0 ← v0.26.0] - **feat:** `[global] job-exec-label-scope` option + collision detection — fixes the silent job-exec label collision (#734, [#735](#735)) - routine dependency bumps (#732, #733) After merge: tag `main` HEAD `v0.27.0` (signed) → `release.yml` publishes the SLSA release.
2 parents e21cae3 + 4d991b7 commit 6922371

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.27.0] - 2026-06-25
11+
1012
### Added
1113

1214
- New `[global] job-exec-label-scope` option makes label-defined `job-exec` job naming collision-safe when one central Ofelia daemon watches several independent Compose projects. Since [#300](https://github.com/netresearch/ofelia/issues/300)/[#597](https://github.com/netresearch/ofelia/pull/597) switched the prefix from the container name to the Compose **service** name (to power cross-container `depends-on` references like `database.backup`), two stacks deployed from the same template — e.g. `acme-web` and `globex-web`, both Compose service `web` with an identical `ofelia.job-exec.sync-news` label — silently collapsed to the single key `web.sync-news`: only the first container (running → newest → name order) won and the other stack's job never ran, with no error. This unnoticed regression reopened the exact collision that [#86](https://github.com/netresearch/ofelia/issues/86)/[#114](https://github.com/netresearch/ofelia/pull/114) had closed. The new option selects the prefix scheme: `service` (default — `{service}.{job}`, unchanged, required for cross-container references), `container` (`{container}.{job}` — collision-safe per Docker daemon), or `container-service` (`{container}.{service}.{job}` — descriptive and collision-safe, falling back to `{container}.{job}` for non-Compose containers). It is a daemon-wide INI-only setting (not exposed via container labels, so a single container cannot redefine how every other container's jobs are named) and defaults to `service`, preserving the pre-fix behavior. When switching away from `service`, update cross-container `depends-on`/`on-success`/`on-failure` references to the new scoped names. Independently of the chosen scope, Ofelia now also **logs a loud warning** whenever a job-exec name collision is detected — naming both containers, the dropped job, and the `job-exec-label-scope` remedy — so a collapsed job is never dropped in silence again (the worst part of this bug was the *absence* of any signal). An unrecognized `job-exec-label-scope` value is likewise reported with a warning before falling back to `service`, rather than silently degrading. Closes [#734](https://github.com/netresearch/ofelia/issues/734).

0 commit comments

Comments
 (0)