Skip to content

Narrow distribution locks with safe base_path protection - #7957

Open
mdellweg wants to merge 1 commit into
3.85from
patchback/backports/3.85/d57f7275e4fb599f5488fe207fb1c8ae4472f4f5/pr-7896
Open

Narrow distribution locks with safe base_path protection#7957
mdellweg wants to merge 1 commit into
3.85from
patchback/backports/3.85/d57f7275e4fb599f5488fe207fb1c8ae4472f4f5/pr-7896

Conversation

@mdellweg

Copy link
Copy Markdown
Member

Reserve per-distribution locks for ordinary updates while serializing creates and base_path changes on a dedicated domain-scoped distribution.base_path resource. Keep the legacy domain:distributions reservation in shared mode for mixed-version upgrade safety, and move the shared-resource plumbing into the generic async mixins so publication.py only defines the distribution-specific lock policy.

Fixes: #3322

(cherry picked from commit d57f727)

📜 Checklist

  • Commits are cleanly separated with meaningful messages (simple features and bug fixes should be squashed to one commit)
  • A changelog entry or entries has been added for any significant changes
  • Follows the Pulp policy on AI Usage
  • (For new features) - User documentation and test coverage has been added

See: Pull Request Walkthrough

@mdellweg
mdellweg marked this pull request as ready for review August 11, 2026 10:21
@mdellweg

Copy link
Copy Markdown
Member Author

The lb test is failing because pytest-django 4.14.0 is installed, while 4.13.0 dropped support for Django 4.2.

How this incompatible combination of versions could ever have been installed is beyond my comprehension.

Reserve per-distribution locks for ordinary updates while serializing creates and base_path changes on a dedicated domain-scoped distribution.base_path resource. Keep the legacy domain:distributions reservation in shared mode for mixed-version upgrade safety, and move the shared-resource plumbing into the generic async mixins so publication.py only defines the distribution-specific lock policy.

Fixes: #3322

Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit d57f727)
@mdellweg
mdellweg force-pushed the patchback/backports/3.85/d57f7275e4fb599f5488fe207fb1c8ae4472f4f5/pr-7896 branch from 557f146 to f3dfaa5 Compare August 11, 2026 14:07
@mdellweg
mdellweg enabled auto-merge (rebase) August 12, 2026 05:16
Comment on lines +22 to +23
pytest-django!=4.13.0
# This version seems not to not have a proper requirement on Django.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This made it into the plugin template.

Comment thread unittest_requirements.txt
aiotools
pytest<8
pytest-django
pytest-django[django]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

But this is also needed to make pytest-django depend on the actual django version it is supposed to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants