Remove `lazy_static` dependency
Dependencies
- [2]
4RQHY7LHSupport parsing lowercase base32 - [3]
DGHQ46S3Refactor `pijul_interaction::progress` to use `InteractionContext` - [4]
OGJFEWHUFixing missing dependencies on partial clones - [5]
N26HD5PFReplace `chrono` with `jiff` - [6]
4RV7T4SRMigrate from `pijul::config` to `pijul-config` - [7]
OYN2YVPACreate `pijul_remote` crate - [8]
SLJ3OHD4unrecord: show list of changes if none were given as arguments - [9]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [10]
SZWBLWZ4Reading ~/.ssh/config - [11]
L5IUD2DSFixing the regular expression parsing the protocol lines - [12]
FXEDPLRIResurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore) - [13]
X6YFD4WVDo not download changes if we already have them - [14]
5FI6SBEZRe-implement change printing and parsing - [15]
EJ7TFFOWRe-adding Cargo.lock - [16]
RVAH6PXAGetting libpijul to compile to WASM32 - [17]
JTELS6L3Implement user input for `pijul-interaction` - [18]
HJVWPKWVMigrate crates to edition 2024 - [19]
PIQCNEEBUpgrading to Clap 3.0.0-alpha.5 - [20]
MU5GSJAWPartial push and pull (WARNING: breaks the existing protocol) - [21]
IVLLXQ5ZImproved push/pull reporting - [22]
EUZFFJSOUpdating Pijul with the latest changes in Libpijul - [23]
FE5ES6Q4Stop pushing/pulling if the remote returns an error - [24]
UDHP4ZVBFixing SSH asynchronicity issues - [25]
TKEVOH7HFixing a bug when downloading changes, and making change download more efficient (more async) - [26]
BNPSVXICFriendlier progress bars - [27]
5QTMRUXNFixing a race condition between progress bars - [28]
TCXM4WIJRemove unused dependencies - [29]
KVCXCDRMFixing warnings with Rust 1.57 + cleanup - [30]
RM225IDQExchanging tagged states over SSH - [31]
KTTKF3RWLocking stderr and the progress bar in SSH - [32]
AEPEFS7OWrite help for each argument - [33]
DWSAYGVEUpdate codebase to use new identity management - [34]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [35]
HWYGVLP5Replacing the temporary copy of chardetng with the published version - [36]
L4JXJHWXpijul/*: reorganize imports and remove extern crate - [37]
KLBWKCUZuse ssh url syntax like git - [38]
5Z2Y7VGVMigrate `pijul::identity::Complete::prove` to `pijul::remote::prove` - [39]
QQS7LII4Add value hints to arguments - [40]
DDJO7X2PRemove dependency on `num_cpus` - [41]
A3RM526YIntegrating identity malleability - [42]
YN63NUZOSanakirja 1.0 - [43]
2VXTRPO4Custom diff separators - [44]
XX6GKS5DAdd missing features for migration to `pijul_interaction` - [45]
SYZ44SKFRemove `async_trait` crate - [46]
I52XSRUHMassive cleanup, and simplification - [47]
Q45QHPO4Feedback on network stuff - [48]
TA5VXGFGFixing compilation errors - [49]
ABPFWGKHCreate `pijul-interaction` crate - [50]
2MKP7CB7Move dependencies into workspace `Cargo.toml` - [51]
5XMUEZMZpijul-clone: avoid panics on parsing remote URLs - [52]
I24UEJQLVarious post-fire fixes - [53]
DO2Y5TY5Tag synchronisation - [*]
XR7MNOMUfile encoding in updates
Change contents
- replacement in pijul-remote/src/ssh.rs at line 6
use std::sync::Arc;use std::sync::{Arc, LazyLock}; - edit in pijul-remote/src/ssh.rs at line 11
use lazy_static::lazy_static; - replacement in pijul-remote/src/ssh.rs at line 34
lazy_static! {static ref ADDRESS: Regex = Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))((:(?P<port>\d+)(?P<path0>(/.+)))|(:(?P<path1>.+))|(?P<path2>(/.+)))"#).unwrap();static ADDRESS: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))((:(?P<port>\d+)(?P<path0>(/.+)))|(:(?P<path1>.+))|(?P<path2>(/.+)))"#).unwrap()}); - replacement in pijul-remote/src/ssh.rs at line 41
static ref ADDRESS_NOPATH: Regex = Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))(:(?P<port>\d+))?"#static ADDRESS_NOPATH: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(ssh://)?((?P<user>[^@]+)@)?((?P<host>(\[([^\]]+)\])|([^:/]+)))(:(?P<port>\d+))?"#, - replacement in pijul-remote/src/ssh.rs at line 45
.unwrap();}.unwrap()}); - replacement in pijul-remote/src/lib.rs at line 4
use std::sync::Arc;use std::sync::{Arc, LazyLock}; - edit in pijul-remote/src/lib.rs at line 7
use lazy_static::lazy_static; - replacement in pijul-remote/src/lib.rs at line 9
Base32, ChangeId, ChannelRef, GraphIter, Hash, Merkle, MutTxnT, RemoteRef, TxnT,sanakirja::MutTxn,Base32, ChangeId, ChangePosition, ChannelRef, GraphIter, Hash, Merkle, MutTxnT, Position,RemoteRef, TxnT, sanakirja::MutTxn, - edit in pijul-remote/src/lib.rs at line 14
use regex::Regex; - replacement in pijul-remote/src/lib.rs at line 1602[6.78608]→[6.2910:2996](∅→∅),[6.2996]→[6.2358:2522](∅→∅),[6.2522]→[6.3137:3249](∅→∅),[6.3137]→[6.3137:3249](∅→∅)
use libpijul::pristine::{ChangePosition, Position};use regex::Regex;lazy_static! {static ref CHANGELIST_LINE: Regex = Regex::new(r#"(?P<num>[0-9]+)\.(?P<hash>[A-Za-z0-9]+)\.(?P<merkle>[A-Za-z0-9]+)(?P<tag>\.)?"#).unwrap();static ref PATHS_LINE: Regex =Regex::new(r#"(?P<hash>[A-Za-z0-9]+)\.(?P<num>[0-9]+)"#).unwrap();}static CHANGELIST_LINE: LazyLock<Regex> = LazyLock::new(|| {Regex::new(r#"(?P<num>[0-9]+)\.(?P<hash>[A-Za-z0-9]+)\.(?P<merkle>[A-Za-z0-9]+)(?P<tag>\.)?"#).unwrap()});static PATHS_LINE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"(?P<hash>[A-Za-z0-9]+)\.(?P<num>[0-9]+)"#).unwrap()); - edit in pijul-remote/Cargo.toml at line 28
lazy_static.workspace = true - replacement in pijul-interaction/src/progress/terminal.rs at line 1
use std::sync::Arc;use std::sync::{Arc, LazyLock}; - edit in pijul-interaction/src/progress/terminal.rs at line 6
use lazy_static::lazy_static; - replacement in pijul-interaction/src/progress/terminal.rs at line 7
lazy_static! {static ref MULTI_PROGRESS: MultiProgress = MultiProgress::new();}static MULTI_PROGRESS: LazyLock<MultiProgress> = LazyLock::new(MultiProgress::new); - edit in pijul-interaction/src/input/mod.rs at line 9
use lazy_static::lazy_static; - replacement in pijul-interaction/src/input/mod.rs at line 10
lazy_static! {static ref THEME: Box<dyn theme::Theme + Send + Sync> = {use dialoguer::theme;use pijul_config::{self as config, Choice};use pijul_config::{self as config, Choice};use std::sync::LazyLock; - replacement in pijul-interaction/src/input/mod.rs at line 13
if let Ok((config, _)) = config::Global::load() {let color_choice = config.colors.unwrap_or_default();static THEME: LazyLock<Box<dyn theme::Theme + Send + Sync>> = LazyLock::new(|| {if let Ok((config, _)) = config::Global::load() {let color_choice = config.colors.unwrap_or_default(); - replacement in pijul-interaction/src/input/mod.rs at line 17
match color_choice {Choice::Auto | Choice::Always => Box::<theme::ColorfulTheme>::default(),Choice::Never => Box::new(theme::SimpleTheme),}} else {Box::<theme::ColorfulTheme>::default()match color_choice {Choice::Auto | Choice::Always => Box::<theme::ColorfulTheme>::default(),Choice::Never => Box::new(theme::SimpleTheme), - replacement in pijul-interaction/src/input/mod.rs at line 21
};}} else {Box::<theme::ColorfulTheme>::default()}}); - edit in pijul-interaction/Cargo.toml at line 16
lazy_static.workspace = true - edit in pijul/src/commands/pushpull.rs at line 4
use std::sync::LazyLock; - edit in pijul/src/commands/pushpull.rs at line 9
use lazy_static::lazy_static; - replacement in pijul/src/commands/pushpull.rs at line 140
lazy_static! {static ref CHANNEL: Regex = Regex::new(r#"([^:]*)(:(.*))?"#).unwrap();}static CHANNEL: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"([^:]*)(:(.*))?"#).unwrap()); - replacement in pijul/src/commands/protocol.rs at line 5
use std::sync::Arc;use std::sync::{Arc, LazyLock}; - edit in pijul/src/commands/protocol.rs at line 10
use lazy_static::lazy_static; - replacement in pijul/src/commands/protocol.rs at line 27[6.123774]→[6.123774:123877](∅→∅),[6.123877]→[6.15615:15773](∅→∅),[6.15773]→[6.123877:123976](∅→∅),[6.123877]→[6.123877:123976](∅→∅),[6.123976]→[6.11234:11320](∅→∅),[6.11320]→[6.124060:124152](∅→∅),[6.124060]→[6.124060:124152](∅→∅),[6.124152]→[6.32247:32412](∅→∅),[6.90]→[6.0:93](∅→∅),[6.32412]→[6.0:93](∅→∅),[6.124152]→[6.0:93](∅→∅),[6.93]→[6.124244:124434](∅→∅),[6.124244]→[6.124244:124434](∅→∅)
lazy_static! {static ref STATE: Regex = Regex::new(r#"state\s+(\S+)(\s+([0-9]+)?)\s+"#).unwrap();static ref ID: Regex = Regex::new(r#"id\s+(\S+)\s+"#).unwrap();static ref IDENTITIES: Regex = Regex::new(r#"identities(\s+([0-9]+))?\s+"#).unwrap();static ref CHANGELIST: Regex = Regex::new(r#"changelist\s+(\S+)\s+([0-9]+)(.*)\s+"#).unwrap();static ref CHANGELIST_PATHS: Regex = Regex::new(r#""(((\\")|[^"])+)""#).unwrap();static ref CHANGE: Regex = Regex::new(r#"((change)|(partial))\s+([^ ]*)\s+"#).unwrap();static ref TAG: Regex = Regex::new(r#"^tag\s+(\S+)\s+"#).unwrap();static ref TAGUP: Regex = Regex::new(r#"^tagup\s+(\S+)\s+(\S+)\s+([0-9]+)\s+"#).unwrap();static ref APPLY: Regex = Regex::new(r#"apply\s+(\S+)\s+([^ ]*) ([0-9]+)\s+"#).unwrap();static ref CHANNEL: Regex = Regex::new(r#"channel\s+(\S+)\s+"#).unwrap();static ref ARCHIVE: Regex =Regex::new(r#"archive\s+(\S+)\s*(( ([^:]+))*)( :(.*))?\n"#).unwrap();}static APPLY: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"apply\s+(\S+)\s+([^ ]*) ([0-9]+)\s+"#).unwrap());static ARCHIVE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"archive\s+(\S+)\s*(( ([^:]+))*)( :(.*))?\n"#).unwrap());static CHANGE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"((change)|(partial))\s+([^ ]*)\s+"#).unwrap());static CHANGELIST_PATHS: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#""(((\\")|[^"])+)""#).unwrap());static CHANGELIST: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"changelist\s+(\S+)\s+([0-9]+)(.*)\s+"#).unwrap());static CHANNEL: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"channel\s+(\S+)\s+"#).unwrap());static ID: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"id\s+(\S+)\s+"#).unwrap());static IDENTITIES: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"identities(\s+([0-9]+))?\s+"#).unwrap());static STATE: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"state\s+(\S+)(\s+([0-9]+)?)\s+"#).unwrap());static TAG: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"^tag\s+(\S+)\s+"#).unwrap());static TAGUP: LazyLock<Regex> =LazyLock::new(|| Regex::new(r#"^tagup\s+(\S+)\s+(\S+)\s+([0-9]+)\s+"#).unwrap()); - edit in pijul/Cargo.toml at line 41
lazy_static.workspace = true - replacement in libpijul/src/pristine/mod.rs at line 7
use std::sync::Arc;use std::sync::{Arc, LazyLock}; - replacement in libpijul/src/pristine/mod.rs at line 57
lazy_static! {pub(crate) static ref BASE32: data_encoding::Encoding = {let mut spec = data_encoding::Specification::new();spec.symbols.push_str("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");spec.translate.from = "abcdefghijklmnopqrstuvwxyz".to_string();spec.translate.to = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".to_string();spec.encoding().unwrap()};}pub(crate) static BASE32: LazyLock<data_encoding::Encoding> = LazyLock::new(|| {let mut spec = data_encoding::Specification::new();spec.symbols.push_str("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");spec.translate.from = "abcdefghijklmnopqrstuvwxyz".to_string();spec.translate.to = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".to_string();spec.encoding().unwrap()}); - edit in libpijul/src/lib.rs at line 11
#[macro_use]extern crate lazy_static; - edit in libpijul/src/lib.rs at line 39
use std::sync::{LazyLock, Mutex}; - replacement in libpijul/src/lib.rs at line 692
use std::sync::Mutex;lazy_static! {pub static ref TIMERS: Mutex<Timers> = Mutex::new(Timers {pub static TIMERS: LazyLock<Mutex<Timers>> = LazyLock::new(|| {Mutex::new(Timers { - replacement in libpijul/src/lib.rs at line 705
});}})}); - edit in libpijul/src/diff/mod.rs at line 6[55.676][55.676]
use std::sync::LazyLock; - replacement in libpijul/src/diff/mod.rs at line 17
lazy_static! {pub static ref DEFAULT_SEPARATOR: regex::bytes::Regex = regex::bytes::Regex::new("\n").unwrap();}pub static DEFAULT_SEPARATOR: LazyLock<regex::bytes::Regex> =LazyLock::new(|| regex::bytes::Regex::new("\n").unwrap()); - edit in libpijul/Cargo.toml at line 57
lazy_static.workspace = true - edit in Cargo.toml at line 65
lazy_static = "1.4" - edit in Cargo.lock at line 1387
"lazy_static 1.4.0", - edit in Cargo.lock at line 1878
"lazy_static 1.4.0", - edit in Cargo.lock at line 1948
"lazy_static 1.4.0", - edit in Cargo.lock at line 1973
"lazy_static 1.4.0",