Refactor #7777
closed
As a developer I want collections sync machinery easier to maintain
Status:
CLOSED - CURRENTRELEASE
Description
Currently, the sync machinery for collections contains multiple workarounds, which makes it hard to address issues and implement features.
- Subject changed from [EPIC] As a developer I want collections sync machinery easier to maintain to As a developer I want collections sync machinery easier to maintain
- Related to Issue #5745: Sync throws error: "filename 'MANIFEST.json' not found" added
- Related to Story #7470: As an user I want to sync collections on demand added
- Related to Issue #7572: Make MANIFEST.json and FILES.json available in the CollectionVersion serializer in the V3 API added
- Related to Issue #7739: Requirement.yml code doesn't filter by version added
- Related to Issue #7741: Code doesn't handle requirements.yml sources with different api versions added
- Related to Story #7751: As an user I want to sync collections and their dependencies added
- Status changed from NEW to ASSIGNED
- Assignee set to bmbouter
- Sprint changed from Sprint 85 to Sprint 86
- Sprint/Milestone set to 0.6.0
- Status changed from ASSIGNED to POST
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Also available in: Atom
PDF
Refactors sync to use asyncio more and many tests
The previous sync machinery design was very complicated due to treating the asynchronous coroutines as synchronous code. This rewrites the sync code to have the coroutines track the work instead.
In doing the rewrite several bugs were fixed also:
It also makes many test improvements:
closes #7739 closes #7741 closes #7777