Skip to content

Port release-index generators from distroessed#29

Merged
richlander merged 1 commit intomainfrom
port-index-generators
Mar 26, 2026
Merged

Port release-index generators from distroessed#29
richlander merged 1 commit intomainfrom
port-index-generators

Conversation

@richlander
Copy link
Copy Markdown
Owner

Ports the three release-index generator tools (VersionIndex, ShipIndex, LlmsIndex) from distroessed into this repo, merged as subcommands of dotnet-release generate.

New subcommands

Command Description
generate version-index <dir> [out] [--url-root <url>] Root + major + patch version indexes, downloads directories, manifests
generate timeline-index <dir> [out] [--url-root <url>] Chronological year/month timeline indexes with CVE data
generate llms-index <dir> [out] [--url-root <url>] AI-optimized llms.json for LLM consumption
generate indexes <dir> [out] [--url-root <url>] Runs all three generators (shared data loading)

Structure

  • Dotnet.Release.IndexGenerator — new library project with all generator logic (~3,200 lines across 13 files)
  • Dotnet.Release/Summary/ — data loading layer that reads release-notes directories into MajorReleaseSummary / PatchReleaseSummary / ReleaseCalendar records
  • Dotnet.Release/Location.cs — static URL root management for --url-root support

Changes to existing code

  • Lifecycle.ReleaseType made nullable (ReleaseType?) to match source data
  • Lifecycle.Supported made settable (was computed from Phase)
  • ReleaseStability gained FindLatestVersion, FindLatestLtsVersion, DeterminePhaseFromVersion
  • PatchReleaseOverview gained Sdks property
  • HistoryYearIndex.cs gained HistoryMonthEntry record
  • Graph types extended: IndexTitles, LinkTitles, HAL helpers, manifest/LLMs types
  • Serializer contexts updated for new types

Testing

Tested against ~/git/core/release-notes — generates 398 JSON files successfully including root index, per-version indexes, timeline hierarchy, downloads directories, and llms.json.

Merge VersionIndex, ShipIndex, and LlmsIndex tools into dotnet-release
as subcommands of 'generate':
  - version-index: root + major + patch version indexes, downloads
  - timeline-index: chronological year/month timeline indexes
  - llms-index: AI-optimized llms.json
  - indexes: runs all three

New library: Dotnet.Release.IndexGenerator with all generator logic.
Summary data layer added to Dotnet.Release (Summary/ namespace).
Shared helpers deduplicated (HAL link generators, index helpers).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander richlander merged commit a821f19 into main Mar 26, 2026
8 checks passed
@richlander richlander deleted the port-index-generators branch March 26, 2026 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant