Closed MythicManiac closed 11 months ago
Attention: 5 lines
in your changes are missing coverage. Please review.
Comparison is base (
1bb366c
) 92.49% compared to head (3c21fa6
) 92.51%.
Files | Patch % | Lines |
---|---|---|
django/thunderstore/repository/models/cache.py | 80.95% | 2 Missing and 2 partials :warning: |
django/thunderstore/repository/tasks/caches.py | 75.00% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Implement the experimental package index API endpoint which provides a full list of all available package versions and their dependencies. The returned fields only include the bare minimum needed for package management.
The returned data format is designed with future proofing in mind; specifically it intends to force API clients to adopt an architecture which supports stream-formatted data consumption rather than relying on processing everything as a single batch. The idea is to support resumable synchronization of the index in the future e.g. by allowing clients to only fetch data that has changed since their previous request.
TODO:
Offer IPFS links and a (fake) IPFS HTTP gateway for clients to use. This is also domain-agnostic as clients can use any IPFS gateway, and further forces clients to adopt decentralization-friendly implementation styles. Implementing this would be relatively straight forward, but it is blocked by having to re-process all existing packages to build the IPFS-compatible identifier. Re-processing all packages is required by a few other pending changes as well, so it could be a good time to push that forward.Just serve a full URL in the response for now. This is the easiest to consume, but breaks future compatibility guarantees.