-
Notifications
You must be signed in to change notification settings - Fork 22
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
start working on composition mode #552
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fabianburth
previously approved these changes
Oct 24, 2023
fabianburth
approved these changes
Oct 25, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
THis PR starts the introduction of the composition mode.
So far, a component version is always directly connected to the stored version on a backing storage.
Closing a component version updated the changes directly to this medium.
THis will be changed in the future. While still connecting to a backing storage updates will
only be done, if explicitly requested, either by
Update
on the component versionAddVersion
The new behaviour is already available by a switch, while the standard behaviour is still the default.
Additionally versions in general, and versions created via
NewVersion
can be used to callAddVersion
on all repositories and not only at the component object, they were created for.A new repository type
composition
is used to handle pure Go-object based OCM repositories. Even free-floating component version can now be created and composed (based on this repository type) and then added to any other repository.If used with the composition repository type a complete set of component version can be prepared in memory and then transferred to any other repository using the
transfer
package. Basically the composition repository behaves like any other repository.THis could be achieved by extending the blobs to support the Dup functionality and feature a ref-counting. This way
blobs are stored in the composition repository keeping large blob content potentially held in temporary filesystem resources until the last reference is closed. THis optimized the memory footprint, when using large blobs, because even for using local blobs in the repo, the content is always taken from the original blob access,
What type of PR is this? (check all applicable)
Related Tickets & Documents
Screenshots
Added tests?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Added to documentation?
Checklist: