Linux bug testing will be one of the most difficult aspects of GSoC and the project as a whole. There are an insurmountable number of configurations, desktops, distributions and kernels across the entire platform due to its open nature that there needs to be set standards for all PRs and testing that only affect that platform. This is not a complete list but I feel a good starting point.
- Most distribution specific bugs are not going to be able to be tested and fixed in a timely manner. Resources need to be focused most on critical bugs that affect multiple distributions.
- Putting resources into critical bugs should be prioritized based on type of bug. Kernel specific bugs should take much higher precedence over desktop environment based bugs since multiple distributions will share kernels while each of the various desktop environments will have their own configurations and use different libraries, making it impossible to test on all of them successfully.
- Bugs affecting rolling release distributions such as Arch and Gentoo (and their derivatives) should not take precedence over more common and stability focused distributions (Fedora, Ubuntu, etc). The main exception here should be kernel related bugs since current kernels in these distributions will eventually be the main versions in future releases of the latter. This will allow for better future proofing if Joplin is to stay relevant for years to come and better support across different hardware configurations due to the drivers being built directly into the kernel and loaded at boot.
- Fixing Linux related bugs should not come at the cost of creating bugs for Windows and Mac users. There should be some way to account for this so that all platforms are equally usable and functional.
- Linux bug testing, research, and releases should be handled by a dedicated team separate from the rest of the desktop platforms. Linux releases should also be tested more thoroughly before release to hopefully allow for a reduction in bug reporting and tracking.
- Linux releases should have stable and testing releases that are specific to the platform. A versioning system separate from the rest of the desktop platforms should be implemented to help with this.