Create `pijul_remote` crate

finchie
Aug 17, 2023, 6:13 AM
OYN2YVPAN6L3X6HZXJI6B2GYGL2W5AXRK6CVDJRWALS5OENNB5UAC

Dependencies

  • [2] G7HJHNFD Migrate from `pijul_interaction::progress` to `pijul_interaction`
  • [3] SU3JX6SE Create `pijul-identity` crate
  • [4] YD7QFAD7 Simplifying pijul::remote::PushDelta
  • [5] H4AU6QRP New config for HTTP remotes
  • [6] DVBSW7SI Bump dependencies with minor-level changes
  • [7] RVAH6PXA Getting libpijul to compile to WASM32
  • [8] GYGLQPVX Migrate from `pijul::current_dir` to `std::env::current_dir`
  • [9] I52XSRUH Massive cleanup, and simplification
  • [10] JUYSZJSH Migrate from `pijul::progress` to `pijul_interaction::progress`
  • [11] Q45QHPO4 Feedback on network stuff
  • [12] S2B5MEWP Minor change in the type of sanakirja::GraphTxnT::Graph (prepare for more general backends)
  • [13] IQ4FCHPZ HTTP connections: pooling + retry on error
  • [14] DO2Y5TY5 Tag synchronisation
  • [15] 3KRGVQFU Do not update the mtime of unmodified files
  • [16] QQZNSB26 Permission update (after #X243)
  • [17] FBXYP7QM Forgot to add remote::http
  • [18] STG7MO5M Version bump
  • [19] MU5GSJAW Partial push and pull (WARNING: breaks the existing protocol)
  • [20] Y2Y4OOIE Move `pijul::DEFAULT_CHANNEL` to `libpijul`
  • [21] WTPFQPO5 Add global `no_prompt` flag
  • [22] BZSC7VMY address clippy lints
  • [23] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [24] IVLLXQ5Z Improved push/pull reporting
  • [25] YAJAXIV5 Unrecording changes atomically
  • [26] LGEJSLTY Fixing output (including its uses in reset and pull)
  • [27] YTQS4ES3 Fixing a parsing problem (related to permissions), and the associated permissions
  • [28] SNZ3OAMC use native external subcommand support instead of hand-rolled one
  • [29] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [30] EJ7TFFOW Re-adding Cargo.lock
  • [31] ABPFWGKH Create `pijul-interaction` crate
  • [32] X243Z3Y5 Recording only the required metadata (can even be changed later!)
  • [33] UDHP4ZVB Fixing SSH asynchronicity issues
  • [34] HDGRZISM Version updates
  • [35] AI73GKAO Adding a UserAgent header to the http downloader
  • [36] L2VH4BYK Downloading changelists from channels without an id (Nest discussions)
  • [37] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [38] CXSCA5HN Fixing a counter-intuitive error when a local repo does not exist
  • [39] OIOMXESD Better error handling in HTTP
  • [*] ENWJBQGQ Fixing a deprecation warning in ed25519_dalek.
  • [*] WCA7X6W6 Create `pijul-repository` crate

Change contents

  • file addition: pijul-remote (d--r------)
    [41.2]
  • file addition: src (d--r------)
    [0.24]
  • file move: ssh.rs (----------)ssh.rs (----------)
    [0.41]
    [4.25380]
  • replacement in pijul-remote/src/ssh.rs at line 20
    [4.62][4.0:23]()
    use crate::remote::CS;
    [4.62]
    [2.0]
    use crate::CS;
  • file move: local.rs (----------)local.rs (----------)
    [0.41]
    [4.79745]
  • replacement in pijul-remote/src/local.rs at line 10
    [4.20383][4.20383:20406]()
    use crate::remote::CS;
    [4.20383]
    [2.328]
    use crate::CS;
  • file move: mod.rs (----------)lib.rs (----------)
    [0.41]
    [4.52474]
  • edit in pijul-remote/src/lib.rs at line 33
    [4.440]
    [4.10383]
    pub const PROTOCOL_VERSION: usize = 3;
  • replacement in pijul-remote/src/lib.rs at line 248
    [4.273][4.273:294]()
    fn get_local_inodes(
    [4.273]
    [4.294]
    pub fn get_local_inodes(
  • replacement in pijul-remote/src/lib.rs at line 273
    [4.1245][4.0:30]()
    pub(crate) struct PushDelta {
    [4.1245]
    [4.4632]
    pub struct PushDelta {
  • replacement in pijul-remote/src/lib.rs at line 300
    [4.2797][4.2797:2854]()
    pub(crate) struct RemoteDelta<T: MutTxnTExt + TxnTExt> {
    [4.2797]
    [4.2854]
    pub struct RemoteDelta<T: MutTxnTExt + TxnTExt> {
  • replacement in pijul-remote/src/lib.rs at line 315
    [4.3436][4.3436:3477]()
    pub(crate) fn to_local_channel_push(
    [4.3436]
    [4.3477]
    pub fn to_local_channel_push(
  • replacement in pijul-remote/src/lib.rs at line 358
    [4.5144][4.5144:5178]()
    pub(crate) fn to_remote_push(
    [4.5144]
    [4.5178]
    pub fn to_remote_push(
  • replacement in pijul-remote/src/lib.rs at line 473
    [4.7643][4.7643:7690]()
    pub(crate) fn update_changelist_local_channel(
    [4.7643]
    [4.7690]
    pub fn update_changelist_local_channel(
  • replacement in pijul-remote/src/lib.rs at line 701
    [4.10802][4.10802:10854]()
    pub(crate) async fn update_changelist_pushpull(
    [4.10802]
    [4.10854]
    pub async fn update_changelist_pushpull(
  • file move: http.rs (----------)http.rs (----------)
    [0.41]
    [4.10]
  • replacement in pijul-remote/src/http.rs at line 9
    [4.23929][4.23929:23952]()
    use crate::remote::CS;
    [4.23929]
    [2.365]
    use crate::CS;
  • replacement in pijul-remote/src/http.rs at line 12
    [4.1][4.1:69]()
    const USER_AGENT: &str = concat!("pijul-", clap::crate_version!());
    [4.1]
    [4.87]
    const USER_AGENT: &str = concat!("pijul-", env!("CARGO_PKG_VERSION"));
  • file addition: Cargo.toml (----------)
    [0.24]
    [package]
    name = "pijul-remote"
    description = "Functionality to communicate with a pijul repository remotely"
    version = "1.0.0-beta.6"
    authors = ["Pierre-Étienne Meunier <pe@pijul.org>"]
    edition = "2021"
    repository = "https://nest.pijul.com/pijul/pijul"
    license = "GPL-2.0"
    include = ["Cargo.toml", "src"]
    [dependencies]
    anyhow = { version = "1.0", features = ["backtrace"] }
    async-trait = "0.1"
    byteorder = "1.4"
    bytes = "1.4"
    dirs-next = "2.0"
    futures = "0.3"
    futures-util = "0.3"
    lazy_static = "1.4"
    libpijul = { path = "../libpijul", features = ["tarball"] }
    log = "0.4"
    pijul-config = { path = "../pijul-config" }
    pijul-identity = { path = "../pijul-identity" }
    pijul-interaction = { path = "../pijul-interaction" }
    pijul-repository = { path = "../pijul-repository" }
    sanakirja = { version = "1.3", default-features = false, features = ["crc32"] }
    serde_json = "1.0"
    reqwest = { version = "0.11", features = ["stream", "json"] }
    thrussh = "0.34"
    thrussh-keys = "0.22"
    thrussh-config = "0.6"
    tokio = { version = "1", features = [
    "rt-multi-thread",
    "macros",
    "sync",
    "fs",
    ] }
    url = "2.4"
    keyring = { version = "2.0", default_features = false, features = [
    "linux-no-secret-service",
    ] }
    regex = "1.8"
    serde = { version = "1.0", features = ["derive"] }
    serde_derive = "1.0"
  • edit in pijul/src/main.rs at line 13
    [4.741][4.84299:84300](),[4.84299][4.84299:84300](),[4.294][4.84346:84381](),[4.84346][4.84346:84381]()
    const PROTOCOL_VERSION: usize = 3;
  • edit in Cargo.toml at line 10
    [3.1219]
    [3.1219]
    "pijul-remote",
  • replacement in Cargo.lock at line 33
    [4.957][4.957:968]()
    "cipher",
    [4.957]
    [4.968]
    "cipher 0.3.0",
  • replacement in Cargo.lock at line 320
    [4.4218][4.4218:4231]()
    "blowfish",
    [4.4218]
    [4.4231]
    "blowfish 0.8.0",
  • edit in Cargo.lock at line 325
    [4.4284]
    [4.4284]
    ]
    [[package]]
    name = "bcrypt-pbkdf"
    version = "0.10.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2"
    dependencies = [
    "blowfish 0.9.1",
    "pbkdf2 0.12.2",
    "sha2 0.10.7",
  • replacement in Cargo.lock at line 404
    [4.5878][4.5878:5889]()
    "cipher",
    [4.5878]
    [4.5889]
    "cipher 0.3.0",
  • replacement in Cargo.lock at line 435
    [4.6311][4.6311:6322]()
    "cipher",
    [4.6311]
    [4.6322]
    "cipher 0.3.0",
  • edit in Cargo.lock at line 440
    [4.6354]
    [4.6354]
    name = "blowfish"
    version = "0.9.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
    dependencies = [
    "byteorder",
    "cipher 0.4.4",
    ]
    [[package]]
  • edit in Cargo.lock at line 530
    [4.8497]
    [4.8497]
    name = "cipher"
    version = "0.4.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
    dependencies = [
    "crypto-common",
    "inout",
    ]
    [[package]]
  • replacement in Cargo.lock at line 727
    [4.13614][4.13614:13625]()
    "cipher",
    [4.13614]
    [4.13625]
    "cipher 0.3.0",
  • edit in Cargo.lock at line 1537
    [4.352]
    [4.32475]
    ]
    [[package]]
    name = "inout"
    version = "0.1.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
    dependencies = [
    "generic-array",
  • edit in Cargo.lock at line 2214
    [4.47797]
    [4.47797]
    ]
    [[package]]
    name = "pbkdf2"
    version = "0.12.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
    dependencies = [
    "digest 0.10.7",
  • replacement in Cargo.lock at line 2278
    [4.48649][4.48649:48697]()
    "thrussh",
    "thrussh-config",
    "thrussh-keys",
    [4.48649]
    [4.48697]
    "thrussh 0.33.5",
    "thrussh-config 0.5.0",
    "thrussh-keys 0.21.0",
  • replacement in Cargo.lock at line 2320
    [3.1464][3.1464:1481]()
    "thrussh-keys",
    [3.1464]
    [3.1481]
    "thrussh-keys 0.21.0",
  • edit in Cargo.lock at line 2350
    [42.33]
    [42.33]
    name = "pijul-remote"
    version = "1.0.0-beta.6"
    dependencies = [
    "anyhow",
    "async-trait",
    "byteorder",
    "bytes",
    "dirs-next",
    "futures",
    "futures-util",
    "keyring",
    "lazy_static 1.4.0",
    "libpijul",
    "log",
    "pijul-config",
    "pijul-identity",
    "pijul-interaction",
    "pijul-repository",
    "regex",
    "reqwest",
    "sanakirja",
    "serde",
    "serde_derive",
    "serde_json",
    "thrussh 0.34.0",
    "thrussh-config 0.6.0",
    "thrussh-keys 0.22.1",
    "tokio",
    "url",
    ]
    [[package]]
  • replacement in Cargo.lock at line 3126
    [4.65864][4.65864:65881]()
    "thrussh-keys",
    [4.65864]
    [4.65881]
    "thrussh-keys 0.21.0",
    "thrussh-libsodium",
    "tokio",
    ]
    [[package]]
    name = "thrussh"
    version = "0.34.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "0eb7f634184fe86d7a9fd587d9350137508cba7b77626a7785db2ca695ebc503"
    dependencies = [
    "bitflags 1.3.2",
    "byteorder",
    "cryptovec",
    "digest 0.9.0",
    "flate2",
    "futures",
    "generic-array",
    "log",
    "rand 0.8.5",
    "sha2 0.9.9",
    "thiserror",
    "thrussh-keys 0.22.1",
  • edit in Cargo.lock at line 3168
    [4.66214]
    [4.66214]
    name = "thrussh-config"
    version = "0.6.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fa974aab89a724928e2fb4e526f6e9a5fa4fb9d544e824fc38bd177c48ca6622"
    dependencies = [
    "dirs-next",
    "futures",
    "log",
    "thiserror",
    "tokio",
    "whoami",
    ]
    [[package]]
  • replacement in Cargo.lock at line 3188
    [4.66423][4.66423:66440]()
    "bcrypt-pbkdf",
    [4.66423]
    [4.66440]
    "bcrypt-pbkdf 0.6.2",
  • edit in Cargo.lock at line 3202
    [4.66603]
    [4.66603]
    "pbkdf2 0.8.0",
    "rand 0.8.5",
    "serde",
    "serde_derive",
    "sha2 0.9.9",
    "thiserror",
    "thrussh-libsodium",
    "tokio",
    "tokio-stream",
    "yasna",
    ]
    [[package]]
    name = "thrussh-keys"
    version = "0.22.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c43d59b13e4c08db0e379bced99bda596ac5ed33651d919bf3916d34ad4259bb"
    dependencies = [
    "aes",
    "bcrypt-pbkdf 0.10.0",
    "bit-vec",
    "block-modes",
    "byteorder",
    "cryptovec",
    "data-encoding",
    "dirs",
    "futures",
    "hmac 0.11.0",
    "log",
    "md5",
    "num-bigint",
    "num-integer",