From 3588901b258735ed961e70a40ee3bb0cd802284c Mon Sep 17 00:00:00 2001 From: Andrew Grigorev Date: Fri, 20 Jun 2025 15:47:48 +0300 Subject: [PATCH 1/2] Add large non-user-editable files to .gitattributes for a better git-diff usability --- .gitattributes | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..b385728156 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +**/package-lock.json binary +**/yarn.lock binary +poetry.lock binary +redash/query_runner/files/rds-combined-ca-bundle.pem binary +viz-lib/src/visualizations/choropleth/maps/*.geo.json binary From 258f15cf6ab49d7c7becaf234af7dce3e4233b3f Mon Sep 17 00:00:00 2001 From: Andrew Grigorev Date: Fri, 20 Jun 2025 15:48:27 +0300 Subject: [PATCH 2/2] Add comprehensive changelog for v25.01.0 release - Add detailed v25.01.0 changelog covering 3+ years of development - Document 13 new data sources and 5 new alert destinations - Include infrastructure modernization (Poetry, GitHub Actions, Python 3.8-3.10) - Add viz-lib comprehensive changelog for unreleased visualization improvements - Reference Release Notes wiki for granular technical details - Clarify viz-lib versioning status (unreleased changes since v1.0.0) Co-Authored-By: Claude --- CHANGELOG.md | 130 ++++++++++++++++++++++++++++++++++++++++- viz-lib/CHANGELOG.md | 136 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 264 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c53e7b7f4..551f9a2838 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,133 @@ # Change Log +**Note**: For a concise list of changes with GitHub pull request references, see the [Release Notes wiki page](https://github.com/getredash/redash/wiki/Release-Notes). This changelog provides comprehensive summaries and context, while the wiki offers brief descriptions linked to specific pull requests. + +## v25.01.0 - 2025-01-08 + +This major release represents the most significant update in Redash history, spanning over 3 years of development. With 458 files changed, 13,659 insertions, and 7,378 deletions, this release modernizes the entire platform while dramatically expanding integration capabilities. + +This release was made possible by contributions from 100+ contributors across the community. Special thanks to all maintainers and contributors who helped bring these features to life. + +### πŸ”§ Upgrading from v10.1.0 + +**Important**: This is a major version jump that includes significant infrastructure changes. Please review the migration guide carefully before upgrading. + +### πŸ—οΈ Infrastructure & Development + +- **Migration to Poetry**: Complete transition from requirements.txt to pyproject.toml for modern dependency management +- **Python Version Support**: Updated to support Python 3.8-3.10, dropped support for older Python versions +- **CI/CD Modernization**: Migrated from CircleCI to GitHub Actions with improved build pipelines +- **Docker Improvements**: Updated base images and optimized build processes +- **Development Tools**: Replaced flake8/isort with Ruff for faster linting and code formatting + +### πŸ”Œ New Data Sources (13 New Connectors) + +This release adds extensive new data source support: + +- **ArangoDB**: Multi-model database (documents, graphs, key-value) +- **Databend**: Modern cloud data warehouse +- **E6Data**: Cloud analytics platform +- **Google Analytics 4**: Updated GA4 API integration (replacing Universal Analytics) +- **Google Search Console**: SEO and search performance data +- **Ignite**: Apache Ignite in-memory computing platform +- **InfluxDB v2**: Time series database with updated v2 API +- **Netezza (NZ)**: IBM data warehouse appliance +- **Pinot**: Apache Pinot real-time OLAP datastore +- **RisingWave**: PostgreSQL-compatible streaming database +- **Tinybird**: Real-time analytics API platform +- **Yandex Disk**: File storage and sharing service integration +- **Enhanced Elasticsearch**: Added Elasticsearch2 query runner with improved features + +### πŸ“§ New Alert Destinations (5 New Integrations) + +- **Asana**: Project management tool integration +- **Datadog**: Monitoring and analytics platform +- **Discord**: Chat platform with rich embed support +- **Microsoft Teams Webhook**: Enhanced Teams integration with formatting +- **Webex**: Cisco collaboration platform + +### 🎨 Visualizations & UI Improvements + +- **Major viz-lib Modernization**: Complete overhaul of the visualization library with new features, enhanced user experience, and improved build infrastructure (unreleased as separate viz-lib version) + - Multiple color palette support (Viridis, Tableau 10, D3 Category 10) + - Interactive chart click events with drill-down capabilities + - Advanced axis formatting with D3 format strings + - Full Plotly.js integration with all visualization types + - Webpack 5 migration and modern build system + - See [viz-lib/CHANGELOG.md](viz-lib/CHANGELOG.md) for detailed visualization library changes +- **Chart Enhancements**: + - Enhanced chart labels and data formatting + - Improved hover functionality and click interactions + - Better Y-axis aggregation for multiple data points +- **Table Improvements**: + - Better column handling and display options + - Enhanced table visualization reliability +- **TypeScript Migration**: Partial migration with 20+ new TypeScript files for better type safety + +### ⚑ Performance & Reliability + +- **Query Processing**: Reduced query processing wait time for faster response times +- **BigQuery Optimization**: + - Faster schema loading and API integration + - Added date/datetime type mapping + - Improved large result handling +- **Athena Improvements**: Added result reuse support for better performance +- **MongoDB Enhancements**: Flatten all levels for better data structure handling +- **RQ Job Processing**: Fixed issues with job status handling and error management + +### πŸ” Security Improvements + +- **Dependency Updates**: + - Updated cryptography library with multiple security fixes + - Gevent CVE patches applied + - Gunicorn security improvements + - Sentry SDK major version upgrade for better error tracking +- **Security Hardening**: Added `usedforsecurity=False` flag to MD5 hashes where appropriate +- **Authentication**: Enhanced authentication systems and security measures + +### ✨ New Features + +- **Dashboard Duplication**: Added ability to fork/duplicate dashboards +- **Parameter System**: + - New text pattern parameter type for advanced filtering + - Improved parameter validation and handling +- **Query Improvements**: + - Added NULLS LAST option for query ordering + - Enhanced query result handling and error management +- **API Enhancements**: Improved error responses and API reliability + +### πŸ”§ Bug Fixes & Stability + +- **Chart Fixes**: + - Fixed scatter/line/bubble charts with same x-values showing wrong y-values + - Fixed bar chart data labels display + - Resolved chart UI crashes with Plotly upgrades +- **Query Execution**: Fixed UnboundLocalError when checking alerts for queries +- **BigQuery**: Fixed interval handling for API result fetching +- **Error Handling**: Improved error serialization and display +- **Table Visualization**: Fixed various table display and sorting issues + +### πŸ—‘οΈ Removals & Deprecations + +- **Qubole Query Runner**: Removed (service discontinued) +- **Legacy Code**: Cleaned up deprecated code paths and unused dependencies +- **HipChat Destination**: Removed (service discontinued) + +### πŸ“‹ Other Improvements + +- **Schema Browser**: Enhanced with column comments and table descriptions for PostgreSQL and Athena +- **Embed Functionality**: Fixed and improved embedded query displays +- **Monitoring**: Better health checks and system monitoring capabilities +- **Testing**: Enhanced test coverage and reliability across the platform + +### πŸ“š Documentation & Developer Experience + +- **Updated Documentation**: Comprehensive updates to setup and configuration guides +- **Development Environment**: Improved local development setup for ARM64 architectures +- **Code Quality**: Consistent formatting and linting across the entire codebase + +This release represents a complete modernization of the Redash platform, bringing it up to current standards while dramatically expanding its capabilities. The addition of 13 new data sources and 5 new alert destinations, combined with significant performance improvements and security enhancements, makes this the most comprehensive Redash update to date. + ## V10.1.0 - 2021-11-23 This release includes patches for three security vulnerabilities: @@ -117,7 +245,7 @@ Following that, force a recreation of your containers with `docker-compose up -- - Added β€œLast 12 months” option for dynamic date ranges ### Bug Fixes -- Fix: Private addresses were not allowed even when enforcing was disabled +- Fix: Private addresses were not allowed even when enforcing was disabled - Fix: Python query runner wasn’t updated for Python 3 - Fix: Sorting queries by schedule returned the wrong order - Fix: Counter visualization was enormous in some cases diff --git a/viz-lib/CHANGELOG.md b/viz-lib/CHANGELOG.md index e468b426f2..6ad261f03c 100644 --- a/viz-lib/CHANGELOG.md +++ b/viz-lib/CHANGELOG.md @@ -1,5 +1,139 @@ # Change Log +## Unreleased + +This major release of viz-lib represents a significant modernization of the visualization library with new features, enhanced user experience, and improved build infrastructure. + +### 🎨 New Visualization Features + +#### Color Scheme Support for Charts +- **Multiple Color Palettes**: Added support for Viridis, Tableau 10, and D3 Category 10 color schemes alongside the default Redash palette +- **Chart Editor Enhancement**: Users can now select different color schemes in the chart settings panel +- **Enhanced ColorPalette API**: New exports including `AllColorPalettes`, `AllColorPaletteArrays`, and `ColorPaletteTypes` +- **Discrete and Continuous Palettes**: Support for both discrete color sets and continuous color gradients + +#### Pie Chart Enhancements +- **Sorting Toggle**: Added ability to enable/disable sorting on pie charts via a new checkbox in General Settings +- **Maintains Compatibility**: Default behavior preserved unless explicitly disabled + +#### Interactive Chart Features +- **Chart Click Events**: Added interactive click functionality for chart visualizations +- **Drill-down Support**: Charts now support navigation and drill-down capabilities +- **Configuration Options**: + - Toggle to enable/disable click events + - Option to open links in new tab + - Custom URL template support + +#### Advanced Axis Formatting +- **D3 Format Strings**: Added support for custom X and Y axis tick formatting using D3 format specifications +- **Number Formatting**: Custom numeric format strings for precise axis label control +- **Date/Time Formatting**: Custom temporal format strings for time-based axes +- **Context Help**: Added TickFormatSpecs with documentation links for format guidance + +### πŸ“Š Visualization Improvements + +#### Full Plotly.js Integration +- **Complete Plotly Library**: All Plotly visualization types now available through Custom chart type +- **Extended Options**: Access to the full range of Plotly visualization capabilities +- **Modern Webpack Support**: Added Node.js module fallbacks for browser compatibility + +#### Data Processing Enhancements +- **Y-axis Aggregation**: Charts now properly aggregate Y column values instead of displaying only the last value +- **Better Data Handling**: Improved processing of multiple data points with identical X values +- **Chart Label Mapping**: Fixed Map() implementation for accurate chart label display + +#### Heatmap Improvements +- **Better Color Contrast**: Enhanced annotation color selection for improved readability +- **Text Visibility**: Better text contrast on heatmap cells for clearer data presentation + +### πŸ—οΈ Build System Modernization + +#### Webpack 5 Migration +- **Major Upgrade**: Migrated from Webpack 4.42.1 to 5.88.2 +- **Modern Asset Handling**: Replaced `file-loader` with Webpack 5's built-in `asset/resource` modules +- **Optimized Configuration**: Streamlined build configuration with `assetModuleFilename: 'images/[name][ext]'` +- **Node.js Fallbacks**: Added fallbacks for Node.js modules (`fs: false, path: false`) for browser safety + +#### Package Manager Migration +- **NPM to Yarn**: All build scripts migrated to use Yarn for better dependency management +- **Deterministic Builds**: Added `yarn.lock` for reproducible builds across environments +- **Improved Consistency**: Enhanced build reliability and dependency resolution + +### πŸ“¦ Dependency Updates + +#### Major Library Upgrades +- **Plotly.js**: Updated from 1.52.3 to 1.58.5 (latest visualization features and improvements) +- **Axios**: Upgraded from 0.19.2 to 0.28.0 with added axios-auth-refresh 3.3.6 for better request handling +- **Less**: Updated from 3.11.1 to 4.1.3 for modern CSS preprocessing capabilities +- **Babel Ecosystem**: Comprehensive update to 7.22.x series for modern JavaScript support +- **TypeScript Types**: Updated @types/plotly.js to 1.54.22 for better type safety + +#### Build Tool Updates +- **Less-loader**: Updated from 5.0.0 to 11.1.3 with modernized configuration structure +- **Style-loader**: Upgraded from 1.1.4 to 3.3.3 +- **Module Resolver**: Updated Babel plugin to 5.0.0 +- **Testing Infrastructure**: Updated Jest and testing dependencies + +#### Security Updates +- **DOMPurify**: Updated from 2.0.17 to 2.5.4 for enhanced XSS protection +- **Follow-redirects**: Security patches applied to prevent redirect vulnerabilities +- **Multiple Dependencies**: Various security vulnerability fixes across the dependency tree + +### πŸ”§ Development Improvements + +#### Enhanced Type Safety +- **Updated Type Definitions**: Better TypeScript coverage for Plotly.js and other major dependencies +- **Error Prevention**: Various TypeScript errors resolved throughout the codebase +- **Type Safety**: Improved development experience with better autocomplete and error detection + +#### Modern React Support +- **React 16.14.0+**: Increased minimum React version requirement for modern features +- **Component Updates**: Enhanced compatibility with modern React patterns +- **Performance Optimizations**: Better integration with current React best practices + +### πŸ—‘οΈ Removals and Deprecations + +#### Bundle Size Optimizations +- **Moment.js Removal**: Eliminated moment.js dependency to reduce bundle size +- **Modern Date Handling**: Replaced with native JavaScript Date APIs or smaller alternatives +- **File Loader Replacement**: Replaced with Webpack 5's built-in asset modules for cleaner configuration + +#### Reverted Features +- **Table Fixed Columns**: Feature was added but later reverted due to compatibility issues +- **Counter Widget Changes**: Some font size modifications were reverted to maintain layout stability +- **Dependency Migrations**: Some library migrations were reverted to maintain stability + +### ⚠️ Breaking Changes + +#### API Changes +- **ColorPalette Structure**: Expanded ColorPalette API with new exports and structure +- **Minimum React Version**: Now requires React 16.14.0 or higher +- **Moment.js Dependency**: Applications relying on moment.js from viz-lib need alternative solutions + +#### Build System Changes +- **Webpack 5 Requirement**: Consuming applications must be compatible with Webpack 5 +- **Package Manager**: Yarn is now the preferred package manager for development +- **Asset Handling**: Changed asset module configuration may require updates in consuming applications + +### πŸ”„ Migration Guide + +#### For Consuming Applications +1. **Update React**: Ensure React version is 16.14.0 or higher +2. **Webpack 5**: Verify compatibility with Webpack 5 if using custom build configurations +3. **Color Palette API**: Update any code using ColorPalette exports to new structure +4. **Moment.js**: Replace any dependencies on moment.js with alternative date libraries + +#### For Contributors +1. **Use Yarn**: Run `yarn install` instead of `npm install` +2. **Webpack 5**: Familiarize yourself with Webpack 5 configuration patterns +3. **TypeScript**: Enhanced type checking may require addressing new type errors + +This release represents a major step forward in visualization capabilities and development experience, providing a solid foundation for future enhancements while maintaining compatibility for most existing use cases. + +## v1.0.0 - 2021-01-XX + +- Bumped to version 1.0.0 (no changelog was maintained for this release) + ## v0.1.0 - 2020-05-05 -- Created the library from Redash codebase +- Created the library from Redash codebase \ No newline at end of file