chore: merge release-v0.7.2 into main

This commit is contained in:
Jack Wills
2024-09-07 21:38:07 +00:00
12 changed files with 30 additions and 34 deletions
+2 -12
View File
@@ -1,16 +1,6 @@
### 2024-09-07 ### 2024-09-07
### Chores ### Reverts
+ dependencies updated, [d6238587ffc536f1ea93a47dd4d2ee69c36f35e3], [a564ef80318adbde9f188dd2cf38626a98793c75], [1d82ff1368f7b43e6df8478d5e7b8d682320010a], [99f05f2e5b511d039804159c92ade6c77ff360b7] + Expect lint was causing issues with crates/docker builds, revert until fix is found, [578ed9f085df0d97c451c06dab4ecbfccd894c52]
+ Rust 1.81.0 linting, [372f759ca467e47c373a086c6a247c150b87d4bc]
+ .devcontainer updated, [5d77f1e02a428b4e5ee1bf5466055ad17f6e05af]
### Docs
+ CHANGELOG.md duplicate removed, [16ecc5a51f7defcc9dd4f4c6e34fa5bbfc7fea78]
+ Readme raspberry pi fix, [baf68783929e5d6ac111a39dc62388cd24133da6]
+ Add installation guide to README for macOS installation via `brew install oxker`, thanks [miketheman](https://github.com/miketheman), [59817311baea628d2691765ff9387e055dce3307], [895ec6204cc8220be64be7622df6edb6ef6d795b]
### Refactors
+ switch lints from `allow(x)` to `expect(x)`, [2a0ab6d81ce4062de053a92b85f8b25ea23412b6]
see <a href='https://github.com/mrjackwills/oxker/blob/main/CHANGELOG.md'>CHANGELOG.md</a> for more details see <a href='https://github.com/mrjackwills/oxker/blob/main/CHANGELOG.md'>CHANGELOG.md</a> for more details
+6
View File
@@ -1,3 +1,9 @@
# <a href='https://github.com/mrjackwills/oxker/releases/tag/v0.7.2'>v0.7.2</a>
### 2024-09-07
### Reverts
+ Expect lint was causing issues with crates/docker builds, revert until fix is found, [578ed9f0](https://github.com/mrjackwills/oxker/commit/578ed9f085df0d97c451c06dab4ecbfccd894c52)
# <a href='https://github.com/mrjackwills/oxker/releases/tag/v0.7.1'>v0.7.1</a> # <a href='https://github.com/mrjackwills/oxker/releases/tag/v0.7.1'>v0.7.1</a>
### 2024-09-07 ### 2024-09-07
Generated
+1 -1
View File
@@ -859,7 +859,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]] [[package]]
name = "oxker" name = "oxker"
version = "0.7.1" version = "0.7.2"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bollard", "bollard",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "oxker" name = "oxker"
version = "0.7.1" version = "0.7.2"
edition = "2021" edition = "2021"
authors = ["Jack Wills <email@mrjackwills.com>"] authors = ["Jack Wills <email@mrjackwills.com>"]
description = "A simple tui to view & control docker containers" description = "A simple tui to view & control docker containers"
+4 -4
View File
@@ -468,7 +468,7 @@ impl ByteStats {
} }
} }
#[expect(clippy::cast_precision_loss)] #[allow(clippy::cast_precision_loss)]
impl Stats for ByteStats { impl Stats for ByteStats {
fn get_value(&self) -> f64 { fn get_value(&self) -> f64 {
self.0 as f64 self.0 as f64
@@ -608,7 +608,7 @@ impl fmt::Display for ContainerItem {
} }
impl ContainerItem { impl ContainerItem {
#[expect(clippy::too_many_arguments)] #[allow(clippy::too_many_arguments)]
/// Create a new container item /// Create a new container item
pub fn new( pub fn new(
created: u64, created: u64,
@@ -660,7 +660,7 @@ impl ContainerItem {
} }
/// Convert cpu stats into a vec for the charts function /// Convert cpu stats into a vec for the charts function
#[expect(clippy::cast_precision_loss)] #[allow(clippy::cast_precision_loss)]
fn get_cpu_dataset(&self) -> Vec<(f64, f64)> { fn get_cpu_dataset(&self) -> Vec<(f64, f64)> {
self.cpu_stats self.cpu_stats
.iter() .iter()
@@ -670,7 +670,7 @@ impl ContainerItem {
} }
/// Convert mem stats into a Vec for the charts function /// Convert mem stats into a Vec for the charts function
#[expect(clippy::cast_precision_loss)] #[allow(clippy::cast_precision_loss)]
fn get_mem_dataset(&self) -> Vec<(f64, f64)> { fn get_mem_dataset(&self) -> Vec<(f64, f64)> {
self.mem_stats self.mem_stats
.iter() .iter()
+2 -2
View File
@@ -151,7 +151,7 @@ impl AppData {
} }
/// Current time as unix timestamp /// Current time as unix timestamp
#[expect(clippy::expect_used)] #[allow(clippy::expect_used)]
fn get_systemtime() -> u64 { fn get_systemtime() -> u64 {
SystemTime::now() SystemTime::now()
.duration_since(UNIX_EPOCH) .duration_since(UNIX_EPOCH)
@@ -933,7 +933,7 @@ impl AppData {
} }
#[cfg(test)] #[cfg(test)]
#[expect(clippy::unwrap_used)] #[allow(clippy::unwrap_used)]
mod tests { mod tests {
use super::*; use super::*;
+1 -1
View File
@@ -2,7 +2,7 @@ use crate::app_data::DockerControls;
use std::fmt; use std::fmt;
/// app errors to set in global state /// app errors to set in global state
#[expect(unused)] #[allow(unused)]
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy)]
pub enum AppError { pub enum AppError {
DockerCommand(DockerControls), DockerCommand(DockerControls),
+4 -4
View File
@@ -70,7 +70,7 @@ pub struct DockerData {
impl DockerData { impl DockerData {
/// Use docker stats to calculate current cpu usage /// Use docker stats to calculate current cpu usage
#[expect(clippy::cast_precision_loss)] #[allow(clippy::cast_precision_loss)]
// TODO FIX: this can overflow // TODO FIX: this can overflow
fn calculate_usage(stats: &Stats) -> f64 { fn calculate_usage(stats: &Stats) -> f64 {
let mut cpu_percentage = 0.0; let mut cpu_percentage = 0.0;
@@ -349,7 +349,7 @@ impl DockerData {
/// Handle incoming messages, container controls & all container information update /// Handle incoming messages, container controls & all container information update
/// Spawn Docker commands off into own thread /// Spawn Docker commands off into own thread
#[expect(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
async fn message_handler(&mut self) { async fn message_handler(&mut self) {
while let Some(message) = self.receiver.recv().await { while let Some(message) = self.receiver.recv().await {
let docker = Arc::clone(&self.docker); let docker = Arc::clone(&self.docker);
@@ -505,7 +505,7 @@ mod tests {
use super::*; use super::*;
#[expect(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
fn gen_stats(x: u64, y: u64) -> Stats { fn gen_stats(x: u64, y: u64) -> Stats {
Stats { Stats {
read: String::new(), read: String::new(),
@@ -623,7 +623,7 @@ mod tests {
} }
#[test] #[test]
#[expect(clippy::float_cmp)] #[allow(clippy::float_cmp)]
/// Test the stats calculator, had to cheat here to get round input/outputs /// Test the stats calculator, had to cheat here to get round input/outputs
fn test_calculate_usage_no_previous_cpu() { fn test_calculate_usage_no_previous_cpu() {
let stats = gen_stats(1_000_000_000, 900_000_000); let stats = gen_stats(1_000_000_000, 900_000_000);
+1 -1
View File
@@ -163,7 +163,7 @@ async fn main() {
} }
#[cfg(test)] #[cfg(test)]
#[expect(clippy::unwrap_used)] #[allow(clippy::unwrap_used)]
mod tests { mod tests {
use bollard::service::{ContainerSummary, Port}; use bollard::service::{ContainerSummary, Port};
+2 -2
View File
@@ -6,7 +6,7 @@ use tracing::error;
use crate::{ENV_KEY, ENV_VALUE}; use crate::{ENV_KEY, ENV_VALUE};
#[derive(Parser, Debug, Clone)] #[derive(Parser, Debug, Clone)]
#[expect(clippy::struct_excessive_bools)] #[allow(clippy::struct_excessive_bools)]
#[command(version, about)] #[command(version, about)]
pub struct Args { pub struct Args {
/// Docker update interval in ms, minimum effectively 1000 /// Docker update interval in ms, minimum effectively 1000
@@ -47,7 +47,7 @@ pub struct Args {
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
#[expect(clippy::struct_excessive_bools)] #[allow(clippy::struct_excessive_bools)]
pub struct CliArgs { pub struct CliArgs {
pub color: bool, pub color: bool,
pub docker_interval: u32, pub docker_interval: u32,
+5 -5
View File
@@ -364,7 +364,7 @@ pub fn chart(f: &mut Frame, area: Rect, app_data: &Arc<Mutex<AppData>>) {
.data(&mem.0)]; .data(&mem.0)];
let cpu_stats = CpuStats::new(cpu.0.last().map_or(0.00, |f| f.1)); let cpu_stats = CpuStats::new(cpu.0.last().map_or(0.00, |f| f.1));
#[expect(clippy::cast_possible_truncation, clippy::cast_sign_loss)] #[allow(clippy::cast_possible_truncation, clippy::cast_sign_loss)]
let mem_stats = ByteStats::new(mem.0.last().map_or(0, |f| f.1 as u64)); let mem_stats = ByteStats::new(mem.0.last().map_or(0, |f| f.1 as u64));
let cpu_chart = make_chart(cpu.2, "cpu", cpu_dataset, &cpu_stats, &cpu.1); let cpu_chart = make_chart(cpu.2, "cpu", cpu_dataset, &cpu_stats, &cpu.1);
let mem_chart = make_chart(mem.2, "memory", mem_dataset, &mem_stats, &mem.1); let mem_chart = make_chart(mem.2, "memory", mem_dataset, &mem_stats, &mem.1);
@@ -1065,7 +1065,7 @@ fn popup(text_lines: usize, text_width: usize, r: Rect, box_location: BoxLocatio
} }
#[cfg(test)] #[cfg(test)]
#[expect(clippy::unwrap_used)] #[allow(clippy::unwrap_used)]
mod tests { mod tests {
use std::{ops::RangeInclusive, sync::Arc}; use std::{ops::RangeInclusive, sync::Arc};
@@ -2110,7 +2110,7 @@ mod tests {
// Charts panel // // Charts panel //
// ************ // // ************ //
#[expect(clippy::cast_precision_loss)] #[allow(clippy::cast_precision_loss)]
// Add fixed data to the cpu & mem vecdeques // Add fixed data to the cpu & mem vecdeques
fn insert_chart_data(setup: &TuiTestSetup) { fn insert_chart_data(setup: &TuiTestSetup) {
for i in 1..=10 { for i in 1..=10 {
@@ -2834,7 +2834,7 @@ mod tests {
// ********** // // ********** //
#[test] #[test]
#[expect(clippy::cognitive_complexity, clippy::too_many_lines)] #[allow(clippy::cognitive_complexity, clippy::too_many_lines)]
/// Filter row is drawn correctly & colors are correct /// Filter row is drawn correctly & colors are correct
/// Colours change when filter_by option is changed /// Colours change when filter_by option is changed
fn test_draw_blocks_filter_row() { fn test_draw_blocks_filter_row() {
@@ -3372,7 +3372,7 @@ mod tests {
} }
#[test] #[test]
#[expect(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
/// Check that the whole layout is drawn correctly /// Check that the whole layout is drawn correctly
fn test_draw_blocks_whole_layout_with_filter() { fn test_draw_blocks_whole_layout_with_filter() {
let (w, h) = (160, 30); let (w, h) = (160, 30);
+1 -1
View File
@@ -58,7 +58,7 @@ pub enum DeleteButton {
No, No,
} }
#[expect(unused)] #[allow(unused)]
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy)]
pub enum BoxLocation { pub enum BoxLocation {
TopLeft, TopLeft,