Skip to content

v0.2.0

Choose a tag to compare

@pleasantone pleasantone released this 10 Jun 14:56
Immutable release. Only release title and notes can be modified.
4645f7e

0.2.0 (2026-06-10)

⚠ BREAKING CHANGES

  • api: gpxsheet.generate_pdf and gpxsheet.generate_strip are removed. Use gpxsheet.render(layout=..., format=...) instead (layout defaults to portrait). gpxsheet.validate now returns a ValidationReport, not None.
  • service: the web API is reorganized. POST /v1/jobs, the synchronous POST /v1/analyze and POST /v1/preview, and the use_osm/kind request fields are removed. Submit jobs to POST /v1/render, /v1/analyze, or /v1/validate with the GPX and parameters as multipart form fields; poll GET /v1/jobs/{id} and fetch GET /v1/jobs/{id}/result.
  • osm: the use_osm parameter (library + CLI --osm/--no-osm + service GenerateParams.use_osm) and the GPXSHEET_ALLOW_OSM service setting are removed; OSM enrichment always runs. The [osm] install extra is removed (osmnx is now a core dependency). The preview --dpi flag is removed.

Features

  • api: unify the library API into render/analyze/validate (31ece70)
  • display named GPX waypoints on the strip (aa6d305)
  • enrich: down-weight straight "Continue onto" residential changes (58f7988)
  • enrich: promote nameless high-degree forks to decisions (be22f22)
  • enrich: stabilize durable-run detection near MIN_ROAD_RUN_MILES (391b008)
  • layout: nudge START/END-coincident markers off the endpoint (e8acca8)
  • layout: relax stylized turn accumulation to curb ribbon curl (b1675e8)
  • osm: make OSM enrichment intrinsic and a core dependency (a55e834)
  • record unpaved & ferry spans and render styled ribbon stretches (36bbac0)
  • render: auto-fit decisions per lane (decisions_per_lane=0/None) (8b43eea)
  • render: auto-fit decisions per lane (decisions_per_lane=0/None) (c8b9ee9)
  • render: default decisions_per_lane to auto-fit (8c954cc)
  • render: default decisions_per_lane to auto-fit (c205554)
  • render: make landscape honor decisions_per_lane (b0bab60)
  • service: redesign web API around typed async job endpoints (8df0149)
  • strip: alternate label sides to de-collide dense strips (0bac099)
  • strip: make named reassurance (town) labels more prominent (fedf270)
  • strip: symbol glyphs and mileage on fuel/food/ferry markers (bc148a3)

Bug Fixes

  • enrich: count only outgoing spurs as roundabout exits (903a96d)
  • enrich: fall back to drive_service so remote roads still enrich (a6b8398)
  • enrich: restrict Continue-onto penalty to unambiguous cul-de-sac suffixes (8ef0c5e)
  • enrich: stop nameless-fork promotion flooding twisty roads (239c2aa)

Refactoring

  • render: name the renderer colors instead of inline hex (88c4971)
  • render: named colors + landscape honors decisions_per_lane (452299f)

Documentation

  • add front-end web API integration guide (10c8946)
  • pdf: drop stale cue-zone wording from pdf docstrings (0a0eb63)
  • publish library + web API documentation to ReadTheDocs (83b5ddd)
  • publish library + web API documentation to ReadTheDocs (26262ed)
  • todo: mark OSM robustness + #7/#8/#9 validated and fixed (5fef18d)
  • todo: note osmnx thin-polygon enrichment fallback (ca10be7)
  • todo: note waypoint-projection cutoff + name-prefix revisit (feedd34)
  • todo: record shipped polish + remaining ground-truth tuning (0bd620f)