Skip to content

Latest commit

 

History

History
115 lines (87 loc) · 5.95 KB

File metadata and controls

115 lines (87 loc) · 5.95 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

  • Nothing yet.

1.0.0 - 2026-01-17

Added

Core Features

  • Calendar heatmap visualization with GitHub-style grid layout displaying activity patterns across a full year
  • Real-time data updates based on Grafana time range picker with automatic refresh when time range changes
  • Standard Grafana time-series data support (DataFrame) with automatic detection and processing of timestamp-value pairs
  • GitHub contribution graph aesthetics with familiar visual patterns for developers and data analysts

Color Schemes

  • 6 built-in color palettes: Green (GitHub-style), Blue (professional), Red (alerts/errors), Yellow (warnings), Purple (creative), Orange (energetic)
  • Theme-aware empty cell colors that automatically adapt to Grafana's dark mode, light mode, and high-contrast themes
  • Dynamic color scaling with 4 intensity levels providing clear visual distinction between low and high activity periods
  • Customizable color intensity mapping with smart distribution algorithms for optimal visual contrast

Data Processing

  • 5 aggregation methods for handling multiple data points per day:
    • Sum: Total of all values (ideal for counts, quantities)
    • Count: Number of data points (useful for frequency analysis)
    • Average: Mean value (smooths out outliers)
    • Maximum: Highest value (highlights peak activity)
    • Minimum: Lowest value (identifies baseline activity)
  • Intelligent data handling with automatic filtering of null, undefined, and NaN values to prevent visualization errors
  • Automatic precision control with rounding to 2 decimal places for clean tooltip display
  • Robust timestamp parsing supporting multiple date formats and timezone handling

Customization Options

  • Auto-sizing cells that automatically adjust to fit panel width for optimal space utilization
  • Manual cell size control with slider range from 8-20 pixels for fine-tuned appearance
  • Configurable cell spacing from 1-24 pixels allowing tight or loose grid layouts
  • Adjustable corner radius from 0-6 pixels for square to rounded cell appearance
  • Optional week day labels (Sun-Sat) with abbreviated or full names
  • Optional month labels (Jan-Dec) with intelligent positioning and responsive sizing
  • Optional legend display with color intensity scale and value range indicators

User Interaction

  • Interactive hover tooltips showing formatted date and aggregated value with customizable precision
  • Toggle tooltip visibility for clean screenshots or presentation mode
  • Responsive layout that gracefully adapts to various panel dimensions and screen sizes
  • Smooth hover animations providing immediate visual feedback
  • Accessibility support with proper ARIA labels and keyboard navigation

Technical Implementation

  • React 18.3.0 with modern functional components, hooks, and concurrent features
  • TypeScript 5.9.2 with strict type checking, ensuring type safety and better developer experience
  • Grafana SDK 12.3.1 full compatibility with latest Grafana APIs:
    • @grafana/data for DataFrame processing and time series handling
    • @grafana/ui for consistent theme integration and UI components
    • @grafana/runtime for plugin lifecycle and configuration management
    • @grafana/schema for type-safe configuration options
    • @grafana/i18n for internationalization support
  • @uiw/react-heat-map 2.3.3 for performant core heatmap visualization engine
  • Emotion CSS 11.10.6 for dynamic styling with theme integration and CSS-in-JS benefits

Development Infrastructure

  • Webpack 5 build system with modern module federation and tree-shaking optimizations
  • SWC compilation for ultra-fast TypeScript/JavaScript transformation
  • Jest 29 testing framework with React Testing Library for comprehensive unit test coverage
  • Playwright 1.57 for end-to-end testing across multiple browsers and Grafana versions
  • ESLint 9 with comprehensive rule sets:
    • TypeScript-specific linting for type safety
    • React hooks rules for proper hook usage
    • JSDoc enforcement for better documentation
  • Prettier 3 for consistent code formatting across the entire codebase
  • Docker Compose development environment with Grafana Enterprise for realistic testing scenarios
  • Plugin signing support for official Grafana plugin catalog distribution
  • Automated build pipeline with version management and artifact generation

Plugin Configuration

  • Grafana dependency: Compatible with Grafana >=11.6.0
  • Plugin ID: tim012432-calendarheatmap-panel for unique identification
  • Plugin type: Panel plugin integrating seamlessly with Grafana's dashboard ecosystem
  • Keywords: heatmap, calendar, github, contributions, activity for discoverability

Documentation & Assets

  • Comprehensive screenshots demonstrating multiple themes and configurations:
    • Light theme with orange color scheme
    • Dark theme with green color scheme
    • Tron theme with blue color scheme
    • Configuration panel overview
  • Plugin logo with SVG format for crisp display at any size
  • GitHub repository integration with direct links to source code and issue tracking

Performance Optimizations

  • Efficient data rendering with virtualized components for large datasets
  • Optimized re-rendering using React.memo and useMemo for expensive calculations
  • Lazy loading of non-critical components to improve initial load times
  • Memory-efficient data structures preventing memory leaks in long-running dashboards