diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
index cc3099339ae..7a644755809 100644
--- a/.github/workflows/build-docs.yml
+++ b/.github/workflows/build-docs.yml
@@ -22,27 +22,18 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
-
- - name: Update Ubuntu Packages
- run: sudo apt-get update
-
- - uses: awalsh128/cache-apt-pkgs-action@v1
- with:
- packages: llvm \
- clang \
- libclang-dev \
- libopencv-dev
-
- - uses: dtolnay/rust-toolchain@stable
+ - uses: actions/checkout@v5
+ - uses: cachix/install-nix-action@v31
with:
- components: clippy
+ github_access_token: ${{ secrets.GITHUB_TOKEN }}
+ - uses: DeterminateSystems/magic-nix-cache-action@v13
- uses: Swatinem/rust-cache@v2
- name: Build docs
- run: cargo doc --features logging,graphing
+ run: nix develop ./#noFHS --command cargo doc --features logging,graphing
- name: Add redirect
run: echo '' > target/doc/index.html
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index e8bdf845299..503fc698906 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -11,33 +11,13 @@ env:
jobs:
build:
-
- runs-on: ubuntu-latest
-
+ runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v4
-
- - name: Update Ubuntu Packages
- run: sudo apt-get update
-
- - uses: awalsh128/cache-apt-pkgs-action@v1
- with:
- packages: llvm \
- clang \
- libclang-dev \
- libopencv-dev \
- libavutil-dev \
- libavcodec-dev \
- libavformat-dev
-
- - name: Install gstreamer
- run: |
- sudo apt update
- sudo apt install -y aptitude
- sudo aptitude install -y libgstreamer1.0-dev
-
- - uses: dtolnay/rust-toolchain@stable
- - uses: Swatinem/rust-cache@v2
-
- - name: Run tests
- run: cargo test --features logging,graphing --verbose
+ - uses: actions/checkout@v5
+ - uses: cachix/install-nix-action@v31
+ with:
+ github_access_token: ${{ secrets.GITHUB_TOKEN }}
+ - uses: DeterminateSystems/magic-nix-cache-action@v13
+ - uses: Swatinem/rust-cache@v2
+ - name: Run tests
+ run: nix develop ./#noFHS --command cargo test --features logging,graphing --verbose
diff --git a/build.rs b/build.rs
index 3fe230eb977..23f4e172c99 100644
--- a/build.rs
+++ b/build.rs
@@ -125,14 +125,14 @@ mod graphing {
})
.for_each(|(path, file, actions)| {
let actions_str =
- "pub fn graph_actions> + GraphActionContext::GetFrontCamMat + GraphActionContext::GetBottomCamMat + Send + Sync + std::marker::Unpin>(context: &'static T) -> Vec<(String, Box)> { vec!["
+ "pub fn graph_actions> + GraphActionContext::FrontCamIO + GraphActionContext::BottomCamIO + Send + Sync + std::marker::Unpin>(context: &'static T) -> Vec<(String, Box)> { vec!["
.to_string()
+ &actions
.into_iter()
.fold("".to_string(), |acc, x| acc + &format!("(\"{x}\".to_string(), Box::new({x}(context))),"))
+ "]}";
let file_contents =
- quote! { use sw8s_rust_lib::missions::action::Action as GraphAction; use sw8s_rust_lib::missions::action::ActionExec as GraphActionExec; use sw8s_rust_lib::missions::action_context as GraphActionContext; #file };
+ quote! { use sw8s_rust_lib::missions::action::Action as GraphAction; use sw8s_rust_lib::missions::action::ActionExec as GraphActionExec; use sw8s_rust_lib::missions::action_context as GraphActionContext; use sw8s_rust_lib::logln; #file };
let output_loc = out_path.join(path.strip_prefix::("src/missions".into()).unwrap());
create_dir_all(output_loc.parent().unwrap()).unwrap();
write(
diff --git a/src/comms/auv_control_board/response.rs b/src/comms/auv_control_board/response.rs
index b6ca0bc722a..f10b455828a 100644
--- a/src/comms/auv_control_board/response.rs
+++ b/src/comms/auv_control_board/response.rs
@@ -5,7 +5,6 @@ use tokio::io::AsyncReadExt;
use tokio::{fs::OpenOptions, io::AsyncWriteExt, sync::Mutex};
use super::util::{END_BYTE, ESCAPE_BYTE, START_BYTE};
-use crate::logln;
#[cfg(feature = "logging")]
static LOG_NAMES: Mutex> = Mutex::const_new(Vec::new());
@@ -194,7 +193,7 @@ mod tests {
)
.collect::>>()
.await,
- vec![vec![]]
+ Vec::>::from([vec![]])
);
assert_eq!(
diff --git a/src/comms/control_board/mod.rs b/src/comms/control_board/mod.rs
index d7cd4eee085..3b6589b4897 100644
--- a/src/comms/control_board/mod.rs
+++ b/src/comms/control_board/mod.rs
@@ -16,7 +16,6 @@ use self::{
};
use super::auv_control_board::{AUVControlBoard, MessageId};
-use crate::logln;
pub mod response;
pub mod util;
diff --git a/src/missions/basic.rs b/src/missions/basic.rs
index 5849347c56f..ebd513f3023 100644
--- a/src/missions/basic.rs
+++ b/src/missions/basic.rs
@@ -1,5 +1,3 @@
-use crate::logln;
-
use super::{
action::{Action, ActionChain, ActionExec, ActionSequence},
action_context::{GetControlBoard, GetMainElectronicsBoard},
diff --git a/src/missions/extra.rs b/src/missions/extra.rs
index fc0ce9afc65..3fa1e0a32e3 100644
--- a/src/missions/extra.rs
+++ b/src/missions/extra.rs
@@ -4,8 +4,6 @@ use std::marker::PhantomData;
use anyhow::{anyhow, bail};
use uuid::Uuid;
-use crate::logln;
-
use super::{
action::{Action, ActionExec, ActionMod},
graph::{stripped_fn, stripped_type, DotString},
diff --git a/src/missions/meb.rs b/src/missions/meb.rs
index f1ba1d6868f..1a27c24fb5d 100644
--- a/src/missions/meb.rs
+++ b/src/missions/meb.rs
@@ -2,8 +2,6 @@ use std::time::Duration;
use tokio::time::sleep;
-use crate::logln;
-
use super::{
action::{Action, ActionExec},
action_context::GetMainElectronicsBoard,
diff --git a/src/missions/movement.rs b/src/missions/movement.rs
index 10c143de5b3..1d52255c5f6 100644
--- a/src/missions/movement.rs
+++ b/src/missions/movement.rs
@@ -1,6 +1,5 @@
use crate::comms::control_board::ControlBoard;
use crate::comms::control_board::LAST_YAW;
-use crate::logln;
use crate::vision::DrawRect2d;
use crate::vision::Offset2D;
use crate::vision::RelPos;
diff --git a/src/missions/vision.rs b/src/missions/vision.rs
index 54b3eeaabed..e923141ae9f 100644
--- a/src/missions/vision.rs
+++ b/src/missions/vision.rs
@@ -7,7 +7,6 @@ use std::{iter::Sum, marker::PhantomData};
use super::action::{Action, ActionExec, ActionMod};
use super::action_context::BottomCamIO;
use super::graph::DotString;
-use crate::logln;
use crate::vision::{
Angle2D, Draw, DrawRect2d, Offset2D, RelPos, RelPosAngle, VisualDetection, VisualDetector,
};
diff --git a/src/vision/buoy_model.rs b/src/vision/buoy_model.rs
index f994e006911..06fe3e07cf3 100644
--- a/src/vision/buoy_model.rs
+++ b/src/vision/buoy_model.rs
@@ -2,7 +2,7 @@ use anyhow::Result;
use derive_getters::Getters;
use opencv::{core::Rect2d, core::Size, prelude::Mat};
-use crate::{load_onnx, logln};
+use crate::load_onnx;
use super::{
nn_cv2::{OnnxModel, VisionModel, YoloClass, YoloDetection},
diff --git a/src/vision/path.rs b/src/vision/path.rs
index 6990324d120..346178b39d7 100644
--- a/src/vision/path.rs
+++ b/src/vision/path.rs
@@ -371,7 +371,7 @@ mod tests {
imgcodecs::{imread, imwrite, IMREAD_COLOR},
};
- use crate::{logln, vision::Draw};
+ use crate::vision::Draw;
use super::*;
diff --git a/src/vision/path_cv.rs b/src/vision/path_cv.rs
index e16334a66c1..03302055a60 100644
--- a/src/vision/path_cv.rs
+++ b/src/vision/path_cv.rs
@@ -326,7 +326,7 @@ mod tests {
imgcodecs::{imread, imwrite, IMREAD_COLOR},
};
- use crate::{logln, vision::Draw};
+ use crate::vision::Draw;
use super::*;
diff --git a/src/vision/pca.rs b/src/vision/pca.rs
index 5b9a2e3f502..6b0ead69fdc 100644
--- a/src/vision/pca.rs
+++ b/src/vision/pca.rs
@@ -7,8 +7,6 @@ use opencv::{
prelude::Mat,
};
-use crate::logln;
-
use super::{Angle2D, Draw, Offset2D, RelPosAngle, VisualDetection};
#[derive(Debug, Clone, Getters)]