sidereon 3.0.3__tar.gz → 3.0.4__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.
- {sidereon-3.0.3 → sidereon-3.0.4}/.github/workflows/release.yml +4 -4
- {sidereon-3.0.3 → sidereon-3.0.4}/CHANGELOG.md +8 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/Cargo.lock +5 -5
- {sidereon-3.0.3 → sidereon-3.0.4}/Cargo.toml +3 -3
- {sidereon-3.0.3 → sidereon-3.0.4}/PKG-INFO +1 -1
- {sidereon-3.0.3 → sidereon-3.0.4}/THIRD-PARTY-NOTICES.md +3 -3
- {sidereon-3.0.3 → sidereon-3.0.4}/pyproject.toml +4 -4
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/check-release.py +3 -3
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/core_source_identity.rs +1 -1
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/core_goldens.json +1 -1
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/ppp_esbc.json +2 -2
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_core_revision.py +25 -25
- {sidereon-3.0.3 → sidereon-3.0.4}/uv.lock +1 -1
- {sidereon-3.0.3 → sidereon-3.0.4}/.cargo/config.toml.disabled +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/.gitattributes +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/.github/workflows/ci.yml +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/.gitignore +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/COVERAGE.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/LICENSE +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/README.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/bench/README.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/bench/bench_fleet.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/antex.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/observations.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/public-gnss-distribution-sources.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/releasing.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/rinex-clock.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/sp3.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/docs/tdm.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/examples/clean_a_phone_track.ipynb +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/examples/static_occupation_vs_cors.ipynb +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/__init__.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/__init__.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/_compression.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/_exact_cache.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/_ingress.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/data.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/data.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/distribution.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/distribution.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/exact_cache.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/exact_cache.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/exact_sp3.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/exact_sp3.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/ntrip.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/ntrip.pyi +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/python/sidereon/py.typed +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/rust-toolchain.toml +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/coverage/bindmap.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/coverage/pubapi.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/coverage/render_coverage.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/scripts/smoke-release.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/almanac.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/angles.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/anomaly.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/antex.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/araim.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/atmosphere.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/bias.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/bodies.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/body_observe.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/broadcast_comparison.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/cdm.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/clock_stability.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/conjunction.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/constellation.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/core_error_detail.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/covariance.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/coverage.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/data_catalog.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/defaults.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/dgnss.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/doppler.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/elements.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/emission.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ephemeris.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/equinoctial.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/error_metrics.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/estimation.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/events.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/exact_cache.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/exact_time.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/fallback.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/forces.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/format_diagnostics.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/frame_catalog.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/frames.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/fusion.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geodesic.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geodetic_time_series.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geofence.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geoid.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geometry.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/geometry_quality.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ils.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/iod.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ionex.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/lambert.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/leap.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/least_squares.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/lib.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/lnav.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/marshal.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/nmea.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/normality.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ntrip.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/observables.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/observation.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/oem.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/omm.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/opm.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/orbit_determination.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ppp.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/ppp_corrections.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/products.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/propagation.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/qc.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/reduced_orbit.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/relative.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/reliability.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/rf.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/rinex.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/rinex_clock.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/rtcm.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/rtk.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/sbas_pl.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/sbas_ssr.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/scenario.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/sidereal.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/signal_analysis.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/sky.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/solve_error_detail.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/source_localization.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/space_weather.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/spk.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/spp.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/spp_error_detail.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/staleness.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/static_positioning.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/tca.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/tdm.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/terrain.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/terrain_store.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/tides.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/time_model_error.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/tle_fit_error_detail.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/tropo.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/src/unix_compress.rs +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/_helpers.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/_sp3_merge.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/README.md +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/antex/igs20_pasa_scoa_gps.atx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/antex/igs20_wettzell_trim.atx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/batch_fleet.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/bodies/observe_de.bsp +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/cdm.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/clk/lossless/rinex_clock304_table_a17.clk +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/clk/lossless/rinex_clock304_table_a18.clk +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/clk/synthetic_rinex_clock.clk +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/conjunction.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/constellation/gps_ops_sample.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/constellation/navcen_forecast_cases.html +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/constellation/navcen_gps_sample.html +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/events_bodies_dop.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/format_diagnostics_inputs.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/frames_time.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/geodesic/geodtest_row.dat +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/geoid/egm2008_25_norcal_crop.bin +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/gnss_data/igs22376.sp3.Z.b64 +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/gnss_data/ncompress-current-b9-counter.Z.b64 +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/listings/aiub-iono-prd-20260923.csv +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/listings/gfz-ultra-w2430-20260804.html +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/nav/BRDC00GOP_R_20210010000_01D_MN.rnx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/nav/ESBC00DNK_R_20201770000_01D_MN.rnx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/nav/KMS300DNK_R_20221591000_01H_MN.rnx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/numerical_propagation.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/obs/ESBC00DNK_R_20201770000_01D_30S_MO_trim.crx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/obs/ESBC00DNK_R_20201770000_01D_30S_MO_trim.rnx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/obs/algo0010_2015001_v1_trim.crx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/obs/algo0010_2015001_v1_trim.rnx +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/omm.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/pass_finder.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/rf_link_budget.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/rtk_wtzr.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/scenario_base.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/sgp4_topocentric.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/sp3/IGS0OPSFIN_20261200945_02H30M_15M_ORB.SP3 +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/sp3-merge-input-v1.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/sp3-merge-report-v3.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/sp3_bodies.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/spk/horizons_eros_type21.bsp +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/tdm/annex_e_01.kvn +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/fixtures/tle_roundtrip.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/golden/sp3-terminal-record-v1.json +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_012_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_013_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_014_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_015_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_016_wave2_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_017_domain_exposure.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_018_domain_exposure.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_019_track.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_020_error_metrics.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_antex.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_antex_public_equality.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_antex_public_pcv_sample_fields.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_atmosphere.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_attested_open.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_batch.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_body_observe_reference.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_broadcast_comparison.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_broadcast_fallback.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_cdm.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_cdm_top_level.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_cdm_value_equality.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_codec_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_conjunction.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_constellation.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_constellation_fleet.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_core_defaults.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_core_public_api_parity.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_core_round3_surfaces.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_covariance.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_covariance_propagation.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_coverage.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_crinex.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_data.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_data_publication_resilience.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_dgnss.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_distribution.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_distribution_fallback.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_dop_at_epoch.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_dop_convention.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_doppler.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_dted_tile_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_egm96.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_elements.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_events_bodies_dop.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_exact_cache_atomicity.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_field_mode_bindings.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_forces.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_format_diagnostics.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_frames_time.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ftp_transport.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_fusion_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_geoid.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_geometry.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ils.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_import.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_inertial_mechanization.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ionex.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ionex_instant_queries.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ionex_policies.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ionex_public_equality.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ionosphere_nequick.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_klobuchar_native.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_lambert_iod.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_leap_seconds.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_least_squares.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_lnav.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_misc_public_equality.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_moving_baseline.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_new_core_api.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_next_issue_due.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_nmea_finish_output.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ntrip.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_numerical.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_obs_policies.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observables.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observables_broadcast.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observables_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observation.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observation_qc.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_observe_batch.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_oem.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_oem_full_dto.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_omm.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_omm_full_dto.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_opm.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_opm_full_dto.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_parity_gaps.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_parse_tle_file.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_passes.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ppp.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ppp_corrections.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_ppp_range_corrections.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_precise_interpolant_public_values.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_precise_samples.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_precise_samples_errors.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_propagation.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_qc.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_reduced_orbit.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_reduced_orbit_piecewise.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_release_guard.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_residual_stats.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rf.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_clock.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_clock_equality.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_clock_header_field_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_clock_lossless.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_nav.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rinex_obs.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rtcm.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rtcm_departure_message_number_contract.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rtk.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_rtk_unresolved_carriers.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sbas_decoded_lists.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sbas_unassigned_mask.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_scenario_external_sources.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sky.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_bodies.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_catalog_exact.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_clock_reference.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_interpolation_policy.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_merge.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_merge_coverage.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_merge_per_epoch_provenance.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_public_metadata.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_terminal_record.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_window_continuity.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_sp3_write_and_records.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_spk.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_spp.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_spp_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_spp_glonass.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_spp_robustness.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_staleness.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_stub_accuracy.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tca.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tdm_policies.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_terrain_unknown_elevation.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tides.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_time_model_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_time_offset_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tle_fit.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tle_roundtrip.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_tropo.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_unix_compress.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_visible_ground_track.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/tests/test_weather_terrain_error_details.py +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/third_party_licenses/ERFA-BSD-3-Clause.txt +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/third_party_licenses/IERS-CONVENTIONS-SOFTWARE-LICENSE.txt +0 -0
- {sidereon-3.0.3 → sidereon-3.0.4}/third_party_licenses/SciPy-BSD-3-Clause.txt +0 -0
- {sidereon-3.0.3/third_party_source/sidereon-core-3.0.3 → sidereon-3.0.4/third_party_source/sidereon-core-3.0.4}/tides/mod.rs +0 -0
- {sidereon-3.0.3/third_party_source/sidereon-core-3.0.3 → sidereon-3.0.4/third_party_source/sidereon-core-3.0.4}/tides/ocean.rs +0 -0
- {sidereon-3.0.3/third_party_source/sidereon-core-3.0.3 → sidereon-3.0.4/third_party_source/sidereon-core-3.0.4}/tides/pole.rs +0 -0
|
@@ -153,10 +153,10 @@ jobs:
|
|
|
153
153
|
done
|
|
154
154
|
for source in mod.rs ocean.rs pole.rs; do
|
|
155
155
|
unzip -p "$wheel" \
|
|
156
|
-
"third_party_source/sidereon-core-3.0.
|
|
156
|
+
"third_party_source/sidereon-core-3.0.4/tides/$source" \
|
|
157
157
|
>"$RUNNER_TEMP/$source"
|
|
158
158
|
cmp "$RUNNER_TEMP/$source" \
|
|
159
|
-
"third_party_source/sidereon-core-3.0.
|
|
159
|
+
"third_party_source/sidereon-core-3.0.4/tides/$source"
|
|
160
160
|
done
|
|
161
161
|
done
|
|
162
162
|
notice="$RUNNER_TEMP/sdist.notices"
|
|
@@ -173,10 +173,10 @@ jobs:
|
|
|
173
173
|
done
|
|
174
174
|
for source in mod.rs ocean.rs pole.rs; do
|
|
175
175
|
tar -xOf "${sdists[0]}" --wildcards \
|
|
176
|
-
"*/third_party_source/sidereon-core-3.0.
|
|
176
|
+
"*/third_party_source/sidereon-core-3.0.4/tides/$source" \
|
|
177
177
|
>"$RUNNER_TEMP/sdist-$source"
|
|
178
178
|
cmp "$RUNNER_TEMP/sdist-$source" \
|
|
179
|
-
"third_party_source/sidereon-core-3.0.
|
|
179
|
+
"third_party_source/sidereon-core-3.0.4/tides/$source"
|
|
180
180
|
done
|
|
181
181
|
- name: Smoke-test installed x86_64 Linux wheel
|
|
182
182
|
shell: bash
|
|
@@ -4,6 +4,14 @@ All notable changes to the Sidereon Python interface are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [3.0.4] - 2026-10-18
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Reject RINEX 2 observation and cycle-slip epochs before an observation-type
|
|
12
|
+
declaration takes effect, including empty epochs written with version 3 record
|
|
13
|
+
layout.
|
|
14
|
+
|
|
7
15
|
## [3.0.3] - 2026-10-12
|
|
8
16
|
|
|
9
17
|
### Fixed
|
|
@@ -611,9 +611,9 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
|
611
611
|
|
|
612
612
|
[[package]]
|
|
613
613
|
name = "sidereon"
|
|
614
|
-
version = "3.0.
|
|
614
|
+
version = "3.0.4"
|
|
615
615
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
616
|
-
checksum = "
|
|
616
|
+
checksum = "c042d74f42d0e2a9f8b2645109fd06f407e42ecab964fb91c492b18a2c034096"
|
|
617
617
|
dependencies = [
|
|
618
618
|
"crc32fast",
|
|
619
619
|
"flate2",
|
|
@@ -622,9 +622,9 @@ dependencies = [
|
|
|
622
622
|
|
|
623
623
|
[[package]]
|
|
624
624
|
name = "sidereon-core"
|
|
625
|
-
version = "3.0.
|
|
625
|
+
version = "3.0.4"
|
|
626
626
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
627
|
-
checksum = "
|
|
627
|
+
checksum = "3634af272103625414a0e63bacbf2b76e181c33f8652690823acdfa0e25c938e"
|
|
628
628
|
dependencies = [
|
|
629
629
|
"approx",
|
|
630
630
|
"cc",
|
|
@@ -646,7 +646,7 @@ dependencies = [
|
|
|
646
646
|
|
|
647
647
|
[[package]]
|
|
648
648
|
name = "sidereon-py"
|
|
649
|
-
version = "3.0.
|
|
649
|
+
version = "3.0.4"
|
|
650
650
|
dependencies = [
|
|
651
651
|
"nalgebra",
|
|
652
652
|
"numpy",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "sidereon-py"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.4"
|
|
4
4
|
authors = []
|
|
5
5
|
edition = "2021"
|
|
6
6
|
description = "Python (PyO3) bindings over the sidereon ergonomic API: SP3 loading and SPP/RTK/PPP positioning solves"
|
|
@@ -25,8 +25,8 @@ exact-cache-test-failpoints = ["sidereon-core/exact-cache-test-failpoints"]
|
|
|
25
25
|
# The thin ergonomic engine surface this binding marshals to. No modeling logic
|
|
26
26
|
# lives here: every solve delegates to a `sidereon` entry point, which in turn
|
|
27
27
|
# delegates to `sidereon-core`.
|
|
28
|
-
sidereon = "=3.0.
|
|
29
|
-
sidereon-core = { version = "=3.0.
|
|
28
|
+
sidereon = "=3.0.4"
|
|
29
|
+
sidereon-core = { version = "=3.0.4", features = ["mmap"] }
|
|
30
30
|
# The standalone general-purpose trust-region least-squares solver: a data-driven
|
|
31
31
|
# `least_squares` whose residual and Jacobian are evaluated entirely in Rust, so
|
|
32
32
|
# no per-iteration Python callback is paid.
|
|
@@ -330,9 +330,9 @@ endorsed by the IERS Conventions Center. The Rust source describes the origin,
|
|
|
330
330
|
the renamed routines, and the differences from the Fortran implementation.
|
|
331
331
|
The complete non-test tide source distributed in the compiled extension is
|
|
332
332
|
included under
|
|
333
|
-
`third_party_source/sidereon-core-3.0.
|
|
334
|
-
distributions. These files match sidereon-core 3.0.
|
|
335
|
-
Source: [sidereon-core tides at the pinned commit](https://github.com/neilberkman/sidereon/tree/
|
|
333
|
+
`third_party_source/sidereon-core-3.0.4/tides/` in wheels and source
|
|
334
|
+
distributions. These files match sidereon-core 3.0.4 at commit 5cfcdf929b57a5998e304df786735b171ba8afaf.
|
|
335
|
+
Source: [sidereon-core tides at the pinned commit](https://github.com/neilberkman/sidereon/tree/5cfcdf929b57a5998e304df786735b171ba8afaf/crates/sidereon-core/src/tides).
|
|
336
336
|
The authoritative original is available from:
|
|
337
337
|
|
|
338
338
|
<https://iers-conventions.obspm.fr/content/chapter7/software/dehanttideinel/DEHANTTIDEINEL.F>
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sidereon"
|
|
7
|
-
version = "3.0.
|
|
7
|
+
version = "3.0.4"
|
|
8
8
|
description = "Python (PyO3) bindings over the sidereon engine: SP3 loading and SPP/RTK/PPP positioning solves"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -82,7 +82,7 @@ include = [
|
|
|
82
82
|
"third_party_licenses/ERFA-BSD-3-Clause.txt",
|
|
83
83
|
"third_party_licenses/IERS-CONVENTIONS-SOFTWARE-LICENSE.txt",
|
|
84
84
|
"third_party_licenses/SciPy-BSD-3-Clause.txt",
|
|
85
|
-
"third_party_source/sidereon-core-3.0.
|
|
86
|
-
"third_party_source/sidereon-core-3.0.
|
|
87
|
-
"third_party_source/sidereon-core-3.0.
|
|
85
|
+
"third_party_source/sidereon-core-3.0.4/tides/mod.rs",
|
|
86
|
+
"third_party_source/sidereon-core-3.0.4/tides/ocean.rs",
|
|
87
|
+
"third_party_source/sidereon-core-3.0.4/tides/pole.rs",
|
|
88
88
|
]
|
|
@@ -13,7 +13,7 @@ import tomllib
|
|
|
13
13
|
ROOT = Path(__file__).resolve().parents[1]
|
|
14
14
|
CORE_GIT_URL = "https://github.com/neilberkman/sidereon"
|
|
15
15
|
FULL_GIT_REVISION = re.compile(r"^[0-9a-f]{40}$")
|
|
16
|
-
CORE_SOURCE_REVISION = "
|
|
16
|
+
CORE_SOURCE_REVISION = "5cfcdf929b57a5998e304df786735b171ba8afaf"
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
def registry_version(name, value, package_version):
|
|
@@ -307,7 +307,7 @@ def main() -> None:
|
|
|
307
307
|
"ocean.rs": "25946677944425671a92717860ac2d70f255de5403eeb1fbf98b361716821d5c",
|
|
308
308
|
"pole.rs": "b4cc4c16bdd8ce1d8f04073602ab47dfb85a002b946ab192e8d4d2d600f0a1f8",
|
|
309
309
|
}
|
|
310
|
-
tide_root = ROOT / "third_party_source" / "sidereon-core-3.0.
|
|
310
|
+
tide_root = ROOT / "third_party_source" / "sidereon-core-3.0.4" / "tides"
|
|
311
311
|
for filename, expected_digest in tide_sources.items():
|
|
312
312
|
source = tide_root / filename
|
|
313
313
|
if not source.is_file():
|
|
@@ -316,7 +316,7 @@ def main() -> None:
|
|
|
316
316
|
if digest != expected_digest:
|
|
317
317
|
raise SystemExit(
|
|
318
318
|
f"IERS-derived source disclosure {source} has digest {digest}, "
|
|
319
|
-
f"expected {expected_digest} from sidereon-core 3.0.
|
|
319
|
+
f"expected {expected_digest} from sidereon-core 3.0.4 at "
|
|
320
320
|
f"{CORE_SOURCE_REVISION}"
|
|
321
321
|
)
|
|
322
322
|
|
|
@@ -8,7 +8,7 @@ use std::path::{Path, PathBuf};
|
|
|
8
8
|
|
|
9
9
|
const REGISTRY_SOURCE: &str = "registry+https://github.com/rust-lang/crates.io-index";
|
|
10
10
|
const GIT_SOURCE_PREFIX: &str = "git+https://github.com/neilberkman/sidereon?rev=";
|
|
11
|
-
const RELEASE_VERSION: &str = "3.0.
|
|
11
|
+
const RELEASE_VERSION: &str = "3.0.4";
|
|
12
12
|
|
|
13
13
|
#[derive(Debug)]
|
|
14
14
|
struct LockedPackage {
|
|
@@ -16520,5 +16520,5 @@
|
|
|
16520
16520
|
]
|
|
16521
16521
|
}
|
|
16522
16522
|
},
|
|
16523
|
-
"core_revision": "
|
|
16524
|
-
}
|
|
16523
|
+
"core_revision": "5cfcdf929b57a5998e304df786735b171ba8afaf"
|
|
16524
|
+
}
|
|
@@ -20,7 +20,7 @@ from _helpers import FIXTURES
|
|
|
20
20
|
_ROOT = Path(__file__).resolve().parents[1]
|
|
21
21
|
_FIXTURES = Path(FIXTURES)
|
|
22
22
|
_SCRIPTS = _ROOT / "scripts"
|
|
23
|
-
_RELEASE_VERSION = "3.0.
|
|
23
|
+
_RELEASE_VERSION = "3.0.4"
|
|
24
24
|
_REGISTRY_SOURCE = "registry+https://github.com/rust-lang/crates.io-index"
|
|
25
25
|
_GIT_URL = "https://github.com/neilberkman/sidereon"
|
|
26
26
|
_DEPENDENCIES = ("sidereon", "sidereon-core")
|
|
@@ -59,12 +59,12 @@ def _manifest_dependencies(path):
|
|
|
59
59
|
def test_manifest_dependencies_accept_scalar_and_inline_versions(tmp_path):
|
|
60
60
|
manifest = tmp_path / "Cargo.toml"
|
|
61
61
|
manifest.write_text(
|
|
62
|
-
'[dependencies]\nsidereon = "=3.0.
|
|
63
|
-
'sidereon-core = { version = "=3.0.
|
|
62
|
+
'[dependencies]\nsidereon = "=3.0.4"\n'
|
|
63
|
+
'sidereon-core = { version = "=3.0.4", features = ["mmap"] }\n'
|
|
64
64
|
)
|
|
65
65
|
assert _manifest_dependencies(manifest) == {
|
|
66
|
-
"sidereon": {"version": "=3.0.
|
|
67
|
-
"sidereon-core": {"version": "=3.0.
|
|
66
|
+
"sidereon": {"version": "=3.0.4"},
|
|
67
|
+
"sidereon-core": {"version": "=3.0.4"},
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
|
|
@@ -248,15 +248,15 @@ def _write_candidate(tmp_path, revision):
|
|
|
248
248
|
lock = tmp_path / "Cargo.lock"
|
|
249
249
|
manifest.write_text(
|
|
250
250
|
"[dependencies]\n"
|
|
251
|
-
f'sidereon = {{ version = "=3.0.
|
|
252
|
-
f'sidereon-core = {{ version = "=3.0.
|
|
251
|
+
f'sidereon = {{ version = "=3.0.4", git = "{_GIT_URL}", rev = "{revision}" }}\n'
|
|
252
|
+
f'sidereon-core = {{ version = "=3.0.4", git = "{_GIT_URL}", '
|
|
253
253
|
f'rev = "{revision}" }}\n'
|
|
254
254
|
)
|
|
255
255
|
source = f"git+{_GIT_URL}?rev={revision}#{revision}"
|
|
256
256
|
lock.write_text(
|
|
257
|
-
'[[package]]\nname = "sidereon"\nversion = "3.0.
|
|
257
|
+
'[[package]]\nname = "sidereon"\nversion = "3.0.4"\n'
|
|
258
258
|
f'source = "{source}"\n\n'
|
|
259
|
-
'[[package]]\nname = "sidereon-core"\nversion = "3.0.
|
|
259
|
+
'[[package]]\nname = "sidereon-core"\nversion = "3.0.4"\n'
|
|
260
260
|
f'source = "{source}"\n'
|
|
261
261
|
)
|
|
262
262
|
return manifest, lock
|
|
@@ -321,13 +321,13 @@ def test_registry_vcs_commit_is_bound_to_both_locked_checksums(tmp_path):
|
|
|
321
321
|
manifest = tmp_path / "Cargo.toml"
|
|
322
322
|
lock = tmp_path / "Cargo.lock"
|
|
323
323
|
manifest.write_text(
|
|
324
|
-
'[dependencies]\nsidereon = { version = "=3.0.
|
|
325
|
-
'sidereon-core = { version = "=3.0.
|
|
324
|
+
'[dependencies]\nsidereon = { version = "=3.0.4" }\n'
|
|
325
|
+
'sidereon-core = { version = "=3.0.4" }\n'
|
|
326
326
|
)
|
|
327
327
|
packages = []
|
|
328
328
|
for name in _DEPENDENCIES:
|
|
329
329
|
packages.append(
|
|
330
|
-
f'[[package]]\nname = "{name}"\nversion = "3.0.
|
|
330
|
+
f'[[package]]\nname = "{name}"\nversion = "3.0.4"\n'
|
|
331
331
|
f'source = "{_REGISTRY_SOURCE}"\nchecksum = "{checksums[name]}"\n'
|
|
332
332
|
)
|
|
333
333
|
lock.write_text("\n".join(packages))
|
|
@@ -352,13 +352,13 @@ def test_registry_lock_rejects_wrong_source_version_and_missing_checksum(tmp_pat
|
|
|
352
352
|
}
|
|
353
353
|
manifest = tmp_path / "Cargo.toml"
|
|
354
354
|
manifest.write_text(
|
|
355
|
-
'[dependencies]\nsidereon = { version = "=3.0.
|
|
356
|
-
'sidereon-core = { version = "=3.0.
|
|
355
|
+
'[dependencies]\nsidereon = { version = "=3.0.4" }\n'
|
|
356
|
+
'sidereon-core = { version = "=3.0.4" }\n'
|
|
357
357
|
)
|
|
358
358
|
lock = tmp_path / "Cargo.lock"
|
|
359
359
|
lock.write_text(
|
|
360
360
|
"\n".join(
|
|
361
|
-
f'[[package]]\nname = "{name}"\nversion = "3.0.
|
|
361
|
+
f'[[package]]\nname = "{name}"\nversion = "3.0.4"\n'
|
|
362
362
|
f'source = "{_REGISTRY_SOURCE}"\nchecksum = "{checksums[name]}"\n'
|
|
363
363
|
for name in _DEPENDENCIES
|
|
364
364
|
)
|
|
@@ -369,7 +369,7 @@ def test_registry_lock_rejects_wrong_source_version_and_missing_checksum(tmp_pat
|
|
|
369
369
|
valid_lock.replace(_REGISTRY_SOURCE, "registry+https://example.invalid"),
|
|
370
370
|
"approved",
|
|
371
371
|
),
|
|
372
|
-
(valid_lock.replace('version = "3.0.
|
|
372
|
+
(valid_lock.replace('version = "3.0.4"', 'version = "3.0.5"', 1), "resolve"),
|
|
373
373
|
(
|
|
374
374
|
re.sub(r'^checksum = "[0-9a-f]{64}"\n', "", valid_lock, flags=re.M),
|
|
375
375
|
"checksum",
|
|
@@ -389,13 +389,13 @@ def test_registry_vcs_metadata_must_name_a_full_commit(tmp_path):
|
|
|
389
389
|
}
|
|
390
390
|
manifest = tmp_path / "Cargo.toml"
|
|
391
391
|
manifest.write_text(
|
|
392
|
-
'[dependencies]\nsidereon = { version = "=3.0.
|
|
393
|
-
'sidereon-core = { version = "=3.0.
|
|
392
|
+
'[dependencies]\nsidereon = { version = "=3.0.4" }\n'
|
|
393
|
+
'sidereon-core = { version = "=3.0.4" }\n'
|
|
394
394
|
)
|
|
395
395
|
lock = tmp_path / "Cargo.lock"
|
|
396
396
|
lock.write_text(
|
|
397
397
|
"\n".join(
|
|
398
|
-
f'[[package]]\nname = "{name}"\nversion = "3.0.
|
|
398
|
+
f'[[package]]\nname = "{name}"\nversion = "3.0.4"\n'
|
|
399
399
|
f'source = "{_REGISTRY_SOURCE}"\nchecksum = "{checksums[name]}"\n'
|
|
400
400
|
for name in _DEPENDENCIES
|
|
401
401
|
)
|
|
@@ -414,13 +414,13 @@ def test_registry_dirty_vcs_metadata_is_rejected(tmp_path):
|
|
|
414
414
|
}
|
|
415
415
|
manifest = tmp_path / "Cargo.toml"
|
|
416
416
|
manifest.write_text(
|
|
417
|
-
'[dependencies]\nsidereon = { version = "=3.0.
|
|
418
|
-
'sidereon-core = { version = "=3.0.
|
|
417
|
+
'[dependencies]\nsidereon = { version = "=3.0.4" }\n'
|
|
418
|
+
'sidereon-core = { version = "=3.0.4" }\n'
|
|
419
419
|
)
|
|
420
420
|
lock = tmp_path / "Cargo.lock"
|
|
421
421
|
lock.write_text(
|
|
422
422
|
"\n".join(
|
|
423
|
-
f'[[package]]\nname = "{name}"\nversion = "3.0.
|
|
423
|
+
f'[[package]]\nname = "{name}"\nversion = "3.0.4"\n'
|
|
424
424
|
f'source = "{_REGISTRY_SOURCE}"\nchecksum = "{checksums[name]}"\n'
|
|
425
425
|
for name in _DEPENDENCIES
|
|
426
426
|
)
|
|
@@ -450,13 +450,13 @@ def test_registry_packages_from_different_commits_fail(tmp_path):
|
|
|
450
450
|
}
|
|
451
451
|
manifest = tmp_path / "Cargo.toml"
|
|
452
452
|
manifest.write_text(
|
|
453
|
-
'[dependencies]\nsidereon = { version = "=3.0.
|
|
454
|
-
'sidereon-core = { version = "=3.0.
|
|
453
|
+
'[dependencies]\nsidereon = { version = "=3.0.4" }\n'
|
|
454
|
+
'sidereon-core = { version = "=3.0.4" }\n'
|
|
455
455
|
)
|
|
456
456
|
lock = tmp_path / "Cargo.lock"
|
|
457
457
|
lock.write_text(
|
|
458
458
|
"\n".join(
|
|
459
|
-
f'[[package]]\nname = "{name}"\nversion = "3.0.
|
|
459
|
+
f'[[package]]\nname = "{name}"\nversion = "3.0.4"\n'
|
|
460
460
|
f'source = "{_REGISTRY_SOURCE}"\nchecksum = "{checksums[name]}"\n'
|
|
461
461
|
for name in _DEPENDENCIES
|
|
462
462
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|