Skip to content

MNT: Updates master with develop#1060

Open
Gui-FernandesBR wants to merge 9 commits into
masterfrom
develop
Open

MNT: Updates master with develop#1060
Gui-FernandesBR wants to merge 9 commits into
masterfrom
develop

Conversation

@Gui-FernandesBR

Copy link
Copy Markdown
Member

Summary

Brings develop back in sync with master ahead of the v1.13.0 tag.

Content included:

Why merge this before tagging v1.13.0

The v1.13.0 changelog section (already on master via #1048) lists #1059 under "Fixed", but the actual fix only landed on develop after the release PR was merged. Merging this PR before creating the v1.13.0 tag makes the tag content match the changelog.

🤖 Generated with Claude Code

@Gui-FernandesBR Gui-FernandesBR requested a review from a team as a code owner July 10, 2026 02:03
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.37500% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.84%. Comparing base (4a67a41) to head (ba9d130).

Files with missing lines Patch % Lines
rocketpy/rocket/parachute.py 94.39% 6 Missing ⚠️
rocketpy/simulation/flight.py 92.85% 2 Missing ⚠️
rocketpy/environment/tools.py 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1060      +/-   ##
==========================================
+ Coverage   81.74%   81.84%   +0.10%     
==========================================
  Files         118      115       -3     
  Lines       15248    15145     -103     
==========================================
- Hits        12464    12396      -68     
+ Misses       2784     2749      -35     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Gui-FernandesBR and others added 5 commits July 10, 2026 23:34
#1062)

The Unreleased section listed PR #1059 twice (it is already recorded
under v1.13.0) and a develop/master sync merge entry (#1058), which the
changelog header explicitly excludes.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* Revert "fix(parachute): gate trigger u_dot on arity instead of parameter names"

This reverts commit 6c891c9.

* Revert "MNT: refactor parachute implementation (#958)"

This reverts commit b516ace.

* REV: Fix merge errors

* MNT: remove last mentions of hemisoherical chute
* ENH: seed sensor measurement noise per instance

Sensor noise (Accelerometer, Gyroscope, Barometer, GnssReceiver) was drawn from
the process-global NumPy RNG, so it could not be seeded or reproduced, and it was
unsafe under parallel or forked execution where workers share or reset the global
RNG (issue #1042).

Thread an optional seed argument through the Sensor base classes. Each sensor now
owns a numpy.random.Generator from np.random.default_rng(seed) and draws its white
noise and random walk from it instead of np.random. seed=None keeps the noise
random but per-instance, so existing behaviour is unchanged unless a seed is given.

Also adds tests/unit/sensors/test_sensor_seeding.py covering reproducibility,
decorrelation across seeds, independence from the global RNG, and the GnssReceiver
path.

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>

* DOC: add CHANGELOG entry for sensor noise seeding (#1052)

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>

* TST: seed the noisy sensor fixtures instead of the global RNG

Sensor noise now comes from each sensor's own Generator, so the autouse
`_seed_rng` fixture that seeded the global `np.random` no longer made the noisy
assertions deterministic; they would flake on CI. Pass `seed=42` to the noisy
accelerometer, gyroscope, barometer, and gnss fixtures so their noise is
reproducible through the new per-instance seeding, and drop the now-defunct
`_seed_rng` fixture.

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>

* ENH: serialize the sensor seed and document it

Address review feedback: document the seed argument in every sensor __init__
(this also fills in the name entry that was missing from Gyroscope's docstring),
and carry seed through to_dict/from_dict so it survives serialization, including
GnssReceiver's custom to_dict. from_dict reads it with data.get("seed") so dicts
saved before this change still load, defaulting to None.

Add serialization tests: the seed round-trips through the JSON encoder for every
sensor type, and from_dict defaults the seed to None when the key is absent.

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>

* TST: cover sensor base-class validation and dunders

Add tests for the argument-validation error paths (measurement range,
orientation, vectorized inputs, export file_format) and the __repr__ / __call__
helpers on Sensor and InertialSensor. These paths were untested; with them
rocketpy/sensors reaches full statement coverage.

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>

---------

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>
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.

4 participants