I have pretty limited experience with stack that used in this app (C++/qt/go) but wanna try to build it and maybe help with something. At least can help with translation.
What is the best approach to develop\test app in\for Windows? I've tried: mingw32-make, debian WLS2, debian on virtualbox and each time faced with issues. I can build and get linux binaries but can't build app for windows.
which mingw64 you are using? and on what host/cmd/pwshl/cygwin/etc?
current makefile doesn't work on windows host. partially works on cygwin and ubuntu wls2
for documentation purposes, this is what I was using:
export PATH=/c/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/:$PATH$ qmake --versionQMake version 3.1Using Qt version 5.14.2 in C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib$ gcc --versiongcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0
but will review your mr asap :)
ps: the ubuntu wls2 would also be an interesting avenue to explore, /methinks
Since now I have some understanding on how you build the app it should not be to hard to do it in ubuntu wsl for sure.
Also would be good to have understanding on bugs\feature prioritization.
since we're only a couple of developers right now, we kind of coordinate ad-hoc, and try to setup priorities for releases. right now the main focus has been on polishing qt (and its packaging) to a level that was ready for a release. I would say at the moment I'd try to improve the installation process as much as possible, before moving on to tackling new features - there's room for improvement there. so far we've only tried to make sure that one stable release can be cleanly installed on top of the previous one, but there are subtleties here (like the possibility that riseup-vpn coexist with other branded builds, like calyx-vpn or library-vpn so far) that are asking for more thorough checking of what's already installed in the system, and at the very least try to signal the user to uninstall those before continuing.
this collides also with not enough checking at startup. what happens when our friend the windows defender quarantines the helper is that users are met with an unresponsive application. power-users have found how to workaround these deficiencies (remove registry key, uninstall, reinstall, etc), but all this should be made more smooth by proper checks and fixes by our installer.
On top of that, cross-compilation would also be very nice, so that we can produce binaries for testing automatically for every commit. I had explored mx, but wsl would be good too.
Beyond that we have some nice specific challenges in windows, mostly derived from our own lack of experience on the platform. I think after the latest round of scripting (and proper signing / adding metadata to all binaries) we should be in a better position to avoid the pitfalls we had with high anti-virus false positive rates in the past.
the other pending (and exciting!) projects in windows are to implement and test the control mechanism to use the upstream interactive openvpn windows service, and also to get dirty with the native api to implement a proper killswitch.
I was planning to tackle this between jan-feb, you're welcome to join in those efforts ;)
we are hanging usually in #leap (freenode irc), and a secondary dev channel at #bitmask-dev, you're welcome there for a more fluid conversation.
let me know if you have more questions or if you think we can improve particular things in the documentation. probably some formalization of the development process or some particular pointer can be nice for newcomers.
otherwise feel free to close the issue when there are no more questions :)