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

Closed
wants to merge 110 commits into from
Closed

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

✅ https://github.com/mavlink/qgroundcontrol/pull/11269


@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 <[email protected]>
@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.
@julianoes
Copy link
Contributor Author

Here is a warning to fix:

qrc:/qml/QGroundControl/FlightMap/VehicleMapItem.qml:48: TypeError: Cannot read property 'gimbalController' of null

The used commands like REQUEST_CAMERA_SETTINGS and
REQUEST_CAMERA_INFORMATION are deprecated. Therefore, we should
gradually try to move to the new REQUEST_MESSAGE commands.

This commit does so by sending REQUEST_MESSAGE by default but falling
back to the previous commands on the second try and every other retry
after that.
By querying autopilot for the CAMERA_INFORMATION message, we allow an
autopilot to be a proxy for a MAVLink or non-MAVLink camera.

The idea is similar to a gimbal manager implemented by an autopilot.
@rmackay9
Copy link

From a quick test this latest change fixes the recording button!
image

Since we no longer request cameras to have specific camera component IDs
but allow the autopilot to "be" a camera as well, we need to adjust the
unit tests to account for that.
@rmackay9 rmackay9 mentioned this pull request May 31, 2024
11 tasks
This fixes terrain download on Ubuntu 22.04 where only OpenSSL 3 is
available on the system but Qt5 wants OpenSSL 1.x.

This just copies the fix over from QGCFileDownload.
This fixes getting the video stream.
@HTRamsey
Copy link
Collaborator

HTRamsey commented Jun 3, 2024

You may want to consider including #11269 since that is kinda relevant to all of the camera work

@julianoes
Copy link
Contributor Author

Done, thanks @HTRamsey.

@Davidsastresas
Copy link
Member

Everything looks very nice, thank you everybody.

I just pushed a couple of commits fixing the qml warning Julian posted a few comments back, and also fixing the offline maps menu, it was broken after some of the commits cherry-picked from master.

@rmackay9
Copy link

rmackay9 commented Jun 3, 2024

Hi, I think maybe we should consider one more -rc (aka -rc4) and leave it out there testing for a few days and if that goes OK then release it as the official version?

The feedback on the beta testing thread has slowed so a new -rc may help get some additional feedback. We have a few issues on the issues list but I think they're not critical. The "Point Home ROI can't be cancelled," might be nice to fix but it's not the end of the world.

FYI @Davidsastresas @julianoes @DonLakeFlyer?

This made sense when we were not taking compid autopilot into account,
but now it will log this every vehicle connection if it isn't emulating
a mavlink camera
@Davidsastresas
Copy link
Member

Hi Randy.

I checked the matter about cancel ROI for home. It can be done, as it is now, you can click on the label instead of the waypoint:
Screenshot from 2024-06-03 17-22-26

If clicking the circle icon, it will take it as waypoint and show the "change waypoint to ... " dialog. But if you click the label "ROI Here", it will prompt you with the options to disable ROI.

I think we can do an rc5 with the newer changes and try to get more feedback. Thanks!

@Davidsastresas Davidsastresas mentioned this pull request Jun 5, 2024
10 tasks
@rmackay9
Copy link

rmackay9 commented Jun 7, 2024

I've updated the links to -rc5 on the AP beta testing thread. I'm off on holidays until Wed so my ability to test is very limited.

Still, I think we should go ahead and release. I think we've done a good bit of testing and enough time has passed during the beta period that we can be confident that it is stable and better than 4.3.

Thanks to @julianoes, @Davidsastresas, @DonLakeFlyer and @HTRamsey for their work on this release and also to those who provided feedback during beta testing including:

Thanks!

@julianoes
Copy link
Contributor Author

Closing this pull request as it was just to track the diff but not to be merged.

@julianoes julianoes closed this Jun 11, 2024
@julianoes
Copy link
Contributor Author

Here is the release:
https://github.com/mavlink/qgroundcontrol/releases/tag/v4.4.0

Thanks @rmackay9 for coordinating and communicating the RCs, and @Davidsastresas, and @HTRamsey for the help, and everyone else for the testing and notes.

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.