Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions .github/workflows/ci-build-test-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
CARGO_TERM_COLOR: always
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- name: Checkout (with submodules)
- name: Checkout (with siderust submodule)
uses: actions/checkout@v4
with:
submodules: recursive
Expand All @@ -25,10 +25,6 @@ jobs:
echo
echo "siderust: $(git -C siderust rev-parse HEAD) ($(git -C siderust describe --tags --always 2>/dev/null || true))"
echo "siderust-ffi: $(git -C siderust/siderust-ffi rev-parse HEAD) ($(git -C siderust/siderust-ffi describe --tags --always 2>/dev/null || true))"
echo "tempoch: $(git -C tempoch-cpp/tempoch rev-parse HEAD) ($(git -C tempoch-cpp/tempoch describe --tags --always 2>/dev/null || true))"
echo "tempoch-ffi: $(git -C tempoch-cpp/tempoch/tempoch-ffi rev-parse HEAD) ($(git -C tempoch-cpp/tempoch/tempoch-ffi describe --tags --always 2>/dev/null || true))"
echo "qtty: $(git -C tempoch-cpp/qtty-cpp/qtty rev-parse HEAD) ($(git -C tempoch-cpp/qtty-cpp/qtty describe --tags --always 2>/dev/null || true))"
echo "qtty-ffi: $(git -C tempoch-cpp/qtty-cpp/qtty/qtty-ffi rev-parse HEAD) ($(git -C tempoch-cpp/qtty-cpp/qtty/qtty-ffi describe --tags --always 2>/dev/null || true))"

- name: Install system dependencies
shell: bash
Expand All @@ -41,8 +37,13 @@ jobs:
ninja-build \
pkg-config \
libssl-dev \
curl \
graphviz

- name: Install official qtty-cpp and tempoch-cpp packages
shell: bash
run: scripts/install-official-cpp-deps.sh

- name: Install Doxygen 1.16.1
shell: bash
run: |
Expand All @@ -67,24 +68,16 @@ jobs:
~/.cargo/git
siderust/target
siderust/siderust-ffi/target
tempoch-cpp/tempoch/target
tempoch-cpp/tempoch/tempoch-ffi/target
tempoch-cpp/qtty-cpp/qtty/target
tempoch-cpp/qtty-cpp/qtty/qtty-ffi/target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Validate required submodules exist
- name: Validate required submodule exists
shell: bash
run: |
set -euo pipefail
test -f siderust/Cargo.toml
test -f siderust/siderust-ffi/Cargo.toml
test -f tempoch-cpp/tempoch/Cargo.toml
test -f tempoch-cpp/tempoch/tempoch-ffi/Cargo.toml
test -f tempoch-cpp/qtty-cpp/qtty/Cargo.toml
test -f tempoch-cpp/qtty-cpp/qtty/qtty-ffi/Cargo.toml

- name: Configure (CMake)
shell: bash
Expand Down
33 changes: 27 additions & 6 deletions .github/workflows/ci-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ jobs:
runs-on: ubuntu-22.04
env:
CARGO_TERM_COLOR: always
SIDERUST_CPP_COVERAGE_THRESHOLD: 90
steps:
- name: Checkout (with submodules)
- name: Checkout (with siderust submodule)
uses: actions/checkout@v4
with:
submodules: recursive
Expand All @@ -27,8 +28,13 @@ jobs:
ninja-build \
pkg-config \
libssl-dev \
curl \
gcovr

- name: Install official qtty-cpp and tempoch-cpp packages
shell: bash
run: scripts/install-official-cpp-deps.sh

- name: Set up Rust (stable)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
Expand All @@ -40,6 +46,8 @@ jobs:
set -euo pipefail
cmake -S . -B build-coverage -G Ninja \
-DSIDERUST_BUILD_DOCS=OFF \
-DSIDERUST_CPP_BUILD_EXAMPLES=OFF \
-DSIDERUST_CPP_BUILD_BENCHES=OFF \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="--coverage" \
-DCMAKE_EXE_LINKER_FLAGS="--coverage"
Expand All @@ -50,36 +58,49 @@ jobs:
set -euo pipefail
cmake --build build-coverage --target test_siderust

- name: Fetch DE440s kernel for runtime ephemeris coverage
shell: bash
run: |
set -euo pipefail
curl -fsSL -o /tmp/de440s.bsp \
https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440s.bsp
echo "SIDERUST_BSP_PATH=/tmp/de440s.bsp" >> "$GITHUB_ENV"

- name: Run tests
shell: bash
run: |
set -euo pipefail
find build-coverage -name '*.gcda' -delete
ctest --test-dir build-coverage --output-on-failure -L siderust_cpp
find build-coverage/CMakeFiles -path '*/CompilerId*/*' \( -name '*.gcno' -o -name '*.gcda' \) -delete

- name: Coverage (Cobertura XML)
shell: bash
run: |
set -euo pipefail
gcovr \
gcovr build-coverage \
--root . \
--object-directory build-coverage \
--filter 'include/siderust/.*' \
--exclude 'build-coverage/.*' \
--exclude 'siderust/.*' \
--exclude 'tempoch-cpp/.*' \
--exclude 'tests/.*' \
--exclude 'examples/.*' \
--xml \
--output coverage.xml
--output coverage.xml \
--fail-under-line "$SIDERUST_CPP_COVERAGE_THRESHOLD"

- name: Coverage (HTML)
shell: bash
run: |
set -euo pipefail
mkdir -p coverage_html
gcovr \
gcovr build-coverage \
--root . \
--object-directory build-coverage \
--filter 'include/siderust/.*' \
--exclude 'build-coverage/.*' \
--exclude 'siderust/.*' \
--exclude 'tempoch-cpp/.*' \
--exclude 'tests/.*' \
--exclude 'examples/.*' \
--html-details \
Expand Down
37 changes: 8 additions & 29 deletions .github/workflows/ci-installed-consumer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
CARGO_TERM_COLOR: always
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- name: Checkout (with submodules)
- name: Checkout (with siderust submodule)
uses: actions/checkout@v4
with:
submodules: recursive
Expand All @@ -38,8 +38,13 @@ jobs:
cmake \
ninja-build \
pkg-config \
curl \
libssl-dev

- name: Install official qtty-cpp and tempoch-cpp packages
shell: bash
run: scripts/install-official-cpp-deps.sh

- name: Set up Rust (stable)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
Expand All @@ -53,45 +58,19 @@ jobs:
~/.cargo/git
siderust/target
siderust/siderust-ffi/target
tempoch-cpp/tempoch/target
tempoch-cpp/tempoch/tempoch-ffi/target
tempoch-cpp/qtty-cpp/qtty/target
tempoch-cpp/qtty-cpp/qtty/qtty-ffi/target
key: ${{ runner.os }}-cargo-installed-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Configure & install qtty-cpp (standalone)
shell: bash
run: |
set -euo pipefail
cmake -S tempoch-cpp/qtty-cpp -B build-qtty -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DQTTY_BUILD_DOCS=OFF
cmake --build build-qtty -j
cmake --install build-qtty --prefix "$GITHUB_WORKSPACE/stage"

- name: Configure & install tempoch-cpp (standalone, uses staged qtty-cpp)
shell: bash
run: |
set -euo pipefail
cmake -S tempoch-cpp -B build-tempoch -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DTEMPOCH_BUILD_DOCS=OFF \
-DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/stage"
cmake --build build-tempoch -j
cmake --install build-tempoch --prefix "$GITHUB_WORKSPACE/stage"

- name: Configure siderust-cpp against staged qtty/tempoch
- name: Configure siderust-cpp against official qtty/tempoch packages
shell: bash
run: |
set -euo pipefail
cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DSIDERUST_BUILD_DOCS=OFF \
-DSIDERUST_CPP_BUILD_TESTS=OFF \
-DSIDERUST_CPP_BUILD_EXAMPLES=OFF \
-DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/stage"
-DSIDERUST_CPP_BUILD_EXAMPLES=OFF

- name: Build siderust_ffi (cdylib)
shell: bash
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/ci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
env:
CARGO_TERM_COLOR: always
steps:
- name: Checkout (with submodules)
- name: Checkout (with siderust submodule)
uses: actions/checkout@v4
with:
submodules: recursive
Expand All @@ -24,8 +24,13 @@ jobs:
sudo apt-get install -y --no-install-recommends \
cmake \
ninja-build \
curl \
clang-tidy

- name: Install official qtty-cpp and tempoch-cpp packages
shell: bash
run: scripts/install-official-cpp-deps.sh

- name: Install clang-format 18
shell: bash
run: |
Expand Down
21 changes: 6 additions & 15 deletions .github/workflows/ci-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
CARGO_TERM_COLOR: always
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- name: Checkout (with submodules)
- name: Checkout (with siderust submodule)
uses: actions/checkout@v4
with:
submodules: recursive
Expand All @@ -28,8 +28,13 @@ jobs:
ninja-build \
pkg-config \
libssl-dev \
curl \
rpm

- name: Install official qtty-cpp and tempoch-cpp packages
shell: bash
run: scripts/install-official-cpp-deps.sh

- name: Set up Rust (stable)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
Expand All @@ -43,10 +48,6 @@ jobs:
~/.cargo/git
siderust/target
siderust/siderust-ffi/target
tempoch-cpp/tempoch/target
tempoch-cpp/tempoch/tempoch-ffi/target
tempoch-cpp/qtty-cpp/qtty/target
tempoch-cpp/qtty-cpp/qtty/qtty-ffi/target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
Expand All @@ -67,16 +68,6 @@ jobs:
shell: bash
run: cmake --install build --prefix build/staging

- name: Copy shared libraries to staging
shell: bash
run: |
set -euo pipefail
mkdir -p build/staging/lib
cp siderust/target/release/libsiderust_ffi.so \
tempoch-cpp/tempoch/tempoch-ffi/target/release/libtempoch_ffi.so \
tempoch-cpp/qtty-cpp/qtty/target/release/libqtty_ffi.so \
build/staging/lib/

- name: Generate packages (CPack)
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ cmake-build-*/
out/
build*
coverage*
!scripts/coverage.sh

# IDE files
.vscode/
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "tempoch-cpp"]
path = tempoch-cpp
url = https://github.com/Siderust/tempoch-cpp.git
[submodule "siderust"]
path = siderust
url = https://github.com/Siderust/siderust.git
15 changes: 13 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.8.0-rc] - 2026/06/08
## [0.8.0] - 2026/06/14

Release candidate aligned with `siderust v0.10.0` (Option A altitude/event API).
Release aligned with `siderust v0.10.0` (Option A altitude/event API).

### Added

- CI coverage gate requiring at least 90% line coverage, plus
`scripts/coverage.sh` for the same local check.
- Targeted tests for FFI error mapping, enum stream formatting, target
forwarding, altitude helpers, and azimuth helpers.

### Changed

Expand All @@ -18,11 +25,15 @@ Release candidate aligned with `siderust v0.10.0` (Option A altitude/event API).
- Removed `CrossingAlgorithm`, `ChebyshevOptions`, scan-step tuning, and all FFI `_v2` dispatch paths.
- Benchmarks simplified to the single optimized search engine (no algorithm dimension).
- `siderust` submodule updated to the `v0.10.0` / PR #79 release line.
- Production builds now consume official `qtty-cpp` and `tempoch-cpp` CMake
packages via `find_package`; local dependency development uses
`CMAKE_PREFIX_PATH` with a staged package install.

### Removed

- Legacy `siderust_altitude_periods` / `siderust_altitude_query_t` FFI usage.
- Public algorithm selector and Chebyshev crossing-search controls.
- Vendored `tempoch-cpp` submodule usage from the production build path.

## [0.7.0] - 2026/06/06

Expand Down
Loading
Loading