<feed xmlns='http://www.w3.org/2005/Atom'>
<title>biking_home/internal/ridetest, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/biking_home/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/biking_home/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/'/>
<updated>2026-08-27T09:21:17Z</updated>
<entry>
<title>Extract climb detection into a dedicated climb package</title>
<updated>2026-08-27T09:21:17Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-27T09:21:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=825cf388b55a6c8441e02149749bb6e2968477c0'/>
<id>urn:sha1:825cf388b55a6c8441e02149749bb6e2968477c0</id>
<content type='text'>
Move climb detection, slope, and Cotacol scoring out of ride into a new
climb package that operates on a geometry-only Route (distances, elevations,
coords). Ride embeds climb.Route and keeps its timing and telemetry columns.

- climb.Detect returns []DetectedClimb (Climb + ride-absolute Start).
- Climb owns its sliced geometry; indices are local, with Start reported at
  the detection boundary for absolute position.
- Detected bounds use core.Interval; freeRegions claim suppression fixed.
- ride no longer builds slices: ClimbFromDist/ClimbFromIndexes/climbFrom and
  ride.Climb/Interval/Range are removed; rideanalysis, mountain_pass MatchClimb,
  and web views are rewired to climb types.
- New internal/routetest builds climb.Route from the ride DSL; ridetest reuses
  it and adds timestamps and telemetry.
- Tests moved to climb (synthetic detection and difficulty) and kept in ride
  for GPX-example integration; ride.comparison detection coverage retained.
- mountain_pass.nearestCrossing now reuses geo.Nearest.
</content>
</entry>
<entry>
<title>Migrate cross-package ride test fixtures to the ridetest DSL</title>
<updated>2026-08-25T11:26:22Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-25T11:26:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=e73b7a9ccb4bc61e54d1fdc61b5954879c637d00'/>
<id>urn:sha1:e73b7a9ccb4bc61e54d1fdc61b5954879c637d00</id>
<content type='text'>
Replace raw FromColumns 4-array blocks in official_climb, mountain_pass
and web test rides with ridetest.MustRide strings. Add a Heading option to
ridetest for routes whose points are spaced differently per kilometer
(e.g. the mountain_pass expanded-bounds route at 0.1 degrees/km).

Lap, direction and cluster tests in official_climb keep FromColumns: the
DSL generates monotonic northeast coords and cannot express per-point
loops or reversals.
</content>
</entry>
<entry>
<title>Describe test rides as plain strings with a ridetest DSL</title>
<updated>2026-08-25T11:17:20Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-25T11:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/biking_home/commit/?id=87e29e1eb5a113fbb40d452a193219a40780c302'/>
<id>urn:sha1:87e29e1eb5a113fbb40d452a193219a40780c302</id>
<content type='text'>
Add internal/ridetest parsing "2km at 7% | 1km at -7%" sections into a
ride.Ride, with Sampling, StartCoord, StartTime and StartElevation options,
plus per-section hr/cad/w metrics. Replace the package-private RideBuilder in
climb/difficulty tests and export FromColumnsWithMetrics so metric columns
can be built outside the ride package.
</content>
</entry>
</feed>
