diff --git a/CHANGELOG.md b/CHANGELOG.md index a323968..7d88f66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +# v1.1.0 +Stable release, bugfixes and new features. + +## Changes +### UI +- Update xmrig and p2pool only if bundle button is checked. +- Default value for bundle button depends of bundle or standalone version. +- Ask user to restart Gupaxx after updating. +- Prevent user to update twice without restart. +### Internal +- Bump deps +- Update CI to produce different Gupaxx binary for standalone and bundle version. +- Update tools release to include different default value depending of standalone and bundle version. +- Use bundled XMRig and P2Pool of Gupaxx instead of upstream version. +- Update test +### Doc +- Update DIFFERENCES and ARCHITECTURE to reflect updates differences. +## Fixes +- fix temporary directories of updates not deleted introduced in fork +- fix https://github.com/Cyrix126/gupaxx/issues/3 +- fix https://github.com/Cyrix126/gupaxx/issues/4 +- fix https://github.com/Cyrix126/gupaxx/issues/5 + +## Notes +### Do not use built in updates to upgrade to this version +This update bump the 1.x.0 number, which would mean breaking changes. However, it is only because updating previously from Gupaxx (in =<1.0.0) without manually downloading from github release would upgrade P2Pool and XMRig from upstream, which is a behaviour that has been modified in this release. +No configuration file change is needed, just update from github for this release. + +## Bundled Versions +* [`P2Pool v3.10`](https://github.com/SChernykh/p2pool/releases/tag/v3.10) +* [`XMRig v6.21.1`](https://github.com/xmrig/xmrig/releases/tag/v6.21.1) + # v1.0.0 Stable release diff --git a/Cargo.lock b/Cargo.lock index d1054af..93ba58e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2125,7 +2125,7 @@ dependencies = [ [[package]] name = "gupaxx" -version = "1.0.0" +version = "1.1.0" dependencies = [ "anyhow", "benri", diff --git a/Cargo.toml b/Cargo.toml index 60dd83f..66f83f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ cargo-features = ["profile-rustflags"] [package] name = "gupaxx" -version = "1.0.0" +version = "1.1.0" authors = ["cyrix126 "] description = "Fork of Gupax integrating the XMRvsBeast Raffle " documentation = "https://github.com/cyrix126/gupaxx" diff --git a/TODO_XMRvsBeast.md b/TODO_XMRvsBeast.md index e60cde7..dfa3841 100644 --- a/TODO_XMRvsBeast.md +++ b/TODO_XMRvsBeast.md @@ -54,7 +54,7 @@ - [x] adapt README for XvB - [x] beta release - [x] stable release - - [ ] video tutorial to set up XvB Tab + - [x] video tutorial to set up XvB Tab - [x] adapt doc for new code - [x] cargo package metadata - [x] pgp signatures diff --git a/src/app/mod.rs b/src/app/mod.rs index 1d23c09..68d1d13 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -60,6 +60,7 @@ pub mod resize; // The state of the outer main [App]. // See the [State] struct in [state.rs] for the // actual inner state of the tab settings. +#[allow(dead_code)] pub struct App { // Misc state pub tab: Tab, // What tab are we on? diff --git a/src/components/node.rs b/src/components/node.rs index 636c082..20a458e 100644 --- a/src/components/node.rs +++ b/src/components/node.rs @@ -67,7 +67,7 @@ const REMOTE_NODE_MAX_CHARS: usize = { assert!(len != 0); len }; - +#[allow(dead_code)] pub struct RemoteNode { pub ip: &'static str, pub location: &'static str, @@ -278,6 +278,7 @@ impl NodeData { // // This struct leaves out most fields on purpose, // we only need a few to verify the node is ok. +#[allow(dead_code)] // allow dead code because Deserialize doesn't use all the fields in this program #[derive(Debug, serde::Deserialize)] pub struct GetInfo<'a> { pub id: &'a str, diff --git a/src/components/update.rs b/src/components/update.rs index 0f6891d..d86623a 100644 --- a/src/components/update.rs +++ b/src/components/update.rs @@ -530,13 +530,11 @@ impl Update { path.display() ); // if bundled, create directory for p2pool and xmrig if not present - if lock!(og).gupax.bundled { - if name == P2POOL_BINARY || name == XMRIG_BINARY { - std::fs::create_dir_all( - path.parent() - .ok_or_else(|| anyhow!(format!("{} path failed", name)))?, - )?; - } + if lock!(og).gupax.bundled && (name == P2POOL_BINARY || name == XMRIG_BINARY) { + std::fs::create_dir_all( + path.parent() + .ok_or_else(|| anyhow!(format!("{} path failed", name)))?, + )?; } // Move downloaded path into old path std::fs::rename(entry.path(), path)?; diff --git a/src/helper/mod.rs b/src/helper/mod.rs index 64f36d3..746d72b 100644 --- a/src/helper/mod.rs +++ b/src/helper/mod.rs @@ -125,6 +125,7 @@ impl Default for Sys { //---------------------------------------------------------------------------------------------------- [Process] Struct // This holds all the state of a (child) process. // The main GUI thread will use this to display console text, online state, etc. +#[allow(dead_code)] #[derive(Debug)] pub struct Process { pub name: ProcessName, // P2Pool or XMRig? diff --git a/src/helper/xmrig.rs b/src/helper/xmrig.rs index 0aeb697..f932b4b 100644 --- a/src/helper/xmrig.rs +++ b/src/helper/xmrig.rs @@ -666,6 +666,7 @@ impl ImgXmrig { } //---------------------------------------------------------------------------------------------------- Public XMRig API +#[allow(dead_code)] #[derive(Debug, Clone)] pub struct PubXmrigApi { pub output: String, diff --git a/src/helper/xvb/mod.rs b/src/helper/xvb/mod.rs index 8632d2c..f41877d 100644 --- a/src/helper/xvb/mod.rs +++ b/src/helper/xvb/mod.rs @@ -361,10 +361,11 @@ impl Helper { } } //---------------------------------------------------------------------------------------------------- Public XvB API + #[derive(Debug, Clone, Default)] pub struct PubXvbApi { pub output: String, - pub uptime: u64, + pub _uptime: u64, pub xvb_sent_last_hour_samples: SamplesAverageHour, pub p2pool_sent_last_hour_samples: SamplesAverageHour, pub stats_pub: XvbPubStats, diff --git a/src/helper/xvb/public_stats.rs b/src/helper/xvb/public_stats.rs index c53fa0b..b821cb2 100644 --- a/src/helper/xvb/public_stats.rs +++ b/src/helper/xvb/public_stats.rs @@ -17,6 +17,7 @@ use crate::{ use super::{rounds::XvbRound, PubXvbApi}; +#[allow(dead_code)] // because deserialize doesn't use all the fields #[derive(Debug, Clone, Default, Deserialize)] pub struct XvbPubStats { pub time_remain: u32, // remaining time of round in minutes diff --git a/src/main.rs b/src/main.rs index 768a77f..0c772c0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -87,12 +87,13 @@ fn main() { // Run Gupax. info!("/*************************************/ Init ... OK /*************************************/"); - let _ = eframe::run_native( + eframe::run_native( &app.name_version.clone(), options, Box::new(move |cc| { egui_extras::install_image_loaders(&cc.egui_ctx); Box::new(App::cc(cc, resolution, app)) }), - ); + ) + .unwrap(); } diff --git a/src/utils/sudo.rs b/src/utils/sudo.rs index e9bbebe..d56938a 100644 --- a/src/utils/sudo.rs +++ b/src/utils/sudo.rs @@ -35,6 +35,7 @@ use std::{ }; use zeroize::Zeroize; +#[allow(dead_code)] // for dummy value windows #[derive(Debug, Clone)] pub struct SudoState { pub windows: bool, // If this bool is set, this struct is just a dummy so I don't have to change my type signatures :)