Releases: dvorka/mytral
Releases · dvorka/mytral
Release list
MyTraL 1.60.0
This MyTraL minor release brings:
Added
- Added a Polar Flow integration: sync new training from Polar Flow via the
official Polar AccessLink API and backfill full history from the Polar
"Download your data" (GDPR) export ZIP. The export import brings in complete
per-second recordings. - Added filtering and sorting to the gear listing. Gear can be filtered by its default
activity type and sorted by last used, name, default activity type, purchase date,
usage, distance, time or TCoO in ascending or descending order. The summary cards
reflect the filtered gear and the selection is preserved when switching between the
list and the chart view. - Added schema headers to
wingetmanifests. - Added document attachments to gear: manuals, invoices, warranty cards and
other files. - Added histogram of usages to gear detail.
- Added list of activities for given exercise, exercise label and delete button
to exercise detail. - Added strikethroung extension to the rendered Markdown texts.
Changed
- The gear component
Costmini-card now shows the component total cost of ownership -
the base cost plus the cost of all its service history entries - together with the
cost per kilometer. A tooltip shows the base cost and the number of services. - Polar Precision Performance import now reuses the heart-rate time series parsed by
the import plugin when building recordings, instead of reading and parsing every
.hrmfile a second time in the worker process. - The bookmarks list now hides the exercises/laps, source and workout columns, and
the reorder buttons no longer wrap on narrow screens. - Cancelled mytral.fitness domain & hosting:
- web moved to my https://projects.mindforger.com/mytral
- Flatpak qualified name changed from
fitness.mytral.Mytraltocom.mindforger.Mytral
- Moved GitHub repository from
dvorka-ossorganization back to the personaldvorka
profile.
Fixed
- Fixed the Polar Precision Performance (PPP) import end to end - importing a Polar
data directory now finishes successfully instead of failing once an already existing
activity had to be updated. - Fixed the Polar PPP import silently dropping exercises it could not parse - such
files are now counted and reported in the import task log. - Fixed the average speed of imported Polar activities being recomputed - and the
cap to maximum speed lost - after the activities were persisted. - Fixed Polar PPP import log messages showing the raw
{self._log_name}placeholder
instead of the plugin name. - Removed unused Polar gear service constants.
- Fixed Strava gear from an activity synchronization not being linked to the matching
MyTraL gear when several items share the same brand - the gear is now resolved to the
best-matching entry and its Strava gear ID is registered, instead of being left as an
unresolvedstrava-gear-id:...placeholder. Each gear also gained an Advanced page
showing its external service (Strava / Garmin / Polar) gear-ID mapping for debugging. - Fixed the exercise photo gallery - it now appears on the exercise view page, where it
can be viewed, uploaded to, edited and deleted, instead of being stuck on the edit page. - Fixed exercises photos insert (from link to image).
- Fixed sport variety field at the end of the dashboard and added tooltips to all fields
on that row. - Fixed broken goal update which was failing.
- Fixed the style of links in the rendered markdown (newly underscore in blue).
- Fixed usage (hours/km) gear component calculation - newly the usage is from the
installation date until now or replaced.
Documentation
- Added functional architecture diagram to WWW.
- Fixed documentation by replacing non-ASCII characters with ASCII characters.
- Added motivation paragraph to
README.mdand WWW index.
MyTraL 1.59.0
This MyTraL minor release brings:
Added
- Added sport-aware Everesting experience on the dashboard. A new Everesting card tracks
how much of Mt. Everest you have accumulated for your top climbing sport, with a
Day/Week/Month/Year toggle.
Climbing a full Everest - or a Quarter, Half, Double, or Triple - in a single activity
earns an Everesting achievement badge shown on the activity, in activity lists, and on
the "Highest Climb Ever" card. - Added weekly elevation gain to the calendar year view. The last column of the calendar
table now shows the total elevation climbed each week above the weekly weight. - Added lifetime elevation gain to the Lifetime Totals insight.
- Added a new Histograms page - reachable from the Charts page - showing the
distribution of your activities by distance, time, and elevation gain. - Added Winget distribution Makefile targets, artifacts and scripts.
Changed
- Replaced the "Years Active" dashboard summary card with a "Total Elevation" card
showing the cumulative elevation gained across all activities. - Everesting elevation is now counted per climbing sport (Ride, Run, Hike, and Nordic
Ski) instead of lumping all sports together.
Fixed
- Fixed the
This vs. Lastpage showing the literal text "None" instead of a
chart when the selected sport and period had no data - it now shows a friendly
empty state. - Fixed typos in GH issues in
README.md. - Removed dead code from around the code base (import).
Documentation
- WAITING FOR MYTRAL APPROVAL - THIS WILL WORK AS SOON AS MYTRAL IS IN:
- Documented Winget release process as a feature analysis in
docs/. - Documented installing MyTraL on Windows via Winget in
INSTALLATION.md.
- Documented Winget release process as a feature analysis in
- Listed the
Windows (winget)installation method in README.md. - Added new features screenshots for everesting and histograms.
Web
- Improved WWW pages SEO by adding the sitemap, OG image, 404 page, and favicon.
MyTraL 1.58.0
This MyTraL minor release brings:
Added
- Improved the first login experience in MyTraL DESKTOP incarnation: when no
user profile exists yet, a defaultathleteuser ("MyTraL Athlete") is
auto-created and auto-logged in, landing straight on the dashboard - no
sign-up/login step required. Logging out disables auto-login until the next
explicit login, so a second/third user can be added or logged into from the
login page. - Calendar and sickness heatmaps now mark today with a yellow rectangle so the
current week and day stand out, and each sickness day's tooltip now reads like
2026-05-25: 3x sickinstead of a bare count. - Added estimated speed to the analysis chart of the activity in case that activity
recordings (as well as parquet) don't have it. - Added tooltip with the elevation, time, distance and grade to the elevation chart
on the activity analysis page. - Added a macOS
.dmgdesktop distribution, built with PyInstaller and
hdiutil/iconutiland attached to theDistro macOS DMGGitHub Actions workflow
run for every release PR. The build targets Apple Silicon (arm64) only and ships
unsigned (no Apple Developer certificate).
Seedocs/INSTALLATION.mdfor the one-time Gatekeeper workaround needed
on first launch.
Data is stored in~/Library/Application Support/mytral/like every other macOS app.
Fixed
- Fixed path(s) in Snap which pointed outside of strict confinement filesystem.
Documentation
- Documented macOS Apple Silicon (arm64) installation and build.
MyTraL 1.57.0
This MyTraL minor release brings:
Added
- Published MyTraL to the Snap Store at https://snapcraft.io using strict
confinement. The Snap Store snap runs the local server and opens the UI in the
default browser. Athlete data are stored in$SNAP_USER_COMMON
(~/snap/mytral/common) i.e. are NOT stored in the location used by all other
distros - data persist until uninstall (snapd keeps a snapshot for ~31 days
aftersnap remove). - Added new body mannequin - from robot-like to realistic anatomical muscle
geometry adapted from the MIT-licensedreact-native-body-highlighter. - Added activity bookmarks - bookmark any activity from its detail page.
- Added an
Elevationaspect to theThis vs. LastandChargspages,
comparing weekly, monthly, and yearly elevation gain. The weekly and monthly
charts also show a dashed redEveresting(8848 m) reference line so athletes
can see whether their cumulative climbing reaches Mt. Everest peak.
Changed
- Redrew the body mannequin with realistic anatomical muscle geometry, used
everywhere it appears (muscle load, injuries, and sickness). Muscle load now
renders as a cool-to-hot volume heatmap.
Documentation
- Documented both strict and classic Snap installations.
- Documented the missing
python3-allbuild prerequisite for local.debbuilds
(make distro-ubuntu-deb) in the installation guide.
Fixed
- Fixed Ubuntu PPA/
.debinstallation on Ubuntu releases that do not ship
Python 3.12 as the system interpreter (trustythroughfocal) -postinst
now usesuvto provision a self-contained Python 3.12 under/opt/mytral,
independent of the host's system Python. - Fixed
.debpackageArchitecturemetadata (all->amd64 arm64) to match
whatpostinst'suvbootstrap actually supports, soaptrefuses
unsupported architectures upfront instead of installing a package that fails
during configure. - Fixed
.debpostinstfailing with an unclearuv pip installerror when
the bundled wheel orrequirements.txtwas missing - it now fails fast with a
clear message.
Security
- Hardened
.debpostinst: the downloadeduvbinary is now verified against
a pinnedsha256checksum before extraction, closing a supply-chain gap where
a tampered or corrupted release asset would otherwise be executed as root
during package installation.
Infrastructure
- Rewrote
build/ubuntu/launchpad-release.shto accept an optional Ubuntu
codename argument, building (and optionally uploading) a single distribution
instead of always looping over every supported version. - Added a
UBUNTU_VERSIONparameter (defaultnoble) tomake distro-ubuntu-deb, and a newmake distro-launchpad-release-versiontarget
to build and upload a single Ubuntu version's PPA package.
MyTraL 1.56.0
This MyTraL minor release brings:
Added
- Added a Flatpak distribution (
fitness.mytral.Mytral). The package runs the local
server and opens the UI in the default browser.
Athlete data are stored outside of the sandbox in the standard MyTraL directory. - Added
Distro TarballGHA workflow that builds the upstream tarball in
rel/<major.minor.patch>branches targetingmain. - Added
Distro SnapGHA workflow that builds the Snap package in
rel/<major.minor.patch>branches targetingmain. - Added
Distro WindowsGHA workflow that builds the Windows installer and ZIP archive
on a Windows runner inrel/<major.minor.patch>branches targetingmain. - Added
Distro FlatpakGHA workflow that builds the Flatpak bundle in
rel/<major.minor.patch>branches targetingmain. - Added
distro-win-zipMakefile target that packages the Windows desktop executable
into a ZIP archive (distro/windows/mytral-<version>.exe.zip).
Changed
- Removed the Waitress WSGI server from the desktop edition. The desktop app serves
a single local, so it now uses Flask's built-in threaded server - this removes
a dependency and simplifies installation and packaging across Snap, PPA,
and the Windows installer. - Updated
bleachfrom 6.3 to 6.4. - Updated
cryptographyfrom 46.0 to 48.0. - Updated
msgpackfrom 1.0 to 1.2. - Updated
pytest(dev) from 8.4 to 9.0.
Documentation
- Documented Flatpak install and build.
- Documented Snap build.
Fixed
- Fixed
distro-win-installerMakefile target which depended on the Linux targets.
MyTraL 1.55.0
This MyTraL minor release brings:
Changed
- Switched from Python 3.11 to Python 3.12. The main reason is that Snap 22 runtime
had Python 3.10 and Snap 24 runtime has Python 3.12. New Python constructs - like
type,override, andT- will be incorporated as I go.
Added
- Added improved Windows installer make targets and build artifacts.
- Added Ubuntu
resoluteto Launchpad PPA.
Fixed
- Fixed "missing waitress" server in the MyTraL installation from PPA
aptlog.
Documentation
- Banner improved by the switch to MyTraL WWW palette.
MyTraL 1.54.0
This MyTraL minor release brings:
Fixed
- Fixed and refactored Snap distribution builder to have
snapcraft.ioon repository
paths required by snapcraft.io, use host's vs. container's resources correctly,
and avoid use of (host) hard-coded paths.
MyTraL 1.53.0
This MyTraL minor release brings:
Added
- Added Ubuntu PPA distribution for Ubuntu via Launchpad (
ppa:ultradvorka/sport). - Added
distro-ubuntu-debMakefile target to build.debpackage locally. - Added Snap package distribution for universal Linux package management. Opens a native
desktop window via FlaskUI via classic confinement. User data stored in default
locations.
Fixed
- Fixed elevation chart rendering in the application's analysis page by smoothing
the GPX points. - Fixed
.debpackaging: Python dependencies are installed into an isolated virtualenv at
/opt/mytral/venv/- system Python environment is never polluted. - Fixed
.debwrapper scripts to exportMYTRAL_INCARNATION,MYTRAL_USER_REGISTRATION,
andMYTRAL_ENABLE_CACHEenvironment variables for correct desktop startup.
Performance
- Fixed top calendar week navigation which was slooow as it was build on the frontend -
moved it to the backend. - Fixed top feed day navigation which was slooow as it was build on the frontend -
moved it to the backend. - Fixed duplicated activities list loading by the
routes.py::calendar_view()
Documentation
- Added MyTraL configuration guide.
- Added Ubuntu PPA installation guide.
- Added Ubuntu .deb installation guide.
MyTraL 1.52.0
This MyTraL minor release brings:
Added
- Added Windows 10 distribution build to GH release.
Fixed
- Fixed Desktop binary environment variables based setup so that athletes can create
accounts OOTB.
Documentation
- Added Ubuntu distribution build guide.
- Added Python @ Ubuntu distribution guide.
- Added Debian @ Docker distribution guide.
- Added Fedora @ Docker distribution guide.
MyTraL 1.51.0
This MyTraL minor release brings:
Added
- Added activity type color border hint to goals, gear, and several other pages.
- Added Strava synchronization of individual activities from the activity GET page.
- Added card encouraging athlete to create an activity to pages which need at least one
activity to render. - Added weight to gear.
- Added tarball distribution.
- Added Debian @ Docker distribution.
- Added Fedora @ Docker distribution.
Fixed
- Fixed km / hour usage of retired gears with no history.
- Fixed exercise / symptom delete message to contain display name (not UUID) when
removing these entities from an activity. - Removed color from Strava links on the day activities view and search result view.
Documentation
- Adding the installation documentation.