Skip to content

Releases: nyx-space/anise

0.6.8: SPK Type 01; fix small error in velocities with light-time correction enabled

17 Aug 01:03
fb787c4
Compare
Choose a tag to compare

New Features

Bug fixes

Testing

Full Changelog: 0.6.7...0.6.8

0.6.7: Fix MacOS15, fix Nepture/Uranus IDs and IAU rotations

07 Aug 14:58
b35176e
Compare
Choose a tag to compare

New features

Bug Fixes

Dependencies

  • Update criterion requirement from 0.6 to 0.7 by @dependabot[bot] in #489
  • Update rstest requirement from 0.25.0 to 0.26.1 by @dependabot[bot] in #491
  • Update nalgebra requirement from 0.33 to 0.34 by @dependabot[bot] in #492 Pushed back to release 0.7.0
  • Update polars requirement from 0.46.0 to 0.50.0 by @dependabot[bot] in #501

New Contributors

Full Changelog: 0.6.6...0.6.7

0.6.6: Support MacOS15 support + various documentation fixes

25 Jul 04:02
6a2d249
Compare
Choose a tag to compare

New features and improvements

Dependencies

  • Update iai-callgrind requirement from 0.15 to 0.16 by @dependabot[bot] in #485
  • Update egui_logger requirement from 0.7.0 to 0.8.0 by @dependabot[bot] in #486

Miscellaneous

New Contributors

Full Changelog: 0.6.5...0.6.6

0.6.5: Update to hifitime 4.1.2, fix Python typing documentation

03 Jul 18:35
d3ece42
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.6.4...0.6.5

0.6.4: Add `anise-gui` executable script to Python project

25 Jun 18:06
e0507b5
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.6.3...0.6.4

0.6.3: Improve Python packaging; no Rust change

24 Jun 17:10
0a8e646
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.6.2...0.6.3

0.6.2: Add LTAN and mean motion + Fix multithreading in python

17 Jun 04:22
b9a1aa2
Compare
Choose a tag to compare

New features and improvements

  • feat: Add duration_to_radius function and utils, mean motion method to Orbit (mean_motion_deg_s), and Longitude of the Ascending Node (LTAN) (ltan_deg) by @ChristopherRabotin in #456
  • a few typos and minor details by @fchapoton in #459

Bug Fixes

New Contributors

Full Changelog: 0.6.1...0.6.2

0.6.1: Python multithreading, unit vector querying, beta angle

10 Jun 03:42
1d8338e
Compare
Choose a tag to compare

New features

Dependencies

Full Changelog: 0.6.0...0.6.1

ANISE 0.6.0: Faster Hermite Interpolation (Type 13), Hifitime 4.1.0 & Enhanced Fuzz Testing

27 May 20:33
da7295c
Compare
Choose a tag to compare

Summary

ANISE version 0.6.0 is a minor release primarily focused on dependency management for Rust users. Importantly, this update does not introduce breaking changes to the ANISE binary file format (PCA/EPA). Files generated with version 0.5.4 remain fully compatible with version 0.6.0. Furthermore, any new PCA/EPA files created using ANISE 0.6.0 will retain the 0.4 versioning, consistent with the 0.5.x series.

This release brings several improvements to error handling and parsing robustness, fixes critical bugs related to item parsing and state translation, and introduces a new regression test. Key dependency versions have also been updated.

Detailed Change Log

New Features

Improvements

Bug Fixes

Dependencies

New Contributors

Full Changelog: 0.5.4...0.6.0

0.5.4: Fuzz testing + TPC parsing fix

25 Apr 23:27
0ea98ea
Compare
Choose a tag to compare

Announcement: ANISE 0.5.4 Released! 🎉

We're excited to announce the release of ANISE v0.5.4, our modern Rust implementation of NASA's SPICE toolkit with Python bindings!

This release brings significant under-the-hood improvements focused on robustness and reliability. The biggest highlight is the introduction of extensive fuzz testing. We've added dozens of fuzz targets that continuously bombard ANISE's core components – including file parsers (SPK, BPC, text kernels), data structures, and calculations – with random data to shake out bugs and edge cases before they reach you. Huge thank you to @jonathan-g-davis for these tests!

Key changes in v0.5.4 include:

  • 🚀 Enhanced Robustness: Comprehensive fuzz testing suite added across the library.
  • 🔧 Dependency Refresh: Replaced the reqwest HTTP client with the lighter-weight ureq for fetching remote data, potentially improving build times. Updated core dependencies like tabled, rstest, and GUI libraries (egui/eframe).
  • 🐛 Bug Fixes: Corrected an issue with Text PCK (TPC) file conversion. Improved KPL parsing to handle SPICE 'D' exponents.
  • ⚙️ Build Adjustments: We've temporarily removed the build for Linux aarch64 Python wheels. We'll re-evaluate adding this back in the future. Other CI processes for artifact handling and testing have been refined.
  • 🧹 Data Management: Removed large embedded ephemeris files from the repository to reduce bloat, favoring on-demand downloads. Added new example TPC and BSP files.
  • ✨ Minor Improvements: Increased capacity for planetary constants, refined interpolation math, and improved error messages.

This release makes ANISE more reliable and maintainable, paving the way for future feature development.

As always, please report any issues you encounter. Thank you for using ANISE!

Detailed Changelog

This release focuses on improving robustness through fuzz testing, updating dependencies, refining build processes, and fixing specific issues.

✨ Features & Enhancements

  • Fuzz Testing: Added a comprehensive fuzz testing suite (anise/fuzz) targeting various components including file parsing (SPK, BPC, KPL), data structures, almanac operations, and mathematical functions (rotation, interpolation) to significantly improve code robustness and uncover edge cases.
  • Dependency Update (HTTP Client): Replaced reqwest with ureq for HTTP requests in metaload and embed_ephem features. ureq is a smaller dependency, potentially reducing compile times and binary size.
  • Improved KPL Parsing: Text Kernel (TPC, FK) parser now handles SPICE-style 'D' floating-point exponents (e.g., 1.23D+05) correctly and trims whitespace before parsing floats.
  • Increased Planetary Data Capacity: Doubled the maximum number of planetary data entries the Almanac can hold (MAX_PLANETARY_DATA from 64 to 128).
  • Code Refinements:
    • Used div_ceil for potentially more robust integer division in Hermite interpolation and DAF file record calculations.
    • Refactored KPL parsing and conversion logic into smaller, reusable functions (parse_bytes, convert_tpc_items, convert_fk_items).
    • Improved error message clarity for I/O errors.

🐛 Bug Fixes

  • TPC Conversion: Fixed an issue related to converting multiple TPC files, particularly when overwriting the output file. Added test_convert_tpc to verify, thanks @translunar for the test case and for your patience!

⚙️ Build & CI

  • Removed Linux aarch64 Wheels: Temporarily removed the build target for Linux ARM64 (aarch64) wheels due to potential build complexities with the ureq switch -- please open a bug report if this causes an issue for your use cases.
  • Improved Artifact Handling: Updated PyPI publishing workflow to correctly download and merge all wheel artifacts before uploading.
  • Dependency Management: Switched from GitHub secrets to vars for accessing test data paths (e.g., LAGRANGE_BSP) in CI, likely reflecting a change in sensitivity or access pattern. This allows external contributions' CI tests to run the Lagrange interpolation tests.
  • Dependency Updates:
    • tabled: 0.17 -> 0.19
    • rstest: 0.24.0 -> 0.25.0
    • eframe, egui, egui_extras: 0.30 -> 0.31 (GUI)
    • egui_logger: 0.6.2 -> 0.6.3 (GUI)
    • parquet, arrow: 54.0.0 -> 55.0.0 (Dev dependency)
    • Other minor updates via workspace bump.

🧪 Testing

  • New Test: Added test_convert_tpc to verify TPC file conversion functionality.
  • Updated Test: Updated expected values in the type9_lagrange_query test after updating the underlying BSP in the test
  • (See Fuzz Testing above)

📊 Data

  • Removed Large BSPs: Removed several large DE ephemeris .bsp files (DE421, DE430, DE440, DE440s, DE440 type3) from the repository, likely favoring download-on-demand via metaload or reducing repository size.
  • Added Test/Example Data: Included gm_de440.tpc and gmat-lagrange.bsp files in the repository.

📚 Documentation

  • GUI Build Instructions: Minor clarification in anise-gui/README.md regarding the directory from which to run build commands.

Pull request summary

New Contributors

Full Changelog: 0.5.3...0.5.4