Project

Profile

Help

Issue #3961

DeclarativeVersion doesn't respect plugin boundaries in mirror mode

Added by dalley about 1 year ago. Updated 6 months ago.

Status:
NEW
Priority:
High
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
Severity:
3. High
Version:
Platform Release:
Blocks Release:
OS:
Backwards Incompatible:
No
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:

Description

Let's say you're using multiple plugins/content types with one repository.

First you sync content into $REPO using $PLUGIN_1, and then you sync more content into $REPO using $PLUGIN_2.

Assuming the latter sync uses mirror mode, all of the content synced by the first sync will be removed. This means that one plugin can easily destroy content from other plugins unless you use "additive" mode only, whereas intuitively I would not expect that to be the case.

If this is intended behavior, we should take care to document this very clearly.

History

#1 Updated by daviddavis about 1 year ago

One possible way to think of this: it's no different than syncing from two Remotes of the same type. For example, I'd expect the same behavior when syncing from two FileRemotes.

+1 to documenting this.

#2 Updated by bmbouter about 1 year ago

+1 to documenting this, especially for the use case @daviddavis describes.

For the cross-plugin types what if we:

1. Adjusted the ContentUnitUnassociate stage to take an option called 'ignore_unseen_types'. When True, the stage would only unassociate unit types that have also been emitted in the stream at some point. So True, leaves other plugin types untouched.

2. Have DeclarativeVersion expose this as an option and have it default to False.

#3 Updated by CodeHeeler about 1 year ago

  • Triaged changed from No to Yes

#4 Updated by bmbouter 6 months ago

  • Tags deleted (Pulp 3)

Please register to edit this issue

Also available in: Atom PDF