diff --git a/CHANGELOG.md b/CHANGELOG.md index 946dada..32e1b40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.21.2] - 2026-06-01 + +### Fixed +- Targets that reference an `app` (e.g. e2e targets with `"app": "gdc-analytical-designer"`) are now triggered when that app is affected via a changed dependency. When `TARGETS` was set, the relevant-package set was seeded only from each matched target's own package and its transitive dependencies — but a target's `app` is a logical relationship, not an npm dependency, so the app and its dependency subtree (e.g. the runtime library whose change is meant to trigger the e2e target) were excluded from analysis, produced no taint, and the app-taint check always came up empty. The seed set now also includes `td.App` (unless `IGNORE_APP_RELATIONSHIP` is set), so the app and its dependencies are analyzed and the app-taint check fires. + ## [0.21.1] - 2026-05-31 ### Fixed @@ -297,6 +302,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Multi-stage Docker build - Automated vendor upgrade workflow +[0.21.2]: https://github.com/gooddata/gooddata-goodchanges/compare/v0.21.1...v0.21.2 +[0.21.1]: https://github.com/gooddata/gooddata-goodchanges/compare/v0.21.0...v0.21.1 [0.21.0]: https://github.com/gooddata/gooddata-goodchanges/compare/v0.20.0...v0.21.0 [0.20.0]: https://github.com/gooddata/gooddata-goodchanges/compare/v0.19.4...v0.20.0 [0.19.4]: https://github.com/gooddata/gooddata-goodchanges/compare/v0.19.3...v0.19.4 diff --git a/VERSION b/VERSION index b9f8e55..2d62101 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.21.1 \ No newline at end of file +0.21.2 \ No newline at end of file diff --git a/main.go b/main.go index ff53c8a..f6851aa 100644 --- a/main.go +++ b/main.go @@ -131,8 +131,18 @@ func main() { continue } for _, td := range cfg.Targets { - if matchesTargetFilter(td.OutputName(rp.PackageName), targetPatterns) { - targetSeeds = append(targetSeeds, rp.PackageName) + if !matchesTargetFilter(td.OutputName(rp.PackageName), targetPatterns) { + continue + } + targetSeeds = append(targetSeeds, rp.PackageName) + // Targets that reference an `app` are triggered when that app is + // affected (see the app-taint check below). The app is not an npm + // dependency of the target's own package, so seed it explicitly — + // otherwise the app and its dependency subtree (e.g. the runtime + // library whose change is meant to trigger the e2e target) would be + // excluded from analysis and never produce taint. + if td.App != nil && !flagIgnoreAppRelationship { + targetSeeds = append(targetSeeds, *td.App) } } }