Rename v4 to ROADMAP

v4 was always just the server-dependent programme (group rides, accounts, paid backup) plus V3-17. Renaming it to ROADMAP since it's about to become the home for an incoming list of bugs and features that need triage ahead of the next v3-style ticket batch -- that triage takes priority over the existing server-dependent items, none of which are blocking.
This commit is contained in:
2026-08-23 11:32:29 -05:00
parent 70d68b2263
commit b781ee36a8
5 changed files with 34 additions and 21 deletions

View File

@@ -13,7 +13,7 @@
--- ---
# Backlog — v3 and v4 # Backlog — v3 and the ROADMAP
Everything known-outstanding, with enough context to pick up cold. Nothing here is Everything known-outstanding, with enough context to pick up cold. Nothing here is
committed to — it is a menu, roughly ordered by value. committed to — it is a menu, roughly ordered by value.
@@ -21,9 +21,12 @@ committed to — it is a menu, roughly ordered by value.
**v3 is now broken out into tickets: [v3/README.md](v3/README.md).** This document stays **v3 is now broken out into tickets: [v3/README.md](v3/README.md).** This document stays
as the reasoning; the tickets are the executable form. as the reasoning; the tickets are the executable form.
**v3 is everything that can be built with no server.** **v4 is everything that cannot.** **v3 is everything that can be built with no server. The ROADMAP is everything that
That split is the most useful thing in this document: it means v3 can proceed indefinitely cannot, plus whatever bugs and features come up that need triage before the next v3-style
without anyone deciding to run infrastructure or hold other people's location data. ticket batch.** The no-server split is still the most useful structural fact in this
document: it means v3 can proceed indefinitely without anyone deciding to run
infrastructure or hold other people's location data. The ROADMAP is where everything else
gets managed first.
**Before planning anything: run the real-ride checklist in **Before planning anything: run the real-ride checklist in
[the real-ride checklist](port/REAL-RIDE-CHECKLIST.md).** Several items below may turn out to be non-issues, and [the real-ride checklist](port/REAL-RIDE-CHECKLIST.md).** Several items below may turn out to be non-issues, and
@@ -230,8 +233,8 @@ Terse on purpose. Unshaped, to be consolidated later.
### Threads running through these ### Threads running through these
Sign-up, cloud backup and group ride are one programme, not three: they all need a server, Sign-up, cloud backup and group ride are one programme, not three: they all need a server,
identity, and a privacy stance. They have therefore been moved out to **v4** below, and identity, and a privacy stance. They have therefore been moved out to the **ROADMAP**
should be scoped together or not at all. below, and should be scoped together or not at all.
Activity type (now section 4) and theming are independent and much cheaper — either could Activity type (now section 4) and theming are independent and much cheaper — either could
ship alone, and activity type is the natural first v3 task because it forces the migration ship alone, and activity type is the natural first v3 task because it forces the migration
@@ -246,7 +249,15 @@ entirely standalone.
--- ---
# v4 — everything that needs a server # ROADMAP
Formerly "v4." Renamed because it now holds more than the server-dependent programme
below: it's also where Dylan's running list of bugs and features gets triaged before
becoming its own ticket batch, the way v3 was broken out. That triage takes priority over
the items below — nothing here is blocking, all of it has been waiting since before v3
started.
## The server-dependent programme
Split out from v3 deliberately. These three are **one programme, not three items**: each Split out from v3 deliberately. These three are **one programme, not three items**: each
needs a server, an identity system, and a privacy stance, and none of them is worth needs a server, an identity system, and a privacy stance, and none of them is worth

View File

@@ -7,7 +7,7 @@ implementing, so the risks are on paper before they are walked into.
Menu, not a commitment. Nothing here is scheduled. Menu, not a commitment. Nothing here is scheduled.
**Everything in v3 is buildable with no server.** Group rides, accounts and paid cloud **Everything in v3 is buildable with no server.** Group rides, accounts and paid cloud
backup are v4 — see [../BACKLOG.md](../BACKLOG.md). backup are on the ROADMAP (formerly "v4") — see [../BACKLOG.md](../BACKLOG.md).
> **Before starting anything:** [../port/REAL-RIDE-CHECKLIST.md](../port/REAL-RIDE-CHECKLIST.md). > **Before starting anything:** [../port/REAL-RIDE-CHECKLIST.md](../port/REAL-RIDE-CHECKLIST.md).
> The port has never recorded a real ride, and item I3 may still force a change of GPS > The port has never recorded a real ride, and item I3 may still force a change of GPS
@@ -33,7 +33,7 @@ backup are v4 — see [../BACKLOG.md](../BACKLOG.md).
| [V3-14](V3-14-gpx-interop.md) | GPX interoperability | S | V3-01 | Partially done (code only; needs real-device verification) | | [V3-14](V3-14-gpx-interop.md) | GPX interoperability | S | V3-01 | Partially done (code only; needs real-device verification) |
| [V3-15](V3-15-auto-pause.md) | Auto-pause | M | V3-13 *(gated)* | Not started | | [V3-15](V3-15-auto-pause.md) | Auto-pause | M | V3-13 *(gated)* | Not started |
| [V3-16](V3-16-visual-identity.md) | Visual identity | M | V3-04, V3-05 | Partially done (token-level identity shipped; needs outdoor device verification) | | [V3-16](V3-16-visual-identity.md) | Visual identity | M | V3-04, V3-05 | Partially done (token-level identity shipped; needs outdoor device verification) |
| [V3-17](V3-17-osrm-hosting.md) | Self-hosted OSRM: investigate and stand one up | M | — *(needs a server — see the ticket's own note on the v3/v4 boundary)* | Not started | | [V3-17](V3-17-osrm-hosting.md) | Self-hosted OSRM: investigate and stand one up | M | — *(needs a server — see the ticket's own note on the v3/ROADMAP boundary)* | Not started |
## Dependencies ## Dependencies
@@ -52,7 +52,7 @@ no dependencies: V3-01 · V3-02 · V3-04 · V3-06 · V3-07 · V3-10 · V3-12 ·
``` ```
**V3-08/V3-09 are deferred, on request**, pending V3-17 (self-hosted OSRM). See V3-17's **V3-08/V3-09 are deferred, on request**, pending V3-17 (self-hosted OSRM). See V3-17's
own note on why that also puts them in tension with this document's v3/v4 boundary — own note on why that also puts them in tension with this document's v3/ROADMAP boundary —
unresolved by design, not an oversight. unresolved by design, not an oversight.
## Three that carry more weight than their size suggests ## Three that carry more weight than their size suggests

View File

@@ -46,7 +46,7 @@ Keep it plain. This is not a screen anyone should spend time in.
without introducing a second source of truth is the only subtle part. without introducing a second source of truth is the only subtle part.
## Out of scope ## Out of scope
Account settings (v4). Theme selection (V3-16). Account settings (ROADMAP). Theme selection (V3-16).
## Outcome ## Outcome

View File

@@ -59,7 +59,7 @@ Behind the existing map toggle, off by default while it is unproven on battery.
stream, which is already batched. stream, which is already batched.
## Out of scope ## Out of scope
Mounted mode (V3-05). Other riders on the map (v4). Mounted mode (V3-05). Other riders on the map (ROADMAP).
## Outcome ## Outcome
Shipped as designed. `AppDatabase.watchPointsForTrip`/`watchSegmentsForTrip` feed two Shipped as designed. `AppDatabase.watchPointsForTrip`/`watchSegmentsForTrip` feed two

View File

@@ -15,20 +15,22 @@ Directions) or the public OSRM demo (explicitly not for production use).
**This ticket exists because that decision itself has a wrinkle worth naming up front:** **This ticket exists because that decision itself has a wrinkle worth naming up front:**
this whole v3 backlog's organizing principle, stated in `docs/BACKLOG.md`, is *"v3 is this whole v3 backlog's organizing principle, stated in `docs/BACKLOG.md`, is *"v3 is
everything that can be built with no server. v4 is everything that cannot."* A everything that can be built with no server. The ROADMAP (formerly "v4") is everything
self-hosted OSRM instance is a server. Strictly, that makes V3-08 and V3-09 — anything that cannot."* A self-hosted OSRM instance is a server. Strictly, that makes V3-08 and
that depends on this ticket — v4 work by the project's own definition, not v3, even V3-09 — anything that depends on this ticket — ROADMAP work by the project's own
though they're filed under `docs/v3/` today and the routing itself has nothing to do definition, not v3, even though they're filed under `docs/v3/` today and the routing
with the group-rides/accounts/backup programme that currently defines v4. Whether to itself has nothing to do with the group-rides/accounts/backup programme that currently
formally renumber them is a documentation decision for whoever picks this up next; this anchors the ROADMAP. Whether to formally renumber them is a documentation decision for
ticket does not resolve it, only flags it so it isn't silently glossed over. whoever picks this up next; this ticket does not resolve it, only flags it so it isn't
silently glossed over.
## Design ## Design
Two separable questions: Two separable questions:
1. **Where does it run?** A small VPS (the same shape of box that would eventually host 1. **Where does it run?** A small VPS (the same shape of box that would eventually host
the v4 group-ride server, so this could double as an early step toward that) versus the ROADMAP's group-ride server, so this could double as an early step toward that)
something serverless/managed. OSRM's own Docker image is the standard path either way. versus something serverless/managed. OSRM's own Docker image is the standard path
either way.
2. **What data does it need?** A regional OSM extract, not the planet — start with 2. **What data does it need?** A regional OSM extract, not the planet — start with
whatever region actually gets ridden (per `docs/LAUNCH.md`, this is presently a whatever region actually gets ridden (per `docs/LAUNCH.md`, this is presently a
friends-and-family app, so the region is small and known). [Geofabrik](https://download.geofabrik.de/) friends-and-family app, so the region is small and known). [Geofabrik](https://download.geofabrik.de/)