Gallery › robotparts › robotparts releases and lanes

robotparts releases and lanes

robotparts' six releases from 2026-10-22 to 2026-10-25 and the 24 branches merged into them, from git: a release is a point at its tag, a lane, integration or contract branch is a bar from the first commit its merge brought in to the merge. Lanes by kind, coloured by the release they shipped in; or by release, nested by kind.

robotpartstimelinetable4 views of one timeline.json

The .base file and its data

Every tab above is one entry of this file; the views read these rows. ⋯ in the toolbar copies the current view as YAML.

# robotparts' releases and the branches merged into them, 2026-10-22 to 2026-10-25, from git (metadata only).
# Obsidian Bases grammar plus data-ui's timeline keys (docs/CONTRACT.md §5).
data: timeline.json
properties:
  title: { displayName: Branch or release }
  kind: { displayName: Kind }
  release: { displayName: Shipped in }
views:
  - type: timeline
    name: Lanes by kind
    start: start
    end: end
    title: title
    color: release
    groupBy: { property: kind, direction: ASC }
    groupOrder: [release, integration, contract, main, lane]
    zoom: { min: PT10M, max: P14D }
  - type: timeline
    name: By release
    start: start
    end: end
    title: title
    color: kind
    groupBy: { property: release, direction: ASC }
    subGroupBy: { property: kind, direction: ASC }
    zoom: { min: PT10M, max: P14D }
  - type: timeline
    name: Releases only
    filters: 'kind == "release"'
    start: start
    title: title
    color: release
  - type: table
    name: All
    order: [title, kind, start, end, release, commits, commit, subject]
    sort:
      - { property: start, direction: ASC }
// timeline.json: 30 rows, 13 KB; the first 3
{
 "id": "robotparts-timeline",
 "title": "robotparts releases and lanes",
 "titleProperty": "title",
 "source": "git -C ~/robotparts log --merges main + release/* tags, 2026-10-21 to 2026-10-26 (metadata only)",
 "properties": {
  "title": {
   "type": "text",
   "label": "Branch or release",
   "width": 200
  },
  "kind": {
   "type": "text",
   "label": "Kind",
   "display": "badge",
   "colors": {
    "release": 8,
    "integration": 7,
    "lane": 1,
    "contract": 4,
    "main": 3
   }
  },
  "start": {
   "type": "date",
   "label": "Start",
   "readOnly": true
  },
  "end": {
   "type": "date",
   "label": "Merged",
   "readOnly": true
  },
  "release": {
   "type": "text",
   "label": "Shipped in",
   "display": "badge",
   "colors": {
    "2026.10.22.1": 1,
    "2026.10.22.2": 2,
    "2026.10.22.3": 3,
    "2026.10.22.4": 4,
    "2026.10.25": 5,
    "2026.10.25.1": 6
   }
  },
  "branch": {
   "type": "text",
   "label": "Branch",
   "hidden": true
  },
  "commits": {
   "type": "number",
   "label": "Commits"
  },
  "commit": {
   "type": "text",
   "label": "Commit"
  },
  "subject": {
   "type": "text",
   "label": "Subject",
   "width": 420
  }
 },
 "rows": [
  {
   "id": "f8e359fd3",
   "title": "integration/v2",
   "kind": "integration",
   "start": "2026-10-22T09:13:55-07:00",
   "end": "2026-10-22T14:31:20-07:00",
   "release": "2026.10.22.1",
   "branch": "integration/v2",
   "commits": 32,
   "commit": "f8e359fd3",
   "subject": "Merge integration/v2: robotparts/2 — Core, Measured, Ingestor, In-CAD, Part Picker (market layer)"
  },
  {
   "id": "a971af78a",
   "title": "lane/incad",
   "kind": "lane",
   "start": "2026-10-22T09:13:55-07:00",
   "end": "2026-10-22T11:31:27-07:00",
   "release": "2026.10.22.1",
   "branch": "lane/incad",
   "commits": 3,
   "commit": "a971af78a",
   "subject": "integrate robotparts/2: lane/incad @ 1c2fd68 (RobotParts Fusion add-in; NOT VERIFIED IN-APP)"
  },
  {
   "id": "6a222e12a",
   "title": "lane/measured",
   "kind": "lane",
   "start": "2026-10-22T09:37:28-07:00",
   "end": "2026-10-22T11:30:34-07:00",
   "release": "2026.10.22.1",
   "branch": "lane/measured",
   "commits": 3,
   "commit": "6a222e12a",
   "subject": "integrate robotparts/2: lane/measured @ d9fd15a (GIM4305-10 level 4, moteus-c1 folder, makers.toml)"
  }
 ]
}
README.md
# robotparts releases and lanes

robotparts' six releases from 2026-10-22 to 2026-10-25 and the 24 branches merged into them, from git: a release
is a point at its tag, a lane, integration or contract branch is a bar from the first commit its merge brought in
to the merge. Lanes by kind, coloured by the release they shipped in; or by release, nested by kind.

- **App:** robotparts
- **Replaces:** reading `git log --graph` and the release tags by hand; robotparts has no timeline page.
- **Shows:** the timeline view (vis-timeline) with `start`/`end`, `groupBy` lanes in `groupOrder`, `subGroupBy`
  nested lanes, `color` from a property, `zoom` limits as ISO 8601 durations, points beside bars, and the same rows
  as a table.
- **Data:** `timeline.json`, written by `source/build.py` from `git -C ~/robotparts log --merges` and
  `tag -l 'release/*'`: hashes, dates and subjects only. Dependency arrows are not drawn: the grammar has no key
  for them yet.

The original UI it replaces

reading git log --graph and the release tags by hand; robotparts has no timeline page.

What it shows

the timeline view (vis-timeline) with start/end, groupBy lanes in groupOrder, subGroupBy nested lanes, color from a property, zoom limits as ISO 8601 durations, points beside bars, and the same rows as a table.

Data

timeline.json, written by source/build.py from git -C ~/robotparts log --merges and tag -l 'release/*': hashes, dates and subjects only. Dependency arrows are not drawn: the grammar has no key for them yet.