Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DONT MERGE] Stable v4.4 vs Stable v4.3 #11276

Draft
wants to merge 99 commits into
base: Stable_V4.3
Choose a base branch
from
Draft

Conversation

julianoes
Copy link
Contributor

@julianoes julianoes commented Mar 28, 2024

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:

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


@DonLakeFlyer
Copy link
Contributor

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.

@julianoes
Copy link
Contributor Author

@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.

@Davidsastresas
Copy link
Member

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 #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!

@rmackay9
Copy link

rmackay9 commented Apr 4, 2024

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.

@HTRamsey
Copy link
Collaborator

HTRamsey commented Apr 4, 2024

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.

@julianoes
Copy link
Contributor Author

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.

@HTRamsey
Copy link
Collaborator

HTRamsey commented Apr 5, 2024

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.

@DonLakeFlyer
Copy link
Contributor

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.

@rmackay9
Copy link

rmackay9 commented Apr 6, 2024

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.

@DonLakeFlyer
Copy link
Contributor

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:

  1. Only include pull Improve gimbal support for QGC 4.4 #11264 into a new stable. This would only require targeted testing/feedback on the gimbal stuff
  2. 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.

@julianoes
Copy link
Contributor Author

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.

@DonLakeFlyer
Copy link
Contributor

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

@DonLakeFlyer
Copy link
Contributor

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.

@Davidsastresas
Copy link
Member

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.

@rmackay9
Copy link

rmackay9 commented Apr 8, 2024

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

@DonLakeFlyer
Copy link
Contributor

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.

src/AutoPilotPlugins/APM/APMSensorsComponentController.cc Outdated Show resolved Hide resolved
src/AutoPilotPlugins/PX4/SensorsComponentController.cc Outdated Show resolved Hide resolved
src/QGCApplication.cc Outdated Show resolved Hide resolved
@DonLakeFlyer
Copy link
Contributor

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?

@DonLakeFlyer
Copy link
Contributor

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?

@HTRamsey
Copy link
Collaborator

No it's still there
image

@DonLakeFlyer
Copy link
Contributor

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.

@julianoes
Copy link
Contributor Author

@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.

@julianoes
Copy link
Contributor Author

@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.

@DonLakeFlyer
Copy link
Contributor

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.

jolivain and others added 3 commits April 11, 2024 17:07
The map scale width changes when the zoom up/down buttons are clicked.
When buttons are on the right, and when the user quickly clicks a zoom
up/down button several times, the first click change the scale, which
changes the buttons position. Subsequent clicks are most of the time not
where the user wanted to put them.

Putting buttons on the left of the scale will keep them at a fixed
position, fixing this unfortunate behavior.

Signed-off-by: Julien Olivain <ju.o@free.fr>
@rmackay9
Copy link

rmackay9 commented May 2, 2024

I'm a little late in starting the beta with the AP community because it's "Goldenweek" here in Japan. I plan to start early next week.

@DonLakeFlyer
Copy link
Contributor

Should we add the newer gstreamer qt5 plugin? It doesn't require code changes on our side and likely performs much better.

My opinion would be less is more. Given the fact that this whole release will have way less testing time done on it. I wouldn't change things in video which always gives us trouble.

@HTRamsey
Copy link
Collaborator

HTRamsey commented May 6, 2024

Just FYI we need to update android gstreamer to 1.18.6 because they've taken down every release that isn't the last revision for each major version.

@rmackay9
Copy link

Hi, Sorry for taking so long to start the beta testing. It it my top priority now but as I went to start the beta I realised that I'd better test it myself and provide instructions on how beta testers can install it and this is where I've run into troubles. I'm struggling a bit to get either QGC installed on my Herelink or get the Herelink video forwarding to my PC where I can run the beta version.

Anyway, I'm consulting with Michael Oborne, HenryW, DavidS and others so surely I'll get it working soon.

andrefreitas97 pushed a commit to andrefreitas97/qgroundcontrol that referenced this pull request May 15, 2024
@rmackay9
Copy link

Hi, when I tell users to install the beta using the "Artefacts" I see that the Checks page has multiple installers for each platform. So for example, for Windows users, should I be telling them to install using the 1st one or the last one?
image

@HTRamsey
Copy link
Collaborator

The On Pull Request one is before getting Rebased onto the branch, the On Push is after. So the On Push one is the correct one.

@rmackay9
Copy link

rmackay9 commented May 20, 2024

@HTRamsey, thank you very much!

I've finally started the beta testing with this announcement on the AP forums here. I've also created this issue for tracking.

Of course I'm very happy if PX4 users want to get involved as well but that should be managed by someone who knows PX4 on the PX4 forums because I couldn't possibly triage issues they might raise. I suspect we don't need to double up on beta testing though for this small-ish release. When it comes to the next major release we probably will.

BTW, I took an attempt at putting release notes and the top of the AP release announcement based on looking through the PRs that have been included in this PR. I hardly know what I'm doing so any corrections are greatly appreciated.

I've also posted on the AP facebook page here. https://www.facebook.com/groups/ArduPilot.org/permalink/7880296171993507/

Could interfere with parameter download on Herelink slower link
There was no wait between such requests, and Ardupilot was failing
to detect the handshake some times
@Davidsastresas
Copy link
Member

Davidsastresas commented May 20, 2024

I pushed 2 commits. A few days ago @andrefreitas97 reported sometimes the gimbal widget wasn't appearing. He related that to the amount of retries we were doing for the message requests to Ardupilot. It was kind of related:

  • Sometimes during parameter download traffic was too high and the requests from QGC to Autopilot got lost, so the handshake wasn't working. Now we wait for params download to perform the handshake.
  • We were sending several requests for those messages, but we were not waiting any time between them, and this was messing too with the handshake. Now we wait 1 second between each request done for gimbal_manager_status message.

After these changes it seems to detect gimbal every time now.

For awareness @rmackay9 @julianoes. I will update the release when CI finishes.

@Davidsastresas
Copy link
Member

By the way @rmackay9, @julianoes prepared a nice release page for users to not need to mess up with build artifacts. Everything should be tidy and nice there:
https://github.com/mavlink/qgroundcontrol/releases/tag/v4.4.0rc1

@rmackay9
Copy link

@Davidsastresas, Great, thanks for that. I've updated the release announcement links to point to Julian's release page.

Previous version used is not available anymore to download
@Davidsastresas
Copy link
Member

I pushed a couple of commits to fix CI, and I pushed a new pre-release with the fixes mentioned earlier about gimbal handshake. It should be here:

https://github.com/mavlink/qgroundcontrol/releases/tag/v4.4.0rc2

@rmackay9
Copy link

I've updated the beta release announcement to port to @Davidsastresas's -rc2 page.

@rmackay9
Copy link

Is there a weekly meeting or chat where we can discuss the issues that are coming up? I guess we could do all the communication in this PR as we are now if people prefer. There are 4 issues at the moment (all from me so far :-))

@mrpollo
Copy link
Member

mrpollo commented May 21, 2024

Thanks for the announcement post @rmackay9 I'll help share as well

Regarding the whole artifacts thing, we should have a bot that pulls the artifacts and posts a comment with links to download, Ill try to set it up this week.

@julianoes
Copy link
Contributor Author

Regarding the whole artifacts thing, we should have a bot that pulls the artifacts and posts a comment with links to download, Ill try to set it up this week.

@mrpollo there is the GitHub action https://github.com/svenstaro/upload-release-action which does it.

Also see: https://github.com/mavlink/MAVSDK/blob/7d6356d5147da8686e58ce041b79dc2457a47f5b/.github/workflows/main.yml#L258-L260

@mrpollo
Copy link
Member

mrpollo commented May 22, 2024

Thanks @julianoes

Testing out things here #11561

@julianoes
Copy link
Contributor Author

@mrpollo I don't think we need it added to this PR. We just need it to be added the release for each release candidate tag.

@julianoes
Copy link
Contributor Author

Who knows how to deal with Android CI?

     /home/runner/work/_temp/shadow_build_dir/android-build/build/intermediates/merged_manifests/release/AndroidManifest.xml:2: AAPT: error: invalid android:versionCode '664400rc2000'.

@Davidsastresas
Copy link
Member

Davidsastresas commented May 22, 2024

Who knows how to deal with Android CI?

     /home/runner/work/_temp/shadow_build_dir/android-build/build/intermediates/merged_manifests/release/AndroidManifest.xml:2: AAPT: error: invalid android:versionCode '664400rc2000'.

That is expected. Android takes the tag to compute the android version, and it needs clean major.minor.patch.dev naming. So, if the tag would be 4.4.0.2 instead Android CI would build fine, it is that "rc2" that confuses android build. By the way, that can be reproduced in local builds too.

However, that means it will get built as Stable and not as Daily, as it would have a proper tag associated, and I am not sure if we wanted to do this release candidates as Daily or Stable, so it is something we might want to consider, before changing the tag naming to solve this CI issue.

@julianoes
Copy link
Contributor Author

Oh, right @rmackay9. So we can ignore it, and then make another RC when required. RCs should be Stable, I'd say.

Otherwise it is not found for Android.
@rmackay9
Copy link

The Herelink .apk is available now as well, thanks @julianoes!
https://github.com/CubePilot/qgroundcontrol-herelink/releases/tag/v4.4.0.3

I've also found this random YouTube video that gives pretty good instructions on how to install it.

This removes rc version strings from the Android version code which
does not allow for anything but numbers. This is just to fix the release
candidate builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet