changelog=
[1.2] - 2026-09-14
SECURITY
- Removed all insecure TLS fallbacks. Six request sites
(Open-Meteo archive
and forecast, NOAA WMM declination, Overpass airways, climate
data, API
connectivity test) retried with verify=False after an SSLError,
silencing
urllib3 warnings and exposing those calls to interception.
Certificate
verification is now always enforced and
urllib3.disable_warnings() is gone.
- Output folder is opened via QDesktopServices.openUrl() instead
of
os.startfile() and subprocess.Popen(['open'/'xdg-open', ...]),
removing
partial-executable-path resolution and process spawning
entirely.
- Removed the unused xml.etree.ElementTree import from the engine,
which
flagged as an untrusted-XML parsing risk despite never being
called.
- Replaced silent exception handlers. Four "except: pass" blocks
(lighting
swatch colouring, two AOI centroid derivations, graphics-view
zoom anchors)
and one bare "except: continue" in compute_runway_slope() now
catch
Exception explicitly and report through QgsMessageLog, so
failures are
diagnosable instead of invisible. Slope sampling additionally
reports how
many chainage points could not be reprojected to the DTM CRS.
- Illustrative placeholder obstacles in the obstruction map now
use a seeded
numpy.random.default_rng(42) rather than the random module.
FIXED
- Magnetic variation was applied with the wrong sign. Runway
magnetic bearings
and designators were computed as TRUE + variation instead of
TRUE - variation.
At sites with East variation this produced a magnetic bearing
greater than
true (the opposite of correct), and designators off by the full
variation
doubled. Affected analyze_runway_orientations_icao(),
get_runway_designation(),
and both runway-designation-point writers. Reported by a user
testing against
CYET (Edson, AB) and a second North American site.
- Runway designator rounding used banker's rounding. Python's
round() rounds
half-to-even, so a magnetic bearing of 345 deg yielded RWY 34
(correct: 35),
145 deg yielded 14 (correct: 15), and 005 deg yielded 36
(correct: 01). Now
uses arithmetic round-half-up per ICAO Annex 14 Sec. 5.2.2.
- Magnetic annual change was double-counted. Declination fetched
from the NOAA
WMM API is already valid for the current epoch, but the secular
variation was
then applied again across (current_year - wind_data_mid_year),
adding up to
~10 years of spurious drift on top. The variation's source epoch
is now
tracked and advanced only to an explicit target epoch.
CHANGED
- True/magnetic conversion consolidated into true_to_magnetic(),
magnetic_to_true() and runway_number_from_magnetic() on the
engine class,
replacing four independent inline copies of the formula.
- Compliance reports and the analysis log now state variation as
"16.0 deg E"
rather than a bare signed value, and print the conversion
convention in use.
- NOAA declination fetch records the epoch of the returned value.
- Declination button tooltip documents the sign convention.
yes
rahulpandey696
2026-09-14T09:35:18.774580+00:00
3.16.0
4.99.0
None
no
Plugin Tags