fshy

fshy / Storage

Hackage

haskell.org · Storage · 2 records · JSON

Hackage (hackage.haskell.org) Storage

caveatinstitutionno cardRdisagrees

hackage.haskell.org · registry · storage/hackage · JSON · compare

Sibling records disagree:

Free tierNo published per-package or total quota found on the upload page or the server API. Uploads are permanent: 'Upload and publish a package permanently' and 'You can only upload a package version once and this cannot be undone'. Real large package verified: pandoc-3.5.tar.gz is 7,483,625 bytes. Packages must be cabal sdist output (gzipped tar with package.cabal).
unit mixed; metered on unstated
Pricenone stated
Per-object capnot stated
RetentionNo published per-package or total quota found on the upload page or the server API. Uploads are permanent: 'Upload and publish a package permanently' and 'You can only upload a package version once and this cannot be undone'
EgressFree. Content is served from hackage.haskell.org and the hackage-content.haskell.org CDN. No billing, no bandwidth meter.
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: kage or total quota found on the upload page or the server API. Uploads are permanent: 'Upload and publish a package permanently' and 'You can only upload a package version once and
Bindingnone no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names
Interfacerest rest
Toolingcabal upload / stack upload (write), hup (a dedicated upload client, hackage.haskell.org/package/hup), Hackage server API at hackage-origin.haskell.org/api (open, 62,403-byte route listing), plain HTTPS tarball GET (read).
Composes withunlimited packages x unlimited versions per package (versions are never deleted and the index keeps all of them) x unlimited free Hackage accounts. Content must be a Cabal sdist, but the sdist can contain arbitrary files declared in extra-source-files - so a multi-GB blob can be shipped as a package's data. Multiply: N accounts x M packages x K versions.
ReliabilityImmutable by design - a bad upload cannot be deleted, which is irreversibility risk in the other direction. No documented byte ceiling means the ceiling is empirical and could change without notice. Read path is plain static files and reliable.
NotesNo published per-package or total quota found on the upload page or the server API. Uploads are permanent: 'Upload and publish a package permanently' and 'You can only upload a package version once and this cannot be undone'. Real large package verified: pandoc-3.5.tar.gz is 7,483,625 bytes. Packages must be cabal sdist output (gzipped tar with package.cabal).
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (3)
datesourcewhat it proved
2026-10-21hackage.haskell.org/package/pandoc-3.5/pandoc-3.5.tar.gzprobe: GET -> 200, 7,483,625 bytes
2026-10-21hackage-origin.haskell.org/apiprobe: GET -> 200, 62,403 bytes (open route listing)
2026-10-21hackage.haskell.org/upload'Upload and publish a package permanently ... You can only upload a package version once and this cannot be undone'
Unknown or withheld values (4)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted

hackage (haskell) Storage

fails: quotaemail?card?Rdisagrees

hackage.haskell.org/upload · rejected-provider · storage/hackage-2 · JSON · compare

Sibling records disagree:

Free tierNo documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityNo documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib
NotesNo documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21hackage.haskell.org/uploadNo documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib
2026-10-21raw.githubusercontent.com/haskell/hackage-server/master/src/cited as the basis of the rejection: No documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "No documented size limit and no documented quota — could not establish any number from the upload page, the FAQ, or the server source (the upload handler has no size guard visible in Distrib",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded