Skip to content

feat(dag): dag based construct processing#772

Merged
jakobmoellerdev merged 21 commits into
open-component-model:mainfrom
fabianburth:feat/dag-based-construct
Sep 12, 2025
Merged

feat(dag): dag based construct processing#772
jakobmoellerdev merged 21 commits into
open-component-model:mainfrom
fabianburth:feat/dag-based-construct

Conversation

@fabianburth

@fabianburth fabianburth commented Sep 2, 2025

Copy link
Copy Markdown
Contributor

What this PR does / why we need it

The current construct implementation processes all the components in a constructor concurrently. Since we want to be able to add the digest of component references to the constructed component descriptors. To even calculate the digest of the referenced component descriptor, that descriptor has to be constructed already.

As a conclusion, we need a graph processing logic, where all children are constructed before its parent is being constructed.

Which issue(s) this PR fixes

open-component-model/ocm-project#564

@github-actions github-actions Bot added kind/feature new feature, enhancement, improvement, extension size/m Medium labels Sep 2, 2025
@fabianburth fabianburth force-pushed the feat/dag-based-construct branch 2 times, most recently from 5e15601 to 87ab879 Compare September 2, 2025 11:41
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/construct.go Outdated
@fabianburth fabianburth force-pushed the feat/dag-based-construct branch from 3fd2f65 to 2ed37ec Compare September 8, 2025 16:01
@github-actions github-actions Bot added the size/l Large label Sep 8, 2025
@fabianburth fabianburth force-pushed the feat/dag-based-construct branch from 5f4a65a to 9777c2c Compare September 11, 2025 14:42
@fabianburth fabianburth marked this pull request as ready for review September 11, 2025 14:42
@fabianburth fabianburth requested a review from a team as a code owner September 11, 2025 14:42
@fabianburth

Copy link
Copy Markdown
Contributor Author

Need to get rid of the replace statement. But besides that, ready for review finally!

@jakobmoellerdev jakobmoellerdev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks great already, mostly beauty nits and polish needed but generally awesome stuff!

Comment thread bindings/go/constructor/construct.go
Comment thread bindings/go/constructor/construct.go Outdated
Comment thread bindings/go/constructor/discoverer.go
Comment thread bindings/go/constructor/discoverer.go Outdated
Comment thread bindings/go/constructor/go.mod Outdated
Comment thread bindings/go/constructor/processor.go
Comment thread bindings/go/constructor/processor.go
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
@fabianburth fabianburth force-pushed the feat/dag-based-construct branch from 9777c2c to 142eedb Compare September 12, 2025 11:59
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…ntime

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
@jakobmoellerdev jakobmoellerdev merged commit 427aa64 into open-component-model:main Sep 12, 2025
16 checks passed
@fabianburth fabianburth deleted the feat/dag-based-construct branch September 12, 2025 19:23
jakobmoellerdev pushed a commit that referenced this pull request Sep 17, 2025
…#889)

<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
Follow up to
#772.

- Pass an external component repository to the construction. This allows
to resolve components that are not part of the constructor. This is
required to calculate the digest of reference.
- Minor adjustments due to breaking API changes to dependent features in
the plugins and credential module

#### Which issue(s) this PR fixes
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Contributes to
open-component-model/ocm-project#564

---------

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
matthiasbruns pushed a commit to matthiasbruns/open-component-model that referenced this pull request Sep 18, 2025
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
The current construct implementation processes all the components in a
constructor concurrently. Since we want to be able to add the digest of
component references to the constructed component descriptors. To even
calculate the digest of the referenced component descriptor, that
descriptor has to be constructed already.

As a conclusion, we need a graph processing logic, where all children
are constructed before its parent is being constructed.

#### Which issue(s) this PR fixes
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
open-component-model/ocm-project#564

---------

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
matthiasbruns pushed a commit to matthiasbruns/open-component-model that referenced this pull request Sep 18, 2025
…open-component-model#889)

<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
Follow up to
open-component-model#772.

- Pass an external component repository to the construction. This allows
to resolve components that are not part of the constructor. This is
required to calculate the digest of reference.
- Minor adjustments due to breaking API changes to dependent features in
the plugins and credential module

#### Which issue(s) this PR fixes
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Contributes to
open-component-model/ocm-project#564

---------

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature new feature, enhancement, improvement, extension size/l Large size/m Medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants