Release Model
Publication requirements
A release is not published until all mandatory checks pass:
✓ GitHub Release exists
✓ Release tag matches manifest
✓ Manifest valid
✓ Version valid
✓ Pricing defined (free or paid)
✓ License configuration valid
✓ Integrity/signature valid
2
3
4
5
6
7
Payment checks are conditional on pricing type:
release
│
┌─────┴─────┐
│ │
FREE PAID
│ │
no Stripe payment link
required required + verified
(repository fork against declared
release access) amount + currency
│ │
└─────┬─────┘
↓
verify manifest
↓
PUBLISH
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pricing.type: "free"→ no Stripe link; the release ships as direct repository fork. Nothing payment-related to verify.pricing.type: "paid"→ provider, Payment Link presence and configuration are mandatory, and the link must match the declared price/currency.
If any mandatory check fails:
BLOCKED
Never silently degraded. Never partially published. Paid releases are never available without payment; free releases never require one.
State machine
Each release has an independent state:
DRAFT
│
▼
VALIDATING
│
├───────────────┐
▼ ▼
BLOCKED PUBLISHED
│
▼
HEALTH CHECK
│
┌────┴────┐
▼ ▼
HEALTHY UNHEALTHY
│ │
▼ ▼
AVAILABLE BLOCKED
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Release isolation
An unhealthy release must never invalidate another release:
v1.0.0 PUBLISHED HEALTHY AVAILABLE
v1.1.0 PUBLISHED HEALTHY AVAILABLE
v1.2.0 PUBLISHED UNHEALTHY BLOCKED
v1.3.0 BLOCKED — BLOCKED
2
3
4
v1.0.0 and v1.1.0 remain purchasable. Buyers of older versions are never punished for a problem in a newer one.
/reposell/health.json
Health is a first-class protocol endpoint, regenerated on every deploy:
{
"schema": "reposell/health/v1",
"status": "healthy",
"repository": "EnzoVezzaro/example-project",
"release": "v1.4.0",
"checks": {
"manifest": "valid",
"release": "valid",
"payment": "valid",
"pricing": "valid",
"license": "valid",
"integrity": "valid"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Unhealthy state names the failing check instead of hiding it:
{
"schema": "reposell/health/v1",
"status": "unhealthy",
"repository": "EnzoVezzaro/example-project",
"release": "v1.4.0",
"checks": {
"manifest": "valid",
"release": "valid",
"payment": "valid",
"pricing": "failed",
"license": "valid",
"integrity": "valid"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
Health vs publication
Intentionally different questions:
| Question | |
|---|---|
| Publication | Was this release successfully published? |
| Health | Is this published release currently valid? |
PUBLISHED ≠ permanently healthy
A previously valid release can become unhealthy when payment configuration changes, manifests change, signatures break, license configuration breaks, or integrity verification fails.
Failure philosophy
Never silently recover from an ambiguous state — the system always explains why:
Payment Link missing (paid release) → BLOCKED
Price mismatch → BLOCKED
Manifest invalid → BLOCKED
Signature invalid → BLOCKED
Health check failed → UNHEALTHY / BLOCKED FOR PURCHASE
Free release → payment checks skipped entirely
2
3
4
5
6
Run it yourself at any time:
reposell health
RepoSell Health
✓ Manifest ✓ Repository
✓ Release ✓ Pricing
✓ Payment ✓ License
✓ Signature
STATUS: HEALTHY
2
3
4
5
6
7
8