qgroundcontrol
qgroundcontrol copied to clipboard
[DONT MERGE] Stable v4.4 vs Stable v4.3
This is just the diff of the Stable v4.4 branch with backports on top of the Stable v4.3 branch.
It's basically an effort to get a v4.4 out before we go to v5 which includes major refactoring and Qt6.
Things that conflict and didn't make it in, are:
- Qt6
- cmake stuff
- CI changes
- Any rework/refactoring on top of Qt6
- 3D maps (https://github.com/mavlink/qgroundcontrol/pull/10948, and follow up PRs)
- Airlink (https://github.com/mavlink/qgroundcontrol/pull/10940)
Below is the full list that I went through, formatted to avoid backlinks everywhere.
The full list is taken from: https://github.com/mavlink/qgroundcontrol/pulls?page=9&q=is%3Apr+is%3Aclosed+merged%3A%3E2023-11-30
## Page 9
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/9896
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10331
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10485
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10605
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10875
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10882 -> docs migration?
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10884 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10886 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10888 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10893 -> docs tests
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10894 -> docs tests
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10895 -> fixed conflict from 4.3 to 4.4
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10889
## Page 8
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10901 -> already in 4.3 branch
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10902
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10903
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10904
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10905
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10906
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10907
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10908
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10909 -> UI rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10910
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10911 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10912 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10915 -> Qt6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10916
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10919 -> conflicts
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10921
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10925 -> probably conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10926 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10927 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10928 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10929 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10930 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10931 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10932 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10933 -> Qt6
## Page 7
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10934 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10935 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10936 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10937 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10939 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10939 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10940 -> conflicts a lot
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10942 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10944 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10946 -> Qt6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10947 (miracle)
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10948 -> conflicts a lot
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10954 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10958 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10960 -> Qt6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10961
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10963 -> Qt6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10964 (miracle)
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10965
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10966
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10967 -> conflicts
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10969
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10970 (miracle)
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10971
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10972
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10976 -> major rework
## Page 6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10978
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/10981
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10983 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10984 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10989 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10991 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10993 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/10996 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11001 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11002 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11003 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11005 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11006 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11009 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11012 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11014 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11016 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11019 -> Qt6
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11025
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11027
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11028
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11032
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11034 -> major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11035 -> Qt6, major rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11038 -> Qt6, major rework
## Page 5
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11040 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11042 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11044 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11045 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11046 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11047 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11048 -> 3D not merged
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11051 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11052 -> rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11053
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11054
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11055 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11057 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11058 -> 3D not merged
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11059 -> CAUGHT IN REVIEW, DROPPED.
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11061 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11063 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11064 -> CAUGHT IN REVIEW, DROPPED.
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11065 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11067 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11068 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11069 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11070 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11072 -> Qt6, rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11073 -> CI
## Page 4
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11074 -> already in 4.3
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11075 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11076 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11078 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11079 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11080 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11085 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11086 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11087 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11089 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11091 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11092 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11095 -> cmake/rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11097 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11099 -> changelog
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11101 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11102 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11103 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11105 -> rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11108
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11110 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11112 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11113 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11114 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11115 -> Qt6
## Page 3
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11116 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11119 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11120 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11121 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11123 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11124 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11125 -> 3D
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11128 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11130 -> 3D
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11132 -> rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11133 (miracle)
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11135 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11136 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11137 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11138 -> Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11139 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11141 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11142 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11143 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11144 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11146 -> docs Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11147 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11148 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11150 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11151 -> Lots of translation commits
## Page 2
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11151 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11154 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11155 -> rework?
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11157 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11158 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11160 -> cmake
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11161
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11162 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11163 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11164 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11166 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11166 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11167 -> doesn't link
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11168 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11173 -> 3D
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11174 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11178 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11179 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11180 -> doesn't compile with Qt5
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11181 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11182 -> CI
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11183 -> conflicts
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11188
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11189 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11191 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11192 -> cmake
## Page 1
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11196 -> needs rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11199 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11207 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11208 -> cmake translations
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11210 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11211 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11213 -> conflicts
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11216
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11218 -> rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11219
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11220 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11221 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11222 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11225 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11231 -> cmake
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11237 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11242 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11243 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11246 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11249 -> conflicts
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11250 -> rework/Qt6
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11251 -> comment only
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11256 -> rework
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11257 -> rework
✅ DONE https://github.com/mavlink/qgroundcontrol/pull/11260
## Recent since PR exists
Gimbal PR: https://github.com/mavlink/qgroundcontrol/pull/11264
❌ SKIP https://github.com/mavlink/qgroundcontrol/pull/11306 -> fell out in rebase
Not sure it's such a great idea to back port everything that can be back ported over as opposed to a piecemeal approach for only the most important stuff that would need to come over. The reason being is that this version won't see the light of day as a daily which gets extended use before moving to stable. It could likely be pretty flaky without knowing.
@DonLakeFlyer I agree. However, it's hard to draw the line. If we include some features like gimbal control (which is why we're doing this), then we ought to include other features as well that are well contained.
I assume you understand that we're in a bit of a tricky situation trying to release something until all the big/great refactoring (and Qt6) is done and working for each and every config. I assume it's ok to drop v4.4 if v5 can be released within a few weeks but we probably don't want to wait for too long either.
I understand both your points, but I think we are in a particular situation regarding master right now. I am not sure if it is the status right now, but for some time it has been broken, with this process of porting to qt 6, etc. At least in my close contacts, the very few people/companies that used to use always master instead of stable, stopped doing so momentarily because of this instability in master lately. So I think this is important to consider it in the argument of some features going to stable before spending enough time in daily first.
On a different note, I recently checked the above commits when rebasing the gimbal PR to 4.4, and I think the highest risk feature of getting through with little testing is probably video tracking, and I don't think it is high risk anyway. The rest of the commits are mainly bug fixes, some of them very important, like that crash fixed in 19462a3, so from my point of view I think it isn't too crazy to include all of this in the next 4.4 release.
But of course, if we have a defined timeline for master and it is reasonable, I am okay too with cherry-picking just less stuff, as I see Don's point of the added overhead on including this now.
By the way Don, if you could take a quick look at https://github.com/mavlink/qgroundcontrol/pull/11264 to be sure you are fine with it, I fixed all the stuff you suggested in the initial draft PR. I was holding on considering it good until you give the ok. Thank you very much!
Slightly tangential and at the risk of overextending myself I have been thinking for a few months that I should perhaps assist somehow with the release management of QGC. Perhaps I could assist with the issue analysis and tracking like I do for AP Copter and Rover.
Now that I'm done with the gstreamer fixes, the cmake stuff is mostly usable for test builds. There are a few more things that would need to be done before a release, but nothing too significant. I had a lot of feature improvements and other stuff I was working on but I can help run through a bunch of fixes first if that would help. I believe many of the issues are due to changes in QML widget properties/signals in Qt6. It's not really my place to comment as just some guy, but we could resolve as many issues as possible for a release and then switch over to CMake afterwards.
Thanks for the offer @rmackay9, I think any help in that direction would be very valuable!
@HTRamsey so you're saying we should/could just go straight to v5 based on Qt6 instead? Last time I checked it was missing a few things, and I wasn't sold on all UI changes. That's probably a broader discussion and I need to do some testing before that. To me it feels like it's still many weeks off but I might be wrong on that.
Uhhh personally I think some kind of v4.4 is a good idea because v5 really should be extensively tested for a few months. But in theory, I think most of the general Qt5 -> Qt6 updates are pretty close to 'done' and mostly just need a thorough vetting. Then it just comes down to what features/UI changes do you want included in v5 vs a theoretical v5.1.
I guess the point I was making in the previous comment was that making a release based on qmake & Qt6 (for v5.0) is probably a good idea before permanently switching to CMake and potentially introducing any issues from the new build system, unless v5.0 gets put off for at least a few months to allow a lot of testing time.
Also I can hold off on any feature changes I had planned and just help fix bugs for either v4.4 or v5.0 if that is the priority.
I also think it would be beneficial to make some efforts to improve the auto testing at some point.
Slightly tangential and at the risk of overextending myself I have been thinking for a few months that I should perhaps assist somehow with the release management of QGC. Perhaps I could assist with the issue analysis and tracking like I do for AP Copter and Rover.
That would be incredible. I have limited hours in a day to work on QGC. If a set of folks could help with issues and then just assign them to me (after they are determined to be real enough and have good details) I can spend my time fixing problems. I can tend to fix things very quickly.
Regarding the current state of master: If folks are finding it unstable for general use that should be an easily fixed problem. The majority of changed are UI in nature which tend to take little effort to fix once known. The key is "once known". I took a quick look through new Issues. Other than some some video stuff I'm not seeing much reporting on a pile of problems with master. So that would seem to indicate to me that people are trying daily but not helping out with reporting the problem they find. If people that have contacts can ask them to get back to using daily again on a normal basis and report the problems I will get it fixed up ASAP. It should not take very long at all.
As far as creating a new Stable release can someone explain the driving force between needing this? I see a few things:
- Created a new Stable from a bunch of cherry-picked stuff from master isn't really a new "Stable". It's just a cherry-picked Daily build which will require ongoing maintenance to fix since it has had zero bake time. The other problem is that Qt6 changes in Qml are pervasive, hence any new Qml you pull into some other build which doesn't use Qt6 may be problematic. There is no way to tell when these sorts of changes can fail without running QGC and hitting the specific part of the ui. I'm not super interested in having to fix all of this up by piecemeal putting things back to Qt5. I would much rather move forward.
- Daily doesn't work well now and people want to try some of the new stuff. That should be fixed by improving Daily quality, not be creating a new Stable.
- There seems to be a lot of interest in the new gimbal stuff. That hasn't even been merged in yet! I don't see how you make a new Stable with that in it when nobody has ever even had a chance the try it yet. Things should be given bake time in Daily to wring them out both from a UX perspective and from a functionality perspective. Again, I come back to why this needs to be rushed into a "Stable" instead of a Daily.
So for me the question remains, why do we need a new Stable so quickly after the last Stable was released? We have never done that before. Why can't we follow a regular, longer release cycle.
I'm very interested in getting the new gimbal stuff out to the community because it's a great leap forward in terms of usability for one of the major use cases of drones. I also see tons of manufacturers hacking up their own versions of MP and QGC which is a clear sign that this should be in the main version.
I actually agree that there hasn't been much bake time for the gimbal stuff so I think it makes a lot of sense to go into Daily, go through some beta testing, there will undoubtedly be some fixes and then finally release it as stable.
.. but let's get that darn gimbal PR merged asap!
If I were to run a QGC gimbal beta on the AP forums would that be OK? that's where I'm comfortable, have the necessary logins, and it would also allow me to weed out the AP specific issues from the actual QGC issues. I'd also likely get backup from other devs and pro users.
If I were to run a QGC gimbal beta on the AP forums would that be OK?
That would certainly make me feel more comfortable.
That said, there are two options here:
- Only include pull https://github.com/mavlink/qgroundcontrol/pull/11264 into a new stable. This would only require targeted testing/feedback on the gimbal stuff
- Include this pull here which is much more comprehensive with across the board changes as well as the gimbal pull. This would require more end to end QGC testing to verify
The approach for either would be to work from Stable_V4.3 as the base as opposed a true daily build. Folks can install from the CI artifacts for testing. If @rmackay9 is committed to running a beta on this to wring out it. And if @julianoes and @Davidsastresas are committed to responding to issues and fixing problems found in the beta. Then I'm fine with taking approach 2 which is a more comprehensive set of fixes prior to a major 5.0 release.
The way I see "Stable 4.4" is that it is most bugfixes that have been merged since 4.3 as well as some features, such as gimbal, which is lower risk to me as it is a new feature on top of the existing base, rather than "everything new, better and different" that I see in master. My fear is that it will take a long time until we can get a release out with master but I might be wrong with that.
So, given that, the reasonable thing to do, is probably try out master and collect the issues that I see, and make a more informed decision after that.
It's absolutely going to be a while before a new stable comes out on master. I'm going through a huge UI rework which is going to take a while to finish and settle out. So my suggestion is if folks are happy with signing up for the work is to create a new stable from this pull and the gimbal pull and then wring it out with a beta test group and call it 4.4
Ok, so it looks like @julianoes is ok with the path I proposed. Waiting to hear back from @Davidsastresas if he's ok with it as well. After that we can pull the trigger on merging into Stable_4.3 for a new 4.4 release.
Sorry but I got a bit lost on the last 3 messages @DonLakeFlyer. I think you meant if I am okay with doing this over 4.3, dealing with it as a beta and delivering executables in that forum thread managed by @rmackay9 , correct? If so, I am okay with it, and I will be responsive in the following weeks if any problem arises regarding that.
Also, just to be sure we are on the same page, you meant also to do the equivalent gimbal PR for master now? or you were implying to give it a bit of time in that beta testing group before preparing a gimbal PR for master?
Thanks.
Don's plan sounds OK to me.
Re running the release, I'm happy to fit in with however you guys normally run do it but my current thought is to do something like this:
- run the AP side of the QGC-4.4 beta from AP's discuss server's QGroundControl category
- start with a beta announcement in the above forum and on facebook
- create a new consolidated issue in the QGC issues list including a link back to the initial report topic and the status of the issue (e.g. requires analysis, confirmed bug, enhancement request, resolved)
- with each reported issue I'll try to reproduce it if I can and hopefully Don (and perhaps others) can help me clarify what we plan to do with each (e.g. fix it, raise an issue and let it go as a "known issue", etc).
- every week or two we release a new beta version with an accompanying beta release announcement.. repeat until we're happy that it's safe and then do the stable release
I think you meant if I am okay with doing this over 4.3, dealing with it as a beta and delivering executables in that forum thread managed by @rmackay9 , correct?
Yess, that is correct.
Also, just to be sure we are on the same page, you meant also to do the equivalent gimbal PR for master now?
That's up to you. It may be hassle to manage it from both 4.3 and master sides. If so, it's perfectly fine to wait until 4.3 settles out and then carry it across one time to master.
@rmackay9 What you listed out looks fantastic.
@julianoes Do you think you could notify folks on the PX4 side with a similar but likely lower key beta notice? I assume gimbal UI stuff in QGC is all generic so If we wring it out against ArduPilot then all that carries over toe PX4. So no need to double up testing on both sides.
So given all of this I'm going to take one last look through @Davidsastresas pull of gimbal work on 4.3 and merge that in. After that I'll look through this pull again to make sure there isn't anything which looks problematic. Once those two pulls are in we should be able to announce beta. Hopefully, by tomorrow.
Ok, so I've reviewed this pull. It's not a huge set of changes but it's also not a minor change. My suggest to wring this out would be to run a beta on the PX4 side with some folks to do some overall testing on QGC (as opposed to gimbal focused). I also think the person who did the camera tracking stuff should be brought in to retest since that is a major feature which is coming over from master. @julianoes Do you think you could run a beta on the PX4 side for this?
Not sure what happened here. Seems like my review comments are gone now and the whole chain of discussion that was here is gone as well. Is that the case for everyone or just me?
No it's still there
Duh!
Anyway, so the Gimbal stuff is in now. So next steps is fix this up to my review comments and merge this in as well. Then we will be ready to announce a beta.
@DonLakeFlyer yes, I'll try to have PX4 people try it out as well. Is there a link, like a pre-release github tag where it can be downloaded from?
Regarding your review commits, thanks! I need to find out which PR/commits introduced them and drop them.
@DonLakeFlyer I saw 3 comments by you and dropped the two commits, then force pushed. Alternatively, you can also review which commits went in via the commit list.
Is there a link, like a pre-release github tag where it can be downloaded from?
No. Folks will need to install from GitHub CI artifacts. You could also copy those links and put them in a forum post.
I'm trying to test the gimbal joystick support, but the button doesn't appear in the CI artifact linux app image.
Anyone know why?
I'm trying to test the gimbal joystick support, but the button doesn't appear in the CI artifact linux app image.
That would be a @Davidsastresas question
@hendjoshsr71, On this PR, only support for joystick buttons was added. In the buttons submenu you can select actions to move up/down/left/right and also some actions like center, etc.
@hendjoshsr71, On this PR, only support for joystick buttons was added. In the buttons submenu you can select actions to move up/down/left/right and also some actions like center, etc.
Alright. That option is on the wiki but I had a feeling it it was only available via a PR.
I tried the other main gimbal PR but the build artifact failed to load on Linux.
@hendjoshsr71
I tried the other main gimbal PR but the build artifact failed to load on Linux.
What was the error?
@hendjoshsr71 , please let us know the error you found opening the .appImage. About the executables of this PR, they are here:
https://github.com/mavlink/qgroundcontrol/actions/runs/8641829187 https://github.com/mavlink/qgroundcontrol/actions/runs/8641829183 https://github.com/mavlink/qgroundcontrol/actions/runs/8641829180 https://github.com/mavlink/qgroundcontrol/actions/runs/8641829174
Of course its totally cool that @hendjoshsr71 is helping with alpha testing, we are also going to do beta testing with the community as soon as this PR goes in. I guess I'm just questioning if the issues raised by Josh need to hold up the start beta testing?
I think we will uncover issues and enhancement requests during beta testing and we will need to manage those and decide which are really critical to address before a stable release.