Releases: dreeveapp/dreeve
Release list
v5.0.1
New features
- You can now delete imported activity files directly from the import overview.
Improvements
- Improved compatibility with FIT files generated by Bosch devices
Bug fixes
- Fixed an issue where indoor rowing FIT files failed to import.
- Fixed an issue where activity files with uppercase file extensions were not recognized during import.
Technical details
- Fix docs shields by @robiningelbrecht in #2261
- Fix docs shields by @robiningelbrecht in #2263
- Improve migration docs by @robiningelbrecht in #2264
- ISSUE #2265: Indoor row activity fit file fails to import by @robiningelbrecht in #2266
- ISSUE #2267: Allow to delete file imports from the overview by @robiningelbrecht in #2271
- ISSUE #2268: Import activity files with uppercase extension by @cgtobi in #2269
- ISSUE #2270: Problem with importing .fit files from Bosch by @robiningelbrecht in #2274
- ISSUE #2272: Extra translatables by @robiningelbrecht in #2276
Full Changelog: v5.0.0...v5.0.1
v5.0.0
It has taken a while, but v5.0.0 is finally here.
This is the biggest release since the project began as Statistics for Strava.
Warning
Back up first. Make a copy of storage/database and of your config directory before you upgrade to this new version.
The migration guide will walk you through the upgrade process:: https://docs.dreeve.app/#/getting-started/migrating-from-v4
Here are the three biggest changes:
1. Welcome to Dreeve
The project has been rebranded to Dreeve
A dreve is the West-Flemish word (the birthplace of Dreeve's maintainer) for a country road lined with trees on both sides. The kind of road every cyclist and runner loves.
2. No more Strava dependency
You no longer need Strava to use Dreeve.
The app allows you to upload raw FIT, TCX and GPX files.
If you already use Strava, importing your activities from Strava is still fully supported.
3. The admin panel
Configuration is now much simpler.
All settings have been moved from YAML configuration files into a built-in admin panel,
making Dreeve easier to configure and maintain.
For detailed upgrade instructions, see the migration guide: https://docs.dreeve.app/#/getting-started/migrating-from-v4
Technical details
- ISSUE #2174: Enable sqlite journal_mode=WAL by @robiningelbrecht in #2176
- ISSUE #2177: Fix a bug where build crashes when an activity has no name by @robiningelbrecht in #2178
- ISSUE #2179: Improve DuplicateActivityScanner to better detect duplicates by @robiningelbrecht in #2180
- ISSUE #2173: Provide user authentication by @robiningelbrecht in #2175
- ISSUE #2181: Allow to upload activity files via the admin panel by @robiningelbrecht in #2182
- ISSUE #2183: Add an overview of all file imports to the admin panel by @robiningelbrecht in #2184
- ISSUE #2187: Drop pre-calculated distanceInMeters on the Gear entity by @robiningelbrecht in #2188
- ISSUE #2189: Persist gear purchase prices to database by @robiningelbrecht in #2190
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in #2192
- ISSUE #2186: Allow to manage gear via the admin panel by @robiningelbrecht in #2191
- ISSUE #2193: Allow to manage activities via the admin panel by @robiningelbrecht in #2194
- ISSUE #2195: Allow to enable demo mode based on user auth instead of IP by @robiningelbrecht in #2196
- ISSUE #2197: Remove all occurrences of Statistics for Strava by @robiningelbrecht in #2198
- ISSUE #2199: Allow to manage devices via the admin panel by @robiningelbrecht in #2201
- ISSUE #2197: Remove all occurrences of Statistics for Strava by @robiningelbrecht in #2203
- ISSUE #2200: Move gear maintenance config to admin panel by @robiningelbrecht in #2202
- ISSUE #2208: Show a (toast) succes message after submitting a form by @robiningelbrecht in #2209
- ISSUE #2205: Show an indicator in the admin panel that changes still need to be processed by @robiningelbrecht in #2210
- fix(i18n): translate remaining Italian locale strings by @franzudev in #2213
- fix(notification): avoid unsupported Shoutrrr params for Telegram by @franzudev in #2214
- German translation by @effectpears in #2207
- ISSUE #2211: Move dashboard configuration to admin panel by @robiningelbrecht in #2212
- ISSUE #2215: Move appUrl config to .env file by @robiningelbrecht in #2216
- ISSUE #2217: Move "general" config from YAML to admin panel by @robiningelbrecht in #2218
- ISSUE #2221: Use a CachedSettingsRepository when building static HTML files by @robiningelbrecht in #2222
- ISSUE #2219: Move "appearance" config from YAML to admin panel by @robiningelbrecht in #2220
- ISSUE #2219: Render sportTypesSortingOrder on appearance settings form by @robiningelbrecht in #2223
- ISSUE #2225: Move 'import' config from YAML to admin panel by @robiningelbrecht in #2226
- ISSUE #2227: Move 'metrics' config from YAML to admin panel by @robiningelbrecht in #2228
- ISSUE #2230: Import fails on long activities: route WKT exceeds MAX_ARG_STRLEN in geosop call ('Failed to run geosop') by @robiningelbrecht in #2235
- ISSUE #2233: When migrating settings to db, merge yaml files into one consolidated settings file by @robiningelbrecht in #2236
- ISSUE #2229: Move 'integrations' config from YAML to admin panel by @robiningelbrecht in #2232
- ISSUE #2237: Move 'Daemon' config from YAML to admin panel by @robiningelbrecht in #2238
- ISSUE #2239: Clear cron locks when containers are restarted by @robiningelbrecht in #2240
- ISSUE #2241: specific name for GPX download files by @robiningelbrecht in #2242
- ISSUE #2224: Move translatables from admin panel to separate translation file by @robiningelbrecht in #2245
- ISSUE #2243: Improve onboarding flow by @robiningelbrecht in #2246
- ISSUE #2251: Harden database migrations and concurrency of containers by @robiningelbrecht in #2252
- ISSUE #2243: Onboarding flow - bis by @robiningelbrecht in #2250
- Update Brazilian Portuguese translation files by @gustavobim in #2254
- #2255 Improvement of German Translation by @effectpears in #2256
- ISSUE #2248: Rewrite documentation by @robiningelbrecht in #2257
Full Changelog: v4.8.8...v5.0.0
v4.8.8
Improvements
- Moved database migrations away from the codebase to the Docker entrypoint
- Redesigned onboarding flow
- Updated German translations
- Updated Portuguese translations
Bug fixes
- Fixed a bug where filters on the photos page were not persisted between page loads
Technical details
- ISSUE #2142: Introduce an isolated service to detect duplicate activities before importing by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2143
- ISSUE #2141: Move the app away from Strava branding by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2144
- ISSUE #2133: Add new Activity file import pipeline by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2145
- ISSUE #2146: Add periodic file imports to the daemon container by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2147
- ISSUE #2152: Rename database, but fallback to existing strava.db file by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2153
- ISSUE #2151: Only render link to Strava activity if activity got imported through Strava API by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2154
- ISSUE #2156: Filters on the photos page are not persisted to localStorage by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2157
- ISSUE #2149: Remove references to kudo's and comments by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2158
- ISSUE #2160: Improve import flow and get rid of unnecessary cron complexity by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2162
- ISSUE #2161: Improve file parser tests by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2163
- ISSUE #2155: Move database migrations to docker entrypoint by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2159
- ISSUE #2164: Import athlete from file config by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2165
- ISSUE #2150: Restyle onboarding flow by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2166
- Update German translations in intl-icu file by @effectpears in https://github.com/robiningelbrecht/statistics-for-strava/pull/2170
- Update messages+intl-icu.pt_BR.yaml by @gustavobim in https://github.com/robiningelbrecht/statistics-for-strava/pull/2168
New Contributors
- @gustavobim made their first contribution in https://github.com/robiningelbrecht/statistics-for-strava/pull/2168
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.7...v4.8.8
v4.8.7
Bug fixes
- Fixed an issue where the import crashes for manually added activities
Technical details
- ISSUE #2128: Add config option 'import mode' in preparation of multi-source imports by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2130
- ISSUE #2129: Add new 'FileImport' entity to keep track of all file imports by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2131
- ISSUE #2133: Add new Activity file import pipeline by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2134
- ISSUE #2132: Import crashes on activities with null external_id by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2137
- Fix CI/CD by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2138
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.6...v4.8.7
v4.8.6
New features
- Allow to configure all maps instead of the heatmap only
Warning
We slightly altered the configuration of the heatmap to take all maps into account.
Configuration before:
appearance:
heatmap:
polylineColor: '#fc6719'
tileLayerUrl: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png'
enableGreyScale: true
initialCenter: null
initialZoom: nullConfiguration now:
appearance:
maps:
polylineColor: '#fc6719'
tileLayerUrl: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png'
enableGreyScale: true
heatmap:
initialCenter: null
initialZoom: nullThese changes are reflected in the documentation: https://docs.getsfs.app/#/configuration/main-configuration
Improvements
- Allow for activity descriptions to be expanded when clicking them
Bug fixes
- Fix buggy behaviour when using the browser's back button
Technical details
- ISSUE #2113: Fix buggy behaviour when using the browser's back button by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2118
- Added note to the docs informing users about Strava API policy by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2120
- ISSUE #2114: Leaflet map settings by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2119
- ISSUE #2114: Allow for descriptions to be expanded by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2122
- ISSUE #2123: Move manifest.json to build folder by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2124
- ISSUE #2125: Add ImportSource and ExternalReferenceId on Activity entity in preparation of multi-source imports by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2126
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.5...v4.8.6
v4.8.5
New features
- Added activity elapsed time to the activity detail page
Improvements
- Improved application security by tightening file access rules
- Improved accessibility of the mobile navigation menu
Bug fixes
- Fixed and refined Caddy server directives, with additional test coverage to prevent future regressions
Technical details
- ISSUE #2104: Harden security by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2105
- ISSUE #2106: Add button state to the mobile menu trigger by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2108
- ISSUE #2107: Fix Caddy directives and add proper tests by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2109
- ISSUE #2110: Activity elapsed time by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2111
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.4...v4.8.5
v4.8.4
Warning
This release fixes an issue where log files stored under storage/files/logs could be accessed through the web server on publicly exposed SfS instances.
While the logs did not contain sensitive user data, they were never intended to be publicly accessible. Access to these files is now properly blocked.
Security and privacy are taken very seriously, and we apologize for not catching this earlier.
Note
We revisited the way training load is calculated and discovered that the current implementation was incorrect in certain cases.
As a result, users with many heart rate-based activities may notice significant changes in their training load numbers after updating.
Technical details
- ISSUE #2093: Cadence distribution chart bars do not connect by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2097
- Added anonymous analytics for docs by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2098
- ISSUE #2033: Normalize daily TSS and daily TRIMP by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2100
- ISSUE #2101: Allow demo to serve anonymized image by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2102
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.3...v4.8.4
v4.8.3
Bug fixes
- Fixed rendering of previous milestones in the milestone dashboard widget
- Convert all measurements to proper unit system
Technical details
- ISSUE #2082: Convert all measurements to proper unit system by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2083
- ISSUE #2085: Milestone dashboard widget does not render previous milestones correctly by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2086
- ISSUE #2087: Bundle flowbite in app.min.js by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2088
- ISSUE #2089: New Shoutrrr release - v0.15.1 by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2090
- ISSUE #2094: Reference to new domain getsfs.app by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2095
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.2...v4.8.3
v4.8.2
Improvements
- A lot of small UX improvements throughout the app
- Use table header labels instead of icons
Bug fixes
- Properly format GAP pace for running activities
Technical details
- ISSUE #2062: Daytime dashboard widget disable text wrap by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2063
- ISSUE #2064: Yearly stats dashboard widget disable text wrap by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2065
- ISSUE #2068: Use table header labels instead of icons by @robiningelbrecht in https://github.com/robiningelbrecht/statistics-for-strava/pull/2069
- fix: format GAP like pace by @cgtobi in https://github.com/robiningelbrecht/statistics-for-strava/pull/2071
Full Changelog: robiningelbrecht/statistics-for-strava@v4.8.1...v4.8.2
v4.8.1
Bug fixes
- Fixed ChunkLoadError: Loading chunk failed on instances served behind Cloudflare, where dynamically loaded JS chunks were being requested from the wrong
URL due to interference from the Cloudflare Insights beacon.