feat: Release 1.1.0

This commit is contained in:
Cyrix126 2024-04-21 16:59:13 +02:00
parent 228d1e8f8e
commit 9434cce1fe
13 changed files with 52 additions and 14 deletions

View file

@ -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 # v1.0.0
Stable release Stable release

2
Cargo.lock generated
View file

@ -2125,7 +2125,7 @@ dependencies = [
[[package]] [[package]]
name = "gupaxx" name = "gupaxx"
version = "1.0.0" version = "1.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"benri", "benri",

View file

@ -1,7 +1,7 @@
cargo-features = ["profile-rustflags"] cargo-features = ["profile-rustflags"]
[package] [package]
name = "gupaxx" name = "gupaxx"
version = "1.0.0" version = "1.1.0"
authors = ["cyrix126 <gupaxx@baermail.fr>"] authors = ["cyrix126 <gupaxx@baermail.fr>"]
description = "Fork of Gupax integrating the XMRvsBeast Raffle " description = "Fork of Gupax integrating the XMRvsBeast Raffle "
documentation = "https://github.com/cyrix126/gupaxx" documentation = "https://github.com/cyrix126/gupaxx"

View file

@ -54,7 +54,7 @@
- [x] adapt README for XvB - [x] adapt README for XvB
- [x] beta release - [x] beta release
- [x] stable 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] adapt doc for new code
- [x] cargo package metadata - [x] cargo package metadata
- [x] pgp signatures - [x] pgp signatures

View file

@ -60,6 +60,7 @@ pub mod resize;
// The state of the outer main [App]. // The state of the outer main [App].
// See the [State] struct in [state.rs] for the // See the [State] struct in [state.rs] for the
// actual inner state of the tab settings. // actual inner state of the tab settings.
#[allow(dead_code)]
pub struct App { pub struct App {
// Misc state // Misc state
pub tab: Tab, // What tab are we on? pub tab: Tab, // What tab are we on?

View file

@ -67,7 +67,7 @@ const REMOTE_NODE_MAX_CHARS: usize = {
assert!(len != 0); assert!(len != 0);
len len
}; };
#[allow(dead_code)]
pub struct RemoteNode { pub struct RemoteNode {
pub ip: &'static str, pub ip: &'static str,
pub location: &'static str, pub location: &'static str,
@ -278,6 +278,7 @@ impl NodeData {
// //
// This struct leaves out most fields on purpose, // This struct leaves out most fields on purpose,
// we only need a few to verify the node is ok. // 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)] #[derive(Debug, serde::Deserialize)]
pub struct GetInfo<'a> { pub struct GetInfo<'a> {
pub id: &'a str, pub id: &'a str,

View file

@ -530,13 +530,11 @@ impl Update {
path.display() path.display()
); );
// if bundled, create directory for p2pool and xmrig if not present // if bundled, create directory for p2pool and xmrig if not present
if lock!(og).gupax.bundled { if lock!(og).gupax.bundled && (name == P2POOL_BINARY || name == XMRIG_BINARY) {
if name == P2POOL_BINARY || name == XMRIG_BINARY { std::fs::create_dir_all(
std::fs::create_dir_all( path.parent()
path.parent() .ok_or_else(|| anyhow!(format!("{} path failed", name)))?,
.ok_or_else(|| anyhow!(format!("{} path failed", name)))?, )?;
)?;
}
} }
// Move downloaded path into old path // Move downloaded path into old path
std::fs::rename(entry.path(), path)?; std::fs::rename(entry.path(), path)?;

View file

@ -125,6 +125,7 @@ impl Default for Sys {
//---------------------------------------------------------------------------------------------------- [Process] Struct //---------------------------------------------------------------------------------------------------- [Process] Struct
// This holds all the state of a (child) process. // This holds all the state of a (child) process.
// The main GUI thread will use this to display console text, online state, etc. // The main GUI thread will use this to display console text, online state, etc.
#[allow(dead_code)]
#[derive(Debug)] #[derive(Debug)]
pub struct Process { pub struct Process {
pub name: ProcessName, // P2Pool or XMRig? pub name: ProcessName, // P2Pool or XMRig?

View file

@ -666,6 +666,7 @@ impl ImgXmrig {
} }
//---------------------------------------------------------------------------------------------------- Public XMRig API //---------------------------------------------------------------------------------------------------- Public XMRig API
#[allow(dead_code)]
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct PubXmrigApi { pub struct PubXmrigApi {
pub output: String, pub output: String,

View file

@ -361,10 +361,11 @@ impl Helper {
} }
} }
//---------------------------------------------------------------------------------------------------- Public XvB API //---------------------------------------------------------------------------------------------------- Public XvB API
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct PubXvbApi { pub struct PubXvbApi {
pub output: String, pub output: String,
pub uptime: u64, pub _uptime: u64,
pub xvb_sent_last_hour_samples: SamplesAverageHour, pub xvb_sent_last_hour_samples: SamplesAverageHour,
pub p2pool_sent_last_hour_samples: SamplesAverageHour, pub p2pool_sent_last_hour_samples: SamplesAverageHour,
pub stats_pub: XvbPubStats, pub stats_pub: XvbPubStats,

View file

@ -17,6 +17,7 @@ use crate::{
use super::{rounds::XvbRound, PubXvbApi}; use super::{rounds::XvbRound, PubXvbApi};
#[allow(dead_code)] // because deserialize doesn't use all the fields
#[derive(Debug, Clone, Default, Deserialize)] #[derive(Debug, Clone, Default, Deserialize)]
pub struct XvbPubStats { pub struct XvbPubStats {
pub time_remain: u32, // remaining time of round in minutes pub time_remain: u32, // remaining time of round in minutes

View file

@ -87,12 +87,13 @@ fn main() {
// Run Gupax. // Run Gupax.
info!("/*************************************/ Init ... OK /*************************************/"); info!("/*************************************/ Init ... OK /*************************************/");
let _ = eframe::run_native( eframe::run_native(
&app.name_version.clone(), &app.name_version.clone(),
options, options,
Box::new(move |cc| { Box::new(move |cc| {
egui_extras::install_image_loaders(&cc.egui_ctx); egui_extras::install_image_loaders(&cc.egui_ctx);
Box::new(App::cc(cc, resolution, app)) Box::new(App::cc(cc, resolution, app))
}), }),
); )
.unwrap();
} }

View file

@ -35,6 +35,7 @@ use std::{
}; };
use zeroize::Zeroize; use zeroize::Zeroize;
#[allow(dead_code)] // for dummy value windows
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct SudoState { 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 :) pub windows: bool, // If this bool is set, this struct is just a dummy so I don't have to change my type signatures :)