Skip to content

feat: allow Updatecli manifest dependson#8437

Merged
olblak merged 7 commits into
updatecli:mainfrom
olblak:issue/8436
Apr 24, 2026
Merged

feat: allow Updatecli manifest dependson#8437
olblak merged 7 commits into
updatecli:mainfrom
olblak:issue/8436

Conversation

@olblak

@olblak olblak commented Apr 15, 2026

Copy link
Copy Markdown
Member

Fix #8436

Introduce two parameters:

  • id that store a unique manifest id.
  • dependson similar to the dependson the resource which allows to reference id to define ordering.

Please note that id don't need to be unique so an id specified in an autodiscovery configuration will be herited to any generated manifest by the autodiscovery configuration.

Test

To test this pull request, you can run the following commands:

cd pkg/core/engine
go test

Additional Information

Checklist

  • I have updated the documentation via pull request in website repository.

Tradeoff

Potential improvement

@olblak olblak added enhancement New feature or request core All things related to Updatecli core engine labels Apr 15, 2026
Comment thread pkg/core/engine/autodiscovery.go Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds manifest-level dependency ordering to the engine so pipelines can be executed in a deterministic order based on a new manifest id and dependson relationship (including propagation/inheritance for autodiscovery-generated manifests).

Changes:

  • Introduces Engine.OrderPipelines() (topological sort with stable sibling ordering) and runs it during Engine.Prepare().
  • Extends config model with internal ManifestID plus user-facing dependency fields (Spec.ID, Spec.DependsOn), and seeds ManifestID during config load.
  • Ensures autodiscovery-generated manifests get deterministic internal manifest IDs and inherit id/dependson; adds tests for ordering + fingerprinting behavior.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
pkg/core/engine/prepare.go Calls the new ordering phase during engine preparation with telemetry.
pkg/core/engine/order.go Implements manifest dependency resolution + pipeline reordering logic.
pkg/core/engine/order_test.go Adds unit tests for ordering behavior, error cases, and dependency merging.
pkg/core/engine/autodiscovery.go Propagates id/dependson to discovered manifests and assigns stable internal manifest IDs via fingerprinting.
pkg/core/engine/autodiscovery_test.go Verifies autodiscovery fingerprinting is stable and ignores secrets.
pkg/core/config/main.go Adds internal manifestID + dependency helpers and seeds manifest IDs in New().
pkg/core/config/main_test.go Adds tests ensuring id/dependson parse correctly and internal manifest IDs are generated.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/core/engine/order.go
Comment thread pkg/core/config/main.go
Comment thread pkg/core/engine/order.go

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/core/config/main.go
Comment thread pkg/core/engine/autodiscovery.go
@olblak olblak merged commit 0e30852 into updatecli:main Apr 24, 2026
7 checks passed
@olblak

olblak commented May 1, 2026

Copy link
Copy Markdown
Member Author

The commits from this pull request were accidentally merged from #8472 using automerge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core All things related to Updatecli core engine enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Pipeline manifest ordering

3 participants