Project goal: Build a public, static visualization site that consumes the existing modernization dataset (from GitHub) during its build process to present dashboards and per‑plugin reports
Skills to study/improve: Javascript/Typescript, HTML, CSS, Dashboard, Data Visualization, UI/UX Design
The Jenkins plugin-modernizer tool is a CLI that applies migrations and plugin transformations using OpenRewrite recipes (for example, BOM alignment, parent POM updates, deprecated APIs, test migration). As part of GSoC 2025, its runs produced structured, machine-readable metadata that is collected in the jenkins-infra/metadata-plugin-modernizer repository.
This project proposes building a public, static "Plugin Modernizer Stats" visualization site that:
Aggregates the collected modernization metadata
Presents clear dashboards, drilldowns, and per-plugin reports
Highlights priority areas and ecosystem-wide modernization needs
Helps maintainers plan upgrades and helps newcomers find impactful contributions
Delivery may be hosted under stats.jenkins.io or as a separate static site, depending on infra preferences.
Jenkins has hundreds of plugins maintained by a distributed community; visibility into modernization status is limited.
A browsable, fast, and resilient static site reduces operational load while maximizing reach.
The site presents modernization results as understandable guidance, showing maintainers where effort most improves security, stability, and compatibility.
Build a static site that consumes the existing dataset from jenkins-infra/metadata-plugin-modernizer during the build process (pull raw data directly from GitHub)
Provide global views and per-plugin pages with clear, actionable visualizations (parent POM, BOM, test frameworks, deprecated APIs)
Implement useful dashboards and tables with basic client-side filtering (by maintainer/org, labels, severity)
Ensure fast, reliable publishing via lightweight CI that rebuilds on a schedule or data changes
Focus on user-facing clarity: concise summaries, status badges, and links to repos/issues
Re-implement core analyses from plugin-modernizer (reuse its outputs)
Implement dynamic backends or server-side APIs (site remains static and built from GitHub data)
Replace developer tutorials; focus is on status visualization
Home: high-level ecosystem health metrics and trends
Dashboards: filters by modernization topic (parent POM, BOM, test frameworks, deprecated APIs)
Plugin reports: single-page summaries with current status, recommended steps, links to repo/issues
Data explorer: table views with sorting/filtering, CSV/JSON export
Methodology and data dictionary pages
Choose a generator suitable for large tables
Create pages: overview, dashboards, plugin detail, methodology
Implement client-side filtering for large lists (TypeScript)
TypeScript
React
Static site generation
HTML/CSS
Data visualization (Apache ECharts; Plotly.js acceptable)
CI/CD (GitHub Actions or Jenkins)
Working with CSV/JSON datasets
Frontend: React + TypeScript with Vite.js (preferred) or Gatsby
Charts: Apache ECharts (preferred), Plotly.js (acceptable)
Hosting: stats.jenkins.io or GitHub Pages depending on infra decision
Automation: GitHub Actions or Jenkins Pipeline for scheduled/data-triggered builds
Increased modernization velocity by surfacing clear, actionable status
Lower maintenance burden via a static, cacheable public site
Improved onboarding paths for new contributors via "high-impact" views
Better ecosystem health through visibility and trend tracking
Source of truth: jenkins-infra/metadata-plugin-modernizer
Data format: CSV and JSON from the GitHub repository; ingested at build time
Build frequency: scheduled (for example, daily) plus event-based triggers
Hosting: prefer stats.jenkins.io if feasible; otherwise GitHub Pages or infra-approved bucket
Privacy: only public plugin data; no user tracking beyond anonymous analytics if approved
Show prior work with static sites or dashboards
Comfortable with data modeling and TypeScript
Willingness to iterate with Jenkins community feedback
Write clear docs and tests
Plugin Modernizer: jenkinsci/plugin-modernizer
Metadata repo: jenkins-infra/metadata-plugin-modernizer
Infra statistics site: stats.jenkins.io
Infra statistics code: jenkins-infra/infra-statistics
Slack: #gsoc-plugin-modernizer in the CDF Slack workspace
GSoC 2025 project page: /projects/gsoc/2025/projects/plugin-modernizer/