stride icon indicating copy to clipboard operation
stride copied to clipboard

fix : Metrics - Remove all data collection from Stride.Engine

Open Jklawreszuk opened this issue 1 year ago โ€ข 20 comments

PR Details

Description

Goodbye telemetry! :wave:

Motivation and Context

Metrics feature in Stride.Engine can be considered as leftover from the time Xenko (now Stride Engine) was closed-source. While telemetry may be useful in commercial products, Stride Engine is being developed as free and open source software by independent volunteers.

Thus, information about current needs, bugs and errors is being frequently gathered by making requests on Github or directly through discussions with others on our Discord channel and there is no need to do any much more.

PR updates also Stride.Editor.CrashReporter. Previously, user could send anonymized report to support.stride3d.net, but this service has been forgotten and is useless since we are commonly use Github. Now it is possible to view and save the created report containing metrics that can be analyzed and - if the submitter wants it - attached to a new Github issue.

Types of changes

  • [x] Docs change / refactoring / dependency upgrade
  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • [ ] My change requires a change to the documentation.
  • [ ] I have added tests to cover my changes.
  • [ ] All new and existing tests passed.
  • [x] I have built and run the editor to try this change out.

Jklawreszuk avatar May 21 '24 16:05 Jklawreszuk

how does the crash report look where i was able to send an email to the non existent server with the crash report?

IXLLEGACYIXL avatar May 21 '24 17:05 IXLLEGACYIXL

@IXLLEGACYIXL Welp.. It's hard to tell if this server collects data at all. @xen2 have mentioned on discord a long time ago that it's closed-source (https://discord.com/channels/500285081265635328/500292370923913222/786936723283116062). About email : "Send" button just sends collection of key-value types and it doesn't matter whether you give your email or not

Jklawreszuk avatar May 21 '24 17:05 Jklawreszuk

Take a look at CrashReportData object

Jklawreszuk avatar May 21 '24 17:05 Jklawreszuk

My work is ready for review ๐Ÿ˜Š

Jklawreszuk avatar May 22 '24 16:05 Jklawreszuk

I think we'll need @Kryptos-FR input on this given the changes to UI stuff. Also his input on using Modern.Forms when we have Avalonia coming in.

Eideren avatar May 25 '24 09:05 Eideren

Fixes #1663 I think ? Related to #3 & #204 & #1815

Eideren avatar May 26 '24 09:05 Eideren

using Modern.Forms when we have Avalonia coming in

If we can avoid adding new WPF/WinForms dependencies, that would be nice. What does this package bring that cannot already be done with standard controls?

Kryptos-FR avatar May 30 '24 15:05 Kryptos-FR

In addition, did we check with a legal adviser whether removing the privacy policy is OK? We might stop collecting metrics directly, but we should keep the crash report that user can copy/paste into an issue and/or a discord chat. That report might contain user data for which we still need to comply with some laws.

Kryptos-FR avatar May 30 '24 15:05 Kryptos-FR

In addition, did we check with a legal adviser whether removing the privacy policy is OK? We might stop collecting metrics directly, but we should keep the crash report that user can copy/paste into an issue and/or a discord chat. That report might contain user data for which we still need to comply with some laws.

the crash report still exists but instead of mail and send report you have the open git issue button

IXLLEGACYIXL avatar May 30 '24 18:05 IXLLEGACYIXL

Removing the metrics and removing the privacy policy should be two separate PRs in my opinion. I'm not convinced the privacy policy should go.

Kryptos-FR avatar May 30 '24 19:05 Kryptos-FR

I doubt there is any need for a privacy policy if users provide those information of their own volition, it would fall into github's own eula. On our end we just have to make it clear that users have to review what they send over and never automate the system.

Eideren avatar May 30 '24 21:05 Eideren

IIRC the App Store and Google Play mandate a privacy policy for all apps, even those that don't collect any data. Using that as a reference it would still be good practise to continue including one, even if it effectively says "we don't collect anything". I don't know what jurisdiction Stride would fall under but it provides a benchmark for users and contributors to evaluate and develop against.

MeharDT avatar May 30 '24 22:05 MeharDT

I'm not a layer ofc but, it seems to me that the solution to our problem would be to make an announcement on stride website in the form of a blog and change the content of the "Privacy policy" page. Our current Privacy policy says:

If we make material changes to this Privacy Policy, we will notify you through the Software OR the web page that provided the Software to You(the โ€œSiteโ€) along with information on accessing the updated Privacy Policy.

Later:

Your continued use of the Software and the Services will signify your acceptance of the changes of our Privacy Policy.

Jklawreszuk avatar Jun 15 '24 08:06 Jklawreszuk

If we can avoid adding new WPF/WinForms dependencies, that would be nice. What does this package bring that cannot already be done with standard controls?

@Kryptos-FR I used the Modern.Forms package because it is a crossplatform reimplementation of WinForms and it was extremely easy to port the code, so I did it rather as a bonus. I don't mind rollbacking the changes though if you are going to rewrite this to avalonia :+1:

Jklawreszuk avatar Jun 15 '24 09:06 Jklawreszuk

@Jklawreszuk Modern.Forms is another dependency that we don't need since the cross-platform version will use Avalonia. On top of that their repo seems inactive for more than a year, and their own README indicates that it is not ready for production. We don't know what kind of bug it could bring so I don't see the benefit to replace the existing and working Winforms version.

Kryptos-FR avatar Jun 16 '24 17:06 Kryptos-FR

@Kryptos-FR Alright, I bringed back Winforms report then ๐Ÿ‘Œand I also added the links to the privacy policy again

Jklawreszuk avatar Jul 20 '24 11:07 Jklawreszuk

@Jklawreszuk I tried to push to your branch but since I'm not a maintainer on this repo I couldn't.

There is a small fix to do for the Thread that is created for the crash report.

  // Stride.Launcher/CrashReport/CrashReportHelper.cs
  var crashLogThread = new Thread(CrashReport) { CurrentUICulture = englishCulture, CurrentCulture = englishCulture };
+ crashLogThread.SetApartmentState(ApartmentState.STA);

Apparently, the [STAThread] attribute on the CrashReport() method is ignored. It might only work on Main().

Kryptos-FR avatar Sep 11 '24 07:09 Kryptos-FR

Thanks for the help! I added you to my fork in that case ๐Ÿ˜… . Might be useful in future PR's. Are you able to push your changes now?

Jklawreszuk avatar Sep 11 '24 13:09 Jklawreszuk

Will this page still get data and work as before? https://metrics.stride3d.net/

tebjan avatar Sep 12 '24 09:09 tebjan

Will this page still get data and work as before? https://metrics.stride3d.net/

Probably not. I believe the install count is based of nuget so that would stay but the others (like user per month) would be gone. Maybe @xen2 can confirm.

Kryptos-FR avatar Sep 12 '24 10:09 Kryptos-FR