Skip to content

feat: allow Updatecli manifest dependson#8437

Open
olblak wants to merge 6 commits intoupdatecli:mainfrom
olblak:issue/8436
Open

feat: allow Updatecli manifest dependson#8437
olblak wants to merge 6 commits intoupdatecli:mainfrom
olblak:issue/8436

Conversation

@olblak
Copy link
Copy Markdown
Member

@olblak olblak commented Apr 15, 2026

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
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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
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