Hackage
haskell.org · 2 records in Storage · JSON
Records 2
- caveatHackage (hackage.haskell.org)
Storagefree tieridentity institution?card?evidence reportedstale on 2026-11-05disagrees
- fails: quotahackage (haskell)
Storageidentity email?card?evidence reportedstale on 2026-11-05disagrees
Sibling records disagree:
- identity_kind:
storage/hackagesays institution, storage/hackage-2 says email - verdict:
storage/hackagesays qualifies-with-caveat, storage/hackage-2 says fails-quota
- Free allowance
- No published per-package or total quota found on the upload page or the server API.
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- institution?placeholder, not evidence; card unknown, phone unknown
- Binding limit
- noneno named constraint binds
- Evidence
- reported3 sources; a third party said so
- Freshness
- stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
| Free tier | No 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 |
|---|---|
| Price | none stated |
| Identity | institution (inferred, not read) not published |
| Egress | Free. Content is served from hackage.haskell.org and the hackage-content.haskell.org CDN. No billing, no bandwidth meter. |
| Per-object cap | not stated |
| Retention | No 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' |
| Interface | rest rest |
| Tooling | cabal 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 with | unlimited 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. |
| Reliability | Immutable 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. |
| Parsed numbers |
|
Evidence 3
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | hackage.haskell.org/package/pandoc-3.5/pandoc-3.5.tar.gz | probe: GET -> 200, 7,483,625 bytes |
| 2026-10-21 | hackage-origin.haskell.org/api | probe: GET -> 200, 62,403 bytes (open route listing) |
| 2026-10-21 | hackage.haskell.org/upload | 'Upload and publish a package permanently ... You can only upload a package version once and this cannot be undone' |
Unknown values 3
- per object cap notes: the field may be stated in a source that was not read
- per object cap stated: the field may be stated in a source that was not read
- retention notes: the field may be stated in a source that was not read
hackage (haskell)
StorageSibling records disagree:
- identity_kind:
storage/hackagesays institution, storage/hackage-2 says email - verdict:
storage/hackagesays qualifies-with-caveat, storage/hackage-2 says fails-quota
- Free allowance
- 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…
- Verdict
- fails: quotathe free allowance is too small to matter
- Cost
- not stated
- Identity
- email?placeholder, not evidence; card unknown, phone unknown
- Binding limit
- noneno named constraint binds
- Evidence
- reported2 sources; a third party said so
- Freshness
- stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
| Free tier | 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… unit none; metered on none |
|---|---|
| Price | none stated |
| Identity | email (placeholder) not published |
| Egress | not recorded |
| Interface | unknown |
| Tooling | not recorded |
| Reliability | 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… |
Evidence 2
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | hackage.haskell.org/upload | 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 |
| 2026-10-21 | raw.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…","retry_when": null,"first_recorded": "2026-10-21"} |
|---|
Unknown values 7
- chaining: no value was recorded for this field
- egress terms: no value was recorded for this field
- interface: the access interface was not established
- per object cap notes: no value was recorded for this field
- per object cap stated: no value was recorded for this field
- retention stated: no value was recorded for this field
- tooling: no value was recorded for this field