Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transfer #483

Merged
merged 33 commits into from
Sep 20, 2023
Merged

Transfer #483

merged 33 commits into from
Sep 20, 2023

Conversation

mandelsoft
Copy link
Contributor

@mandelsoft mandelsoft commented Aug 4, 2023

What this PR does / why we need it:

Adding resources to a Component Version now already adds digests by default.
This enables delta transports of volatile data in the Component Descriptor.
This volatile data can now be merged: Local (volatile) changes in the target repository
of a transfer are merges with the new inbound version.

This is mainly used to merge non-signature-relevant label values. Therefore,
value merge algorithms are introduced, which can be declared in the component descriptor
or pre configured in the code. The standard library provides a set of basic algorithms
with appropriate configuration options, which can be extended by plugins.

This fatur can, for example , be used for implementing routing slips on top of the
Open Component Model in form of dedicated labels. The delta transport feature is then used
to re-import/transport new routing slip entries from the software provider.

To be compatible, the handling of resources without a digest is supported, also,but with
limited functionality.

A possible (not yet implemented) extension would be to introduce a new transfer option
to enable on-the-fly calculation of missing digests.
This will always enable to skip the value transfer of resource versions already available at the target,
if the overwrite option is chosen.

Which issue(s) this PR fixes:
Fixes #

Relates to #469

Special notes for your reviewer:

Release Notes:

@mandelsoft mandelsoft force-pushed the transfer branch 5 times, most recently from 8f2d9d9 to adbffb3 Compare August 10, 2023 13:37
@mandelsoft mandelsoft force-pushed the transfer branch 6 times, most recently from cba8c9d to 81fde89 Compare August 18, 2023 09:06
@mandelsoft mandelsoft force-pushed the transfer branch 8 times, most recently from 4a346c4 to 59f07c5 Compare August 25, 2023 14:46
@mandelsoft mandelsoft force-pushed the transfer branch 2 times, most recently from 0a76330 to 5594a70 Compare August 29, 2023 13:33
pkg/contexts/ocm/compdesc/componentdescriptor.go Outdated Show resolved Hide resolved
pkg/contexts/ocm/compdesc/meta/v1/labels.go Outdated Show resolved Hide resolved
pkg/contexts/ocm/compdesc/signing.go Outdated Show resolved Hide resolved
@mandelsoft mandelsoft marked this pull request as ready for review September 19, 2023 21:08
@mandelsoft
Copy link
Contributor Author

Hi @fabianburth , changes from the past days pulled down an rebased to main.

@mandelsoft mandelsoft merged commit 199a369 into open-component-model:main Sep 20, 2023
@mandelsoft mandelsoft deleted the transfer branch September 20, 2023 07:33
robertwol pushed a commit that referenced this pull request Sep 25, 2023
* simplify ocm repo implementation interface

* equal tests

* fixes + transfer tests

* fix transfer tests

* uploader tests

* accmeth, digester, blobhandler tests

* add resources tests

* download tests + improved gomega matchers

* hash test

* command tests

* builder with default modopts

* signing tests

* signing tests for legacy/regular flavors

* transfer/signing combi tests

* more combi and equivalent tests

* first step towards label value merging

* label merging

* plugin support for merge handlers

* plugin support for assignments

* comparch modification test

* generalize composition environment

* HOME in file names + global key options

* fix transport messages

* fix modified state in value merge handlers

* fix cmd get cv

* fix equivalence

* fix none normalization + align equivalence and normalization

* fix transfer logic

* rework resource adding

* generate CLI docs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Transporting CV graphs with CVs shared with separately transported graphs causes problems
2 participants