From 323527b405e7aba3846d1620e80eb7e80e7c4d36 Mon Sep 17 00:00:00 2001 From: Ting-Hong Shieh <32212900+ting-hong-shieh@users.noreply.github.com> Date: Mon, 17 Aug 2026 01:56:45 +0800 Subject: [PATCH 1/2] DOC: backfill the Unreleased changelog entries the automation missed The last commit to CHANGELOG.md is 5eae273b on 12 August, and the highest pull request it records is #1140. Thirty-nine commits have landed on develop since, and none of them is in the file, so [Unreleased] no longer describes the branch. Add the thirty-two that belong there, taken from the merge list and following the file's own rules: Added for new features, Changed for changes to existing behavior, Fixed for bug fixes, and tests left out. The seven TST commits in the gap are therefore not listed. Entries use the pull request title and link, with the issue linked alongside where the commit names one. One entry is a direct commit to develop with no pull request, so it links the commit instead. This does not fix the automation. #1173 covers that, and the two causes it identifies are both outside a pull request into develop: the pull_request_target workflow is read from the default branch, which still carries the older file, and RELEASE_TOKEN is resolving to empty. --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cd984d57..c13d39f0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,14 @@ Attention: The newest changes should be on top --> ### Added +- ENH: Support fixed-time parachute deployment triggers [#1133](https://github.com/RocketPy-Team/RocketPy/pull/1133) [#437](https://github.com/RocketPy-Team/RocketPy/issues/437) +- DOC: Add SIL parachute ejection integration example [#1131](https://github.com/RocketPy-Team/RocketPy/pull/1131) [#524](https://github.com/RocketPy-Team/RocketPy/issues/524) +- ENH: List NOAA atmosphere datasets and fetch latest [#1136](https://github.com/RocketPy-Team/RocketPy/pull/1136) [#660](https://github.com/RocketPy-Team/RocketPy/issues/660) +- ENH: Model unbonded solid-motor grain CM shift [#1138](https://github.com/RocketPy-Team/RocketPy/pull/1138) [#340](https://github.com/RocketPy-Team/RocketPy/issues/340) +- ENH: Add `Flight` post-step callback across all phases [#1128](https://github.com/RocketPy-Team/RocketPy/pull/1128) [#758](https://github.com/RocketPy-Team/RocketPy/issues/758) +- DOC: Document angle-of-attack drag inputs [#1142](https://github.com/RocketPy-Team/RocketPy/pull/1142) +- ENH: Create ensembles from user-defined profiles [#1141](https://github.com/RocketPy-Team/RocketPy/pull/1141) +- ENH: Add tube-fin aerodynamic surface [#1144](https://github.com/RocketPy-Team/RocketPy/pull/1144) - ENH: StochasticFreeFormFins for Monte Carlo simulations [#1117](https://github.com/RocketPy-Team/RocketPy/pull/1117) - ENH: `StochasticFreeFormFins`, so free-form fin sets can be used in Monte Carlo simulations. The outline is randomized as a block, since a shape is only meaningful as a complete set of points: every coordinate is perturbed by its own draw, the fin root is held on the body line, and a list of candidate outlines can have a different number of points in each. [#953](https://github.com/RocketPy-Team/RocketPy/issues/953) - ENH: Support for Open Meteo API in the `Environment` class, adding the `open_meteo` and `open_meteo_ensemble` atmospheric models. Pressure-level forecasts, past forecasts (from 2021 onwards) and ensembles are read straight from a keyless JSON API, with no external files and no netCDF/OPeNDAP dependency. [#520](https://github.com/RocketPy-Team/RocketPy/issues/520) [#1119](https://github.com/RocketPy-Team/RocketPy/pull/1119) @@ -42,6 +50,12 @@ Attention: The newest changes should be on top --> ### Changed +- ENH: Compute the rocket static margin lazily [#1135](https://github.com/RocketPy-Team/RocketPy/pull/1135) [#780](https://github.com/RocketPy-Team/RocketPy/issues/780) +- CI: Measure coverage on develop, not only on pull requests [#1162](https://github.com/RocketPy-Team/RocketPy/pull/1162) +- MNT: Let pylint use every core it is given [#1163](https://github.com/RocketPy-Team/RocketPy/pull/1163) +- DOC: Tighten the comments that came with the sampler seed groups [#1154](https://github.com/RocketPy-Team/RocketPy/pull/1154) +- CI: Run the changelog job for pull requests from forks [#1112](https://github.com/RocketPy-Team/RocketPy/pull/1112) +- CI: Keep per-matrix coverage artifacts and fail Codecov errors [#1123](https://github.com/RocketPy-Team/RocketPy/pull/1123) [#1088](https://github.com/RocketPy-Team/RocketPy/issues/1088) - CI: make the Gemini PR reviewer actually review [#1140](https://github.com/RocketPy-Team/RocketPy/pull/1140) - MNT: declare dependency floors the package can actually run on [#1108](https://github.com/RocketPy-Team/RocketPy/pull/1108) - CI: build the docs for pull requests into develop as well [#1104](https://github.com/RocketPy-Team/RocketPy/pull/1104) @@ -50,6 +64,24 @@ Attention: The newest changes should be on top --> ### Fixed +- BUG: Sample `StochasticFlight` inputs once per simulation [#1126](https://github.com/RocketPy-Team/RocketPy/pull/1126) [#1090](https://github.com/RocketPy-Team/RocketPy/issues/1090) +- BUG: Fix spurious `ValueError` from floating-point roundoff at exact tank depletion [#1166](https://github.com/RocketPy-Team/RocketPy/pull/1166) +- BUG: Draw each declared eccentricity once per simulation [#1168](https://github.com/RocketPy-Team/RocketPy/pull/1168) +- BUG: Accept numpy integer types as a `Parachute` trigger [#1116](https://github.com/RocketPy-Team/RocketPy/pull/1116) +- BUG: Refuse to run a Monte Carlo over a results file it cannot write [#1161](https://github.com/RocketPy-Team/RocketPy/pull/1161) +- BUG: Write MonteCarlo input and output rows atomically [#1125](https://github.com/RocketPy-Team/RocketPy/pull/1125) [#1110](https://github.com/RocketPy-Team/RocketPy/issues/1110) +- BUG: Draw the eccentricities again, whichever way they were added [#1167](https://github.com/RocketPy-Team/RocketPy/pull/1167) +- BUG: Serialize numpy `SeedSequence` for sensor seeds [#1124](https://github.com/RocketPy-Team/RocketPy/pull/1124) [#1087](https://github.com/RocketPy-Team/RocketPy/issues/1087) +- BUG: Build the Monte Carlo flights with the configuration they were given [#1164](https://github.com/RocketPy-Team/RocketPy/pull/1164) +- BUG: Apply the wind factors to the ensemble member that was selected [#1160](https://github.com/RocketPy-Team/RocketPy/pull/1160) +- BUG: Avoid scalar statistics for structured Monte Carlo results [#1146](https://github.com/RocketPy-Team/RocketPy/pull/1146) [#1145](https://github.com/RocketPy-Team/RocketPy/issues/1145) +- BUG: Evaluate parachute triggers once per time node [#1121](https://github.com/RocketPy-Team/RocketPy/pull/1121) [#1086](https://github.com/RocketPy-Team/RocketPy/issues/1086) +- DOC: Fix the RST indentation in the `dict_generator` notes [`772480d`](https://github.com/RocketPy-Team/RocketPy/commit/772480d6bc69e5b5c2f517305e974c65ca781e57) +- BUG: Stop `dict_generator` from sampling `initial_solution` [#1122](https://github.com/RocketPy-Team/RocketPy/pull/1122) [#1109](https://github.com/RocketPy-Team/RocketPy/issues/1109) +- BUG: Report missing impact roots explicitly [#1148](https://github.com/RocketPy-Team/RocketPy/pull/1148) [#1147](https://github.com/RocketPy-Team/RocketPy/issues/1147) +- DOC: Correct the `Flight` aerodynamic moment units [#1149](https://github.com/RocketPy-Team/RocketPy/pull/1149) +- BUG: Seed the parachute pressure noise with a per-instance RNG [#1134](https://github.com/RocketPy-Team/RocketPy/pull/1134) [#1091](https://github.com/RocketPy-Team/RocketPy/issues/1091) +- BUG: Restore the UTC fallback without timezonefinder [#1143](https://github.com/RocketPy-Team/RocketPy/pull/1143) - BUG: Pick between the candidate values of a list input with the stochastic model's own seeded generator. `random.choice` was used, which draws from the interpreter-wide stream that `_set_stochastic` does not reseed, so a fixed seed did not reproduce the values chosen from a list, and Monte Carlo workers forked from one process walked a single shared stream instead of sampling independently. Fixed-seed baselines that vary a list input change. [#953](https://github.com/RocketPy-Team/RocketPy/issues/953) - BUG: Report the atmospheric model time period and ensemble member count for lower-case model types. `set_atmospheric_model` documents `type` as case-insensitive, but `Environment.info()` and `all_info()` compared against capitalised literals, so `type="ensemble"` printed no time period and no member count, and skipped the ensemble comparison plot. [#520](https://github.com/RocketPy-Team/RocketPy/issues/520) - BUG: Give each `CustomSampler` input its own deterministic stream, and seed samplers sharing one generator once as a group. Existing fixed-seed `CustomSampler` baselines change, and samplers built on the legacy `RandomState` must move to `default_rng` because seeds now carry the full 128 bits. [#1102](https://github.com/RocketPy-Team/RocketPy/pull/1102) From e8bf4783112543c1e2920af2b59ac1e7294c573e Mon Sep 17 00:00:00 2001 From: Ting-Hong Shieh <32212900+ting-hong-shieh@users.noreply.github.com> Date: Tue, 18 Aug 2026 23:12:29 +0800 Subject: [PATCH 2/2] DOC: follow changelog exclusion rules --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c13d39f0f..28f601312 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,11 +51,7 @@ Attention: The newest changes should be on top --> ### Changed - ENH: Compute the rocket static margin lazily [#1135](https://github.com/RocketPy-Team/RocketPy/pull/1135) [#780](https://github.com/RocketPy-Team/RocketPy/issues/780) -- CI: Measure coverage on develop, not only on pull requests [#1162](https://github.com/RocketPy-Team/RocketPy/pull/1162) -- MNT: Let pylint use every core it is given [#1163](https://github.com/RocketPy-Team/RocketPy/pull/1163) - DOC: Tighten the comments that came with the sampler seed groups [#1154](https://github.com/RocketPy-Team/RocketPy/pull/1154) -- CI: Run the changelog job for pull requests from forks [#1112](https://github.com/RocketPy-Team/RocketPy/pull/1112) -- CI: Keep per-matrix coverage artifacts and fail Codecov errors [#1123](https://github.com/RocketPy-Team/RocketPy/pull/1123) [#1088](https://github.com/RocketPy-Team/RocketPy/issues/1088) - CI: make the Gemini PR reviewer actually review [#1140](https://github.com/RocketPy-Team/RocketPy/pull/1140) - MNT: declare dependency floors the package can actually run on [#1108](https://github.com/RocketPy-Team/RocketPy/pull/1108) - CI: build the docs for pull requests into develop as well [#1104](https://github.com/RocketPy-Team/RocketPy/pull/1104)