* [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes
@ 2024-05-13 9:49 Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 1/4] tree-wide: run rustfmt, fix clippy warnings Christoph Heiss
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Christoph Heiss @ 2024-05-13 9:49 UTC (permalink / raw)
To: pve-devel
The proxmox-auto-install-assistant uses
- glob patterns for disk matching, which can be pre-compiled for
efficiency
- regexes for udev property matching, which can be simplified by some
simple prefix matching & splitting on =
The latter also significantly reduces binary size due to the removing
the regex dependency, for details see patch #4.
Overall no functional changes in this series.
v1: https://lists.proxmox.com/pipermail/pve-devel/2024-May/063802.html
Changes v1 -> v2:
* rebased on latest master
Christoph Heiss (4):
tree-wide: run rustfmt, fix clippy warnings
assistant: drop unused `log` dependency
assistant: pre-compile ignored block device patterns
assistant: avoid regex for simple prefix matching
proxmox-auto-install-assistant/Cargo.toml | 2 -
proxmox-auto-install-assistant/src/main.rs | 75 ++++++++-----------
proxmox-auto-installer/tests/parse-answer.rs | 14 ++--
.../src/fetch_plugins/partition.rs | 10 +--
4 files changed, 45 insertions(+), 56 deletions(-)
--
2.44.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH installer v2 1/4] tree-wide: run rustfmt, fix clippy warnings
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
@ 2024-05-13 9:49 ` Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 2/4] assistant: drop unused `log` dependency Christoph Heiss
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Christoph Heiss @ 2024-05-13 9:49 UTC (permalink / raw)
To: pve-devel
No functional changes.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
Changes v1 -> v2:
* no changes
proxmox-auto-installer/tests/parse-answer.rs | 14 +++++++-------
.../src/fetch_plugins/partition.rs | 10 +++++-----
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/proxmox-auto-installer/tests/parse-answer.rs b/proxmox-auto-installer/tests/parse-answer.rs
index 4014b6d..e77a769 100644
--- a/proxmox-auto-installer/tests/parse-answer.rs
+++ b/proxmox-auto-installer/tests/parse-answer.rs
@@ -1,4 +1,4 @@
-use std::path::PathBuf;
+use std::path::{Path, PathBuf};
use serde_json::Value;
use std::fs;
@@ -24,9 +24,9 @@ fn get_answer(path: PathBuf) -> Result<Answer, String> {
Ok(answer)
}
-fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo, UdevInfo) {
+fn setup_test_basic(path: &Path) -> (SetupInfo, LocaleInfo, RuntimeInfo, UdevInfo) {
let installer_info: SetupInfo = {
- let mut path = path.clone();
+ let mut path = path.to_path_buf();
path.push("iso-info.json");
read_json(&path)
@@ -35,7 +35,7 @@ fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo, Udev
};
let locale_info = {
- let mut path = path.clone();
+ let mut path = path.to_path_buf();
path.push("locales.json");
read_json(&path)
@@ -44,7 +44,7 @@ fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo, Udev
};
let mut runtime_info: RuntimeInfo = {
- let mut path = path.clone();
+ let mut path = path.to_path_buf();
path.push("run-env-info.json");
read_json(&path)
@@ -53,7 +53,7 @@ fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo, Udev
};
let udev_info: UdevInfo = {
- let mut path = path.clone();
+ let mut path = path.to_path_buf();
path.push("run-env-udev.json");
read_json(&path)
@@ -71,7 +71,7 @@ fn setup_test_basic(path: &PathBuf) -> (SetupInfo, LocaleInfo, RuntimeInfo, Udev
fn test_parse_answers() {
let path = get_test_resource_path().unwrap();
let (setup_info, locales, runtime_info, udev_info) = setup_test_basic(&path);
- let mut tests_path = path.clone();
+ let mut tests_path = path;
tests_path.push("parse_answer");
let test_dir = fs::read_dir(tests_path.clone()).unwrap();
diff --git a/proxmox-fetch-answer/src/fetch_plugins/partition.rs b/proxmox-fetch-answer/src/fetch_plugins/partition.rs
index 0479c8f..7213493 100644
--- a/proxmox-fetch-answer/src/fetch_plugins/partition.rs
+++ b/proxmox-fetch-answer/src/fetch_plugins/partition.rs
@@ -31,7 +31,7 @@ impl FetchFromPartition {
}
fn path_exists_logged(file_name: &str, search_path: &str) -> Option<PathBuf> {
- let path = Path::new(search_path).join(&file_name);
+ let path = Path::new(search_path).join(file_name);
info!("Testing partition search path {path:?}");
match path.try_exists() {
Ok(true) => Some(path),
@@ -51,14 +51,14 @@ fn path_exists_logged(file_name: &str, search_path: &str) -> Option<PathBuf> {
fn scan_partlabels(partlabel: &str, search_path: &str) -> Result<PathBuf> {
let partlabel_upper_case = partlabel.to_uppercase();
if let Some(path) = path_exists_logged(&partlabel_upper_case, search_path) {
- info!("Found partition with label '{partlabel_upper_case}'");
- return Ok(path);
+ info!("Found partition with label '{partlabel_upper_case}'");
+ return Ok(path);
}
let partlabel_lower_case = partlabel.to_lowercase();
if let Some(path) = path_exists_logged(&partlabel_lower_case, search_path) {
- info!("Found partition with label '{partlabel_lower_case}'");
- return Ok(path);
+ info!("Found partition with label '{partlabel_lower_case}'");
+ return Ok(path);
}
bail!("Could not detect upper or lower case labels for '{partlabel}'");
--
2.44.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH installer v2 2/4] assistant: drop unused `log` dependency
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 1/4] tree-wide: run rustfmt, fix clippy warnings Christoph Heiss
@ 2024-05-13 9:49 ` Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns Christoph Heiss
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Christoph Heiss @ 2024-05-13 9:49 UTC (permalink / raw)
To: pve-devel
No functional changes.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
Changes v1 -> v2:
* no changes
proxmox-auto-install-assistant/Cargo.toml | 1 -
1 file changed, 1 deletion(-)
diff --git a/proxmox-auto-install-assistant/Cargo.toml b/proxmox-auto-install-assistant/Cargo.toml
index eaca7f8..0286c80 100644
--- a/proxmox-auto-install-assistant/Cargo.toml
+++ b/proxmox-auto-install-assistant/Cargo.toml
@@ -14,7 +14,6 @@ homepage = "https://www.proxmox.com"
anyhow = "1.0"
clap = { version = "4.0", features = ["derive"] }
glob = "0.3"
-log = "0.4.20"
proxmox-auto-installer = { path = "../proxmox-auto-installer" }
regex = "1.7"
serde = { version = "1.0", features = ["derive"] }
--
2.44.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 1/4] tree-wide: run rustfmt, fix clippy warnings Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 2/4] assistant: drop unused `log` dependency Christoph Heiss
@ 2024-05-13 9:49 ` Christoph Heiss
2024-11-12 19:55 ` [pve-devel] applied: " Thomas Lamprecht
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 4/4] assistant: avoid regex for simple prefix matching Christoph Heiss
` (2 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Christoph Heiss @ 2024-05-13 9:49 UTC (permalink / raw)
To: pve-devel
No functional changes.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
Changes v1 -> v2:
* no changes
proxmox-auto-install-assistant/src/main.rs | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/proxmox-auto-install-assistant/src/main.rs b/proxmox-auto-install-assistant/src/main.rs
index 1447175..790dbc7 100644
--- a/proxmox-auto-install-assistant/src/main.rs
+++ b/proxmox-auto-install-assistant/src/main.rs
@@ -430,13 +430,13 @@ fn get_iso_uuid(iso: &PathBuf) -> Result<String> {
}
fn get_disks() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
- let unwantend_block_devs = vec![
- "ram[0-9]*",
- "loop[0-9]*",
- "md[0-9]*",
- "dm-*",
- "fd[0-9]*",
- "sr[0-9]*",
+ let unwanted_block_devs = [
+ Pattern::new("ram[0-9]*")?,
+ Pattern::new("loop[0-9]*")?,
+ Pattern::new("md[0-9]*")?,
+ Pattern::new("dm-*")?,
+ Pattern::new("fd[0-9]*")?,
+ Pattern::new("sr[0-9]*")?,
];
// compile Regex here once and not inside the loop
@@ -453,8 +453,8 @@ fn get_disks() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
let entry = entry.unwrap();
let filename = entry.file_name().into_string().unwrap();
- for p in &unwantend_block_devs {
- if Pattern::new(p)?.matches(&filename) {
+ for p in &unwanted_block_devs {
+ if p.matches(&filename) {
continue 'outer;
}
}
--
2.44.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH installer v2 4/4] assistant: avoid regex for simple prefix matching
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
` (2 preceding siblings ...)
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns Christoph Heiss
@ 2024-05-13 9:49 ` Christoph Heiss
2024-05-13 11:15 ` [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Aaron Lauterer
2024-06-17 7:11 ` Christoph Heiss
5 siblings, 0 replies; 8+ messages in thread
From: Christoph Heiss @ 2024-05-13 9:49 UTC (permalink / raw)
To: pve-devel
udev properties are very easy to parse and can be done by doing a
line-based scan and matching the prefix, splitting once for properties.
Avoids the use of regexes and signicantly reduces binary size by about
-38%(!).
Tested by comparing the output of `proxmox-auto-install-assistant
device-info`, running it before and after the changes.
Stripped binary size for release builds:
before: 3103104 bytes ~ 2.96MiB
after: 1935744 bytes ~ 1.85MiB
text data bss dec hex filename
2906765 187144 537 3094446 2f37ae proxmox-auto-install-assistant-before
1871090 55736 497 1927323 1d689b proxmox-auto-install-assistant-after
No functional changes.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
Changes v1 -> v2:
* rebased on latest master
proxmox-auto-install-assistant/Cargo.toml | 1 -
proxmox-auto-install-assistant/src/main.rs | 57 +++++++++-------------
2 files changed, 24 insertions(+), 34 deletions(-)
diff --git a/proxmox-auto-install-assistant/Cargo.toml b/proxmox-auto-install-assistant/Cargo.toml
index 0286c80..766b445 100644
--- a/proxmox-auto-install-assistant/Cargo.toml
+++ b/proxmox-auto-install-assistant/Cargo.toml
@@ -15,7 +15,6 @@ anyhow = "1.0"
clap = { version = "4.0", features = ["derive"] }
glob = "0.3"
proxmox-auto-installer = { path = "../proxmox-auto-installer" }
-regex = "1.7"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.7"
diff --git a/proxmox-auto-install-assistant/src/main.rs b/proxmox-auto-install-assistant/src/main.rs
index 790dbc7..7c0b0c6 100644
--- a/proxmox-auto-install-assistant/src/main.rs
+++ b/proxmox-auto-install-assistant/src/main.rs
@@ -1,7 +1,6 @@
use anyhow::{bail, format_err, Result};
use clap::{Args, Parser, Subcommand, ValueEnum};
use glob::Pattern;
-use regex::Regex;
use serde::Serialize;
use std::{
collections::BTreeMap,
@@ -439,13 +438,9 @@ fn get_disks() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
Pattern::new("sr[0-9]*")?,
];
- // compile Regex here once and not inside the loop
- let re_disk = Regex::new(r"(?m)^E: DEVTYPE=disk")?;
- let re_cdrom = Regex::new(r"(?m)^E: ID_CDROM")?;
- let re_iso9660 = Regex::new(r"(?m)^E: ID_FS_TYPE=iso9660")?;
-
- let re_name = Regex::new(r"(?m)^N: (.*)$")?;
- let re_props = Regex::new(r"(?m)^E: ([^=]+)=(.*)$")?;
+ const PROP_DEVTYP_PREFIX: &str = "E: DEVTYPE=";
+ const PROP_CDROM: &str = "E: ID_CDROM";
+ const PROP_ISO9660_FS: &str = "E: ID_FS_TYPE=iso9660";
let mut disks: BTreeMap<String, BTreeMap<String, String>> = BTreeMap::new();
@@ -467,30 +462,27 @@ fn get_disks() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
}
};
- if !re_disk.is_match(&output) {
- continue 'outer;
- };
- if re_cdrom.is_match(&output) {
- continue 'outer;
- };
- if re_iso9660.is_match(&output) {
- continue 'outer;
- };
-
let mut name = filename;
- if let Some(cap) = re_name.captures(&output) {
- if let Some(res) = cap.get(1) {
- name = String::from(res.as_str());
+ let mut udev_props: BTreeMap<String, String> = BTreeMap::new();
+ for line in output.lines() {
+ if let Some(prop) = line.strip_prefix(PROP_DEVTYP_PREFIX) {
+ if prop != "disk" {
+ continue 'outer;
+ }
}
- }
- let mut udev_props: BTreeMap<String, String> = BTreeMap::new();
+ if line.starts_with(PROP_CDROM) || line.starts_with(PROP_ISO9660_FS) {
+ continue 'outer;
+ }
- for line in output.lines() {
- if let Some(caps) = re_props.captures(line) {
- let key = String::from(caps.get(1).unwrap().as_str());
- let value = String::from(caps.get(2).unwrap().as_str());
- udev_props.insert(key, value);
+ if let Some(prop) = line.strip_prefix("N: ") {
+ name = prop.to_owned();
+ };
+
+ if let Some(prop) = line.strip_prefix("E: ") {
+ if let Some((key, val)) = prop.split_once('=') {
+ udev_props.insert(key.to_owned(), val.to_owned());
+ }
}
}
@@ -500,7 +492,6 @@ fn get_disks() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
}
fn get_nics() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
- let re_props = Regex::new(r"(?m)^E: (.*)=(.*)$")?;
let mut nics: BTreeMap<String, BTreeMap<String, String>> = BTreeMap::new();
let links = get_nic_list()?;
@@ -518,10 +509,10 @@ fn get_nics() -> Result<BTreeMap<String, BTreeMap<String, String>>> {
let mut udev_props: BTreeMap<String, String> = BTreeMap::new();
for line in output.lines() {
- if let Some(caps) = re_props.captures(line) {
- let key = String::from(caps.get(1).unwrap().as_str());
- let value = String::from(caps.get(2).unwrap().as_str());
- udev_props.insert(key, value);
+ if let Some(prop) = line.strip_prefix("E: ") {
+ if let Some((key, val)) = prop.split_once('=') {
+ udev_props.insert(key.to_owned(), val.to_owned());
+ }
}
}
--
2.44.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
` (3 preceding siblings ...)
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 4/4] assistant: avoid regex for simple prefix matching Christoph Heiss
@ 2024-05-13 11:15 ` Aaron Lauterer
2024-06-17 7:11 ` Christoph Heiss
5 siblings, 0 replies; 8+ messages in thread
From: Aaron Lauterer @ 2024-05-13 11:15 UTC (permalink / raw)
To: Proxmox VE development discussion, Christoph Heiss
did some tests on my local machine with the `device-info` and
`device-match` subcommands to list and match against identifiers of
disks and my NIC.
Thanks for taking the time to improve this code.
consider this series:
Reviewed-By: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-By: Aaron Lauterer <a.lauterer@proxmox.com>
On 2024-05-13 11:49, Christoph Heiss wrote:
> The proxmox-auto-install-assistant uses
> - glob patterns for disk matching, which can be pre-compiled for
> efficiency
> - regexes for udev property matching, which can be simplified by some
> simple prefix matching & splitting on =
>
> The latter also significantly reduces binary size due to the removing
> the regex dependency, for details see patch #4.
>
> Overall no functional changes in this series.
>
> v1: https://lists.proxmox.com/pipermail/pve-devel/2024-May/063802.html
>
> Changes v1 -> v2:
> * rebased on latest master
>
> Christoph Heiss (4):
> tree-wide: run rustfmt, fix clippy warnings
> assistant: drop unused `log` dependency
> assistant: pre-compile ignored block device patterns
> assistant: avoid regex for simple prefix matching
>
> proxmox-auto-install-assistant/Cargo.toml | 2 -
> proxmox-auto-install-assistant/src/main.rs | 75 ++++++++-----------
> proxmox-auto-installer/tests/parse-answer.rs | 14 ++--
> .../src/fetch_plugins/partition.rs | 10 +--
> 4 files changed, 45 insertions(+), 56 deletions(-)
>
> --
> 2.44.0
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
` (4 preceding siblings ...)
2024-05-13 11:15 ` [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Aaron Lauterer
@ 2024-06-17 7:11 ` Christoph Heiss
5 siblings, 0 replies; 8+ messages in thread
From: Christoph Heiss @ 2024-06-17 7:11 UTC (permalink / raw)
To: Proxmox VE development discussion
Ping. Still applies cleanly.
On Mon, May 13, 2024 at 11:49:08AM +0200, Christoph Heiss wrote:
> The proxmox-auto-install-assistant uses
> - glob patterns for disk matching, which can be pre-compiled for
> efficiency
> - regexes for udev property matching, which can be simplified by some
> simple prefix matching & splitting on =
>
> The latter also significantly reduces binary size due to the removing
> the regex dependency, for details see patch #4.
>
> Overall no functional changes in this series.
>
> v1: https://lists.proxmox.com/pipermail/pve-devel/2024-May/063802.html
>
> Changes v1 -> v2:
> * rebased on latest master
>
> Christoph Heiss (4):
> tree-wide: run rustfmt, fix clippy warnings
> assistant: drop unused `log` dependency
> assistant: pre-compile ignored block device patterns
> assistant: avoid regex for simple prefix matching
>
> proxmox-auto-install-assistant/Cargo.toml | 2 -
> proxmox-auto-install-assistant/src/main.rs | 75 ++++++++-----------
> proxmox-auto-installer/tests/parse-answer.rs | 14 ++--
> .../src/fetch_plugins/partition.rs | 10 +--
> 4 files changed, 45 insertions(+), 56 deletions(-)
>
> --
> 2.44.0
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] applied: [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns Christoph Heiss
@ 2024-11-12 19:55 ` Thomas Lamprecht
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2024-11-12 19:55 UTC (permalink / raw)
To: Proxmox VE development discussion, Christoph Heiss
Am 13.05.24 um 11:49 schrieb Christoph Heiss:
> No functional changes.
>
> Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
> ---
> Changes v1 -> v2:
> * no changes
>
> proxmox-auto-install-assistant/src/main.rs | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
>
applied this one with Aarons review tags, thanks!
The rest would need to be rebased, sorry for the wait here.
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-11-12 19:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-13 9:49 [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 1/4] tree-wide: run rustfmt, fix clippy warnings Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 2/4] assistant: drop unused `log` dependency Christoph Heiss
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 3/4] assistant: pre-compile ignored block device patterns Christoph Heiss
2024-11-12 19:55 ` [pve-devel] applied: " Thomas Lamprecht
2024-05-13 9:49 ` [pve-devel] [PATCH installer v2 4/4] assistant: avoid regex for simple prefix matching Christoph Heiss
2024-05-13 11:15 ` [pve-devel] [PATCH installer v2 0/4] assistant: clean up glob patterns & regexes Aaron Lauterer
2024-06-17 7:11 ` Christoph Heiss
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal