Skip to content

Release Notes - v0.12.0

Overview

This release introduces multi-project changelog aggregation with new schangelog portfolio commands for tracking releases across hundreds of repositories. Generate GitHub-style activity heatmaps and velocity dashboards from aggregated changelog data.

Highlights

  • Multi-project changelog aggregation with schangelog portfolio commands
  • GitHub-style activity heatmap and velocity dashboard generation
  • Local-first resolution with optional remote fetching via HITL approval

New Features

Portfolio Command Group

New subcommands under schangelog portfolio for multi-project operations:

Command Description
portfolio discover Scan GitHub orgs/users for repositories with CHANGELOG.json
portfolio aggregate Combine changelogs from multiple projects into a unified portfolio
portfolio metrics Generate time-series metrics and dashboard data

Manifest Schema

Define projects to aggregate using a manifest file (similar to go.mod but for changelogs):

{
  "name": "My Portfolio",
  "sources": [
    {"type": "org", "name": "my-org"},
    {"type": "user", "name": "my-username"}
  ],
  "projects": [
    {"path": "github.com/my-org/project-a"},
    {"path": "github.com/my-org/project-b/sdk/go"}
  ]
}

Local-First Resolution

The aggregator searches for changelogs locally before fetching from GitHub:

  1. Check LocalPath override in manifest
  2. Search ~/go/src/{path}
  3. Search $GOPATH/src/{path}
  4. Mark as pending for remote fetch (requires approval)

Remote Fetching with HITL Approval

Two-step flow for fetching changelogs from GitHub:

# Step 1: List projects that need remote fetch
schangelog portfolio aggregate manifest.json --pending

# Step 2: Approve and fetch
schangelog portfolio aggregate manifest.json --approve -o portfolio.json

Category Roll-up Rules

Maps 20 changelog categories to 6 aggregate groups:

Rollup Categories
Features Added, Highlights
Fixes Fixed, Security
Improvements Changed, Performance, Deprecated, Removed
Breaking Breaking, UpgradeGuide
Maintenance Dependencies, Build, Tests, Documentation, Infrastructure, Internal, Observability, Compliance
Community Contributors, KnownIssues

Time-Series Metrics

Generate metrics with configurable granularity:

# Day granularity for heatmaps
schangelog portfolio metrics portfolio.json --granularity day -o metrics.json

# Month granularity for trend charts
schangelog portfolio metrics portfolio.json --granularity month

Dashboard Export

Generate dashforge-compatible dashboard data:

# Dashboard-ready JSON
schangelog portfolio metrics portfolio.json --dashboard -o dashboard-data.json

# Complete dashboard definition with velocity template
schangelog portfolio metrics portfolio.json --dashboard --template velocity -o dashboard.json

Aggregate Package

New aggregate package with types and functions for multi-project operations:

Type Description
Manifest Project list definition with sources and projects
ProjectRef Reference to a project (path, local override, discovered flag)
Resolver Local-first path resolution for finding changelogs
Portfolio Aggregated changelog data from multiple projects
MetricsReport Time-series metrics with roll-ups and daily activity
DashboardExport Dashboard-ready data for visualization
RollupRules Category grouping definitions

Dependencies

  • Added github.com/google/go-github/v84 for GitHub API access
  • Updated github.com/grokify/gogithub to v0.10.0