fshy

fshy / Storage

Fedora COPR

copr.fedorainfracloud.org · Storage · 1 record · JSON

Fedora COPR (copr.fedorainfracloud.org) Storage

caveatemail?card?Rretention-clamped

copr.fedorainfracloud.org · paas · storage/fedora-copr · JSON · compare

Free tierNo published byte quota. Official docs FAQ: 'We keep one build for each package in one project indefinitely. All other builds (old packages, failed builds) are deleted after 14 days.' Unlimited projects and builds for Fedora Account holders. Storage is therefore effectively 'one build per package per project, forever', multiplied by packages and projects.
unit unlimited; metered on stored-bytes
Pricenone stated
Per-object capnot stated
RetentionAll other builds (old packages, failed builds) are deleted after 14 days.' Unlimited projects and builds for Fedora Account holders (14 days)
EgressFree. Results are served from copr-be.cloud.fedoraproject.org and the Fedora CDN; there is no billing or bandwidth meter anywhere in COPR.
Identityemail (placeholder) not published
Limits
  • retention-clamped deleted after 14 days source
  • retention-clamped retention: 14 days source
retention: 14 days for all but the newest build of each package (Pulp backend exception: count-based - keeps the 5 most recent successful builds per package, and 'the 14-day preservation period is not guaranteed'). per-object-cap: src.rpm upload is the write path; no published byte limit found. request-rate: not documented. Build timeout default 5 h, max 50 h. Projects that opted into manual repository creation are exempt from the old package removal.
Bindingretention-clamped a clock, not a quota: bytes leave whether or not the client is finished with them
Interfacerest, rclone, cli rest
Toolingcopr-cli (create/build/upload), copr Python API v3 with Swagger at /api_3/docs/, and plain HTTPS dnf repo access. copr-cli buildscm, copr-cli add-package-*. No rclone backend.
Composes withunlimited COPR projects x unlimited packages per project x (one retained build each, indefinitely). Because retention is per *RPM Name* within a *repository*, the documented route is: 'Create a separate Copr project for each version' - and the pruner explicitly only groups by RPM Name, so distinct Name: values (golang1.24 / golang1.25 / golang1.26 are named as the alternative route) each keep their own build forever. That is an unlimited-cardinality, indefinite-retention store, and each further Fedora account carries the same allowance again.
ReliabilityThe 14-day pruner is the whole story: anything but the newest build of a package evaporates, and on the Pulp backend it is even stricter (keeps only 5, time-based guarantee dropped). Copr is a *build* service - content must arrive as a buildable src.rpm, so arbitrary files require wrapping in a spec with %install/%files. Already covered in round 1 B-B5 as 'no published storage quota'; the retention mechanics above are the new detail.
NotesNo published byte quota. Official docs FAQ: 'We keep one build for each package in one project indefinitely. All other builds (old packages, failed builds) are deleted after 14 days.' Unlimited projects and builds for Fedora Account holders. Storage is therefore effectively 'one build per package per project, forever', multiplied by packages and projects.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (4)
datesourcewhat it proved
2026-10-21raw.githubusercontent.com/fedora-copr/copr/main/doc/user_doclines 1026-1027 - 'We keep one build for each package in one project indefinitely. All other builds (old packages, failed builds) are deleted after 14 days.'
2026-10-21withheldsame file lines 1067-1069 - Pulp backend: 'retention is count-based: Copr keeps the 5 most recent successful builds ... the 14-day preservation period is not guaranteed'
2026-10-21withheldsame file lines 1057-1063 - 'Create a separate Copr project for each version' (the multiplication path)
2026-10-21copr-be.cloud.fedoraproject.org/results/@copr/PyPI/fedora-40probe: GET -> 301 (CDN redirect, repo live)
Unknown or withheld values (8)
  • $.evidence[1].url private-url
  • $.evidence[2].url private-url
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted