davidjoffe / dave_gnukem

Dave Gnukem is a cross-platform 2D scrolling platform shooter inspired by Duke Nukem 1
GNU General Public License v2.0
75 stars 22 forks source link

[Debatable] on-fatal-exception and on-assert reporting? #152

Open davidjoffe opened 1 year ago

davidjoffe commented 1 year ago

[Low priority / future / to think about] 'Thinking out loud':

At least for platforms like Windows (or maybe others too) was just thinking this morning it may be nice if the software could report if it's e.g. crashing in the wild, might be nice to know.

HOWEVER I list as one of the features that the software doesn't 'phone home' (and I'd like to stick to that promise if possible, and some users feel strongly about that too)

This would potentially violate that feature list item (i.e. promise not to phone home), and some users may not like it.

So probably it must be at least an opt-in option (off by default?) by users somewhere for some platforms to opt in. Limited information just to know it's crashing and maybe some info about where it crashed (e.g. line number or function if/where possible). BUT in compliance with any data collection/storage regulations etc. in various jurisdictions! There are various laws in different parts of the world.

Also if we did it would have to document in the software clearly what info would be sent, how it would be used. No usernames or personal identifying information. No IP address storage needed! The point would be only what we need to try help find bugs (e.g. the logs maybe, and try know where in the software it crashed .. e.g. on Mac one can get sometimes more relatively detailed program stack). Or maybe just leave it if it makes some users nervous - we've gotten this far without it.

We do this for our commercial software at TshwaneDJe Software and it's very useful sometimes.

But this is open source, and personally, even I also feel open source is not meant to be 'phoning home'. Different world, different set of ideals.

This feels like too much of a potential minefield. Or am I worrying too much?

(Of course it's open source so it's easy to verify what the sender sends to a server - but a user can't see, say, whether we store their IP or not - we can promise not to but they wouldn't be able to know for sure and users shouldn't have to just blindly trust info like that is never stored.)

This is really debatable. I feel almost like it's too much of a minefield and maybe not worth it. It's open source so there's quite a lot of testing anyway. But worry there may be edge case crashes we don't know about.

Thoughts?