New Snapshot Builds for v3.6

500 views
Skip to first unread message

Ale Martinez

unread,
Jul 11, 2022, 6:00:20 PM7/11/22
to golden-cheetah-users
We have generated new Snapshot Builds mainly to enable more widespread testing of the new background refresh process, all fixes and minor enhancements from v3.6-RC1 are included, full list included below.


Feedback is welcome on this thread, please don't create separate threads or github issues until a bug is confirmed.

Thank you, Ale.

Changes from RC1:
ecfc23455 Revert to Mojave for macOS Travis-ci builds [skip appveyor] Builds on Catalina are failing due to 50min max time limit. [publish binaries]
b96a31400 Fix Xert secret compile error
98a3a6984 Update INSTALL documents to Qt5.15.2 and generate Snapshots
05992c8c2 ci:patch secret.h for Nolio
7e8f3a322 Add GC_XERT_CLIENT_SECRET
d3fb4f168 Add GC_XERT_CLIENT_ID
cb1e59f9d Histogram Chart - setIsBlank when data series is not available
086be52ad Disable Power Index for running
da01a8f39 Toolbar Perspectives - Screen captures for the wiki [skip ci]
6d4921ba0 Add context sensitive help for the toolbar
48c872550 Remove Velo and WS models from syntax helper
ab055101e Dont use count {} in user metrics
66275c6c2 Template user metric infinite recurse
e602ba4d3 Better metric refresh progress updates
4345c9796 RideCache refresh - avoid overloading the GUI event loop
9d2d8651a DataFilter - Fix sma smooth direction
f8b2a04b3 One time Summary chart was deprecated when upgrading athletes
7fba9b1f5 Upgrade macOS builds on Travis-ci to xcode12.2 osx_image [skip AppVeyor] To use macOS 10.15 and newer Qt5 version
cb7b2a07d Upgrade Qt to 5.15.2 for Linux builds on Travis-ci [skip AppVeyor]
5684b89c6 Fixup previous commit
9d9ad753f Metric refresh no longer uses QtConcurrent::map()
dd5bc5160 User selectable map route line color and switchable route line out & back opacity (#4030)
c85054ed6 ComparePane - Filter segments matching sport
fcbe02e83 TrainBottom - Raise autorepeat delay
a5d64686d FIT file Import - Set Weight field from user_profile
a63bee518 CP Estimator - start 7 days periods on mondays
3e5fefa4e Upgrade to Qt 5.15.2 for Windows build on Appveyor
f74b5aed6 Tidy up ci scripts
aeb6630ed Fix small typos in Spanish translation (#4218)
e97034fb7 Fix boundary condition in Estimator
9b29fb2f8 travis/linux: set QTWEBENGINE_DISABLE_SANDBOX=1 (#4216)
3a9620a3d Pass ride context to Python DPs when available (#4214)
be1af0f6d Import Name element from fitlog files
98c22dc18 AppVeyor - change to Previous Visual Studio 2019 image
4c975c7af Filter by sport of selected activity on Activities view
345b70f38 Upgrade python AppImage version for Linux builds [skip AppVeyor] Python 3.7.12 AppImage is no longer available, upgrade to 3.7.13
12828cdce Revert "Upgrade Travis-ci Linux builds to Qt5.15.2"
5251c5bbc Upgrade Travis-ci Linux builds to Qt5.15.2 [skip AppVeyor] Fixes #4196 but may trigger #3611, this is a test build intented to help on release version selection. Upgrade Python AppImage to 3.7.13 since 3.7.12 is no longer available. [publish binaries]
a0c2034fa Russian translation update (#4198)
93d0ac113 Remove autoRepeat from TrainBottom connect buttom
2e33c745c Add cadence data to Xert download if present
6b7121bdc Add encrypted keys for Nolio sync and generate test build
c0894805a Simplified Chinese updated. (#4188)
61afa3882 Python Charts - Replace $$ by chartid in scripts
eb6652477 Update default config URL for v3.6 release
c8f9b7562 Fix CP History chart in default Trends layout
bf09243cb Add Help Overview png for the wiki [skip ci]
54e96060f Update German Translation
328cd2a64 Enable translation of Overview Table Legacy models
820a2f4b2 lupdate translations files to include last added terms
c2b82d1be Enable traslation of UserChart newer options
a0dc39822 Enable translation of HelpWhatsThis Table of Contents
1c157a69a Enable translation of Banister helper stats
a04976fa4 Update German translation
1a285d105 DataFilter - Add isrun option to estimates function
2373fc687 Cloud: include "Secrets.h" in Nolio.cpp
7a19fe4b9 final changes
f20d9ac85 Delete .idea directory
65446397e code review
041e42667 code review
25307467c laps
67294a61f Nolio version 1.1
4d7b56a94 save
789b1d90a streams
ba3971525 save
37cacd51a workout get from api
9e41e2203 can refresh tokens now
cd97b5b5f OAuth authentification works
140621db4 OAuth start
e8829c66e Nolio added to cloud connectors
22a593006 Translation : French update 3/3
6b878c906 Translation : French update 2/3
1dbbd26de Russian translation update (#4174)
ec6d7838d Improved Chinese translation (#4171)
f0b0d18e0 Update Spanish translation
326e5ff46 Enable translation of model fit summary in CP Chart
edf0cd72e Update Spanish Translation
2a1e4e52c Enable translation for new Metadata fields
7c80da983 Translation : French update 1/3
d3c7f7abc Translation (French) : Improve several translations
7417e9cf1 Train - Limit ant+/btle thread exclusion to avoid deadlocks
f09e35799 FIT : Add Polar in Manu/Product list

Alan Benstead

unread,
Jul 12, 2022, 2:34:05 PM7/12/22
to golden-cheetah-users
Hi Ale,
Any idea when the "Update Batch export... to Batch Processing.... #4223" option will be added to the snap shot builds?
Thanks, Alan

Ale Martinez

unread,
Jul 12, 2022, 7:22:01 PM7/12/22
to golden-cheetah-users
El martes, 12 de julio de 2022 a la(s) 15:34:05 UTC-3, alan.b...@yahoo.com escribió:
Hi Ale,
Any idea when the "Update Batch export... to Batch Processing.... #4223" option will be added to the snap shot builds?

No. 

Paul J

unread,
Jul 13, 2022, 12:58:40 PM7/13/22
to golden-cheetah-users
Reference:   3a9620a3d Pass ride context to Python DPs when available (#4214)

The above fix doesn't work on importation, as the context (and therefore rideitem) passed to the data processor is for the activity preceding the one being processed (with the rideData), which the following python fix demonstrates:

if (GC.activityMetrics()['Device'] == "Garmin FR910XT"):

    activity = GC.activity()

    GC.setTag("Notes", "Test step1")

    if ('heart.rate' in activity.keys()):

        GC.setTag("Notes", "Test step2")

Selecting a  running watch activity with HR data in GC and running the above script causes "Test Step 2" to be written into the Notes field, so all good.

But deleting the activity from GC, setting the script to be run on importation, then running "check for new activities" and re-importing the activity, nothing is written into Notes, and this is because #4214 doesn't address the mis-alignment of the rideitem in the content and rideData, due to the processing in the importationWizard.

I rebuilt GC with PR#4236 and retested the delete activity and re-import it as this PR sets out to resolve this issue, and it all works fine, both tests work with "Test Step 2" being written into the notes field.

The problem with #4214 is that it passes the context correctly for manually run python fixes, but the importationWizards processing passes the wrong context.

Ale Martinez

unread,
Jul 13, 2022, 3:14:50 PM7/13/22
to golden-cheetah-users
El miércoles, 13 de julio de 2022 a la(s) 13:58:40 UTC-3, paulj...@gmail.com escribió:
Reference:   3a9620a3d Pass ride context to Python DPs when available (#4214)

The above fix doesn't work on importation, as the context (and therefore rideitem) passed to the data processor is for the activity preceding the one being processed (with the rideData), which the following python fix demonstrates:

if (GC.activityMetrics()['Device'] == "Garmin FR910XT"):

    activity = GC.activity()

    GC.setTag("Notes", "Test step1")

    if ('heart.rate' in activity.keys()):

        GC.setTag("Notes", "Test step2")

Selecting a  running watch activity with HR data in GC and running the above script causes "Test Step 2" to be written into the Notes field, so all good.

But deleting the activity from GC, setting the script to be run on importation, then running "check for new activities" and re-importing the activity, nothing is written into Notes, and this is because #4214 doesn't address the mis-alignment of the rideitem in the content and rideData, due to the processing in the importationWizard.

I rebuilt GC with PR#4236 and retested the delete activity and re-import it as this PR sets out to resolve this issue, and it all works fine, both tests work with "Test Step 2" being written into the notes field.

The problem with #4214 is that it passes the context correctly for manually run python fixes, but the importationWizards processing passes the wrong context.

IMHO it is too late in the release process to restructure a critical piece of code s.t. import wizard for a niche functionality, my proposal is to disable automatic execution of Python processors and defer this feature for the next version. 

Paul J

unread,
Jul 14, 2022, 2:47:08 AM7/14/22
to golden-cheetah-users
I appreciate that V3.6 is in a pre-delivery phase with the aim of refining and stabilising the build prior to formal delivery and that requires translations & documentation all to updated so lost of work, so big changes aren't a great idea as you wish to minimise the risk.

But if it isn't too much effort, it might be good to create a snapshot build for the more adventurous GC users that include many of the PRs awaiting consideration and review so that the brave beta testers can provide feedback and bug reports on those PRs? The documentation for the build would be the that included in the PR although as most are intuitive, it would good to try a build with all the following:

Configurable Themes & Backup Colour Settings #4242
Make GCColor & Themes into Singletons #4241
Wourkout Chart with imperial unit support #4232
Batch processing #4226
SimRider V1. Ride live map against existing activities. #4209
Addition of CoreTemp sensor support #4207
Polar flow import only #4145
Corrected problems with LRBalance Import #4108
Fix False ANT+ Cadences #4098
WIP: FTMS: Add support for Spin Down Calibration #4073
Optional uniform activity heights #3891
Improve Clarity of GC Paths in Dialogs #3878
Zoomed Elevation widget #3793
Python processor import fix, file import exclusion and file overwrite option #3770 
Download Strava Routes as Workouts #3413
Feature/json support api #3391
Move tau setting from Athlete/Model to power zones settings #3111
AutoCP #2663

I see the numerous QT6 PRs which I expect would be best tested in a separate Qt6 change only build, assuming GC wants to make the move to QT6.

Ale Martinez

unread,
Jul 14, 2022, 7:45:09 AM7/14/22
to golden-cheetah-users
El jueves, 14 de julio de 2022 a la(s) 03:47:08 UTC-3, paulj...@gmail.com escribió:
I appreciate that V3.6 is in a pre-delivery phase with the aim of refining and stabilising the build prior to formal delivery and that requires translations & documentation all to updated so lost of work, so big changes aren't a great idea as you wish to minimise the risk.

Besides that, non local changes specially those including code refactoring have the potential to introduce regressions and bugs in apparently unrelated functionality which may take some time to appear, they are candidates for inclusion after release when we have a long testing time ahead, if at all.

But if it isn't too much effort, it might be good to create a snapshot build for the more adventurous GC users that include many of the PRs awaiting consideration and review so that the brave beta testers can provide feedback and bug reports on those PRs?

 
I see the numerous QT6 PRs which I expect would be best tested in a separate Qt6 change only build, assuming GC wants to make the move to QT6.

Likely we will need to after v3.6 release since no Qt5 version after Qt5.15.2 is available for FOSS projects, if I understand Qt licensing correctly. 

Paul J

unread,
Jul 14, 2022, 8:53:36 AM7/14/22
to golden-cheetah-users
Thank you, I wasn't aware that the PR executables are available.

Sean Price

unread,
Jul 21, 2022, 3:09:10 AM7/21/22
to golden-cheetah-users
I'm seeing some odd crashing behavior after upgrading from 3.5 to 3.6. Memory dump, crash log, and screenshot of the "about/version" window are attached, as is the user chart that seems to be causing the error. This is on a clean Windows 10 install, after removing all previous installations (including C++ redistributable) and using the embedded Python installation.

Original error: switching to trends view from activity view on a particular athlete (when it was the only athlete open) causes GoldenCheetah to crash. I confirmed that it was limited to this user by switching users, and noticed no crashing behavior. Interestingly, when I have multiple athletes open at once, I am able to switch to the trends view on the user which is crashing without issue, and all of the charts work (at least at first glance) as they did under v3.5.

By removing all of my charts and adding them back one at a time, I believe the problematic chart is a custom MeanMax I use for Critical Velocity for running. I'm at a bit of a loss as what's broken here given the difference in behavior when multiple athletes are open. The stack trace in the crash log isn't helpful for me, but some quick searching on error codes suggested it might be from illegal memory access.
crash_1119_200722.log
Screenshot 2022-07-20 112217.png
CV_Running.gchart
crash_1119_200722.dmp

Ale Martinez

unread,
Jul 21, 2022, 3:43:05 AM7/21/22
to golden-cheetah-users
El jueves, 21 de julio de 2022 a la(s) 04:09:10 UTC-3, sean.t....@gmail.com escribió:
I'm seeing some odd crashing behavior after upgrading from 3.5 to 3.6. Memory dump, crash log, and screenshot of the "about/version" window are attached, as is the user chart that seems to be causing the error. This is on a clean Windows 10 install, after removing all previous installations (including C++ redistributable) and using the embedded Python installation.

Original error: switching to trends view from activity view on a particular athlete (when it was the only athlete open) causes GoldenCheetah to crash. I confirmed that it was limited to this user by switching users, and noticed no crashing behavior. Interestingly, when I have multiple athletes open at once, I am able to switch to the trends view on the user which is crashing without issue, and all of the charts work (at least at first glance) as they did under v3.5.

By removing all of my charts and adding them back one at a time, I believe the problematic chart is a custom MeanMax I use for Critical Velocity for running. I'm at a bit of a loss as what's broken here given the difference in behavior when multiple athletes are open. The stack trace in the crash log isn't helpful for me, but some quick searching on error codes suggested it might be from illegal memory access.

The stack trace will be much more informative if you start GoldenCheetah.exe using the File Manager, instead of a shortcut. 

Ale Martinez

unread,
Jul 21, 2022, 9:48:59 AM7/21/22
to golden-cheetah-users
Doing that I get the attached crash log when trying to import your chart, problem seems to be myPerspective is a null pointer at chart import time, which is dereferenced  in https://github.com/GoldenCheetah/GoldenCheetah/blob/387873d9f08a0d37996b6bfce001d152f66ce6e4/src/Charts/CPPlot.cpp#L1208-L1211 
crash_1010_210722.log

Ale Martinez

unread,
Jul 21, 2022, 10:29:08 AM7/21/22
to golden-cheetah-users
I think the same problem also happens importing other charts, since only Overview checks the perspective property is valid before trying to use it, we need to fix this before release: https://github.com/GoldenCheetah/GoldenCheetah/issues/4247

Anyway, if you can reproduce the issue in normal use -i.e. not when the chart is imported- it would be interesting to see the crash log obtained when GoldenCheetah.exe is started from the File Manager.

Sean Price

unread,
Jul 21, 2022, 3:44:49 PM7/21/22
to golden-cheetah-users
Thanks for the reminder to start from File Manager. When I do that, I get the same stack trace in the crash log as you've provided. I was able to get the chart imported again with the multiple-athlete approach I detailed in my previous post, but switching to trend view once I've closed the other athlete (force-close the entire application and restarting), I see the crash again. Crash log for that is attached, which seems like it's hitting the same code path (CPPlot, line 1208).

I recreated the chart from scratch and exported to see if there was a difference in the .gchart file, and it looks like the isRun filter changed slightly.
original property (chart from 3.5): "filter":"filter:isRun "
updated property (chart from 3.6): "filter":"filter:isRun<>0 "
This may or may not be an issue, I don't know what the defaults on parsing the filter name are.
crash_1234_210722.log

Ale Martinez

unread,
Jul 21, 2022, 4:06:53 PM7/21/22
to golden-cheetah-users
El jueves, 21 de julio de 2022 a la(s) 16:44:49 UTC-3, sean.t....@gmail.com escribió:
Thanks for the reminder to start from File Manager. When I do that, I get the same stack trace in the crash log as you've provided. I was able to get the chart imported again with the multiple-athlete approach I detailed in my previous post, but switching to trend view once I've closed the other athlete (force-close the entire application and restarting), I see the crash again. Crash log for that is attached, which seems like it's hitting the same code path (CPPlot, line 1208).

Thank you for the feedback and, yes, it is the same case. We need to check the perspective property is valid before tor try to use it.
 
I recreated the chart from scratch and exported to see if there was a difference in the .gchart file, and it looks like the isRun filter changed slightly.
original property (chart from 3.5): "filter":"filter:isRun "
updated property (chart from 3.6): "filter":"filter:isRun<>0 "
This may or may not be an issue, I don't know what the defaults on parsing the filter name are.

No, they are equivalent. 

Ale Martinez

unread,
Jul 24, 2022, 12:15:00 PM7/24/22
to golden-cheetah-users
New snapshot builds are available via http://www.goldencheetah.org/#section-download, they include fixes for the problems reported in this and related threads during the last 2 weeks, beside other minor enhancements:

5ef414697 Escape backslash and quotes from KPK and DATATABLE tiles program
eee2ee9be Fix Memory Leak Data Filter
3b1737168 Fix Memory Leak in RideFile::apendOrUpdate
75800ce49 Fix memory leak in RideFile::append and friends
2674bf518 Fix SEGV on Import Chart
387873d9f Guard GCC pragmas
9e9919955 Windows builds on AppVeyor - Avoid macro redefinition warnings
0d979f9fb Disable automatic execution of Python Data Processors
3b073b916 Update Spanish translation (#4245)
8d8d1a060 Enable translation of IsoPower metric name and units
196713441 Minor fixes in Spanish translation (#4243)

Feedback is welcome.

Guillaume TOFFOLI

unread,
Jul 31, 2022, 3:39:16 AM7/31/22
to golden-cheetah-users
Hi Ale,

Running the last snapshot build on windows 11, I'm unable to drag & drop activity / interval on the compare panel. It was working perfectly with the previous version.

I don't know if it's an issue that can be fix or if the problem comes from my side.

Thanks for helping.
Guillaume

marcen

unread,
Jul 31, 2022, 4:17:28 AM7/31/22
to golden-cheetah-users
This is a problem with the new QT version. At the moment there is no fix from QT.
Here in the thread it is described in more detail.

At the issue comment is a workaround described.
https://github.com/GoldenCheetah/GoldenCheetah/issues/3622#issuecomment-1189021079
Reply all
Reply to author
Forward
0 new messages