diff --git a/src/navigation.js b/src/navigation.js index 3ee9b79..565aaf6 100644 --- a/src/navigation.js +++ b/src/navigation.js @@ -27,6 +27,10 @@ export const headerData = { text: 'About us', href: '/support', }, + { + text: 'Roadmap', + href: '/roadmap', + }, { text: 'Lychee SE', href: '/get-supporter-edition', diff --git a/src/pages/roadmap.astro b/src/pages/roadmap.astro new file mode 100644 index 0000000..9ba1816 --- /dev/null +++ b/src/pages/roadmap.astro @@ -0,0 +1,399 @@ +--- +import Layout from '~/layouts/PageLayout.astro'; +import Hero from '~/components/widgets/Hero.astro'; + +const metadata = { + title: 'Roadmap - Lychee Release History', + description: 'Track the evolution of Lychee through our release history and upcoming features', +}; + +// Release data extracted from releases.md +const releases = [ + { version: 'v6.10.4', date: 'Dec 11, 2025', title: 'Minor Reflected SSRF fix', type: 'security', highlights: ['Fixed SSRF vulnerability with redirect validation', 'Added expert configuration to disable URL redirects'] }, + { version: 'v6.10.3', date: 'Dec 4, 2025', title: 'Video support in embedded galleries', type: 'feature', highlights: ['Added video support to embedded galleries', 'Translations in EmbedCodeDialog', 'Fixed base URL for embedded galleries'] }, + { version: 'v6.10.2', date: 'Nov 18, 2025', title: 'Translation updates and fixes', type: 'enhancement', highlights: ['Translation of all settings in admin panel', 'Fixed groups not loading in share dialog', 'Fixed SmartAlbum portrait errors'] }, + { version: 'v6.10.1', date: 'Nov 15, 2025', title: 'Transparency option and fixes', type: 'enhancement', highlights: ['Option to hide photo action dock', 'Fixed delete in Dock', 'Fixed Polish character search'] }, + { version: 'v6.10.0', date: 'Nov 10, 2025', title: 'Embed support & checksum', type: 'major', highlights: ['Javascript-based embed support', 'Checksum verification in diagnostics', 'Fixed click detection issues'] }, + { version: 'v6.9.4', date: 'Oct 29, 2025', title: 'Signing & migration fixes', type: 'enhancement', highlights: ['Changed to .sigstore.json signing', 'Fixed user group issues', 'Untagged album feature', 'Webshop backend prep'] }, + { version: 'v6.9.2', date: 'Sep 19, 2025', title: 'Minor fixes', type: 'bugfix', highlights: ['Improved subfolder setup', 'Move to S3 command', 'Option to disable server imports'] }, + { version: 'v6.9.1', date: 'Aug 31, 2025', title: 'Import from server is back!', type: 'feature', highlights: ['Import from server via Web UI', 'Drag & select returned', 'Tag album and/or support'] }, + { version: 'v6.9.0', date: 'Aug 27, 2025', title: 'Watermarking, Zip, Renamer', type: 'major', highlights: ['🌟 Watermarking (SE)', '🌟 Zip upload (SE)', '🌟 Renamer (SE)', 'Timeline page'] }, + { version: 'v6.8.1', date: 'Aug 18, 2025', title: 'Migration fix', type: 'bugfix', highlights: ['Sync uses jobs', 'Tag albums and/or', 'Drag & select back', 'Fixed tag migration'] }, + { version: 'v6.8.0', date: 'Aug 17, 2025', title: 'Tags refactoring', type: 'major', highlights: ['Tags system refactored', 'Tag autocomplete', 'Pinned albums', 'Custom copyright footer'] }, + { version: 'v6.7.2', date: 'Aug 7, 2025', title: 'Login options', type: 'enhancement', highlights: ['Login throttling', 'Configurable login methods', 'Links module'] }, + { version: 'v6.7.1', date: 'Jul 25, 2025', title: 'User groups (SE)', type: 'feature', highlights: ['🌟 User groups (SE)', 'RSS feed improvements', 'Swipe gesture options', 'Scrolling UX improved'] }, + { version: 'v6.7.0', date: 'Jul 1, 2025', title: 'Flow, Sync, Multi-admin', type: 'major', highlights: ['Flow: social-friendly feed display', 'Sync revamped with reverse', '🌟 Multiple admins (SE)'] }, + { version: 'v6.6.14', date: 'Jun 27, 2025', title: 'Cosmetic hotfix', type: 'bugfix', highlights: ['Fixed header display issue'] }, + { version: 'v6.6.13', date: 'Jun 27, 2025', title: 'SSRF vulnerability fix', type: 'security', highlights: ['Fixed Server-Side Request Forgery', 'URL validation checks', 'Optional gallery header image'] }, + { version: 'v6.6.12', date: 'Jun 26, 2025', title: 'Persian & RTL support', type: 'feature', highlights: ['Persian language', 'Right-to-Left support', 'Invite links', 'Fixed mobile header'] }, + { version: 'v6.6.11', date: 'Jun 23, 2025', title: 'Photo edit fix', type: 'bugfix', highlights: ['Fixed photo editing'] }, + { version: 'v6.6.10', date: 'Jun 18, 2025', title: 'Path traversal fix', type: 'security', highlights: ['Fixed critical path traversal', 'Defense in depth'] }, + { version: 'v6.6.9', date: 'Jun 17, 2025', title: 'Small fixes', type: 'bugfix', highlights: ['Fixed smart album metrics', 'Imagick 7 support', 'Fixed header from album edit'] }, + { version: 'v6.6.8', date: 'Jun 14, 2025', title: 'Cache refresh fix', type: 'bugfix', highlights: ['Fixed 500 on cache refresh'] }, + { version: 'v6.6.7', date: 'Jun 13, 2025', title: 'Hotfixes', type: 'bugfix', highlights: ['Fixed download redirection', 'Fixed tag album preloading', 'Fixed search'] }, + { version: 'v6.6.6', date: 'Jun 11, 2025', title: 'Photo-Album relationship', type: 'major', highlights: ['Photos in multiple albums', 'Arabic & Dutch support', 'Registration page', '🌟 Color extraction (SE)'] }, + { version: 'v6.6.5', date: 'May 27, 2025', title: 'Link fixes', type: 'bugfix', highlights: ['Fixed temporary & secure links'] }, + { version: 'v6.6.4', date: 'May 25, 2025', title: 'Timeline layout', type: 'feature', highlights: ['Timeline layout', 'LQ image placeholders', 'Login page', 'Animation improvements'] }, + { version: 'v6.6.3', date: 'May 17, 2025', title: 'Hotlink fix', type: 'bugfix', highlights: ['Fixed hotlinking prevention'] }, + { version: 'v6.6.2', date: 'May 15, 2025', title: 'iFrame support', type: 'feature', highlights: ['iFrame integration support', '#upload URL trigger'] }, + { version: 'v6.6.1', date: 'May 12, 2025', title: 'Weblate & PDF support', type: 'feature', highlights: ['Weblate integration', 'PDF thumbnail support', '🌟 Live Metrics (SE)'] }, + { version: 'v6.6.0', date: 'May 1, 2025', title: 'Legacy removed', type: 'major', highlights: ['Removed v4 legacy code', 'Signed URLs', '🌟 URL encryption (SE)'] }, + { version: 'v6.5.3', date: 'Apr 27, 2025', title: 'Description in thumbs', type: 'feature', highlights: ['Description in thumbnails', 'Fixed favourites', 'Fixed metrics'] }, + { version: 'v6.5.2', date: 'Apr 24, 2025', title: 'Minor fixes', type: 'bugfix', highlights: ['Fixed copy & tag operations', 'Fixed smart albums', 'Fixed date display'] }, + { version: 'v6.5.1', date: 'Apr 21, 2025', title: 'Cache clear hotfix', type: 'bugfix', highlights: ['Force cache clear on update'] }, + { version: 'v6.5.0', date: 'Apr 21, 2025', title: 'Sync speed & Statistics', type: 'major', highlights: ['10x faster sync', 'Bulk sharing', '🌟 Statistics (SE)', 'Job progress feedback'] }, + { version: 'v6.4.2', date: 'Apr 4, 2025', title: 'New Settings page', type: 'feature', highlights: ['Refactored Settings', 'French & Russian translations', 'Changelog in menu', 'Maintenance page'] }, + { version: 'v6.4.1', date: 'Mar 28, 2025', title: 'Fixes', type: 'bugfix', highlights: ['Fixed S3/symlink issues', 'Fixed download errors'] }, + { version: 'v6.4.0', date: 'Mar 23, 2025', title: 'Snake_case refactoring', type: 'major', highlights: ['Full snake_case conversion', '🌟 Favourite support (SE)', 'Album page optimization'] }, + { version: 'v6.3.5', date: 'Mar 19, 2025', title: 'PHPStan 2.0', type: 'enhancement', highlights: ['Migrated to PHPStan 2.0', 'Improved left menu', '🌟 Anonymous upload (SE)', 'Polish translations'] }, + { version: 'v6.3.4', date: 'Feb 28, 2025', title: 'Changes', type: 'enhancement', highlights: ['Cache diagnostics', 'Scroll to top button', 'Simplified Chinese'] }, + { version: 'v6.3.3', date: 'Feb 21, 2025', title: 'Changes', type: 'enhancement', highlights: ['Privacy options', 'Markdown support', '🌟 Punch card stats (SE)'] }, + { version: 'v6.3.2', date: 'Feb 17, 2025', title: 'Fixes', type: 'bugfix', highlights: ['RSS feed enhancements', 'Translation fixes'] }, + { version: 'v6.3.1', date: 'Feb 15, 2025', title: 'Redis fix', type: 'bugfix', highlights: ['Fixed Redis crash handling'] }, + { version: 'v6.3.0', date: 'Feb 14, 2025', title: 'Localization & Caching', type: 'major', highlights: ['Localization reset', 'Redis caching support', '🌟 Duplicate finder', 'Authelia login support'] }, + { version: 'v6.2.0', date: 'Dec 17, 2024', title: 'API documentation', type: 'feature', highlights: ['Live API documentation', 'Timeline layout', 'Password unlock middleware'] }, + { version: 'v6.1.2', date: 'Nov 27, 2024', title: 'Fixes', type: 'bugfix', highlights: ['Fixed temporary links', 'Automated signed releases', 'Fixed timeline'] }, + { version: 'v6.1.1', date: 'Nov 26, 2024', title: 'Fixes', type: 'bugfix', highlights: ['Fixed Authentik icon', 'Fixed smart albums', 'Fixed Tag album'] }, + { version: 'v6.1.0', date: 'Nov 25, 2024', title: 'Timeline layout', type: 'major', highlights: ['Timeline layout', 'LQ image placeholders', 'Authentik OAuth support'] }, + { version: 'v6.0.1', date: 'Oct 31, 2024', title: 'Fixes', type: 'bugfix', highlights: ['Fixed icons in subfolders', 'Fixed login menu', 'Security best practices'] }, + { version: 'v6.0.0', date: 'Oct 26, 2024', title: 'Vue3 & Supporter Edition', type: 'major', highlights: ['Complete Vue3 rewrite', 'Lychee SE introduced', 'TALL stack', 'Chunked uploads'] }, + { version: 'v5.5.1', date: 'Jul 5, 2024', title: 'Video & paths', type: 'bugfix', highlights: ['Fixed S3 video loading', 'php-exif path support'] }, + { version: 'v5.5.0', date: 'Jun 26, 2024', title: 'Laravel 11', type: 'major', highlights: ['Migrated to Laravel 11', 'Smart album visibility', 'OAuth user creation'] }, + { version: 'v5.4.0', date: 'Jun 17, 2024', title: 'Login required', type: 'feature', highlights: ['Login required option', 'Fixed apostrophes in names'] }, + { version: 'v5.3.1', date: 'Jun 9, 2024', title: 'Fixes', type: 'bugfix', highlights: ['Fixed map updates', 'Fixed thumbnails', 'French translation'] }, + { version: 'v5.3.0', date: 'Apr 29, 2024', title: 'S3 buckets', type: 'feature', highlights: ['S3 bucket support', 'Album copyright'] }, + { version: 'v5.2.2', date: 'Apr 20, 2024', title: 'Header image', type: 'feature', highlights: ['Portrait/landscape header images'] }, + { version: 'v5.2.1', date: 'Apr 19, 2024', title: 'Pipeline & OAuth', type: 'feature', highlights: ['Image processing pipeline', 'Keycloak OAuth', 'Per-album header'] }, + { version: 'v5.2.0', date: 'Apr 6, 2024', title: 'Critical fixes', type: 'security', highlights: ['Fixed upload issues', 'Feature flags', 'Markdown support', 'Maintenance page'] }, + { version: 'v5.1.1', date: 'Jan 22, 2024', title: 'Dropbox & redirects', type: 'feature', highlights: ['Import from Dropbox', 'Legacy link redirection'] }, + { version: 'v5.1.0', date: 'Jan 18, 2024', title: 'OAuth support', type: 'feature', highlights: ['OAuth providers support', 'Amazon, Apple, Facebook, GitHub, Google, Mastodon, Microsoft, Nextcloud'] }, + { version: 'v5.0.3', date: 'Jan 12, 2024', title: 'Subfolder support', type: 'feature', highlights: ['Subfolder hosting support', 'Compact album view', 'WebAuthn fixes'] }, + { version: 'v5.0.2', date: 'Dec 28, 2023', title: 'SQL injection fix', type: 'security', highlights: ['Fixed SQL injection vulnerability'] }, + { version: 'v5.0.1', date: 'Dec 27, 2023', title: 'Fixes', type: 'bugfix', highlights: ['Fixed blurred thumbs', 'Fixed unlock component', 'Improved diagnostics'] }, + { version: 'v5.0.0', date: 'Dec 25, 2023', title: 'Livewire rewrite', type: 'major', highlights: ['Complete Livewire rewrite', 'TALL stack', 'Access rights refactored', 'Chunked uploads'] }, + { version: 'v4.13.0', date: 'Sep 24, 2023', title: 'Final v4 release', type: 'major', highlights: ['License as enum', 'Unique config keys', 'Better livewire prep'] }, + { version: 'v4.12.0', date: 'Sep 16, 2023', title: 'Enum types', type: 'enhancement', highlights: ['Layout & overlay enums', 'Better diagnostics', 'Fixed decorations'] }, + { version: 'v4.11.1', date: 'Sep 3, 2023', title: 'Fixes', type: 'bugfix', highlights: ['Fixed diagnostics', 'Webauthn username support', 'Download fixes'] }, + { version: 'v4.11.0', date: 'Aug 13, 2023', title: 'Hungarian & video config', type: 'feature', highlights: ['Hungarian language', 'Video thumbnail config', 'German translations'] }, + { version: 'v4.10.0', date: 'Aug 1, 2023', title: 'Actions & integrity', type: 'enhancement', highlights: ['Actions pattern', 'DB integrity checks', 'Ratio support', 'OSM updates'] }, + { version: 'v4.9.4', date: 'Jun 28, 2023', title: 'Speed improvements', type: 'enhancement', highlights: ['Better exception logging', 'Faster global table', 'Subfolder fixes'] }, + { version: 'v4.9.3', date: 'Jun 25, 2023', title: 'External tracking', type: 'feature', highlights: ['Matomo & Google Analytics', 'CSP configuration', 'License editing fix'] }, + { version: 'v4.9.2', date: 'May 22, 2023', title: 'CSP fix', type: 'bugfix', highlights: ['Fixed log-viewer CSP'] }, + { version: 'v4.9.1', date: 'May 19, 2023', title: 'Log-viewer paths', type: 'bugfix', highlights: ['Fixed log-viewer paths'] }, + { version: 'v4.9.0', date: 'May 18, 2023', title: 'Log-viewer', type: 'feature', highlights: ['Integrated log-viewer', 'Removed homemade logs'] }, + { version: 'v4.8.1', date: 'May 15, 2023', title: 'Migration & API docs', type: 'feature', highlights: ['Better old migrations', 'API documentation', 'File last modified support'] }, + { version: 'v4.8.0', date: 'May 5, 2023', title: 'Access permissions', type: 'major', highlights: ['New access permissions system'] }, + { version: 'v4.7.4', date: 'May 4, 2023', title: 'Random images', type: 'feature', highlights: ['Random images without public/starred'] }, + { version: 'v4.7.3', date: 'Apr 19, 2023', title: 'Jobs processing', type: 'feature', highlights: ['Job queue support', 'Job history', 'php-exif update'] }, + { version: 'v4.7.2', date: 'Mar 8, 2023', title: 'Laravel 10', type: 'major', highlights: ['Migrated to Laravel 10', 'Auto image rotation', 'GdHandler improvements'] }, + { version: 'v4.7.1', date: 'Feb 5, 2023', title: 'HTTPS & storage', type: 'feature', highlights: ['Force HTTPS option', 'Storage in storage/', 'On This Day public option'] }, + { version: 'v4.7.0', date: 'Jan 4, 2023', title: 'PHP 8.1 & Enums', type: 'major', highlights: ['Requires PHP 8.1+', 'Enum types', 'Album decorations', 'Admin check on migrations'] }, + { version: 'v4.6.5', date: 'Dec 26, 2022', title: 'Username changes', type: 'feature', highlights: ['Allow username changes', 'PostgreSQL fixes'] }, + { version: 'v4.6.4', date: 'Dec 25, 2022', title: 'Unified Frontend', type: 'major', highlights: ['Merged gallery/view/frame', 'On This Day album', 'Multiple admins', 'Unix socket Redis'] }, + { version: 'v4.6.2', date: 'Nov 12, 2022', title: 'WebAuthn upgrade', type: 'security', highlights: ['U2F credentials reset', 'Modern dialog', 'Laravel 9', 'Tag append option'] }, + { version: 'v4.6.1', date: 'Oct 8, 2022', title: 'Security update', type: 'security', highlights: ['Fixed XSS vulnerability', 'Updated CSP', 'Dropped API key for tokens', 'Multi-path import'] }, + { version: 'v4.6.0', date: 'Sep 4, 2022', title: 'Laravel Auth', type: 'major', highlights: ['Laravel Auth system', 'ASCII filename fallback', 'Fixed tag albums'] }, + { version: 'v4.5.3', date: 'Aug 7, 2022', title: 'New ID scheme', type: 'major', highlights: ['144-bit random IDs', 'Deep directory structure', 'HiDPI folders', 'GPX tracks'] }, + { version: 'v4.4.0', date: 'Dec 3, 2021', title: 'PHP 8 required', type: 'major', highlights: ['Requires PHP 8+', 'Composer upgrade'] }, + { version: 'v4.3.6', date: 'Nov 23, 2021', title: 'Email notifications', type: 'feature', highlights: ['Photo upload notifications', 'Polish translation', 'Cache busting'] }, + { version: 'v4.3.4', date: 'Jul 11, 2021', title: 'Timestamps & search', type: 'feature', highlights: ['Google Motion Photo', 'Extended search', 'Timestamp refactoring'] }, + { version: 'v4.3.0', date: 'Apr 18, 2021', title: 'Touch & responsive', type: 'feature', highlights: ['Touch device support', 'Responsive design', 'Portuguese language'] }, + { version: 'v4.2.2', date: 'Feb 16, 2021', title: 'Fixes', type: 'bugfix', highlights: ['Password album fixes', 'GPS direction option', 'Import limits'] }, + { version: 'v4.2.1', date: 'Jan 24, 2021', title: 'Custom covers', type: 'feature', highlights: ['Custom album covers'] }, + { version: 'v4.2.0', date: 'Jan 24, 2021', title: 'Livewire prep', type: 'major', highlights: ['Backend refactoring', 'Nested Set albums', 'Livewire foundation'] }, + { version: 'v4.1.0', date: 'Dec 27, 2020', title: 'WebAuth & sensitive', type: 'feature', highlights: ['WebAuth/Yubikey support', 'Sensitive albums', 'Forced migrations'] }, + { version: 'v4.0.8', date: 'Nov 19, 2020', title: 'PHP 7.4 required', type: 'major', highlights: ['Requires PHP 7.4', 'Per-album ordering', 'Firefo TV support'] }, + { version: 'v4.0.7', date: 'Oct 9, 2020', title: 'Rotations & smart albums', type: 'feature', highlights: ['Picture rotation', 'Tag smart albums', 'Traditional Chinese', 'WebP support'] }, + { version: 'v4.0.6', date: 'May 26, 2020', title: 'XMP & HEIC', type: 'feature', highlights: ['XMP sidecar support', 'HEIC file support', 'RSS feed', 'Debug bar'] }, + { version: 'v4.0.5', date: 'May 15, 2020', title: 'RSS module', type: 'feature', highlights: ['RSS feed', 'Sync improvements', 'SQLite support'] }, + { version: 'v4.0.4', date: 'May 11, 2020', title: 'SQLite & CDN', type: 'feature', highlights: ['Better SQLite', 'CDN support', 'Config migration from v3'] }, + { version: 'v4.0.3', date: 'Apr 29, 2020', title: 'Diagnostics', type: 'enhancement', highlights: ['Improved diagnostics', 'Release channel'] }, + { version: 'v4.0.2', date: 'Apr 22, 2020', title: 'Fixes', type: 'bugfix', highlights: ['Migration fixes', 'Installer fixes'] }, + { version: 'v4.0.1', date: 'Apr 19, 2020', title: 'Archive size', type: 'bugfix', highlights: ['82% smaller archives', 'Fixed downloads'] }, + { version: 'v4.0.0', date: 'Apr 18, 2020', title: 'Laravel & sub-albums', type: 'major', highlights: ['Laravel backend', 'Sub-albums', 'Multi-user', 'Frame module', 'Map with GPS'] }, +]; + +const getReleaseTypeColor = (type: string) => { + const colors = { + major: 'bg-gradient-to-br from-purple-500 to-pink-500', + feature: 'bg-gradient-to-br from-blue-500 to-cyan-500', + enhancement: 'bg-gradient-to-br from-green-500 to-emerald-500', + bugfix: 'bg-gradient-to-br from-orange-500 to-amber-500', + security: 'bg-gradient-to-br from-red-500 to-rose-500', + }; + return colors[type] || 'bg-gradient-to-br from-gray-500 to-slate-500'; +}; + +const getReleaseTypeBadge = (type: string) => { + const badges = { + major: { text: 'Major Release', class: 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200' }, + feature: { text: 'New Feature', class: 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200' }, + enhancement: { text: 'Enhancement', class: 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' }, + bugfix: { text: 'Bug Fix', class: 'bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200' }, + security: { text: 'Security', class: 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200' }, + }; + return badges[type] || { text: 'Release', class: 'bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200' }; +}; +--- + + + +
+
+
+

+ Roadmap & Release History +

+

+ Track the evolution of Lychee through our comprehensive release history. From security patches to major features, + see how we continuously improve your photo management experience. +

+
+
+
+
+
+
6.10+
+
Latest Version
+
+
+
121
+
Total Releases
+
+
+
5.5
+
Years Journey
+
+
+
Active
+
Development
+
+
+
+
+ + +
+
+ +
+

+ Major Milestones +

+

+ Key moments in Lychee's evolution +

+
+ + +
+ +
+
+
+ + + +
+
+
v4.0.0
+
April 2020
+
+
+

Laravel Backend

+
    +
  • • Laravel framework
  • +
  • • Sub-albums support
  • +
  • • Multi-user system
  • +
  • • GPS & Map integration
  • +
+
+ + +
+
+
+ + + +
+
+
v5.0.0
+
Dec 2023
+
+
+

Livewire Rewrite

+
    +
  • • TALL stack
  • +
  • • Access rights refactored
  • +
  • • Chunked uploads
  • +
  • • OAuth support
  • +
+
+ + +
+
+
+ + + +
+
+
v6.0.0
+
Oct 2024
+
+
+

Vue3 & SE

+
    +
  • • Complete Vue3 rewrite
  • +
  • • Supporter Edition
  • +
  • • Modern architecture
  • +
  • • Enhanced performance
  • +
+
+ + +
+
+
+ + + +
+
+
v6.10.4
+
Dec 2025
+
+
+

Latest

+
    +
  • • Embed galleries
  • +
  • • Watermarking (SE)
  • +
  • • Timeline view
  • +
  • • Security hardened
  • +
+
+
+ + +
+
+ + + + + From Laravel backend to Vue3 frontend — 5.5 years of continuous evolution + +
+
+
+
+ + +
+
+ +
+

+ Release Timeline +

+

+ Following our commitment to transparency and continuous improvement +

+
+ + +
+ + + + +
+ {releases.map((release, index) => ( +
+ +
+ +
+ + +
+
+
+
+
+ + +
+
+ +
+ {release.version} + — +

{release.title}

+ + {getReleaseTypeBadge(release.type).text} + +
+ + +
+
    + {release.highlights.map((highlight) => ( +
  • + + + + {highlight} +
  • + ))} +
+
+
+
+
+ ))} +
+
+ + + +
+
+
+ +