sidereon 2.1.1__tar.gz → 3.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. {sidereon-2.1.1 → sidereon-3.0.0}/.github/workflows/ci.yml +45 -31
  2. {sidereon-2.1.1 → sidereon-3.0.0}/.github/workflows/release.yml +17 -9
  3. {sidereon-2.1.1 → sidereon-3.0.0}/.gitignore +1 -0
  4. sidereon-3.0.0/CHANGELOG.md +783 -0
  5. sidereon-3.0.0/COVERAGE.md +6332 -0
  6. {sidereon-2.1.1 → sidereon-3.0.0}/Cargo.lock +35 -5
  7. {sidereon-2.1.1 → sidereon-3.0.0}/Cargo.toml +8 -4
  8. {sidereon-2.1.1 → sidereon-3.0.0}/PKG-INFO +74 -6
  9. {sidereon-2.1.1 → sidereon-3.0.0}/README.md +73 -5
  10. {sidereon-2.1.1 → sidereon-3.0.0}/THIRD-PARTY-NOTICES.md +1 -1
  11. sidereon-3.0.0/docs/antex.md +98 -0
  12. sidereon-3.0.0/docs/observations.md +621 -0
  13. {sidereon-2.1.1 → sidereon-3.0.0}/docs/public-gnss-distribution-sources.md +26 -3
  14. sidereon-3.0.0/docs/releasing.md +7 -0
  15. sidereon-3.0.0/docs/rinex-clock.md +255 -0
  16. sidereon-3.0.0/docs/sp3.md +216 -0
  17. sidereon-3.0.0/docs/tdm.md +253 -0
  18. {sidereon-2.1.1 → sidereon-3.0.0}/pyproject.toml +5 -4
  19. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/__init__.py +855 -176
  20. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/__init__.pyi +13539 -6227
  21. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/data.py +1589 -127
  22. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/data.pyi +7 -1
  23. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/distribution.py +68 -18
  24. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/distribution.pyi +5 -0
  25. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/exact_sp3.py +21 -5
  26. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/exact_sp3.pyi +3 -1
  27. sidereon-3.0.0/rust-toolchain.toml +2 -0
  28. sidereon-3.0.0/scripts/check-release.py +335 -0
  29. sidereon-3.0.0/scripts/core_source_identity.rs +417 -0
  30. sidereon-3.0.0/scripts/coverage/bindmap.py +284 -0
  31. sidereon-3.0.0/scripts/coverage/pubapi.py +554 -0
  32. sidereon-3.0.0/scripts/coverage/render_coverage.py +109 -0
  33. sidereon-3.0.0/src/antex.rs +1285 -0
  34. {sidereon-2.1.1 → sidereon-3.0.0}/src/araim.rs +7 -0
  35. sidereon-3.0.0/src/bias.rs +999 -0
  36. {sidereon-2.1.1 → sidereon-3.0.0}/src/broadcast_comparison.rs +8 -5
  37. sidereon-3.0.0/src/cdm.rs +1064 -0
  38. {sidereon-2.1.1 → sidereon-3.0.0}/src/constellation.rs +3 -3
  39. sidereon-3.0.0/src/core_error_detail.rs +718 -0
  40. {sidereon-2.1.1 → sidereon-3.0.0}/src/coverage.rs +119 -1
  41. sidereon-3.0.0/src/data_catalog.rs +1240 -0
  42. {sidereon-2.1.1 → sidereon-3.0.0}/src/defaults.rs +15 -1
  43. {sidereon-2.1.1 → sidereon-3.0.0}/src/dgnss.rs +24 -12
  44. sidereon-3.0.0/src/ephemeris.rs +4810 -0
  45. {sidereon-2.1.1 → sidereon-3.0.0}/src/error_metrics.rs +2 -0
  46. sidereon-3.0.0/src/exact_time.rs +221 -0
  47. {sidereon-2.1.1 → sidereon-3.0.0}/src/fallback.rs +176 -5
  48. sidereon-3.0.0/src/format_diagnostics.rs +603 -0
  49. {sidereon-2.1.1 → sidereon-3.0.0}/src/frames.rs +25 -7
  50. {sidereon-2.1.1 → sidereon-3.0.0}/src/fusion.rs +1059 -11
  51. {sidereon-2.1.1 → sidereon-3.0.0}/src/iod.rs +33 -5
  52. sidereon-3.0.0/src/ionex.rs +3644 -0
  53. sidereon-3.0.0/src/lib.rs +1162 -0
  54. {sidereon-2.1.1 → sidereon-3.0.0}/src/marshal.rs +119 -19
  55. {sidereon-2.1.1 → sidereon-3.0.0}/src/nmea.rs +15 -58
  56. {sidereon-2.1.1 → sidereon-3.0.0}/src/observables.rs +217 -32
  57. sidereon-3.0.0/src/oem.rs +960 -0
  58. sidereon-3.0.0/src/omm.rs +1180 -0
  59. sidereon-3.0.0/src/opm.rs +1097 -0
  60. sidereon-3.0.0/src/ppp.rs +2978 -0
  61. {sidereon-2.1.1 → sidereon-3.0.0}/src/ppp_corrections.rs +393 -18
  62. sidereon-3.0.0/src/products.rs +3026 -0
  63. {sidereon-2.1.1 → sidereon-3.0.0}/src/propagation.rs +557 -75
  64. {sidereon-2.1.1 → sidereon-3.0.0}/src/qc.rs +471 -227
  65. {sidereon-2.1.1 → sidereon-3.0.0}/src/reliability.rs +3 -2
  66. sidereon-3.0.0/src/rinex.rs +4874 -0
  67. sidereon-3.0.0/src/rinex_clock.rs +2651 -0
  68. sidereon-3.0.0/src/rtcm.rs +5725 -0
  69. {sidereon-2.1.1 → sidereon-3.0.0}/src/rtk.rs +236 -34
  70. {sidereon-2.1.1 → sidereon-3.0.0}/src/sbas_pl.rs +20 -4
  71. {sidereon-2.1.1 → sidereon-3.0.0}/src/sbas_ssr.rs +1181 -75
  72. sidereon-3.0.0/src/scenario.rs +1066 -0
  73. {sidereon-2.1.1 → sidereon-3.0.0}/src/sidereal.rs +2 -1
  74. {sidereon-2.1.1 → sidereon-3.0.0}/src/sky.rs +6 -2
  75. sidereon-3.0.0/src/solve_error_detail.rs +1117 -0
  76. sidereon-3.0.0/src/space_weather.rs +561 -0
  77. sidereon-3.0.0/src/spk.rs +549 -0
  78. {sidereon-2.1.1 → sidereon-3.0.0}/src/spp.rs +471 -26
  79. sidereon-3.0.0/src/spp_error_detail.rs +335 -0
  80. {sidereon-2.1.1 → sidereon-3.0.0}/src/staleness.rs +171 -7
  81. {sidereon-2.1.1 → sidereon-3.0.0}/src/static_positioning.rs +111 -17
  82. sidereon-3.0.0/src/tdm.rs +2911 -0
  83. sidereon-3.0.0/src/terrain.rs +715 -0
  84. {sidereon-2.1.1 → sidereon-3.0.0}/src/terrain_store.rs +565 -133
  85. sidereon-3.0.0/src/tides.rs +1432 -0
  86. sidereon-3.0.0/src/time_model_error.rs +29 -0
  87. sidereon-3.0.0/src/tle_fit_error_detail.rs +283 -0
  88. {sidereon-2.1.1 → sidereon-3.0.0}/src/tropo.rs +76 -15
  89. {sidereon-2.1.1 → sidereon-3.0.0}/tests/_helpers.py +26 -1
  90. sidereon-3.0.0/tests/_sp3_merge.py +446 -0
  91. sidereon-3.0.0/tests/fixtures/README.md +115 -0
  92. sidereon-3.0.0/tests/fixtures/cdm.json +133 -0
  93. sidereon-3.0.0/tests/fixtures/clk/lossless/rinex_clock304_table_a17.clk +34 -0
  94. sidereon-3.0.0/tests/fixtures/clk/lossless/rinex_clock304_table_a18.clk +13 -0
  95. sidereon-3.0.0/tests/fixtures/core_goldens.json +53240 -0
  96. sidereon-3.0.0/tests/fixtures/format_diagnostics_inputs.json +5 -0
  97. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/omm.json +6 -6
  98. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/pass_finder.json +10 -10
  99. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/ppp_esbc.json +3930 -285
  100. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/rtk_wtzr.json +6941 -6941
  101. sidereon-3.0.0/tests/fixtures/scenario_base.json +152 -0
  102. sidereon-3.0.0/tests/fixtures/sgp4_topocentric.json +305 -0
  103. sidereon-3.0.0/tests/fixtures/sp3-merge-report-v3.json +346 -0
  104. sidereon-3.0.0/tests/fixtures/sp3_bodies.json +255 -0
  105. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_015_bindings.py +28 -0
  106. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_016_wave2_bindings.py +34 -10
  107. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_017_domain_exposure.py +123 -115
  108. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_018_domain_exposure.py +102 -59
  109. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_019_track.py +28 -0
  110. sidereon-3.0.0/tests/test_antex.py +552 -0
  111. sidereon-3.0.0/tests/test_antex_public_pcv_sample_fields.py +84 -0
  112. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_batch.py +41 -14
  113. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_broadcast_fallback.py +133 -5
  114. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_cdm.py +145 -0
  115. sidereon-3.0.0/tests/test_cdm_top_level.py +97 -0
  116. sidereon-3.0.0/tests/test_cdm_value_equality.py +83 -0
  117. sidereon-3.0.0/tests/test_codec_error_details.py +210 -0
  118. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_constellation_fleet.py +100 -2
  119. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_core_defaults.py +28 -1
  120. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_core_public_api_parity.py +3 -1
  121. sidereon-3.0.0/tests/test_core_revision.py +454 -0
  122. sidereon-3.0.0/tests/test_core_round3_surfaces.py +506 -0
  123. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_coverage.py +39 -0
  124. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_data.py +1193 -25
  125. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_dgnss.py +99 -24
  126. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_distribution.py +25 -0
  127. sidereon-3.0.0/tests/test_dted_tile_error_details.py +248 -0
  128. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_events_bodies_dop.py +4 -4
  129. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_field_mode_bindings.py +56 -65
  130. sidereon-3.0.0/tests/test_format_diagnostics.py +247 -0
  131. sidereon-3.0.0/tests/test_fusion_error_details.py +196 -0
  132. sidereon-3.0.0/tests/test_inertial_mechanization.py +151 -0
  133. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ionex.py +66 -0
  134. sidereon-3.0.0/tests/test_ionex_instant_queries.py +426 -0
  135. sidereon-3.0.0/tests/test_ionex_policies.py +1426 -0
  136. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_lambert_iod.py +41 -0
  137. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_new_core_api.py +312 -9
  138. sidereon-3.0.0/tests/test_nmea_finish_output.py +42 -0
  139. sidereon-3.0.0/tests/test_obs_policies.py +1520 -0
  140. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_observables.py +98 -46
  141. sidereon-3.0.0/tests/test_observables_error_details.py +257 -0
  142. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_observation_qc.py +25 -6
  143. sidereon-3.0.0/tests/test_oem.py +232 -0
  144. sidereon-3.0.0/tests/test_oem_full_dto.py +193 -0
  145. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_omm.py +166 -0
  146. sidereon-3.0.0/tests/test_omm_full_dto.py +118 -0
  147. sidereon-3.0.0/tests/test_opm.py +286 -0
  148. sidereon-3.0.0/tests/test_opm_full_dto.py +187 -0
  149. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_parse_tle_file.py +20 -0
  150. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ppp.py +166 -55
  151. sidereon-3.0.0/tests/test_ppp_corrections.py +204 -0
  152. sidereon-3.0.0/tests/test_ppp_range_corrections.py +282 -0
  153. sidereon-3.0.0/tests/test_precise_samples_errors.py +99 -0
  154. sidereon-3.0.0/tests/test_qc.py +384 -0
  155. sidereon-3.0.0/tests/test_release_guard.py +250 -0
  156. sidereon-3.0.0/tests/test_rinex_clock.py +563 -0
  157. sidereon-3.0.0/tests/test_rinex_clock_header_field_details.py +252 -0
  158. sidereon-3.0.0/tests/test_rinex_clock_lossless.py +782 -0
  159. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_rinex_nav.py +13 -10
  160. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_rinex_obs.py +12 -1
  161. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_rtcm.py +302 -11
  162. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_rtk.py +163 -8
  163. sidereon-3.0.0/tests/test_rtk_unresolved_carriers.py +162 -0
  164. sidereon-3.0.0/tests/test_sbas_decoded_lists.py +118 -0
  165. sidereon-3.0.0/tests/test_sbas_unassigned_mask.py +64 -0
  166. sidereon-3.0.0/tests/test_scenario_external_sources.py +400 -0
  167. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_catalog_exact.py +31 -0
  168. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_interpolation_policy.py +8 -0
  169. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_merge.py +79 -0
  170. sidereon-3.0.0/tests/test_sp3_merge_coverage.py +605 -0
  171. sidereon-3.0.0/tests/test_sp3_merge_per_epoch_provenance.py +189 -0
  172. sidereon-3.0.0/tests/test_sp3_write_and_records.py +293 -0
  173. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_spp.py +72 -16
  174. sidereon-3.0.0/tests/test_spp_error_details.py +145 -0
  175. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_spp_glonass.py +93 -25
  176. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_spp_robustness.py +100 -19
  177. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_staleness.py +36 -4
  178. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_stub_accuracy.py +87 -0
  179. sidereon-3.0.0/tests/test_tdm_policies.py +1665 -0
  180. sidereon-3.0.0/tests/test_terrain_unknown_elevation.py +175 -0
  181. sidereon-3.0.0/tests/test_tides.py +456 -0
  182. sidereon-3.0.0/tests/test_time_model_error_details.py +153 -0
  183. sidereon-3.0.0/tests/test_time_offset_error_details.py +109 -0
  184. sidereon-3.0.0/tests/test_tle_fit.py +189 -0
  185. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_tle_roundtrip.py +10 -2
  186. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_tropo.py +40 -1
  187. sidereon-3.0.0/tests/test_weather_terrain_error_details.py +262 -0
  188. {sidereon-2.1.1/third_party_source/sidereon-core-0.35.0 → sidereon-3.0.0/third_party_source/sidereon-core-3.0.0}/tides/mod.rs +508 -89
  189. {sidereon-2.1.1/third_party_source/sidereon-core-0.35.0 → sidereon-3.0.0/third_party_source/sidereon-core-3.0.0}/tides/ocean.rs +391 -86
  190. {sidereon-2.1.1 → sidereon-3.0.0}/uv.lock +1 -1
  191. sidereon-2.1.1/CHANGELOG.md +0 -655
  192. sidereon-2.1.1/COVERAGE.md +0 -278
  193. sidereon-2.1.1/scripts/check-release.py +0 -163
  194. sidereon-2.1.1/src/bias.rs +0 -406
  195. sidereon-2.1.1/src/cdm.rs +0 -442
  196. sidereon-2.1.1/src/data_catalog.rs +0 -763
  197. sidereon-2.1.1/src/ephemeris.rs +0 -1974
  198. sidereon-2.1.1/src/ionex.rs +0 -931
  199. sidereon-2.1.1/src/lib.rs +0 -514
  200. sidereon-2.1.1/src/oem.rs +0 -515
  201. sidereon-2.1.1/src/omm.rs +0 -448
  202. sidereon-2.1.1/src/opm.rs +0 -683
  203. sidereon-2.1.1/src/ppp.rs +0 -1495
  204. sidereon-2.1.1/src/products.rs +0 -1654
  205. sidereon-2.1.1/src/rinex.rs +0 -3081
  206. sidereon-2.1.1/src/rtcm.rs +0 -1916
  207. sidereon-2.1.1/src/scenario.rs +0 -522
  208. sidereon-2.1.1/src/space_weather.rs +0 -271
  209. sidereon-2.1.1/src/spk.rs +0 -313
  210. sidereon-2.1.1/src/tdm.rs +0 -967
  211. sidereon-2.1.1/src/terrain.rs +0 -216
  212. sidereon-2.1.1/src/tides.rs +0 -145
  213. sidereon-2.1.1/tests/fixtures/README.md +0 -57
  214. sidereon-2.1.1/tests/fixtures/cdm.json +0 -133
  215. sidereon-2.1.1/tests/fixtures/sgp4_topocentric.json +0 -305
  216. sidereon-2.1.1/tests/fixtures/sp3_bodies.json +0 -255
  217. sidereon-2.1.1/tests/test_antex.py +0 -95
  218. sidereon-2.1.1/tests/test_oem.py +0 -126
  219. sidereon-2.1.1/tests/test_opm.py +0 -148
  220. sidereon-2.1.1/tests/test_ppp_corrections.py +0 -126
  221. sidereon-2.1.1/tests/test_qc.py +0 -209
  222. sidereon-2.1.1/tests/test_rinex_clock.py +0 -105
  223. sidereon-2.1.1/tests/test_tides.py +0 -125
  224. sidereon-2.1.1/tests/test_tle_fit.py +0 -121
  225. {sidereon-2.1.1 → sidereon-3.0.0}/.cargo/config.toml.disabled +0 -0
  226. {sidereon-2.1.1 → sidereon-3.0.0}/.gitattributes +0 -0
  227. {sidereon-2.1.1 → sidereon-3.0.0}/LICENSE +0 -0
  228. {sidereon-2.1.1 → sidereon-3.0.0}/bench/README.md +0 -0
  229. {sidereon-2.1.1 → sidereon-3.0.0}/bench/bench_fleet.py +0 -0
  230. {sidereon-2.1.1 → sidereon-3.0.0}/examples/clean_a_phone_track.ipynb +0 -0
  231. {sidereon-2.1.1 → sidereon-3.0.0}/examples/static_occupation_vs_cors.ipynb +0 -0
  232. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/_compression.py +0 -0
  233. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/_exact_cache.py +0 -0
  234. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/_ingress.py +0 -0
  235. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/exact_cache.py +0 -0
  236. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/exact_cache.pyi +0 -0
  237. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/ntrip.py +0 -0
  238. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/ntrip.pyi +0 -0
  239. {sidereon-2.1.1 → sidereon-3.0.0}/python/sidereon/py.typed +0 -0
  240. {sidereon-2.1.1 → sidereon-3.0.0}/scripts/smoke-release.py +0 -0
  241. {sidereon-2.1.1 → sidereon-3.0.0}/src/almanac.rs +0 -0
  242. {sidereon-2.1.1 → sidereon-3.0.0}/src/angles.rs +0 -0
  243. {sidereon-2.1.1 → sidereon-3.0.0}/src/anomaly.rs +0 -0
  244. {sidereon-2.1.1 → sidereon-3.0.0}/src/atmosphere.rs +0 -0
  245. {sidereon-2.1.1 → sidereon-3.0.0}/src/bodies.rs +0 -0
  246. {sidereon-2.1.1 → sidereon-3.0.0}/src/body_observe.rs +0 -0
  247. {sidereon-2.1.1 → sidereon-3.0.0}/src/clock_stability.rs +0 -0
  248. {sidereon-2.1.1 → sidereon-3.0.0}/src/conjunction.rs +0 -0
  249. {sidereon-2.1.1 → sidereon-3.0.0}/src/covariance.rs +0 -0
  250. {sidereon-2.1.1 → sidereon-3.0.0}/src/doppler.rs +0 -0
  251. {sidereon-2.1.1 → sidereon-3.0.0}/src/elements.rs +0 -0
  252. {sidereon-2.1.1 → sidereon-3.0.0}/src/emission.rs +0 -0
  253. {sidereon-2.1.1 → sidereon-3.0.0}/src/equinoctial.rs +0 -0
  254. {sidereon-2.1.1 → sidereon-3.0.0}/src/estimation.rs +0 -0
  255. {sidereon-2.1.1 → sidereon-3.0.0}/src/events.rs +0 -0
  256. {sidereon-2.1.1 → sidereon-3.0.0}/src/exact_cache.rs +0 -0
  257. {sidereon-2.1.1 → sidereon-3.0.0}/src/forces.rs +0 -0
  258. {sidereon-2.1.1 → sidereon-3.0.0}/src/frame_catalog.rs +0 -0
  259. {sidereon-2.1.1 → sidereon-3.0.0}/src/geodesic.rs +0 -0
  260. {sidereon-2.1.1 → sidereon-3.0.0}/src/geodetic_time_series.rs +0 -0
  261. {sidereon-2.1.1 → sidereon-3.0.0}/src/geofence.rs +0 -0
  262. {sidereon-2.1.1 → sidereon-3.0.0}/src/geoid.rs +0 -0
  263. {sidereon-2.1.1 → sidereon-3.0.0}/src/geometry.rs +0 -0
  264. {sidereon-2.1.1 → sidereon-3.0.0}/src/geometry_quality.rs +0 -0
  265. {sidereon-2.1.1 → sidereon-3.0.0}/src/ils.rs +0 -0
  266. {sidereon-2.1.1 → sidereon-3.0.0}/src/lambert.rs +0 -0
  267. {sidereon-2.1.1 → sidereon-3.0.0}/src/leap.rs +0 -0
  268. {sidereon-2.1.1 → sidereon-3.0.0}/src/least_squares.rs +0 -0
  269. {sidereon-2.1.1 → sidereon-3.0.0}/src/lnav.rs +0 -0
  270. {sidereon-2.1.1 → sidereon-3.0.0}/src/normality.rs +0 -0
  271. {sidereon-2.1.1 → sidereon-3.0.0}/src/ntrip.rs +0 -0
  272. {sidereon-2.1.1 → sidereon-3.0.0}/src/observation.rs +0 -0
  273. {sidereon-2.1.1 → sidereon-3.0.0}/src/orbit_determination.rs +0 -0
  274. {sidereon-2.1.1 → sidereon-3.0.0}/src/reduced_orbit.rs +0 -0
  275. {sidereon-2.1.1 → sidereon-3.0.0}/src/relative.rs +0 -0
  276. {sidereon-2.1.1 → sidereon-3.0.0}/src/rf.rs +0 -0
  277. {sidereon-2.1.1 → sidereon-3.0.0}/src/signal_analysis.rs +0 -0
  278. {sidereon-2.1.1 → sidereon-3.0.0}/src/source_localization.rs +0 -0
  279. {sidereon-2.1.1 → sidereon-3.0.0}/src/tca.rs +0 -0
  280. {sidereon-2.1.1 → sidereon-3.0.0}/src/unix_compress.rs +0 -0
  281. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/antex/igs20_pasa_scoa_gps.atx +0 -0
  282. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/antex/igs20_wettzell_trim.atx +0 -0
  283. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/batch_fleet.json +0 -0
  284. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/clk/synthetic_rinex_clock.clk +0 -0
  285. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/conjunction.json +0 -0
  286. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/constellation/gps_ops_sample.json +0 -0
  287. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/constellation/navcen_forecast_cases.html +0 -0
  288. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/constellation/navcen_gps_sample.html +0 -0
  289. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/events_bodies_dop.json +0 -0
  290. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/frames_time.json +0 -0
  291. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/geodesic/geodtest_row.dat +0 -0
  292. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/geoid/egm2008_25_norcal_crop.bin +0 -0
  293. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/gnss_data/igs22376.sp3.Z.b64 +0 -0
  294. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/gnss_data/ncompress-current-b9-counter.Z.b64 +0 -0
  295. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/listings/aiub-iono-prd-20260923.csv +0 -0
  296. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/listings/gfz-ultra-w2430-20260804.html +0 -0
  297. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/nav/BRDC00GOP_R_20210010000_01D_MN.rnx +0 -0
  298. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/nav/ESBC00DNK_R_20201770000_01D_MN.rnx +0 -0
  299. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/nav/KMS300DNK_R_20221591000_01H_MN.rnx +0 -0
  300. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/numerical_propagation.json +0 -0
  301. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/obs/ESBC00DNK_R_20201770000_01D_30S_MO_trim.crx +0 -0
  302. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/obs/ESBC00DNK_R_20201770000_01D_30S_MO_trim.rnx +0 -0
  303. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/obs/algo0010_2015001_v1_trim.crx +0 -0
  304. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/obs/algo0010_2015001_v1_trim.rnx +0 -0
  305. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/rf_link_budget.json +0 -0
  306. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/sp3/IGS0OPSFIN_20261200945_02H30M_15M_ORB.SP3 +0 -0
  307. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/sp3-merge-input-v1.json +0 -0
  308. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/spk/horizons_eros_type21.bsp +0 -0
  309. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/tdm/annex_e_01.kvn +0 -0
  310. {sidereon-2.1.1 → sidereon-3.0.0}/tests/fixtures/tle_roundtrip.json +0 -0
  311. {sidereon-2.1.1 → sidereon-3.0.0}/tests/golden/sp3-terminal-record-v1.json +0 -0
  312. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_012_bindings.py +0 -0
  313. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_013_bindings.py +0 -0
  314. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_014_bindings.py +0 -0
  315. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_020_error_metrics.py +0 -0
  316. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_atmosphere.py +0 -0
  317. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_attested_open.py +0 -0
  318. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_broadcast_comparison.py +0 -0
  319. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_conjunction.py +0 -0
  320. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_constellation.py +0 -0
  321. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_covariance.py +0 -0
  322. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_covariance_propagation.py +0 -0
  323. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_crinex.py +0 -0
  324. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_data_publication_resilience.py +0 -0
  325. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_distribution_fallback.py +0 -0
  326. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_dop_at_epoch.py +0 -0
  327. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_dop_convention.py +0 -0
  328. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_doppler.py +0 -0
  329. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_egm96.py +0 -0
  330. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_elements.py +0 -0
  331. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_exact_cache_atomicity.py +0 -0
  332. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_forces.py +0 -0
  333. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_frames_time.py +0 -0
  334. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ftp_transport.py +0 -0
  335. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_geoid.py +0 -0
  336. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_geometry.py +0 -0
  337. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ils.py +0 -0
  338. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_import.py +0 -0
  339. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ionosphere_nequick.py +0 -0
  340. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_klobuchar_native.py +0 -0
  341. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_leap_seconds.py +0 -0
  342. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_least_squares.py +0 -0
  343. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_lnav.py +0 -0
  344. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_moving_baseline.py +0 -0
  345. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_next_issue_due.py +0 -0
  346. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_ntrip.py +0 -0
  347. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_numerical.py +0 -0
  348. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_observables_broadcast.py +0 -0
  349. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_observation.py +0 -0
  350. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_observe_batch.py +0 -0
  351. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_parity_gaps.py +0 -0
  352. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_passes.py +0 -0
  353. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_precise_samples.py +0 -0
  354. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_propagation.py +0 -0
  355. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_reduced_orbit.py +0 -0
  356. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_reduced_orbit_piecewise.py +0 -0
  357. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_residual_stats.py +0 -0
  358. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_rf.py +0 -0
  359. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sky.py +0 -0
  360. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_bodies.py +0 -0
  361. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_clock_reference.py +0 -0
  362. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_terminal_record.py +0 -0
  363. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_sp3_window_continuity.py +0 -0
  364. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_spk.py +0 -0
  365. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_tca.py +0 -0
  366. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_unix_compress.py +0 -0
  367. {sidereon-2.1.1 → sidereon-3.0.0}/tests/test_visible_ground_track.py +0 -0
  368. {sidereon-2.1.1 → sidereon-3.0.0}/third_party_licenses/ERFA-BSD-3-Clause.txt +0 -0
  369. {sidereon-2.1.1 → sidereon-3.0.0}/third_party_licenses/IERS-CONVENTIONS-SOFTWARE-LICENSE.txt +0 -0
  370. {sidereon-2.1.1 → sidereon-3.0.0}/third_party_licenses/SciPy-BSD-3-Clause.txt +0 -0
  371. {sidereon-2.1.1/third_party_source/sidereon-core-0.35.0 → sidereon-3.0.0/third_party_source/sidereon-core-3.0.0}/tides/pole.rs +0 -0
@@ -38,19 +38,23 @@ jobs:
38
38
  release-metadata:
39
39
  name: release metadata
40
40
  runs-on: ubuntu-latest
41
+ outputs:
42
+ core_fixture_ref: ${{ steps.release-check.outputs.fixture_ref }}
41
43
  steps:
42
44
  - uses: actions/checkout@v4
43
45
  - uses: actions/setup-python@v5
44
46
  with:
45
47
  python-version: "3.12"
46
- - run: python scripts/check-release.py
48
+ - name: Validate release metadata and select core fixtures
49
+ id: release-check
50
+ run: python scripts/check-release.py --ci --github-output "$GITHUB_OUTPUT"
47
51
 
48
52
  rust:
49
53
  name: rustfmt + clippy
50
54
  runs-on: ubuntu-latest
51
55
  steps:
52
56
  - uses: actions/checkout@v4
53
- - uses: dtolnay/rust-toolchain@stable
57
+ - uses: dtolnay/rust-toolchain@1.98.1
54
58
  with:
55
59
  components: rustfmt, clippy
56
60
  # shared-key so the tag-triggered release gate reuses this cache instead
@@ -62,13 +66,14 @@ jobs:
62
66
  - name: cargo fmt --check
63
67
  run: cargo fmt --check
64
68
  - name: cargo clippy -D warnings
65
- run: cargo clippy --all-targets -- -D warnings
69
+ run: cargo clippy --locked --all-targets -- -D warnings
66
70
 
67
71
  python:
68
72
  name: ruff + build + pytest
69
73
  # arm64 runner: the bit-exact f64 goldens are captured on aarch64, and
70
74
  # transcendental libm differs by a few ULP across architectures.
71
75
  runs-on: macos-latest
76
+ needs: release-metadata
72
77
  steps:
73
78
  - uses: actions/checkout@v4
74
79
  - uses: actions/setup-python@v5
@@ -78,41 +83,48 @@ jobs:
78
83
  with:
79
84
  version: "0.11.19"
80
85
  enable-cache: true
81
- - uses: dtolnay/rust-toolchain@stable
86
+ - uses: dtolnay/rust-toolchain@1.98.1
82
87
  - uses: Swatinem/rust-cache@v2
83
88
  with:
84
89
  shared-key: ci
85
- - name: Determine sidereon-core version
86
- id: core-version
87
- shell: bash
88
- run: |
89
- version=$(python - <<'PY'
90
- import tomllib
91
-
92
- with open("Cargo.toml", "rb") as handle:
93
- manifest = tomllib.load(handle)
94
-
95
- dep = manifest["dependencies"]["sidereon-core"]
96
- if isinstance(dep, str):
97
- version = dep
98
- else:
99
- version = dep["version"]
100
-
101
- if any(ch in version for ch in "<>=, "):
102
- raise SystemExit(f"cannot derive a release tag from version requirement: {version}")
103
-
104
- print(version)
105
- PY
106
- )
107
- echo "version=$version" >> "$GITHUB_OUTPUT"
108
90
  - name: Check out sidereon-core fixtures
109
91
  uses: actions/checkout@v4
110
92
  with:
111
93
  repository: neilberkman/sidereon
112
- ref: v${{ steps.core-version.outputs.version }}
94
+ ref: ${{ needs.release-metadata.outputs.core_fixture_ref }}
113
95
  path: .core-checkout
114
96
  - name: Install locked environment
115
97
  run: uv sync --locked --extra test --group dev
98
+ - name: Test typed precise-sample error mapping
99
+ env:
100
+ PYO3_PYTHON: ${{ github.workspace }}/.venv/bin/python
101
+ run: |
102
+ set -euo pipefail
103
+ test -n "${PYO3_PYTHON:-}" || { echo "PYO3_PYTHON is not set" >&2; exit 1; }
104
+ test -x "$PYO3_PYTHON" || { echo "PYO3_PYTHON is not executable: $PYO3_PYTHON" >&2; exit 1; }
105
+ pyo3_home="$(env -u PYTHONHOME "$PYO3_PYTHON" -c 'import sys; print(sys.base_prefix)')"
106
+ test -n "$pyo3_home" || { echo "Derived PYTHONHOME is empty" >&2; exit 1; }
107
+ test -d "$pyo3_home" || { echo "Derived PYTHONHOME is not a directory: $pyo3_home" >&2; exit 1; }
108
+ PYO3_PYTHON="$PYO3_PYTHON" PYTHONHOME="$pyo3_home" \
109
+ cargo test --locked --no-default-features --features test-harness --lib \
110
+ ephemeris::precise_samples_error_tests::invalid_accuracy_from_valid_samples_keeps_typed_satellite_payload \
111
+ -- --exact 2>&1 | tee "$RUNNER_TEMP/precise-sample-invalid-accuracy.log"
112
+ grep -Fx \
113
+ 'test ephemeris::precise_samples_error_tests::invalid_accuracy_from_valid_samples_keeps_typed_satellite_payload ... ok' \
114
+ "$RUNNER_TEMP/precise-sample-invalid-accuracy.log"
115
+ grep -Eq '^test result: ok\. 1 passed; 0 failed; 0 ignored; 0 measured; [0-9]+ filtered out; finished in .*s$' \
116
+ "$RUNNER_TEMP/precise-sample-invalid-accuracy.log"
117
+ - name: Test registry source identity from the verified archive
118
+ run: |
119
+ set -euo pipefail
120
+ cargo test --locked --manifest-path scripts/core_goldens/Cargo.toml \
121
+ core_source_identity::tests::registry_revision_reads_vcs_from_checksum_verified_archive \
122
+ -- --exact 2>&1 | tee "$RUNNER_TEMP/core-source-identity.log"
123
+ grep -Fx \
124
+ 'test core_source_identity::tests::registry_revision_reads_vcs_from_checksum_verified_archive ... ok' \
125
+ "$RUNNER_TEMP/core-source-identity.log"
126
+ grep -Eq '^test result: ok\. 1 passed; 0 failed; 0 ignored; 0 measured; [0-9]+ filtered out; finished in .*s$' \
127
+ "$RUNNER_TEMP/core-source-identity.log"
116
128
  - name: ruff check
117
129
  run: uv run --locked --extra test --group dev ruff check .
118
130
  - name: ruff format --check
@@ -120,13 +132,15 @@ jobs:
120
132
  - name: mypy
121
133
  run: uv run --locked --extra test --group dev mypy
122
134
  - name: Build the extension (maturin develop)
123
- run: uv run --locked --extra test --group dev maturin develop --features exact-cache-test-failpoints
135
+ run: uv run --locked --extra test --group dev maturin develop --locked --features exact-cache-test-failpoints
124
136
  - name: stub accuracy
137
+ env:
138
+ SIDEREON_CORE_FIXTURES: ${{ github.workspace }}/.core-checkout/crates/sidereon-core/tests/fixtures
125
139
  run: uv run --locked --extra test --group dev pytest tests/test_stub_accuracy.py
126
140
  - name: pytest
127
141
  env:
128
142
  SIDEREON_CORE_FIXTURES: ${{ github.workspace }}/.core-checkout/crates/sidereon-core/tests/fixtures
129
143
  run: |
130
- # The published sidereon-core crate omits test fixtures, so CI checks
131
- # out the matching release tag and points the test resolver at them.
144
+ # The published crate omits test fixtures, so use the guard-selected
145
+ # candidate revision or matching registry release tag.
132
146
  uv run --locked --extra test --group dev pytest
@@ -45,9 +45,10 @@ jobs:
45
45
  - name: Build abi3 wheel
46
46
  uses: PyO3/maturin-action@v1
47
47
  with:
48
+ rust-toolchain: "1.98.1"
48
49
  target: ${{ matrix.target }}
49
50
  manylinux: auto
50
- args: --release --out dist
51
+ args: --release --locked --out dist
51
52
  - uses: actions/upload-artifact@v4
52
53
  with:
53
54
  name: wheels-linux-${{ matrix.target }}
@@ -67,8 +68,9 @@ jobs:
67
68
  - name: Build abi3 wheel
68
69
  uses: PyO3/maturin-action@v1
69
70
  with:
71
+ rust-toolchain: "1.98.1"
70
72
  target: ${{ matrix.target }}
71
- args: --release --out dist
73
+ args: --release --locked --out dist
72
74
  - uses: actions/upload-artifact@v4
73
75
  with:
74
76
  name: wheels-macos-${{ matrix.target }}
@@ -85,8 +87,9 @@ jobs:
85
87
  - name: Build abi3 wheel
86
88
  uses: PyO3/maturin-action@v1
87
89
  with:
90
+ rust-toolchain: "1.98.1"
88
91
  target: x64
89
- args: --release --out dist
92
+ args: --release --locked --out dist
90
93
  - uses: actions/upload-artifact@v4
91
94
  with:
92
95
  name: wheels-windows-x64
@@ -97,9 +100,13 @@ jobs:
97
100
  runs-on: ubuntu-latest
98
101
  steps:
99
102
  - uses: actions/checkout@v4
103
+ - uses: dtolnay/rust-toolchain@1.98.1
104
+ - name: Verify the Cargo lock before packaging the source distribution
105
+ run: cargo metadata --locked --format-version 1 --manifest-path Cargo.toml
100
106
  - name: Build sdist
101
107
  uses: PyO3/maturin-action@v1
102
108
  with:
109
+ rust-toolchain: "1.98.1"
103
110
  command: sdist
104
111
  args: --out dist
105
112
  - uses: actions/upload-artifact@v4
@@ -116,7 +123,7 @@ jobs:
116
123
  - uses: actions/setup-python@v5
117
124
  with:
118
125
  python-version: "3.12"
119
- - uses: dtolnay/rust-toolchain@stable
126
+ - uses: dtolnay/rust-toolchain@1.98.1
120
127
  - uses: Swatinem/rust-cache@v2
121
128
  with:
122
129
  shared-key: release-wheels
@@ -146,10 +153,10 @@ jobs:
146
153
  done
147
154
  for source in mod.rs ocean.rs pole.rs; do
148
155
  unzip -p "$wheel" \
149
- "third_party_source/sidereon-core-0.35.0/tides/$source" \
156
+ "third_party_source/sidereon-core-3.0.0/tides/$source" \
150
157
  >"$RUNNER_TEMP/$source"
151
158
  cmp "$RUNNER_TEMP/$source" \
152
- "third_party_source/sidereon-core-0.35.0/tides/$source"
159
+ "third_party_source/sidereon-core-3.0.0/tides/$source"
153
160
  done
154
161
  done
155
162
  notice="$RUNNER_TEMP/sdist.notices"
@@ -166,10 +173,10 @@ jobs:
166
173
  done
167
174
  for source in mod.rs ocean.rs pole.rs; do
168
175
  tar -xOf "${sdists[0]}" --wildcards \
169
- "*/third_party_source/sidereon-core-0.35.0/tides/$source" \
176
+ "*/third_party_source/sidereon-core-3.0.0/tides/$source" \
170
177
  >"$RUNNER_TEMP/sdist-$source"
171
178
  cmp "$RUNNER_TEMP/sdist-$source" \
172
- "third_party_source/sidereon-core-0.35.0/tides/$source"
179
+ "third_party_source/sidereon-core-3.0.0/tides/$source"
173
180
  done
174
181
  - name: Smoke-test installed x86_64 Linux wheel
175
182
  shell: bash
@@ -189,7 +196,8 @@ jobs:
189
196
  python -m venv .venv-sdist
190
197
  . .venv-sdist/bin/activate
191
198
  python -m pip install --upgrade pip
192
- python -m pip install "${sdists[0]}"
199
+ python -m pip install "${sdists[0]}" \
200
+ --config-settings="maturin.build-args=--locked"
193
201
  SIDEREON_EXPECTED_VERSION="${GITHUB_REF_NAME#v}" python scripts/smoke-release.py
194
202
 
195
203
  publish:
@@ -9,3 +9,4 @@ __pycache__/
9
9
  *.so
10
10
  *.dSYM/
11
11
  *.egg-info/
12
+ /scripts/*/target