microsoft / react-native-windows

A framework for building native Windows apps with React.
https://microsoft.github.io/react-native-windows/
Other
16.3k stars 1.14k forks source link

RNW app e2e debuggability and developer engagement #4377

Open asklar opened 4 years ago

asklar commented 4 years ago

Today an app can take RNW, modify its source, and ship it as part of their package. In the future they will likely take a drop of the RNW dlls. Consequently, the app package that ends up in the Store, has no symbols for the app, and may not even have symbols for the RNW dlls. This is in contrast to .net UWP apps where we get symbols. It is similar to Games and other native UWP apps.

The result of this is that whenever we have a reliability bug, functionality regression, or appcompat bug, we won't be able to debug it:

It is not unreasonable to assume that some portion of the bugs in RNW apps will be in how the RNW dll uses WUX and Comp. This is in contrast to .net UWP apps which have "rails" since they're using a well-tested mature framework like .net and there isn't much logic in .net (it just exposes the UWP apps and types), whereas RNW dlls have a bunch of logic to adapt between the WUX and RN APIs and controls.

So, as it is, my concern is that

Some of this goes away when RNW moves onto WinUI3, however that may not happen for some time.

chrisglein commented 4 years ago

I think the app developer's story is okay, or at least par for a XAML app. They get all their app symbols and the RNW symbols (because we ship as source). That's parity with a XAML app in that they don't get XAML symbols/source.

For us, yeah we get less, since we're shipping as source. Relief here probably looks like this:

In the meantime, I don't think we need any immediate action, putting this as a discussion topic on the backlog.

vmoroz commented 4 years ago

We are currently planning start working on implementing DLL-based deployment model in Q2 CY 2020 (2nd quarter of calendar year 2020). The debuggability in such scenario is quite important. Based on our previous experience we typically need to provide PDB files and related source files.

The PDB files are easy: they can be part of the developer Nuget package. Alternatively, it would be great if we can publish them to a symbol server. I wonder if the Microsoft symbol server has public access for that.

Accessing source files corresponding to a build is a tricky one. We typically ask to checkout a specific label from the GitHub repo. It is not a simple or intuitive process. I wonder if we can utilize the Microsoft Source Server for that. Alternatively, there might be a service that allows to pull right files from the GitHub. We would need to post-process our PDB files to point to the source server to get the access to sources.

Do we know someone who has more experience with publishing PDB/source for debugging out of GitHub open source projects?

aeulitz commented 1 year ago

@vmoroz "Re: Accessing source files corresponding to a build is a tricky one ... there might be a service that allows to pull right files from the GitHub"

PDB source links?