Skip to content

vid-ingest: final end-to-end verification (after #723–#739 close) #740

@zackees

Description

@zackees

Part of #722. Blocked on every sibling vid-ingest issue (#723#739) being closed first.

Goal

Once every per-vendor ingest sub-issue under #722 is closed and the merged online-data/usb-vid.json carries entries from each registered source, run a single end-to-end verification pass that:

  1. Forces a fresh nightly run of the Update data workflow (workflow_dispatch from main) so online-data is republished with the union of every new tier-N fetch.
  2. Confirms every major vendor's VID resolves to its expected vendor name via plain HTTP — i.e. curl https://raw.githubusercontent.com/FastLED/fbuild/online-data/data/usb-vid.json | jq '."VVVV".vendor' returns the expected string.
  3. Generates a curated list of common board names that real fbuild users plug in, runs each through the published SQLite-over-HTTP database on the www branch (or the equivalent JSON path), and records the hit rate.
  4. Writes the results table back into THIS issue body (edit-in-place), then stops. Do NOT close feat(online-data): ingest per-board VID:PID tables from upstream vendor manifests #722 when finished — the meta issue stays open for ongoing curation.

Step 1 — republish online-data

gh workflow run update-data.yml --repo FastLED/fbuild --ref main
gh run watch "$(gh run list --repo FastLED/fbuild --workflow update-data.yml --branch main --limit 1 --json databaseId --jq '.[0].databaseId')" --exit-status

Expected outcome: the Summary step's table shows every tier as success, and the publish step pushes a new commit to online-data (and a sibling commit to www).

Step 2 — vendor-VID resolution sweep

For each of the 17 vendors filed under #722, fetch the published JSON and assert vendor-name resolution. Fill in the Vendor-resolution results table at the bottom of this issue. Each row needs:

  • VID — lowercase 4-hex
  • Expected substring — e.g. "Espressif" for 0x303A
  • Actual — the live vendor value at that VID
  • Status — ✅ / ❌

Use:

for vid in 303a 2e8a 0483 1fc9 1915 03eb 04d8 10c4 2544 1a86 0403 1cbe 045b 2341 2a03 239a 1b4f 16c0 2886; do
  printf '0x%s: ' "$vid"
  curl -sS "https://raw.githubusercontent.com/FastLED/fbuild/online-data/data/usb-vid.json" \
    | jq -r --arg v "$vid" '.[$v].vendor // "<missing>"'
done

Step 3 — common board names → VID:PID hit rate

The point of the per-vendor ingest work was to push the headline "what board is this VID:PID?" query to high accuracy. This step measures actual accuracy.

Generate a list of common board names (target ≥ 40) drawn from the fbuild build matrix + popular community boards. Suggested seed list:

arduino uno, arduino leonardo, arduino mega, arduino micro, arduino zero, arduino due, arduino mkr1000, arduino nano every, arduino nano 33 iot, arduino nano matter, arduino giga r1,
arduino uno r4 wifi, arduino nano rp2040 connect,
esp32 devkit v1, esp32-s2 saola, esp32-s3 devkitc-1, esp32-c3 devkitm-1, esp32-c6 devkit, esp32-h2 devkit, esp32-p4 function ev,
unexpected maker tinys2, unexpected maker tinys3, unexpected maker feathers3,
lilygo ttgo t-display, lilygo t-watch,
adafruit feather nrf52840 express, adafruit feather nrf52840 sense, adafruit itsybitsy nrf52840, adafruit circuit playground bluefruit, adafruit clue, adafruit matrix portal m4, adafruit qt py m0, adafruit qt py rp2040,
raspberry pi pico, raspberry pi pico 2, raspberry pi pico w, raspberry pi debug probe,
seeed xiao rp2040, seeed xiao nrf52840, seeed xiao mg24, seeed xiao esp32-s3,
sparkfun pro micro, sparkfun thing plus matter, sparkfun redboard artemis,
teensy 3.2, teensy 4.0, teensy 4.1, teensy lc,
nucleo f429zi, nucleo f439zi, bluepill stm32f103c8, blackpill stm32f411ce,
nice!nano, nrfmicro,
nxp lpc845-brk, lpcxpresso845-max,
ch32v003 evt

For each name, do a string-match query against the published board data (FTS5 on www's vidpid + vid_vendor tables, OR direct JSON grep on vendor_boards.json / pio-boards.json). For each board:

Fill in the Board-name match results table at the bottom.

Step 4 — write results back into this issue

When both tables are filled and tallied, edit THIS issue body in place via:

gh issue edit <THIS-ISSUE-NUMBER> --repo FastLED/fbuild --body-file <updated-body.md>

Then leave the issue open — closing it would suggest the work is permanently done; in reality the curation is an ongoing maintenance burden, so this issue stays open as the "current state of the world" pin.

Critically: do NOT close meta issue #722. It stays open as the perpetual curation tracker.

Vendor-resolution results

Filled in by the runner of this issue. One row per VID from the per-vendor sub-issues.

VID Expected substring Actual Status
0x303a Espressif pending
0x2e8a Raspberry Pi pending
0x0483 STMicroelectronics pending
0x1fc9 NXP pending
0x1915 Nordic pending
0x03eb Atmel pending
0x04d8 Microchip pending
0x10c4 Silicon Labs / Cygnal pending
0x2544 Silicon Labs pending
0x1a86 QinHeng / WCH pending
0x0403 FTDI / Future Technology pending
0x1cbe Apollo3 / Sparkfun / Luminary pending
0x045b Renesas pending
0x2341 Arduino pending
0x2a03 Arduino pending
0x239a Adafruit pending
0x1b4f SparkFun pending
0x16c0 Van Ooijen / PJRC pending
0x2886 Seeed pending

Tally: pending / 19

Board-name match results

Filled in by the runner of this issue. One row per board name from the seed list (or a richer list — ≥ 40 entries).

Board name (query) Best fbuild board id Top-ranked VID Vendor name Match?
arduino uno pending pending pending
arduino leonardo pending pending pending
esp32-s3 devkitc-1 pending pending pending
raspberry pi pico pending pending pending
teensy 4.1 pending pending pending
nice!nano pending pending pending
… ≥35 more …

Tally: pending hit-rate / total

Done criteria

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions