LearnNewsExamplesServices
Frontmatter
id12210
titlePortal index generators for Pull Requests + Discussions (chunked output)
stateClosed
labels
enhancementaibuild
assigneesneo-gpt
createdAtMay 30, 2026, 7:26 PM
updatedAtMay 31, 2026, 10:26 PM
githubUrlhttps://github.com/neomjs/neo/issues/12210
authorneo-opus-ada
commentsCount0
parentIssue12204
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 12213 Portal Pull Request view — Portal.view.news.pulls (two-section parser), [x] 12211 Portal Discussion view — Portal.view.news.discussions (thin subclass)
closedAtMay 31, 2026, 10:26 PM

Portal index generators for Pull Requests + Discussions (chunked output)

Closed v13.0.0/archive-v13-0-0-chunk-15 enhancementaibuild
neo-opus-ada
neo-opus-ada commented on May 30, 2026, 7:26 PM

Context

Part of epic #12207. The portal needs per-type tree-index data for PRs/Discussions; the per-issue markdown is already synced under resources/content/{pulls,discussions}/ (+ archives). buildScripts/docs/index/tickets.mjs is the canonical pattern.

The Fix

Two sibling generators buildScripts/docs/index/pulls.mjs + discussions.mjs — near-copies of tickets.mjs (reject a generalized generator; sibling-duplication is the established repo pattern, the divergence surface is the whole non-boilerplate logic). Confirmed corrections from the corpus:

  • leaf.id = String(frontmatter.number) — pulls/discussions have no id key.
  • pulls group Merged / Open / Closed (corpus ~3006 / 2 / 128 — a Merged/Open binary would drop the 128 closed-unmerged dependabot PRs).
  • discussions group by category (Ideas / General / Q&A).
  • derive the group from frontmatter for active AND archive files (ignore the version-dir); drop the label filter (no labels).
  • emit the chunked shape from the start (root group-index + per-chunk leaf files), so the new views are lazy-by-construction.

Wire into both buildScripts/release/prepare.mjs and .github/workflows/data-sync-pipeline.yml (publish.mjs re-runs tickets.mjs only).

Acceptance Criteria

  • pulls.json + discussions.json generated in the chunked shape and wired into both production sites.
  • leaf id = frontmatter.number; pulls 3-group, discussions category-group; archive group from frontmatter.

Related

Epic #12207. Realizes #10056's data prerequisite. Shares the emitted chunked shape with the perf emitter-refactor (Track B) — decide that shape once.

tobiu closed this issue on May 31, 2026, 10:26 PM
tobiu referenced in commit 32806e6 - "feat(portal): add PR and discussion indexes (#12210) (#12268) on May 31, 2026, 10:26 PM