forked from OurHike/OurHike
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathretained.json
More file actions
41 lines (41 loc) · 3.33 KB
/
Copy pathretained.json
File metadata and controls
41 lines (41 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"_comment": [
"Which releases the backend still promises to answer, and the document each one's",
"clients were built against. RELEASING.md §8c defines the policy; this file is its",
"state, and scripts/check_openapi_compat.py is what enforces it.",
"",
"An entry is added by the release process, alongside the release notes in releases/.",
"Removing one is not a tidy-up: it is a decision to stop supporting that release's",
"clients, and the retention rule below is what says when that is allowed.",
"",
"`superseded` is the date a NEWER release took over, not the date this one shipped.",
"The distinction is the whole of why the clock is written this way - a release that",
"stays current for six months must not age out from under the hikers who installed",
"during those six months the moment three quick releases follow it.",
"",
"`pinned` is the escape hatch, mirroring releases/pinned.json on the data side. An",
"app-store build cannot be forced forward, and a thru-hike is five to seven months",
"against a window measured in ninety days. Set it for a release that shipped an",
"app-store build still in the field, and clear it by hand when that build is",
"genuinely out of support."
],
"policy": {
"supersededDays": 90,
"floor": 3
},
"releases": [
{
"release": "pre-1.0.0",
"document": "pre-1.0.0.json",
"published": "2026-08-08",
"superseded": null,
"pinned": false,
"note": "Not a release. No tag exists yet - `git tag -l` is empty and releases/ holds only a README. This records the API shape as of the date above so the check has something to be true about, and the first real release replaces it rather than joining it.",
"refreshed": [
"2026-08-08, for #430: `ClosureOut.reported_by` and `ClosureOut.verified_by` were removed, and check_openapi_compat.py correctly failed on two response-field removals before this file was touched. Rewriting a baseline to clear that check is the exact failure the script's docstring warns about, so the justification is written here rather than left to be inferred: on this date `git tag -l` was still empty, releases/ still held only a README, and the backend had never been deployed - `fly deploy` has never run and every client build ships with VITE_API_BASE_URL unset. There is no old client, because there is no client. The 'old client reads this field' premise the checker asserts is true in general and false here.",
"This entry is a same-day snapshot, not a compatibility promise, and refreshing it is what its own note above describes. Once a real tag exists this stops being available: a removal then is a major-version break under RELEASING.md 8c, and the baselines move with the release rather than with the change.",
"2026-08-13, for #641: `MaintainerAssignmentOut.maintainer_id` was removed - the same shape as #430's removal above, on the read path #430's own body said to check. The justification is #430's, still true on this date: `git tag -l` is still empty, releases/ still holds only a README, GitHub has zero releases even as drafts, and the backend has still never been deployed. The baseline was edited surgically (the one schema block) rather than regenerated, because a regeneration reflows the whole document and buries the five lines that changed."
]
}
]
}