Skip to content

ArduPilot-4.7.1 official release - #34225

Merged
rmackay9 merged 13 commits into
ArduPilot:ArduPilot-4.7from
rmackay9:ap471
Sep 2, 2026
Merged

ArduPilot-4.7.1 official release#34225
rmackay9 merged 13 commits into
ArduPilot:ArduPilot-4.7from
rmackay9:ap471

Conversation

@rmackay9

@rmackay9 rmackay9 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

This is the ArduPilot-4.7.1 official release for Copter, TradHeli, Plane, Rover, Tracker, Sub and Periph. There is only one code change which is to fix a failing autotest so this mostly just updates the release notes (to add the release date) and the versions

Classification & Testing (check all that apply and add your own)

  • Checked by a human programmer
  • Non-functional change
  • No-binary change
  • Infrastructure change (e.g. unit tests, helper scripts)
  • Automated test(s) verify changes (e.g. unit test, autotest)
  • Tested manually, description below (e.g. SITL)
  • Tested on hardware
  • Logs attached
  • Logs available on request

@tridge

tridge commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Deprecated — see below for the updated review.

Previous review (2026-08-31)

Automated review note — AI-generated (Claude), validated against the live diff. Please sanity-check before acting.
Full report: https://uav.tridgell.net/DevCallReviews/2026_09_01/devcall_pr_reviews.html#pr34225

Reviewed at head a52dd00c34. APPROVE — no blockers.

Since this is a release PR where one wrong field ships to every user, both passes checked every value rather than spot-checking. What was verified:

  • All six version headers, field by field. AntennaTracker, ArduCopter, ArduPlane, ArduSub, Rover and Tools/AP_Periph each read THISFIRMWARE "<vehicle> V4.7.1", FIRMWARE_VERSION 4,7,1,FIRMWARE_VERSION_TYPE_OFFICIAL, and FW_MAJOR 4 / FW_MINOR 7 / FW_PATCH 1 / FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL. No -beta, -rc or -dev suffix survives anywhere, and the numeric triple, the split macros and the human-readable string agree in all six.
  • Dropping the +0 that followed FIRMWARE_VERSION_TYPE_BETA is correct — the 4.7.0 official release (commit f9136a0b706) used exactly 4,7,0,FIRMWARE_VERSION_TYPE_OFFICIAL with no suffix.
  • Release notes are identical across all six: Release 4.7.1 31-August-2026 / 4.7.1-beta1 17-August-2026, matching today's date and the format 4.7.0 used.
  • No code rides along — the delta is exactly those 12 files, confirming "no code changes compared to 4.7.1-beta1".
  • Coverage is right. TradHeli builds from ArduCopter's sources so shares its version.h. Blimp's absence is deliberate rather than an omission: it sits at Blimp V4.7.0-dev, was never in the 4.7.x release train, and was excluded from 4.7.0 too.
  • Twelve commits, one file each, every message naming 4.7.1.

One procedural note rather than a finding: 8 CI jobs were still running at review time (5 Copter autotests, 4 ChibiOS builds), with 93 passing and none failing. Worth having those green before merge.

@rmackay9 rmackay9 changed the title Ap471 ArduPilot-4.7.1 official release Aug 31, 2026
@rmackay9

rmackay9 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

I've included a single autotest PR which I hear should help improve the chance of it passing CI

@tridge

tridge commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Automated review note — AI-generated (Claude), validated against the live diff. Please sanity-check before acting.
Full report: https://uav.tridgell.net/DevCallReviews/2026_09_08/devcall_pr_reviews.html#pr34225

Re-reviewed at head 79a525c238; my earlier comment above is superseded. APPROVE — no blockers in the diff.

Since my last review at a52dd00c34 the branch was re-applied, so all twelve version/release-note commits have new hashes — but their content is byte-identical (stable patch-IDs match pairwise). The only content change is Tools/autotest/vehicle_test_suite.py, +1/-5, from the one added commit 680db68213.

That commit is fine. It's an adaptation of 8c4c98254e on master; the patch-IDs differ only because this branch lacks the earlier commit that had already added # noqa: BLE001, so the cherry-pick adds that comment where master carried it as context. The three functional removals are identical. And removing the ftp cancel is sound for a reason worth stating: MAVProxy 1.8.74 already calls terminate_session() from check_read_finished() the moment a download completes — before ftp status can report idle — so the explicit cancel was tearing down a session the client had already closed. copter-tests2b passed two consecutive FTP fetches at this head.

One thing to watch before merging

CI isn't green yet. The first build-test attempt failed at the colcon step — test_prearm_service.py:110, AssertionError: Vehicle not armable, after a DDS serial participant-session failure. Attempt 2 is queued, so it currently reads pending; everything else passes (103 green).

The evidence that this is intermittent and unrelated to your diff is strong: the previous head on this same branch ran colcon and passed (2026-08-31); the base SHA 331c42a50c has both a passing colcon run and a failure with the same DDS-session signature in a different test; and another ArduPilot-4.7 PR passed all 21 DDS tests on the same container digest as this failure. Neither version metadata nor an autotest helper the colcon suite never loads can plausibly cause a DDS participant-session failure. Still — this is the official release, so worth letting the re-run go green rather than merging through it.

Two small record-keeping points

The description no longer matches the head. It says "There have been no code changes compared to the 4.7.1-beta1 so this simply updates the release notes (to add the release date) and the versions" — true when written, but the head now carries the autotest commit too, and the "Infrastructure change (e.g. unit tests, helper scripts)" box is unticked while that's exactly what it is. "No-binary change" is also a bit off: THISFIRMWARE, FW_TYPE and the version tuple compile into firmware metadata via AP_FWVersionDefine.h, so the shipped binaries do differ from beta1 — which is the point of the PR.

Pre-existing, not yours to fix here: in Tools/AP_Periph/version.h the fallback block used when HAVE_ENUM_FIRMWARE_VERSION_TYPE is undefined defines both FIRMWARE_VERSION_TYPE_BETA and FIRMWARE_VERSION_TYPE_OFFICIAL as 255. So for AP_Periph the beta→official FW_TYPE change is numerically a no-op and nothing downstream can tell an AP_Periph beta from an official build by that field (the THISFIRMWARE string does still change). Identical on master and untouched by this PR — flagged only because a release is when someone is most likely to lean on that field.

What was actually checked

Every version value was re-verified at this head rather than carried over, since the branch was re-applied: all six version.h read 4.7.1 / FIRMWARE_VERSION_TYPE_OFFICIAL / 4,7,1 (TradHeli shares Copter's header), no -beta1 suffix survives in any THISFIRMWARE, and all six ReleaseNotes.txt headers read identically. Base branch ArduPilot-4.7 is correct. A cold second review of the whole diff, run without sight of any of the above, returned no bugs.

One correction to my own note: I first recorded this branch as having a single colcon run. It has two, and the earlier one passed — which is what makes the intermittency case rather than weakens it.

@rmackay9
rmackay9 merged commit dbe7921 into ArduPilot:ArduPilot-4.7 Sep 2, 2026
106 of 107 checks passed
@rmackay9
rmackay9 deleted the ap471 branch September 2, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants