From 7b7c5c41315c0c6e061bfd62374c54749984b206 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 02:16:44 +0000 Subject: [PATCH 01/44] Bump crossbeam-channel from 0.5.8 to 0.5.9 Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.8 to 0.5.9. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.8...crossbeam-channel-0.5.9) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e78c049e..1792def0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -303,9 +303,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -337,9 +337,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] From e7c61ffc89f987fa3f6a1dbb6e7c6f6a83a0b321 Mon Sep 17 00:00:00 2001 From: extrawurst <776816+extrawurst@users.noreply.github.com> Date: Sat, 16 Dec 2023 00:07:54 +0100 Subject: [PATCH 02/44] Support prepare commit hook (#1978) --- CHANGELOG.md | 1 + Cargo.lock | 2 +- README.md | 2 +- asyncgit/src/sync/hooks.rs | 17 ++++++ asyncgit/src/sync/mod.rs | 3 +- git2-hooks/Cargo.toml | 2 +- git2-hooks/src/lib.rs | 121 +++++++++++++++++++++++++++++++++++++ src/components/commit.rs | 36 ++++++++--- 8 files changed, 171 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e2589b..af52455f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added * `theme.ron` now supports customizing line break symbol ([#1894](https://github.com/extrawurst/gitui/issues/1894)) * add confirmation for dialog for undo commit [[@TeFiLeDo](https://github.com/TeFiLeDo)] ([#1912](https://github.com/extrawurst/gitui/issues/1912)) +* support `prepare-commit-msg` hook ([#1873](https://github.com/extrawurst/gitui/issues/1873)) ### Changed * do not allow tag when `tag.gpgsign` enabled [[@TeFiLeDo](https://github.com/TeFiLeDo)] ([#1915](https://github.com/extrawurst/gitui/pull/1915)) diff --git a/Cargo.lock b/Cargo.lock index 1792def0..30cdfc0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -714,7 +714,7 @@ dependencies = [ [[package]] name = "git2-hooks" -version = "0.3.0" +version = "0.3.1" dependencies = [ "git2", "git2-testing", diff --git a/README.md b/README.md index 0ae563ed..3b4b9c9e 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ - Fast and intuitive **keyboard only** control - Context based help (**no need to memorize** tons of hot-keys) -- Inspect, commit, and amend changes (incl. hooks: *pre-commit*,*commit-msg*,*post-commit*) +- Inspect, commit, and amend changes (incl. hooks: *pre-commit*,*commit-msg*,*post-commit*,*prepare-commit-msg*) - Stage, unstage, revert and reset files, hunks and lines - Stashing (save, pop, apply, drop, and inspect) - Push / Fetch to / from remote diff --git a/asyncgit/src/sync/hooks.rs b/asyncgit/src/sync/hooks.rs index f480da07..b6928918 100644 --- a/asyncgit/src/sync/hooks.rs +++ b/asyncgit/src/sync/hooks.rs @@ -1,5 +1,6 @@ use super::{repository::repo, RepoPath}; use crate::error::Result; +pub use git2_hooks::PrepareCommitMsgSource; use scopetime::scope_time; /// @@ -59,6 +60,22 @@ pub fn hooks_post_commit(repo_path: &RepoPath) -> Result { Ok(git2_hooks::hooks_post_commit(&repo, None)?.into()) } +/// +pub fn hooks_prepare_commit_msg( + repo_path: &RepoPath, + source: PrepareCommitMsgSource, + msg: &mut String, +) -> Result { + scope_time!("hooks_prepare_commit_msg"); + + let repo = repo(repo_path)?; + + Ok(git2_hooks::hooks_prepare_commit_msg( + &repo, None, source, msg, + )? + .into()) +} + #[cfg(test)] mod tests { use super::*; diff --git a/asyncgit/src/sync/mod.rs b/asyncgit/src/sync/mod.rs index 909bea6f..83683a9e 100644 --- a/asyncgit/src/sync/mod.rs +++ b/asyncgit/src/sync/mod.rs @@ -65,7 +65,8 @@ pub use config::{ pub use diff::get_diff_commit; pub use git2::BranchType; pub use hooks::{ - hooks_commit_msg, hooks_post_commit, hooks_pre_commit, HookResult, + hooks_commit_msg, hooks_post_commit, hooks_pre_commit, + hooks_prepare_commit_msg, HookResult, PrepareCommitMsgSource, }; pub use hunks::{reset_hunk, stage_hunk, unstage_hunk}; pub use ignore::add_to_ignore; diff --git a/git2-hooks/Cargo.toml b/git2-hooks/Cargo.toml index c85f4cc9..1c6c63e5 100644 --- a/git2-hooks/Cargo.toml +++ b/git2-hooks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "git2-hooks" -version = "0.3.0" +version = "0.3.1" authors = ["extrawurst "] edition = "2021" description = "adds git hooks support based on git2-rs" diff --git a/git2-hooks/src/lib.rs b/git2-hooks/src/lib.rs index 0cf5ac8d..ea7842cc 100644 --- a/git2-hooks/src/lib.rs +++ b/git2-hooks/src/lib.rs @@ -27,6 +27,7 @@ use git2::Repository; pub const HOOK_POST_COMMIT: &str = "post-commit"; pub const HOOK_PRE_COMMIT: &str = "pre-commit"; pub const HOOK_COMMIT_MSG: &str = "commit-msg"; +pub const HOOK_PREPARE_COMMIT_MSG: &str = "prepare-commit-msg"; const HOOK_COMMIT_MSG_TEMP_FILE: &str = "COMMIT_EDITMSG"; @@ -152,6 +153,65 @@ pub fn hooks_post_commit( hook.run_hook(&[]) } +/// +pub enum PrepareCommitMsgSource { + Message, + Template, + Merge, + Squash, + Commit(git2::Oid), +} + +/// this hook is documented here +pub fn hooks_prepare_commit_msg( + repo: &Repository, + other_paths: Option<&[&str]>, + source: PrepareCommitMsgSource, + msg: &mut String, +) -> Result { + let hook = + HookPaths::new(repo, other_paths, HOOK_PREPARE_COMMIT_MSG)?; + + if !hook.found() { + return Ok(HookResult::NoHookFound); + } + + let temp_file = hook.git.join(HOOK_COMMIT_MSG_TEMP_FILE); + File::create(&temp_file)?.write_all(msg.as_bytes())?; + + let temp_file_path = temp_file.as_os_str().to_string_lossy(); + + let vec = vec![ + temp_file_path.as_ref(), + match source { + PrepareCommitMsgSource::Message => "message", + PrepareCommitMsgSource::Template => "template", + PrepareCommitMsgSource::Merge => "merge", + PrepareCommitMsgSource::Squash => "squash", + PrepareCommitMsgSource::Commit(_) => "commit", + }, + ]; + let mut args = vec; + + let id = if let PrepareCommitMsgSource::Commit(id) = &source { + Some(id.to_string()) + } else { + None + }; + + if let Some(id) = &id { + args.push(id); + } + + let res = hook.run_hook(args.as_slice())?; + + // load possibly altered msg + msg.clear(); + File::open(temp_file)?.read_to_string(msg)?; + + Ok(res) +} + #[cfg(test)] mod tests { use super::*; @@ -480,4 +540,65 @@ exit 0 assert_eq!(hook.pwd, git_root.parent().unwrap()); } + + #[test] + fn test_hooks_prep_commit_msg_success() { + let (_td, repo) = repo_init(); + + let hook = b"#!/bin/sh +echo msg:$2 > $1 +exit 0 + "; + + create_hook(&repo, HOOK_PREPARE_COMMIT_MSG, hook); + + let mut msg = String::from("test"); + let res = hooks_prepare_commit_msg( + &repo, + None, + PrepareCommitMsgSource::Message, + &mut msg, + ) + .unwrap(); + + assert!(matches!(res, HookResult::Ok { .. })); + assert_eq!(msg, String::from("msg:message\n")); + } + + #[test] + fn test_hooks_prep_commit_msg_reject() { + let (_td, repo) = repo_init(); + + let hook = b"#!/bin/sh +echo $2,$3 > $1 +echo 'rejected' +exit 2 + "; + + create_hook(&repo, HOOK_PREPARE_COMMIT_MSG, hook); + + let mut msg = String::from("test"); + let res = hooks_prepare_commit_msg( + &repo, + None, + PrepareCommitMsgSource::Commit(git2::Oid::zero()), + &mut msg, + ) + .unwrap(); + + let HookResult::RunNotSuccessful { code, stdout, .. } = res + else { + unreachable!() + }; + + assert_eq!(code.unwrap(), 2); + assert_eq!(&stdout, "rejected\n"); + + assert_eq!( + msg, + String::from( + "commit,0000000000000000000000000000000000000000\n" + ) + ); + } } diff --git a/src/components/commit.rs b/src/components/commit.rs index ba32394a..bd762878 100644 --- a/src/components/commit.rs +++ b/src/components/commit.rs @@ -14,8 +14,8 @@ use anyhow::{bail, Ok, Result}; use asyncgit::{ cached, message_prettify, sync::{ - self, get_config_string, CommitId, HookResult, RepoPathRef, - RepoState, + self, get_config_string, CommitId, HookResult, + PrepareCommitMsgSource, RepoPathRef, RepoState, }, StatusItem, StatusItemType, }; @@ -366,7 +366,7 @@ impl CommitComponent { let repo_state = sync::repo_state(&self.repo.borrow())?; - self.mode = if repo_state != RepoState::Clean + let (mode, msg_source) = if repo_state != RepoState::Clean && reword.is_some() { bail!("cannot reword while repo is not in a clean state"); @@ -381,7 +381,7 @@ impl CommitComponent { .combine(), ); self.input.set_title(strings::commit_reword_title()); - Mode::Reword(reword_id) + (Mode::Reword(reword_id), PrepareCommitMsgSource::Message) } else { match repo_state { RepoState::Merge => { @@ -392,7 +392,7 @@ impl CommitComponent { self.input.set_text(sync::merge_msg( &self.repo.borrow(), )?); - Mode::Merge(ids) + (Mode::Merge(ids), PrepareCommitMsgSource::Merge) } RepoState::Revert => { self.input @@ -400,7 +400,7 @@ impl CommitComponent { self.input.set_text(sync::merge_msg( &self.repo.borrow(), )?); - Mode::Revert + (Mode::Revert, PrepareCommitMsgSource::Message) } _ => { @@ -430,17 +430,35 @@ impl CommitComponent { .ok() }); - if self.is_empty() { + let msg_source = if self.is_empty() { if let Some(s) = &self.commit_template { self.input.set_text(s.clone()); + PrepareCommitMsgSource::Template + } else { + PrepareCommitMsgSource::Message } - } + } else { + PrepareCommitMsgSource::Message + }; self.input.set_title(strings::commit_title()); - Mode::Normal + + (Mode::Normal, msg_source) } } }; + self.mode = mode; + + let mut msg = self.input.get_text().to_string(); + if let HookResult::NotOk(e) = sync::hooks_prepare_commit_msg( + &self.repo.borrow(), + msg_source, + &mut msg, + )? { + log::error!("prepare-commit-msg hook rejection: {e}",); + } + self.input.set_text(msg); + self.commit_msg_history_idx = 0; self.input.show()?; From 55d316fad98d164284b1097bad8a18776b0feb72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 02:04:20 +0000 Subject: [PATCH 03/44] Bump anyhow from 1.0.75 to 1.0.76 Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.75 to 1.0.76. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.75...1.0.76) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30cdfc0f..0a1f8b21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" [[package]] name = "asyncgit" From 99c705eaa77e9ccf04386fd312c474cf798772b0 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Fri, 22 Dec 2023 17:12:50 +0100 Subject: [PATCH 04/44] fix stashing tab empty (closes #1986) --- CHANGELOG.md | 3 +++ src/tabs/stashing.rs | 1 + 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index af52455f..55e6d109 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed * do not allow tag when `tag.gpgsign` enabled [[@TeFiLeDo](https://github.com/TeFiLeDo)] ([#1915](https://github.com/extrawurst/gitui/pull/1915)) +### Fixes +* stash window empty after file history popup closes ([#1986](https://github.com/extrawurst/gitui/issues/1986)) + ## [0.24.3] - 2023-09-09 ### Fixes diff --git a/src/tabs/stashing.rs b/src/tabs/stashing.rs index 93734ae3..6df47495 100644 --- a/src/tabs/stashing.rs +++ b/src/tabs/stashing.rs @@ -99,6 +99,7 @@ impl Stashing { ) -> Result<()> { if self.is_visible() && ev == AsyncGitNotification::Status { let status = self.git_status.last()?; + self.index.show()?; self.index.update(&status.items)?; } From 8940c472ca0e169a029d536dba0f547d09a0337a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 02:33:33 +0000 Subject: [PATCH 05/44] Bump crossbeam-channel from 0.5.9 to 0.5.10 Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.9 to 0.5.10. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.9...crossbeam-channel-0.5.10) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0a1f8b21..4dddfdf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -303,9 +303,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -337,9 +337,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] From d9ccd9e5d35b0cfba914d25649956697e7b38d9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 02:33:41 +0000 Subject: [PATCH 06/44] Bump openssl-sys from 0.9.97 to 0.9.98 Bumps [openssl-sys](https://github.com/sfackler/rust-openssl) from 0.9.97 to 0.9.98. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-sys-v0.9.97...openssl-sys-v0.9.98) --- updated-dependencies: - dependency-name: openssl-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4dddfdf8..134ad547 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1159,9 +1159,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.97" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", From 32d0a5c51683ab299f4aa58363827b966039c7e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Dec 2023 02:12:06 +0000 Subject: [PATCH 07/44] Bump anyhow from 1.0.76 to 1.0.77 Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.76 to 1.0.77. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.76...1.0.77) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 134ad547..ea5209d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" [[package]] name = "asyncgit" From 307d38ccc9474914ccf42c0318edf46084e6e545 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 02:48:08 +0000 Subject: [PATCH 08/44] Bump anyhow from 1.0.77 to 1.0.78 Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.77 to 1.0.78. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.77...1.0.78) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea5209d6..37489ade 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.77" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" +checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" [[package]] name = "asyncgit" From 975e881d830a64e44acc286575468427cf7f1aa7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 02:54:53 +0000 Subject: [PATCH 09/44] Bump clap from 4.4.11 to 4.4.14 Bumps [clap](https://github.com/clap-rs/clap) from 4.4.11 to 4.4.14. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.4.11...v4.4.14) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37489ade..ef310122 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -245,18 +245,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" dependencies = [ "anstream", "anstyle", From 0beff5c56928c62069f31d2da5a313a07eb9b1e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 02:54:41 +0000 Subject: [PATCH 10/44] Bump crossbeam-channel from 0.5.10 to 0.5.11 Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.10 to 0.5.11. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.10...crossbeam-channel-0.5.11) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef310122..5d4bdca0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -303,11 +303,10 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" dependencies = [ - "cfg-if", "crossbeam-utils", ] From 7d4a5d593ddc9bfedb6acc4e2306c9b46b66ca62 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:43:15 -0500 Subject: [PATCH 11/44] .github --- .github/CODE_OF_CONDUCT.md | 75 ++++++++++ .github/CONTRIBUTING.md | 63 ++++++++ .github/ISSUE_TEMPLATE.md | 9 ++ .github/ISSUE_TEMPLATE/bug_report.md | 43 +++--- .github/ISSUE_TEMPLATE/feature_request.md | 51 +++++-- .github/ISSUE_TEMPLATE/question.md | 18 +++ .github/PULL_REQUEST_TEMPLATE.md | 31 ++-- .github/stale.yml | 21 ++- .github/workflows/cargo-build.yml | 84 +++++++++++ .github/workflows/cd.yml | 10 +- .github/workflows/ci.yml | 175 +++++++++++++++++----- .github/workflows/ghcr.io.yml | 45 ++++++ .github/workflows/gnostr-alpine.yml | 47 ++++++ .github/workflows/gnostr.yml | 94 ++++++++++++ .github/workflows/jekyll-gh-pages.yml | 51 +++++++ .github/workflows/pre-release.yml | 124 +++++++++++++++ .github/workflows/release.yml | 117 +++++++++++++++ .github/workflows/static.yml | 43 ++++++ 18 files changed, 996 insertions(+), 105 deletions(-) create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/question.md create mode 100644 .github/workflows/cargo-build.yml create mode 100644 .github/workflows/ghcr.io.yml create mode 100755 .github/workflows/gnostr-alpine.yml create mode 100644 .github/workflows/gnostr.yml create mode 100644 .github/workflows/jekyll-gh-pages.yml create mode 100755 .github/workflows/pre-release.yml create mode 100755 .github/workflows/release.yml create mode 100644 .github/workflows/static.yml diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..d02f0500 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,75 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or +advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic +address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a +professional setting + + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at yoshuawuyts@gmail.com, or through +IRC. All complaints will be reviewed and investigated and will result in a +response that is deemed necessary and appropriate to the circumstances. The +project team is obligated to maintain confidentiality with regard to the +reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..96806b56 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# Contributing +Contributions include code, documentation, answering user questions, running the +project's infrastructure, and advocating for all types of users. + +The project welcomes all contributions from anyone willing to work in good faith +with other contributors and the community. No contribution is too small and all +contributions are valued. + +This guide explains the process for contributing to the project's GitHub +Repository. + +- [Code of Conduct](#code-of-conduct) +- [Bad Actors](#bad-actors) +- [Developer Certificate of Origin](#developer-certificate-of-origin) + +## Code of Conduct +The project has a [Code of Conduct][./CODE_OF_CONDUCT.md] that *all* +contributors are expected to follow. This code describes the *minimum* behavior +expectations for all contributors. + +As a contributor, how you choose to act and interact towards your +fellow contributors, as well as to the community, will reflect back not only +on yourself but on the project as a whole. The Code of Conduct is designed and +intended, above all else, to help establish a culture within the project that +allows anyone and everyone who wants to contribute to feel safe doing so. + +Should any individual act in any way that is considered in violation of the +[Code of Conduct][./CODE_OF_CONDUCT.md], corrective actions will be taken. It is +possible, however, for any individual to *act* in such a manner that is not in +violation of the strict letter of the Code of Conduct guidelines while still +going completely against the spirit of what that Code is intended to accomplish. + +Open, diverse, and inclusive communities live and die on the basis of trust. +Contributors can disagree with one another so long as they trust that those +disagreements are in good faith and everyone is working towards a common +goal. + +## Bad Actors +All contributors to tacitly agree to abide by both the letter and +spirit of the [Code of Conduct][./CODE_OF_CONDUCT.md]. Failure, or +unwillingness, to do so will result in contributions being respectfully +declined. + +A *bad actor* is someone who repeatedly violates the *spirit* of the Code of +Conduct through consistent failure to self-regulate the way in which they +interact with other contributors in the project. In doing so, bad actors +alienate other contributors, discourage collaboration, and generally reflect +poorly on the project as a whole. + +Being a bad actor may be intentional or unintentional. Typically, unintentional +bad behavior can be easily corrected by being quick to apologize and correct +course *even if you are not entirely convinced you need to*. Giving other +contributors the benefit of the doubt and having a sincere willingness to admit +that you *might* be wrong is critical for any successful open collaboration. + +Don't be a bad actor. + +## Developer Certificate of Origin +All contributors must read and agree to the [Developer Certificate of +Origin (DCO)](../CERTIFICATE). + +The DCO allows us to accept contributions from people to the project, similarly +to how a license allows us to distribute our code. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..ba20edd0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,9 @@ +## Summary +Explain what is going on. + +## Your Environment +| Software | Version(s) | +| ------------------ | ---------- | +| hypercore-protocol | +| Rustc | +| Operating System | diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 155833c9..47ff4520 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,32 +1,23 @@ --- -name: Bug report -about: Create a report to help us improve -title: '' -labels: 'bug' -assignees: '' - +name: Bug Report +about: Did something not work as expected? --- -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. +# Bug Report +## Your Environment +| Software | Version(s) | +| ------------------ | ---------- | +| hypercore-protocol | +| Rustc | +| Operating System | -**Screenshots** -If applicable, add screenshots to help explain your problem. +## Expected Behavior +Tell us what should have happened. -**Context (please complete the following information):** - - OS/Distro + Version: [e.g. `macOS 10.15.5`] - - GitUI Version [e.g. `0.5`] - - Rust version: [e.g `1.44`] +## Current Behavior +Tell us what happens instead of the expected behavior. If you are seeing an +error, please include the full error message and stack trace. -**Additional context** -Add any other context about the problem here. +## Code Sample +Please provide a code repository, gist, code snippet or sample files to +reproduce the issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index d630a311..2f86a302 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,20 +1,43 @@ --- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'feature-request' -assignees: '' - +name: Feature Request +about: Want us to add something to hypercore-protocol? --- -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] +# Feature Request +## Summary +One paragraph explanation of the feature. + +## Motivation +Why are we doing this? What use cases does it support? What is the expected +outcome? + +## Guide-level explanation +Explain the proposal as if it was already included in the project and you +were teaching it to another programmer. That generally means: + +- Introducing new named concepts. +- Explaining the feature largely in terms of examples. +- If applicable, provide sample error messages, deprecation warnings, or + migration guidance. + +## Reference-level explanation +This is the technical portion of the feature request. Explain the design in +sufficient detail that: + +- Its interaction with other features is clear. +- It is reasonably clear how the feature would be implemented. +- Corner cases are dissected by example. -**Describe the solution you'd like** -A clear and concise description of what you want to happen. +## Drawbacks +Why should we _not_ do this? -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. +## Rationale and alternatives +- Why is this design the best in the space of possible designs? +- What other designs have been considered and what is the rationale for not + choosing them? +- What is the impact of not doing this? -**Additional context** -Add any other context or screenshots about the feature request here. +## Unresolved Questions +What related issues do you consider out of scope for this feature that could be +addressed in the future independently of the solution that comes out of this +feature? diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 00000000..be188e66 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,18 @@ +--- +name: Question +about: Have any questions regarding how hypercore-protocol works? +--- + +# Question +## Your Environment +| Software | Version(s) | +| ------------------ | ---------- | +| hypercore-protocol | +| Rustc | +| Operating System | + +## Question +Provide your question here. + +## Context +How has this issue affected you? What are you trying to accomplish? diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cfc46c12..d8205884 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,16 +1,21 @@ - + -This Pull Request fixes/closes #{issue_num}. +**Choose one:** is this a πŸ› bug fix, a πŸ™‹ feature, or a πŸ”¦ documentation change? -It changes the following: -- -- + -I followed the checklist: -- [ ] I added unittests -- [ ] I ran `make check` without errors -- [ ] I tested the overall application -- [ ] I added an appropriate item to the changelog \ No newline at end of file +## Checklist + +- [ ] tests pass +- [ ] tests and/or benchmarks are included +- [ ] documentation is changed or added + +## Context + + +## Semver Changes + diff --git a/.github/stale.yml b/.github/stale.yml index 3a8192c5..b8550d0f 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,18 +1,17 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 180 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 14 -# Issues with these labels will never be considered stale +# Configuration for probot-stale - https://github.com/probot/stale + +daysUntilStale: 90 +daysUntilClose: 7 exemptLabels: - pinned - security - - nostale -# Label to use when marking an issue as stale -staleLabel: dormant -# Comment to post when marking an issue as stale. Set to `false` to disable +exemptProjects: false +exemptMilestones: false +staleLabel: wontfix markComment: > This issue has been automatically marked as stale because it has not had - any activity half a year. It will be closed in 14 days if no further activity occurs. Thank you + recent activity. It will be closed if no further activity occurs. Thank you for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable +unmarkComment: false closeComment: false +limitPerRun: 30 diff --git a/.github/workflows/cargo-build.yml b/.github/workflows/cargo-build.yml new file mode 100644 index 00000000..9dd41254 --- /dev/null +++ b/.github/workflows/cargo-build.yml @@ -0,0 +1,84 @@ +name: cargo-build-matrix + +# Controls when the action will run. +on: + pull_request: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + push: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + ubuntu-build_and_test: + strategy: + matrix: + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: styfle/cancel-workflow-action@0.11.0 + if: ${{ !env.ACT }} + with: + access_token: ${{ github.token }} + - uses: actions/checkout@v3 + with: + fetch-depth: '0' + submodules: 'recursive' + set-safe-directory: 'true' + + - name: Restore build/ext + id: cache-ext-restore + uses: actions/cache/restore@v3 + if: ${{ !env.ACT }} + with: + path: | + ~/.cargo + key: ${{ runner.os }}-ext + - name: printenv + run: | + printenv + touch ~/GITHUB_TOKEN.txt + + - name: install rustup + run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && source "$HOME/.cargo/env" + + - name: sudo apt-get install -y make + run: | + printenv && sudo apt-get update && \ + sudo apt-get install -y make + + - name: cargo-c + run: | + make cargo-c + + - name: cargo-b + run: | + make cargo-b + + - name: cargo-b-release + run: | + make cargo-b-release + + - name: Run tests + run: source "$HOME/.cargo/env" && cargo test --verbose + + - name: Save build/ext + id: cache-ext-save + uses: actions/cache/save@v3 + if: ${{ !env.ACT }} + with: + path: | + ~/.cargo + key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }} + diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index da36d773..d0700b8f 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -15,6 +15,10 @@ jobs: steps: - uses: actions/checkout@v3 + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - name: Get version id: get_version @@ -83,7 +87,7 @@ jobs: if: matrix.os == 'macos-latest' id: shasum run: | - echo sha="$(shasum -a 256 ./release/gitui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT + echo sha="$(shasum -a 256 ./release/gnostr-tui-mac.tar.gz | awk '{printf $1}')" >> $GITHUB_OUTPUT - name: Extract release notes if: matrix.os == 'ubuntu-latest' @@ -107,6 +111,6 @@ jobs: env: COMMITTER_TOKEN: ${{ secrets.BREW_TOKEN }} with: - formula-name: gitui + formula-name: gnostr-tui # https://github.com/mislav/bump-homebrew-formula-action/issues/58 - formula-path: Formula/g/gitui.rb + formula-path: Formula/g/gnostr-tui.rb diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47dafd16..bd114c15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI +name: ci.yml on: schedule: @@ -17,114 +17,170 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - rust: [nightly, stable, '1.65'] + rust: [nightly, stable, '1.70'] runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - - name: Restore cargo cache + - name: git-submodule-update-${{ matrix.os }} + run: | + git submodule update --init --recursive || true + + - name: restore-cargo-cache-${{ matrix.os }} + if: ${{ !env.ACT }} uses: Swatinem/rust-cache@v2 env: cache-name: ci with: shared-key: ${{ matrix.os }}-${{ env.cache-name }}-${{ matrix.rust }} - - name: MacOS Workaround + - name: MacOS-Workaround-${{ matrix.rust }} + #${{ if in(matrix.os, 'macos', 'latest') }}: if: matrix.os == 'macos-latest' - run: cargo clean -p serde_derive -p thiserror + #if: ${{ !env.ACT }} + run: | + cargo clean -p serde_derive -p thiserror + #brew install filosottile/musl-cross/musl-cross - - name: Install Rust + - name: Install-Rust-${{ matrix.os }} + if: ${{ !env.ACT }} uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} components: clippy - - name: Build Debug + - name: make-rustup-install-${{ matrix.os }} + if: matrix.os != 'windows-latest' + run: | + make rustup-install || true + command -v apt-get && sudo apt-get update -y || true + command -v apt-get && sudo apt-get -y install musl-tools || true #command -v brew && brew install filosottile/musl-cross/musl-cross || true + + - name: make-rustup-target-add-${{ matrix.os }} + if: matrix.os != 'windows-latest' run: | - cargo build + make rustup-target-add + make rustup-target-add || rustup target add x86_64-unknown-linux-musl || true - - name: Run tests + - name: make-cargo-b-${{ matrix.os }} + if: matrix.os != 'windows-latest' + run: | + make cargo-b || cargo b + + - name: make-cargo-b-release-${{ matrix.os }} + if: matrix.os != 'windows-latest' + run: | + make cargo-b-release || cargo b --release + + - name: run-tests-${{ matrix.os }} + if: matrix.os != 'windows-latest' run: make test - - name: Run clippy + - name: make-release-linux-musl-${{ matrix.os }} #test-linux-musl + if: matrix.os != 'oops' run: | - make clippy + make rustup-install rustup-target-add release-linux-musl || rustup target add x86_64-unknown-linux-musl && make release-linux-musl - - name: Build Release - run: make build-release + - name: run-clippy-${{ matrix.os }} + if: matrix.os != 'windows-latest' + run: | + make clippy || cargo clippy - - name: Test Install + - name: build-release-${{ matrix.os }} + #if: matrix.os != 'windows-latest' + run: make build-release || cargo b --release + + - name: test-install-${{ matrix.os }} + #if: matrix.os != 'windows-latest' run: cargo install --path "." --force --locked - - name: Binary Size (unix) + - name: binary-size-(unix)-${{ matrix.os }} if: matrix.os != 'windows-latest' run: | - ls -l ./target/release/gitui + ls -l ./target/release/gnostr-tui - - name: Binary Size (win) + - name: binary-Size-(win)-${{ matrix.os }} if: matrix.os == 'windows-latest' run: | - ls -l ./target/release/gitui.exe + ls -l ./target/release - - name: Binary dependencies (mac) + - name: binary-dependencies-(mac) if: matrix.os == 'macos-latest' run: | - otool -L ./target/release/gitui + otool -L ./target/release/gnostr-tui - - name: Build MSI (windows) + - name: build-MSI-(windows) if: matrix.os == 'windows-latest' run: | cargo install cargo-wix --version 0.3.3 cargo wix --version - cargo wix -p gitui --no-build --nocapture --output ./target/wix/gitui.msi - ls -l ./target/wix/gitui.msi + cargo wix -p gnostr-tui --no-build --nocapture --output ./target/wix/gnostr-tui.msi + ls -l ./target/wix build-linux-musl: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - rust: [nightly, stable, '1.65'] + rust: [nightly, stable, '1.70'] continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - uses: actions/checkout@v3 + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - - name: Restore cargo cache + - name: restore-cargo-cache uses: Swatinem/rust-cache@v2 env: cache-name: ci with: key: ubuntu-latest-${{ env.cache-name }}-${{ matrix.rust }} - - name: Install Rust + - name: install-rust uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} targets: x86_64-unknown-linux-musl - + # The build would fail without manually installing the target. # https://github.com/dtolnay/rust-toolchain/issues/83 - - name: Manually install target + - name: manually-install-target + if: matrix.os != 'windows-latest' run: rustup target add x86_64-unknown-linux-musl - - name: Setup MUSL + - name: setup-musl + if: matrix.os != 'windows-latest' run: | - sudo apt-get -qq install musl-tools + sudo apt-get -qq -y update + sudo apt-get -qq -y install musl-tools || brew install filosottile/musl-cross/musl-cross || true - name: Build Debug + if: matrix.os != 'windows-latest' run: | + TARGET_CC=x86_64-linux-musl-gcc cargo build --target x86_64-unknown-linux-musl || true make build-linux-musl-debug - ./target/x86_64-unknown-linux-musl/debug/gitui --version + ./target/x86_64-unknown-linux-musl/debug/gnostr-tui --version - name: Build Release + if: matrix.os != 'windows-latest' run: | + TARGET_CC=x86_64-linux-musl-gcc cargo build --release --target x86_64-unknown-linux-musl || true make build-linux-musl-release - ./target/x86_64-unknown-linux-musl/release/gitui --version - ls -l ./target/x86_64-unknown-linux-musl/release/gitui + ./target/x86_64-unknown-linux-musl/release/gnostr-tui --version + ls -l ./target/x86_64-unknown-linux-musl/release/gnostr-tui - name: Test + if: matrix.os != 'windows-latest' run: | make test-linux-musl - name: Test Install + if: matrix.os != 'windows-latest' run: cargo install --path "." --force --locked build-linux-arm: @@ -132,10 +188,15 @@ jobs: strategy: fail-fast: false matrix: - rust: [nightly, stable, '1.65'] + rust: [nightly, stable, '1.70'] continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - name: Restore cargo cache uses: Swatinem/rust-cache@v2 @@ -149,7 +210,9 @@ jobs: with: toolchain: ${{ matrix.rust }} - name: Setup ARM toolchain + if: matrix.os != 'windows-latest' run: | + make rustup-target-add rustup target add aarch64-unknown-linux-gnu rustup target add armv7-unknown-linux-gnueabihf rustup target add arm-unknown-linux-gnueabihf @@ -164,21 +227,29 @@ jobs: echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH - name: Build Debug + if: matrix.os != 'windows-latest' run: | - make build-linux-arm-debug + make build-linux-arm-debug || cargo b - name: Build Release + if: matrix.os != 'windows-latest' run: | - make build-linux-arm-release - ls -l ./target/aarch64-unknown-linux-gnu/release/gitui || ls -l ./target/armv7-unknown-linux-gnueabihf/release/gitui || ls -l ./target/arm-unknown-linux-gnueabihf/release/gitui + make build-linux-arm-release || cargo b --release + ls -l ./target/aarch64-unknown-linux-gnu/release/gnostr-tui || ls -l ./target/armv7-unknown-linux-gnueabihf/release/gnostr-tui || ls -l ./target/arm-unknown-linux-gnueabihf/release/gnostr-tui linting: name: Lints runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - name: Restore cargo cache uses: Swatinem/rust-cache@v2 + if: ${{ !env.ACT }} env: cache-name: ci with: @@ -186,25 +257,30 @@ jobs: - name: Install Rust uses: dtolnay/rust-toolchain@stable + if: ${{ !env.ACT }} with: components: rustfmt - run: cargo fmt -- --check - name: cargo-sort + if: matrix.os != 'windows-latest' run: | cargo install cargo-sort --force cargo sort -c -w - name: cargo-deny install + if: matrix.os != 'windows-latest' run: | cargo install --locked cargo-deny - name: cargo-deny licenses + if: matrix.os != 'windows-latest' run: | cargo deny check licenses - name: cargo-deny bans + if: matrix.os != 'windows-latest' run: | cargo deny check bans @@ -213,9 +289,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' - name: Restore cargo cache uses: Swatinem/rust-cache@v2 + if: ${{ !env.ACT }} env: cache-name: ci with: @@ -223,8 +305,9 @@ jobs: - name: Install Rust uses: dtolnay/rust-toolchain@nightly - + - name: cargo-udeps + if: matrix.os != 'windows-latest' run: | # cargo install --locked cargo-udeps cargo install --git https://github.com/est31/cargo-udeps --locked @@ -235,21 +318,37 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' + - uses: rustsec/audit-check@v1 + if: ${{ !env.ACT }} with: token: ${{ secrets.GITHUB_TOKEN }} + ignore: RUSTSEC-2020-0071, RUSTSEC-2022-0004, RUSTSEC-2022-0011 log-test: name: Changelog Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + fetch-depth: '10' + submodules: 'recursive' + set-safe-directory: 'true' + - name: Extract release notes id: extract_release_notes uses: ffurrer2/extract-release-notes@v1 + if: ${{ !env.ACT }} with: release_notes_file: ./release-notes.txt - uses: actions/upload-artifact@v3 + if: ${{ !env.ACT }} with: name: release-notes.txt path: ./release-notes.txt diff --git a/.github/workflows/ghcr.io.yml b/.github/workflows/ghcr.io.yml new file mode 100644 index 00000000..bd25b565 --- /dev/null +++ b/.github/workflows/ghcr.io.yml @@ -0,0 +1,45 @@ +name: publish to ghcr.io +##REF:https://github.com/docker/login-action + +env: + GNOSTR_COMMAND: 'gnostr-tui' + +on: + push: + branches: + - master + - main + - v** + tags: + - v0.** + - v1.** + - v2.** + - v3.** + - v4.** + #branches-ignore: + # - 'releases/**-alpha' + #tags-ignore: + # - v999.** + workflow_dispatch: + +jobs: + push-store-image: + runs-on: ubuntu-latest + defaults: + run: + working-directory: '.' + steps: + - name: 'Checkout GitHub Action' + uses: actions/checkout@main + + - name: 'Login to GitHub Container Registry' + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{github.actor}} + password: ${{secrets.GITHUB_TOKEN}} + + - name: 'Build gnostr-tui image' + run: | + docker build . --tag ghcr.io/gnostr-org/gnostr-tui:latest + docker push ghcr.io/gnostr-org/gnostr-tui:latest diff --git a/.github/workflows/gnostr-alpine.yml b/.github/workflows/gnostr-alpine.yml new file mode 100755 index 00000000..f9adc3ec --- /dev/null +++ b/.github/workflows/gnostr-alpine.yml @@ -0,0 +1,47 @@ +name: gnostr-alpine + +on: + pull_request: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + push: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + +env: + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 + +jobs: + build: + runs-on: ubuntu-20.04 + + strategy: + fail-fast: false + matrix: + tag: [3.18] + + container: rust:alpine${{ matrix.tag }} + + steps: + ## notice: this is a pre checkout step + ## notice: additional operations can be done prior to checkout + - run: apk update && apk add bash cmake git python3 && python3 -m ensurepip + - run: printenv + - name: checkout@v3 fetch-depth submodules set-safe-dir true + uses: actions/checkout@v3 + with: + fetch-depth: '10' + submodules: 'true' + set-safe-directory: 'true' + ## notice: these are post checkout steps + - run: apk update && apk add autoconf automake build-base openssl-dev libtool make + - run: touch ~/GITHUB_TOKEN.txt + - run: make cargo-b-release diff --git a/.github/workflows/gnostr.yml b/.github/workflows/gnostr.yml new file mode 100644 index 00000000..d993f0aa --- /dev/null +++ b/.github/workflows/gnostr.yml @@ -0,0 +1,94 @@ +name: gnostr-matrix + +# Controls when the action will run. +on: + pull_request: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + push: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + env: + GNOSTR: "gnostr" + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - name: echo test + #if: ${{ !env.ACT }} + run: | + echo GNOSTR=${{ env.GNOSTR }} + echo GNOSTR1=${{ env.GNOSTR1 }} + env: + GNOSTR1: "GNOSTR1" + - uses: styfle/cancel-workflow-action@0.11.0 + if: ${{ !env.ACT }} + with: + access_token: ${{ github.token }} + - name: Restore deps + id: cache-deps-restore + uses: actions/cache/restore@v3 + if: ${{ !env.ACT }} + with: + path: | + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ runner.os }}-deps + + - uses: actions/checkout@v3 + with: + submodules: 'true' + set-safe-directory: 'true' + + - uses: actions-rs/toolchain@v1.0.6 + #if: ${{ !env.ACT }} + with: + toolchain: nightly + default: true + override: true + + - name: echo GNOSTR + #if: ${{ !env.ACT }} + run: | + echo $GNOSTR + + - name: apt-get update || brew install virtualenv + run: | + sudo apt-get update || brew install virtualenv + touch ~/GITHUB_TOKEN.txt + + - run: python3 -m pip install virtualenv + + - run: V=1 make + - run: V=1 make cargo-install-gnostr-legit + - run: V=1 make cargo-b-release + + - name: Save deps + id: cache-deps-save + uses: actions/cache/save@v3 + if: ${{ !env.ACT }} + with: + path: | + src/nostril + CMakeFiles/*.dir + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }} + diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml new file mode 100644 index 00000000..482459b8 --- /dev/null +++ b/.github/workflows/jekyll-gh-pages.yml @@ -0,0 +1,51 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll with GitHub Pages dependencies preinstalled + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100755 index 00000000..0bc02fb0 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,124 @@ +name: pre-release-matrix + +# Controls when the action will run. +on: + pull_request: + branches: + - 'master' + - 'main' + - '!v**' +# push: +# branches: +# - 'master' +# - 'main' +# - '!v**' + + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + permissions: write-all + env: + GNOSTR: "gnostr" + GNOSTR_ACT: "gnostr-act" + GNOSTR_CAT: "gnostr-cat" + GNOSTR_CLI: "gnostr-cli" + GNOSTR_CLIENT: "gnostr-client" + GNOSTR_COMMAND: "gnostr-command" + GNOSTR_FS: "gnostr-fs" + GNOSTR_GIT: "gnostr-git" + GNOSTR_GNODE: "gnostr-gnode" + GNOSTR_LEGIT: "gnostr-legit" + GNOSTR_LFS: "gnostr-lfs" + GNOSTR_PROXY: "gnostr-proxy" + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - name: echo test + #if: ${{ !env.ACT }} + run: | + echo GNOSTR=${{ env.GNOSTR }} + echo GNOSTR1=${{ env.GNOSTR1 }} + env: + GNOSTR1: "GNOSTR1" + - uses: styfle/cancel-workflow-action@0.11.0 + if: ${{ !env.ACT }} + with: + access_token: ${{ github.token }} + - name: Restore deps + id: cache-deps-restore + uses: actions/cache/restore@v3 + if: ${{ !env.ACT }} + with: + path: | + src + $INPUT_PATH + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ runner.os }}-deps + + - uses: actions/checkout@v3 + with: + submodules: 'true' + set-safe-directory: 'true' + + - uses: actions-rs/toolchain@v1.0.6 + #if: ${{ !env.ACT }} + with: + toolchain: nightly + default: true + override: true + + - name: echo GNOSTR + #if: ${{ !env.ACT }} + run: | + echo $GNOSTR + touch ~/GITHUB_TOKEN.txt + + - name: apt-get update || brew install virtualenv + run: | + sudo apt-get update && sudo apt-get install virtualenv help2man || brew install virtualenv help2man + touch ~/GITHUB_TOKEN.txt + + - run: python3 -m pip install virtualenv + + - run: V=1 make + - run: V=1 make cargo-doc + - run: V=1 make cargo-install-gnostr-legit + - run: V=1 make cargo-b-release + + - name: "Build release" + run: | + shasum -a 256 target/release/gnostr-tui > target/release/gnostr-tui.sha256.txt + + - name: Save state + run: echo "{name}={value}" >> $GITHUB_STATE + - name: Set output + run: echo "{name}={value}" >> $GITHUB_OUTPUT + - uses: "marvinpinto/action-automatic-releases@latest" + if: ${{ !env.ACT }} + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: ${{ matrix.os }} + prerelease: true + title: "Pre-Release Build" + files: | + target/release/* + target/doc/* + + - name: Save deps + id: cache-deps-save + uses: actions/cache/save@v3 + if: ${{ !env.ACT }} + with: + path: | + src + $INPUT_PATH + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100755 index 00000000..b46f3cdf --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,117 @@ +name: release-matrix + +# Controls when the action will run. +on: + push: + tags: + - "v*" + + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + build: + permissions: write-all + env: + GNOSTR: "gnostr" + GNOSTR_ACT: "gnostr-act" + GNOSTR_CAT: "gnostr-cat" + GNOSTR_CLI: "gnostr-cli" + GNOSTR_CLIENT: "gnostr-client" + GNOSTR_COMMAND: "gnostr-command" + GNOSTR_FS: "gnostr-fs" + GNOSTR_GIT: "gnostr-git" + GNOSTR_GNODE: "gnostr-gnode" + GNOSTR_LEGIT: "gnostr-legit" + GNOSTR_LFS: "gnostr-lfs" + GNOSTR_PROXY: "gnostr-proxy" + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - name: echo test + #if: ${{ !env.ACT }} + run: | + echo GNOSTR=${{ env.GNOSTR }} + echo GNOSTR1=${{ env.GNOSTR1 }} + env: + GNOSTR1: "GNOSTR1" + - uses: styfle/cancel-workflow-action@0.11.0 + if: ${{ !env.ACT }} + with: + access_token: ${{ github.token }} + - name: Restore deps + id: cache-deps-restore + uses: actions/cache/restore@v3 + if: ${{ !env.ACT }} + with: + path: | + src + $INPUT_PATH + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ runner.os }}-deps + + - uses: actions/checkout@v3 + with: + submodules: 'true' + set-safe-directory: 'true' + + - uses: actions-rs/toolchain@v1.0.6 + #if: ${{ !env.ACT }} + with: + toolchain: nightly + default: true + override: true + + - name: echo GNOSTR + #if: ${{ !env.ACT }} + run: | + echo $GNOSTR + touch ~/GITHUB_TOKEN.txt + + - name: apt-get update || brew install virtualenv + run: | + sudo apt-get update && sudo apt-get install virtualenv || brew install virtualenv + touch ~/GITHUB_TOKEN.txt + + - run: python3 -m pip install virtualenv + + - run: V=1 make + - run: V=1 make cargo-install-gnostr-legit + - run: V=1 make cargo-b-release + + - name: "Build release" + run: | + shasum -a 256 target/release//gnostr-tui > target/release/gnostr-tui.sha256.txt + mv target gnostr-tui-$RUNNER_OS-$RUNNER_ARCH + + - name: Save state + run: echo "{name}={value}" >> $GITHUB_STATE + - name: Set output + run: echo "{name}={value}" >> $GITHUB_OUTPUT + - uses: "marvinpinto/action-automatic-releases@latest" + if: ${{ !env.ACT }} + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: ${{ matrix.os }} + prerelease: false + title: "Release Build" + files: | + gnostr-tui-$RUNNER_OS-$RUNNER_ARCH/gnostr-tui + gnostr-tui-$RUNNER_OS-$RUNNER_ARCH/gnostr-tui.sha256.txt + + - name: Save deps + id: cache-deps-save + uses: actions/cache/save@v3 + if: ${{ !env.ACT }} + with: + path: | + src + $INPUT_PATH + ~/.cargo + ~/.rustup + CARGO_TARGET_DIR + key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }} diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml new file mode 100644 index 00000000..6c3001b9 --- /dev/null +++ b/.github/workflows/static.yml @@ -0,0 +1,43 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + # Upload entire repository + path: 'doc' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 From 9e7b8e889fa5b069e341704b4a5388d561bf5209 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:45:23 -0500 Subject: [PATCH 12/44] deny.toml -> .cargo/deny.toml deny.toml --- .cargo/deny.toml | 29 +++++++++++++++++++++++++++++ deny.toml | 27 +-------------------------- 2 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 .cargo/deny.toml mode change 100644 => 120000 deny.toml diff --git a/.cargo/deny.toml b/.cargo/deny.toml new file mode 100644 index 00000000..f8134a2e --- /dev/null +++ b/.cargo/deny.toml @@ -0,0 +1,29 @@ +[licenses] +unlicensed = "deny" +allow = [ + "MIT", + "Apache-2.0", + "BSD-2-Clause", + "BSD-3-Clause", + "CC0-1.0", + "ISC", + "MPL-2.0" +] +copyleft = "warn" +allow-osi-fsf-free = "neither" +default = "deny" +confidence-threshold = 0.9 + +[[licenses.exceptions]] +allow = ["Unicode-DFS-2016"] +name = "unicode-ident" +version = "1.0.3" + +[bans] +## multiple-versions = "deny" +skip-tree = [ + { name = "windows-sys" } +] + +[advisories] +ignore = [ "RUSTSEC-2022-0092", "RUSTSEC-2022-0011", "RUSTSEC-2022-0004", "RUSTSEC-2020-0071","RUSTSEC-2021-0145" ] diff --git a/deny.toml b/deny.toml deleted file mode 100644 index ed75622d..00000000 --- a/deny.toml +++ /dev/null @@ -1,26 +0,0 @@ -[licenses] -unlicensed = "deny" -allow = [ - "MIT", - "Apache-2.0", - "BSD-2-Clause", - "BSD-3-Clause", - "CC0-1.0", - "ISC", - "MPL-2.0" -] -copyleft = "warn" -allow-osi-fsf-free = "neither" -default = "deny" -confidence-threshold = 0.9 - -[[licenses.exceptions]] -allow = ["Unicode-DFS-2016"] -name = "unicode-ident" -version = "1.0.3" - -[bans] -multiple-versions = "deny" -skip-tree = [ - { name = "windows-sys" } -] diff --git a/deny.toml b/deny.toml new file mode 120000 index 00000000..b462239b --- /dev/null +++ b/deny.toml @@ -0,0 +1 @@ +.cargo/deny.toml \ No newline at end of file From 8cd9782421830e75d821c01ce76ddfb3f387c97f Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:46:21 -0500 Subject: [PATCH 13/44] Cargo.toml --- Cargo.toml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ce834bdf..c0f2d19b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,17 +1,17 @@ [package] -name = "gitui" -version = "0.24.3" -authors = ["extrawurst "] +name = "gnostr-tui" +version = "0.0.5" +authors = ["gnostr ", "extrawurst "] description = "blazing fast terminal-ui for git" edition = "2021" -rust-version = "1.65" +rust-version = "1.70" exclude = [".github/*", ".vscode/*", "assets/*"] homepage = "https://github.com/extrawurst/gitui" repository = "https://github.com/extrawurst/gitui" readme = "README.md" license = "MIT" categories = ["command-line-utilities"] -keywords = ["git", "gui", "cli", "terminal", "ui"] +keywords = ["git", "gui", "cli", "terminal", "ui", "gnostr"] [dependencies] anyhow = "1.0" @@ -51,7 +51,13 @@ unicode-truncate = "0.2" unicode-width = "0.1" which = "4.4" +[package.metadata.cargo-udeps.ignore] +normal = ["cargo-audit"] +development = ["cargo-audit"] +#build = [] + [dev-dependencies] +cargo-audit = { version = "0.18.3", features = ["binary-scanning"] } pretty_assertions = "1.4" tempfile = "3.4" @@ -76,8 +82,8 @@ lto = true opt-level = 'z' # Optimize for size. codegen-units = 1 -# make debug build as fast as release -# usage of utf8 encoding inside tui +# make debug build as fast as release +# usage of utf8 encoding inside tui # makes their debug profile slow [profile.dev.package."ratatui"] opt-level = 3 From 809510f05b1b72a563a7439e09d8361d4d5e45fb Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:47:24 -0500 Subject: [PATCH 14/44] GNUmakefile:Makefile:cargo.mk:docker.mk --- GNUmakefile | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 49 +++++++++------ cargo.mk | 38 ++++++++++++ docker.mk | 37 +++++++++++ 4 files changed, 280 insertions(+), 19 deletions(-) create mode 100755 GNUmakefile create mode 100755 cargo.mk create mode 100644 docker.mk diff --git a/GNUmakefile b/GNUmakefile new file mode 100755 index 00000000..957a4e0f --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,175 @@ +ifeq ($(project),) +PROJECT_NAME := $(notdir $(PWD)) +else +PROJECT_NAME := $(project) +endif +export PROJECT_NAME + +## : +## doc.rust-lang.org/cargo/reference/profiles.html#custom-profiles +ifeq ($(profile),) +## make profile=release +PROFILE=release +else +## make profile=release-with-debug +PROFILE=release-with-debug +endif + +OS :=$(shell uname -s) +export OS +OS_VERSION :=$(shell uname -r) +export OS_VERSION +ARCH :=$(shell uname -m) +export ARCH +ifeq ($(ARCH),x86_64) +TRIPLET :=x86_64-linux-gnu +export TRIPLET +endif +ifeq ($(ARCH),arm64) +TRIPLET :=aarch64-linux-gnu +export TRIPLET +endif +ifeq ($(ARCH),arm64) +TRIPLET :=aarch64-linux-gnu +export TRIPLET +endif + +ifeq ($(reuse),true) +REUSE :=-r +else +REUSE := +endif +export REUSE +ifeq ($(bind),true) +BIND :=-b +else +BIND := +endif +export BIND + +ifeq ($(token),) +GITHUB_TOKEN :=$(shell touch ~/GITHUB_TOKEN.txt && cat ~/GITHUB_TOKEN.txt || echo "0") +else +GITHUB_TOKEN :=$(shell echo $(token)) +endif +export GITHUB_TOKEN + +export $(cat ~/GITHUB_TOKEN) && make act + +PYTHON := $(shell which python) +export PYTHON +PYTHON2 := $(shell which python2) +export PYTHON2 +PYTHON3 := $(shell which python3) +export PYTHON3 + +PIP := $(shell which pip) +export PIP +PIP2 := $(shell which pip2) +export PIP2 +PIP3 := $(shell which pip3) +export PIP3 + +PYTHON_VENV := $(shell python -c "import sys; sys.stdout.write('1') if hasattr(sys, 'base_prefix') else sys.stdout.write('0')") +PYTHON3_VENV := $(shell python3 -c "import sys; sys.stdout.write('1') if hasattr(sys, 'real_prefix') else sys.stdout.write('0')") + +python_version_full := $(wordlist 2,4,$(subst ., ,$(shell python3 --version 2>&1))) +python_version_major := $(word 1,${python_version_full}) +python_version_minor := $(word 2,${python_version_full}) +python_version_patch := $(word 3,${python_version_full}) + +my_cmd.python.3 := $(PYTHON3) some_script.py3 +my_cmd := ${my_cmd.python.${python_version_major}} + +PYTHON_VERSION := ${python_version_major}.${python_version_minor}.${python_version_patch} +PYTHON_VERSION_MAJOR := ${python_version_major} +PYTHON_VERSION_MINOR := ${python_version_minor} + +export python_version_major +export python_version_minor +export python_version_patch +export PYTHON_VERSION + +CARGO:=$(shell which cargo) +export CARGO +RUSTC:=$(shell which rustc) +export RUSTC +RUSTUP:=$(shell which rustup) +export RUSTUP +BREW:=$(shell which brew) +export BREW +APT_GET:=$(shell which apt-get) +export APT_GET + +HELP2MAN:=$(shell which help2man) +export HELP2MAN +-: + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?##/ {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) +help:## help + @sed -n 's/^##//p' ${MAKEFILE_LIST} | column -t -s ':' | sed -e 's/^/ /' +## : +## RUSTUP + +rustup-install:rustup-install-stable## rustup-install +rustup-install-stable:## rustup-install-stable + [ -x "$(shell command -v $(APT_GET))" ] && sudo $(APT_GET) -y install musl-tools || \ + [ -x "$(shell command -v $(BREW))" ] && $(BREW) install filosottile/musl-cross/musl-cross || true + [ -x "$(shell command -v $(RUSTUP))" ] || \ + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain stable --profile default || \ + . "$(HOME)/.cargo/env" || true + [ -x "$(shell command -v $(RUSTUP))" ] && $(RUSTUP) default stable + +rustup-install-nightly:## rustup-install-nightly + [ -x "$(shell command -v $(APT_GET))" ] && sudo $(APT_GET) -y install musl-tools || \ + [ -x "$(shell command -v $(BREW))" ] && $(BREW) install filosottile/musl-cross/musl-cross || true + [ -x "$(shell command -v $(RUSTUP))" ] || \ + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain nightly --profile default || \ + . "$(HOME)/.cargo/env" || true + [ -x "$(shell command -v $(RUSTUP))" ] && $(RUSTUP) default nightly + +rustup-target-add:## rustup-target-add +## rustup target add x86_64-unknown-linux-musl + rustup target add x86_64-unknown-linux-musl +## rustup target add aarch64-unknown-linux-gnu + rustup target add aarch64-unknown-linux-gnu + rustup target add aarch64-unknown-linux-gnu +## ARM64 Linux (kernel 4.1, glibc 2.17+) 1 + rustup target add i686-pc-windows-gnu +## 32-bit MinGW (Windows 7+) 2 3 + rustup target add i686-pc-windows-msvc +## 32-bit MSVC (Windows 7+) 2 3 + rustup target add i686-unknown-linux-gnu +## 32-bit Linux (kernel 3.2+, glibc 2.17+) 3 + rustup target add x86_64-apple-darwin +## 64-bit macOS (10.12+, Sierra+) + rustup target add x86_64-pc-windows-gnu +## 64-bit MinGW (Windows 7+) 2 + rustup target add x86_64-pc-windows-msvc +## 64-bit MSVC (Windows 7+) 2 + rustup target add x86_64-unknown-linux-gnu +## 64-bit Linux (kernel 3.2+, glibc 2.17+) +## : + +cargo-b:## cargo-b + [ -x "$(shell command -v $(RUSTUP))" ] || $(MAKE) rustup-install-stable + [ -x "$(shell command -v $(CARGO))" ] && $(CARGO) build +cargo-b-release:## cargo-b-release + [ -x "$(shell command -v $(RUSTUP))" ] || $(MAKE) rustup-install-stable + [ -x "$(shell command -v $(CARGO))" ] && $(CARGO) build --release +cargo-c:## cargo-c + [ -x "$(shell command -v $(RUSTC))" ] || $(MAKE) rustup-install-stable + [ -x "$(shell command -v $(CARGO))" ] && $(CARGO) c +install:cargo-install## install +cargo-i:## cargo-i + [ -x "$(shell command -v $(RUSTC))" ] || $(MAKE) rustup-install-stable + [ -x "$(shell command -v $(CARGO))" ] && $(CARGO) install --path . + +.PHONY:man ## :) +man: + mkdir -p man + [ -x "$(shell command -v $(HELP2MAN))" ] && $(HELP2MAN) ./target/release/gnostr-tui > man/gnostr-tui.1 || cat man/gnostr-tui.1 + +-include Makefile +-include cargo.mk +-include docker.mk +-include act.mk diff --git a/Makefile b/Makefile index c25c5e6e..69bbfb89 100644 --- a/Makefile +++ b/Makefile @@ -19,43 +19,54 @@ build-release: cargo build --release release-mac: build-release - strip target/release/gitui - otool -L target/release/gitui + strip target/release/gnostr-tui + otool -L target/release/gnostr-tui mkdir -p release - tar -C ./target/release/ -czvf ./release/gitui-mac.tar.gz ./gitui - ls -lisah ./release/gitui-mac.tar.gz + tar -C ./target/release/ -czvf ./release/gnostr-tui-mac.tar.gz ./gnostr-tui + ls -lisah ./release/gnostr-tui-mac.tar.gz release-win: build-release mkdir -p release - tar -C ./target/release/ -czvf ./release/gitui-win.tar.gz ./gitui.exe + tar -C ./target/release/ -czvf ./release/gnostr-tui-win.tar.gz ./gnostr-tui cargo install cargo-wix --version 0.3.3 - cargo wix -p gitui --no-build --nocapture --output ./release/gitui.msi - ls -l ./release/gitui.msi + cargo wix -p gnostr-tui --no-build --nocapture --output ./release/gnostr-tui.msi + ls -l ./release/gnostr-tui.msi release-linux-musl: build-linux-musl-release - strip target/x86_64-unknown-linux-musl/release/gitui + strip target/x86_64-unknown-linux-musl/release/gnostr-tui mkdir -p release - tar -C ./target/x86_64-unknown-linux-musl/release/ -czvf ./release/gitui-linux-musl.tar.gz ./gitui + tar -C ./target/x86_64-unknown-linux-musl/release/ -czvf ./release/gnostr-tui-linux-musl.tar.gz ./gnostr-tui build-linux-musl-debug: - cargo build --target=x86_64-unknown-linux-musl + TARGET_CC=x86_64-linux-musl-gcc cargo build --target x86_64-unknown-linux-musl build-linux-musl-release: - cargo build --release --target=x86_64-unknown-linux-musl + TARGET_CC=x86_64-linux-musl-gcc cargo build --release --target x86_64-unknown-linux-musl test-linux-musl: - cargo test --workspace --target=x86_64-unknown-linux-musl + @cargo clean --target x86_64-unknown-linux-musl + CC=x86_64-linux-musl-gcc \ +CXX=x86_64-linux-musl-g++ \ +AS=x86_64-linux-musl-as \ +##AR=x86_64-linux-musl-gcc-ar \ +NM=x86_64-linux-musl-gcc-nm \ +RANLIB=x86_64-linux-musl-gcc-ranlib \ +LD=x86_64-linux-musl-ld \ +STRIP=x86_64-linux-musl-strip \ +TARGET_CC=x86_64-linux-musl-gcc cargo test --workspace --target x86_64-unknown-linux-musl || \ +cargo test --workspace --target x86_64-unknown-linux-musl + release-linux-arm: build-linux-arm-release mkdir -p release - aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/gitui - arm-linux-gnueabihf-strip target/armv7-unknown-linux-gnueabihf/release/gitui - arm-linux-gnueabihf-strip target/arm-unknown-linux-gnueabihf/release/gitui + aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/gnostr-tui + arm-linux-gnueabihf-strip target/armv7-unknown-linux-gnueabihf/release/gnostr-tui + arm-linux-gnueabihf-strip target/arm-unknown-linux-gnueabihf/release/gnostr-tui - tar -C ./target/aarch64-unknown-linux-gnu/release/ -czvf ./release/gitui-linux-aarch64.tar.gz ./gitui - tar -C ./target/armv7-unknown-linux-gnueabihf/release/ -czvf ./release/gitui-linux-armv7.tar.gz ./gitui - tar -C ./target/arm-unknown-linux-gnueabihf/release/ -czvf ./release/gitui-linux-arm.tar.gz ./gitui + tar -C ./target/aarch64-unknown-linux-gnu/release/ -czvf ./release/gnostr-tui-linux-aarch64.tar.gz ./gnostr-tui + tar -C ./target/armv7-unknown-linux-gnueabihf/release/ -czvf ./release/gnostr-tui-linux-armv7.tar.gz ./gnostr-tui + tar -C ./target/arm-unknown-linux-gnueabihf/release/ -czvf ./release/gnostr-tui-linux-arm.tar.gz ./gnostr-tui build-linux-arm-debug: cargo build --target=aarch64-unknown-linux-gnu @@ -94,4 +105,4 @@ licenses: cargo bundle-licenses --format toml --output THIRDPARTY.toml clean: - cargo clean \ No newline at end of file + cargo clean diff --git a/cargo.mk b/cargo.mk new file mode 100755 index 00000000..0459a5eb --- /dev/null +++ b/cargo.mk @@ -0,0 +1,38 @@ +## CARGO +cargo-help:### cargo-help + @awk 'BEGIN {FS = ":.*?###"} /^[a-zA-Z_-]+:.*?###/ {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +cargo-install:### cargo install --path . +## cargo install --locked --path `pwd` + @$(CARGO) install --locked --path $(PWD) + +cargo-i-gnostr-legit:cargo-install-gnostr-legit### cargo-i-gnostr-legit +cargo-install-gnostr-legit: +## cargo install --bins --path ./legit + @$(CARGO) install --bins $(QUIET) --path ./legit + +cargo-bench:### cargo-bench +## cargo bench + @$(CARGO) bench + +cargo-examples:### cargo-examples +## cargo b --examples + @$(CARGO) b --examples + +cargo-report:### cargo-report +## cargo report future-incompatibilities --id 1 + $(CARGO) report future-incompatibilities --id 1 + +cargo-doc:### cargo-doc +## cargo doc +## cargo doc --no-deps +## cargo doc --no-deps --open + $(CARGO) doc #--no-deps #--open + +cargo-nightly-udeps:### cargo-nightly-udeps +## cargo +nightly udeps + $(CARGO) +nightly udeps + +## : +# vim: set noexpandtab: +# vim: set setfiletype make diff --git a/docker.mk b/docker.mk new file mode 100644 index 00000000..b0315496 --- /dev/null +++ b/docker.mk @@ -0,0 +1,37 @@ +## detect ARCH for buildx +ARCH :=$(shell uname -m) +export ARCH +ifeq ($(ARCH),x86_64) +TARGET :=amd64 +export TARGET +endif +ifeq ($(ARCH),arm64) +TARGET :=arm64 +export TARGET +endif + +DOCKER=$(shell which docker) +export DOCKER +PWD=$(shell echo `pwd`) +export PWD + +default: + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?##/ {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +dockerx:docker-buildx## docker-buildx +docker-build:## docker build -f Dockerfile -t gnostr-tui . + @./gnostr-tui-docker -df start + @$(DOCKER) pull ghcr.io/gnostr-org/gnostr-tui:latest + @$(DOCKER) build -f Dockerfile -t gnostr-tui . +docker-buildx:## docker buildx build sequence + @./gnostr-tui-docker -df start + @$(DOCKER) run --privileged --rm tonistiigi/binfmt --install all + @$(DOCKER) buildx ls + @$(DOCKER) buildx create --use --name gnostr-tui-buildx || true + @$(DOCKER) buildx build -t gnostr-tui --platform linux/arm64,linux/amd64 . + @$(DOCKER) buildx build -t gnostr-tui --platform linux/$(TARGET) . --load + +docker-package-buildx: + @docker build . --tag ghcr.io/gnostr-org/gnostr-tui:latest +docker-package-pushx: + @$(DOCKER) push ghcr.io/gnostr-org/gnostr-tui:latest From 95a74e86ec02598c6d5d5a6f32885d9b66d32032 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:48:26 -0500 Subject: [PATCH 15/44] .cargo/audit.toml --- .cargo/audit.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cargo/audit.toml b/.cargo/audit.toml index 46ec91ce..c32e7c0a 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -1,2 +1,2 @@ [advisories] -ignore = [] \ No newline at end of file +ignore = [ "RUSTSEC-2022-0092", "RUSTSEC-2022-0011", "RUSTSEC-2022-0004", "RUSTSEC-2020-0071" ] From d4b2a2ec838844d9bc8e49860db5aafb03c1ee98 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:48:54 -0500 Subject: [PATCH 16/44] .clippy.toml --- .clippy.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clippy.toml b/.clippy.toml index b1e156da..7c7c792b 100644 --- a/.clippy.toml +++ b/.clippy.toml @@ -1,2 +1,2 @@ -msrv = "1.65.0" -cognitive-complexity-threshold = 18 \ No newline at end of file +msrv = "1.70.0" +cognitive-complexity-threshold = 18 From f9d0dee4ad313c44c78386a4f8b8984b153186a5 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:49:10 -0500 Subject: [PATCH 17/44] .gitmodules --- .gitmodules | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..c25ee5cb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "gnostr-legit"] + path = legit + url = https://github.com/gnostr-org/gnostr-legit.git + ignore = dirty From f5d7cd9a50cdeacd4582ca5ea79bcc4941b558db Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 17:49:29 -0500 Subject: [PATCH 18/44] legit --- legit | 1 + 1 file changed, 1 insertion(+) create mode 160000 legit diff --git a/legit b/legit new file mode 160000 index 00000000..000006dd --- /dev/null +++ b/legit @@ -0,0 +1 @@ +Subproject commit 000006dd288f68f7b8b2955cd717807cb51bd9cc From 02bd5aff77407d3dacf8f8566e01ddcdbae7531c Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 18:01:32 -0500 Subject: [PATCH 19/44] Dockerfile --- Dockerfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..eb300a67 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +#FROM emscripten\/emsdk\:latest as base +FROM rust:latest as base +LABEL org.opencontainers.image.source="https://github.com/gnostr-org/gnostr-tui" +LABEL org.opencontainers.image.description="gnostr-tui-docker" +RUN touch updated +RUN echo $(date +%s) > updated +RUN apt-get update +RUN apt-get install bash libssl-dev pkg-config python-is-python3 systemd -y +RUN chmod +x /usr/bin/systemctl +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +WORKDIR /tmp +RUN git clone --recurse-submodules -j2 --branch v0.0.5 --depth 1 https://github.com/gnostr-org/gnostr-tui.git +WORKDIR /tmp/gnostr-tui +RUN cargo build --release && cargo install --path . +RUN install ./serve /usr/local/bin || true +ENV PATH=$PATH:/usr/bin/systemctl +RUN ps -p 1 -o comm= +EXPOSE 80 6102 8080 ${PORT} +VOLUME /src +FROM base as gnostr-tui + From 74596309209bfdb316b0b60c48afb5ac286196cd Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:13:14 -0500 Subject: [PATCH 20/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 .github/workflows/gnostr-tui-docker.yml diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml new file mode 100755 index 00000000..7d30aa54 --- /dev/null +++ b/.github/workflows/gnostr-tui-docker.yml @@ -0,0 +1,47 @@ +name: gnostr-tui-docker + +on: + pull_request: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + push: + branches: + - '*' + - '*/*' + - '**' + - 'master' + - 'main' + +env: + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 + +jobs: + build: + runs-on: ubuntu-20.04 + + strategy: + fail-fast: false + matrix: + tag: [3.18] + + container: ghcr.io/gnostr-org/gnostr-tui:latest + + steps: + ## notice: this is a pre checkout step + ## notice: additional operations can be done prior to checkout + - run: apk update && apk add bash cmake git python3 && python3 -m ensurepip + - run: printenv + - name: checkout@v3 fetch-depth submodules set-safe-dir true + uses: actions/checkout@v3 + with: + fetch-depth: '10' + submodules: 'true' + set-safe-directory: 'true' + ## notice: these are post checkout steps + - run: apk update && apk add autoconf automake build-base openssl-dev libtool make + - run: touch ~/GITHUB_TOKEN.txt + - run: make cargo-b-release From 6eacdb78b773610c552017d567387761ca8de6f8 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:20:26 -0500 Subject: [PATCH 21/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml index 7d30aa54..aec2d5c0 100755 --- a/.github/workflows/gnostr-tui-docker.yml +++ b/.github/workflows/gnostr-tui-docker.yml @@ -42,6 +42,6 @@ jobs: submodules: 'true' set-safe-directory: 'true' ## notice: these are post checkout steps - - run: apk update && apk add autoconf automake build-base openssl-dev libtool make + - run: apt-get update && apt-get -y add autoconf automake build-base openssl-dev libtool make - run: touch ~/GITHUB_TOKEN.txt - run: make cargo-b-release From 5cd1239f805bf23dffa83fc826121ca72acd00fa Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:22:11 -0500 Subject: [PATCH 22/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml index aec2d5c0..12c78d12 100755 --- a/.github/workflows/gnostr-tui-docker.yml +++ b/.github/workflows/gnostr-tui-docker.yml @@ -33,7 +33,7 @@ jobs: steps: ## notice: this is a pre checkout step ## notice: additional operations can be done prior to checkout - - run: apk update && apk add bash cmake git python3 && python3 -m ensurepip + - run: apt-get update && apt-get add -y bash cmake git python3 && python3 -m ensurepip - run: printenv - name: checkout@v3 fetch-depth submodules set-safe-dir true uses: actions/checkout@v3 From 1acbd92bebe712ad029accf8ce041db02372e42b Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:23:42 -0500 Subject: [PATCH 23/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml index 12c78d12..58cb1eb6 100755 --- a/.github/workflows/gnostr-tui-docker.yml +++ b/.github/workflows/gnostr-tui-docker.yml @@ -33,7 +33,7 @@ jobs: steps: ## notice: this is a pre checkout step ## notice: additional operations can be done prior to checkout - - run: apt-get update && apt-get add -y bash cmake git python3 && python3 -m ensurepip + - run: apt-get update && apt-get install -y bash cmake git python3 && python3 -m ensurepip - run: printenv - name: checkout@v3 fetch-depth submodules set-safe-dir true uses: actions/checkout@v3 @@ -42,6 +42,6 @@ jobs: submodules: 'true' set-safe-directory: 'true' ## notice: these are post checkout steps - - run: apt-get update && apt-get -y add autoconf automake build-base openssl-dev libtool make + - run: apt-get update && apt-get -y install autoconf automake build-base openssl-dev libtool make - run: touch ~/GITHUB_TOKEN.txt - run: make cargo-b-release From 03243af494c6263feca651a8c418ace2d1aae0f1 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:25:41 -0500 Subject: [PATCH 24/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml index 58cb1eb6..7eba0198 100755 --- a/.github/workflows/gnostr-tui-docker.yml +++ b/.github/workflows/gnostr-tui-docker.yml @@ -33,7 +33,7 @@ jobs: steps: ## notice: this is a pre checkout step ## notice: additional operations can be done prior to checkout - - run: apt-get update && apt-get install -y bash cmake git python3 && python3 -m ensurepip + - run: apt-get update && apt-get install -y bash cmake git - run: printenv - name: checkout@v3 fetch-depth submodules set-safe-dir true uses: actions/checkout@v3 From c39caea72748695db074a4a7d1dbace3dc735bb6 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:27:57 -0500 Subject: [PATCH 25/44] .github/workflows/gnostr-tui-docker.yml --- .github/workflows/gnostr-tui-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gnostr-tui-docker.yml b/.github/workflows/gnostr-tui-docker.yml index 7eba0198..1501ca00 100755 --- a/.github/workflows/gnostr-tui-docker.yml +++ b/.github/workflows/gnostr-tui-docker.yml @@ -42,6 +42,6 @@ jobs: submodules: 'true' set-safe-directory: 'true' ## notice: these are post checkout steps - - run: apt-get update && apt-get -y install autoconf automake build-base openssl-dev libtool make + - run: apt-get update && apt-get -y install autoconf automake libssl-dev libtool make pkg-config - run: touch ~/GITHUB_TOKEN.txt - run: make cargo-b-release From 875585fa37d0c14f786a20bae8ee4ef2532c5c11 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:48:55 -0500 Subject: [PATCH 26/44] gnostr-tui-docker --- gnostr-tui-docker | 290 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100755 gnostr-tui-docker diff --git a/gnostr-tui-docker b/gnostr-tui-docker new file mode 100755 index 00000000..5f78c7d2 --- /dev/null +++ b/gnostr-tui-docker @@ -0,0 +1,290 @@ +#!/usr/bin/env bash +DOCKERFILE="\ +#FROM emscripten\/emsdk\:latest as base +FROM rust:latest as base +LABEL org.opencontainers.image.source=\"https://github.com/gnostr-org/gnostr-tui\" +LABEL org.opencontainers.image.description=\"gnostr-tui-docker\" +RUN touch updated +RUN echo \$(date +%s) > updated +RUN apt-get update +RUN apt-get install bash libssl-dev pkg-config python-is-python3 systemd -y +RUN chmod +x /usr/bin/systemctl +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +WORKDIR /tmp +RUN git clone --recurse-submodules -j2 --branch v0.0.5 --depth 1 https://github.com/gnostr-org/gnostr-tui.git +WORKDIR /tmp/gnostr-tui +RUN cargo build --release && cargo install --path . +RUN install ./serve /usr/local/bin || true +ENV PATH=\$PATH:/usr/bin/systemctl +RUN ps -p 1 -o comm= +EXPOSE 80 6102 8080 \${PORT} +VOLUME /src +FROM base as gnostr-tui +" +echo -e "$DOCKERFILE" > Dockerfile + +[[ -z "$(command -v gnostr-tui-docker)" ]] && \ + install $0 /usr/local/bin || true + +ARCH=${ARCH:-$(uname -m)} +if [[ "$ARCH" == "x86_64" ]]; +then + TARGET=amd64 +fi +if [[ "$ARCH" == "arm64" ]]; +then + TARGET=arm64 +fi +PORT=${PORT:-8080} +VERBOSE=${VERBOSE:- } + +FORCE=${FORCE:- } +NOCACHE=${NOCACHE:- } ## default rebuild without --no-cache +TAG=${TAG:-gnostr-tui} + +PYTHON3=$(which python3) + +if [[ "$CI" == "" ]]; +then + if [[ "$(uname -s)" == "Darwin" ]]; + then + DOCKER=${DOCKER:-"/Applications/Docker.app/Contents/MacOS/Docker"} + fi + if [[ "$(uname -s)" == "Linux" ]]; + then + echo "TODO:more Linux support" + DOCKER=docker + DOCKER=${DOCKER:-docker} + fi +fi +#[[ -z "$DOCKER" ]] && echo "-z $DOCKER" && DOCKER=${DOCKER:docker} +#[[ ! -z "$DOCKER" ]] && echo "! -z $DOCKER" && DOCKER=${DOCKER:docker} +#echo $DOCKER; + +function docker-start(){ + + ( \ + while ! docker system info > /dev/null 2>&1; do\ + echo 'Waiting for docker to start...';\ + ## echo $DOCKER + if [[ "$(uname -s)" == "Linux" ]]; then\ + systemctl restart docker.service;\ + fi;\ + if [[ "$(uname -s)" == "Darwin" ]]; then\ + DOCKER="/Applications/Docker.app/Contents/MacOS/Docker";\ + open --background -a $DOCKER || DOCKER=$(which docker);\ + fi;\ + sleep 1;\ + done\ + ) + +} + +function help { + +##echo -e ""$DOCKERFILE"" + + printf "Usage:\n" + printf "\n" + printf " gnostr-tui-docker\n" + printf "\n" + printf " gnostr-tui-docker [-df]\n" + printf "\n" + printf " gnostr-tui-docker examples\n" + printf "\n" + printf " gnostr-tui-docker help [-h --help]\n" + printf "\n" + printf " gnostr-tui-docker build [-b --build]\n" + printf "\n" + printf " ARCH=$ARCH \\ \n" + printf " gnostr-tui-docker buildx [-bx --buildx]\n" + printf "\n" + printf " gnostr-tui-docker shell\n" + printf "\n" + printf " PORT=6102 gnostr-tui-docker serve\n" + printf "\n" + printf " gnostr-tui-docker run ''" + printf "\n" + exit; +} + +function build(){ + + #echo $DOCKER + #echo $NOCACHE + [ "$NOCACHE" ] && docker build --no-cache -t $TAG . && exit; + [ ! -z "$NOCACHE" ] && docker build $NOCACHE -t $TAG . && exit; + +} +function buildx(){ + + #echo $DOCKER + #echo $NOCACHE + docker run --privileged --rm tonistiigi/binfmt --install all + docker buildx ls + docker buildx create --use --name gnostr-tui-buildx || true + docker buildx build -t $TAG --platform linux/arm64,linux/amd64 . + docker buildx build -t $TAG --platform linux/$TARGET . --load + +} + +function run(){ + + echo 0=$0 1=$1 $2 $3 $4 $5 $6 $7 $8 + docker-start + + docker \ + run \ + --rm \ + -v `pwd`:/src \ + $TAG \ + bash \ + -c "$1 $2 $3 $4 $5 $6 $7 $8"; + +exit +} +function serve(){ + echo serve + echo $PORT + + docker-start + + docker \ + run \ + -d \ + -t \ + -i \ + -p 127.0.0.1:8080:$PORT/tcp \ + -v `pwd`:/src $TAG bash -c "serve $PORT" + exit + +} +function shell (){ + + echo 0=$0 1=$1 $2 $3 $4 $5 $6 $7 $8 + docker-start + docker \ + run \ + -t \ + -i \ + --rm \ + -p 127.0.0.1:0:8080/tcp \ + -v `pwd`:/src $TAG bash #". ~/.cargo/env " + +} + +## argparse +## position $1 +## echo "\${!#}=${!#}" +while test $# -gt 0 +do + echo 0=$0 1=$1 $2 $3 $4 $5 $6 $7 $8 + case "$1" in + -df) docker-start; echo -e "$DOCKERFILE" > Dockerfile + ;; + start) docker-start; exit + ;; + verbose) VERBOSE=1; echo $VERBOSE + ;; + --verbose) VERBOSE=1; echo $VERBOSE + ;; + -v) VERBOSE=1; echo $VERBOSE + ;; + help) help; + ;; + --help) help; + ;; + -h) help; + ;; + --force) FORCE=--force; ## echo FORCE=$FORCE + ;; + -f) FORCE=--force; ## echo FORCE=$FORCE + ;; + build) build + ;; + --build) build + ;; + -b) build + ;; + b) build + ;; + buildx) buildx + ;; + --buildx) buildx + ;; + -bx) buildx + ;; + bx) buildx + ;; + run) RUN=TRUE && run $2 $3 $4 $5 $6 $7 $8 + ;; + --make) make + ;; + -m) make + ;; + run) RUN=TRUE && run $2 $3 $4 + ;; + serve) serve $PORT + ;; + shell) shell + ;; + examples) examples + ;; + --examples) examples + ;; + -e) examples + ;; + --*) echo "bad option $1" + ;; + *) echo "argument $1" + ;; + esac + shift +done +## position $2 +while test $# -gt 1 +do + echo 0=$0 1=$1 $2 $3 $4 $5 $6 $7 $8 + case "$2" in + ## support gnostr-tui-docker build -f + ## gnostr-tui-docker -f build + start) docker-start; exit + ;; + verbose) VERBOSE=1; echo $VERBOSE + ;; + --verbose) VERBOSE=1; echo $VERBOSE + ;; + -v) VERBOSE=1; echo $VERBOSE + ;; + --force) FORCE=--force; ## echo FORCE=$FORCE + ;; + -f) FORCE=--force; ## echo FORCE=$FORCE + ;; + build) build + ;; + --build) build + ;; + -b) build + ;; + buildx) buildx + ;; + --buildx) buildx + ;; + -bx) buildx + ;; + bx) buildx + ;; + examples) examples + ;; + --examples) examples + ;; + -e) examaples + ;; + --*) echo "bad option $1" + ;; + *) echo "argument $1" + ;; + esac + shift +done +help From 117ea072b0c3e8c0a1cc6ee34ed58b5b2f7ee2ee Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:49:55 -0500 Subject: [PATCH 27/44] man/gnostr-tui.1 --- man/gnostr-tui.1 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 man/gnostr-tui.1 diff --git a/man/gnostr-tui.1 b/man/gnostr-tui.1 new file mode 100644 index 00000000..96bbe7f6 --- /dev/null +++ b/man/gnostr-tui.1 @@ -0,0 +1,48 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH GNOSTR-TUI "1" "December 2023" "gnostr-tui 0.0.4" "User Commands" +.SH NAME +gnostr-tui \- manual page for gnostr-tui 0.0.4 +.SH SYNOPSIS +.B gnostr-tui +[\fI\,OPTIONS\/\fR] +.SH DESCRIPTION +gnostr\-tui 0.0.4 +gnostr :extrawurst +blazing fast terminal\-ui for git +.SH OPTIONS +.TP +\fB\-t\fR, \fB\-\-theme\fR +Set the color theme (defaults to theme.ron) +.TP +\fB\-l\fR, \fB\-\-logging\fR +Stores logging output into a cache directory +.TP +\fB\-\-watcher\fR +Use notify\-based file system watcher instead of tick\-based update. This is more performant, but can cause issues on some platforms. See https://github.com/extrawurst/gitui/blob/master/FAQ.md#watcher for details. +.TP +\fB\-\-bugreport\fR +Generate a bug report +.TP +\fB\-d\fR, \fB\-\-directory\fR +Set the git directory [env: GIT_DIR=] +.TP +\fB\-w\fR, \fB\-\-workdir\fR +Set the working directory [env: GIT_WORK_TREE=] +.TP +\fB\-h\fR, \fB\-\-help\fR +Print help +.TP +\fB\-V\fR, \fB\-\-version\fR +Print version +.SH "SEE ALSO" +The full documentation for +.B gnostr-tui +is maintained as a Texinfo manual. If the +.B info +and +.B gnostr-tui +programs are properly installed at your site, the command +.IP +.B info gnostr-tui +.PP +should give you access to the complete manual. From 5e8c0e4ff7923a5b87459fd8abee0c5a3de5da57 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:51:16 -0500 Subject: [PATCH 28/44] theme.ron --- theme.ron | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 theme.ron diff --git a/theme.ron b/theme.ron new file mode 100644 index 00000000..f581a2ad --- /dev/null +++ b/theme.ron @@ -0,0 +1,24 @@ +( +selected_tab: Color::Reset, +command_fg: Color::Red, +selection_bg: Color::Red, +selection_fg: Color::Reset, +cmdbar_bg: Color::Reset, +cmdbar_extra_lines_bg: Color::Reset, +disabled_fg: Color::DarkGray, +diff_line_add: Color::Green, +diff_line_delete: Color::Red, +diff_file_added: Color::LightGreen, +diff_file_removed: Color::LightRed, +diff_file_moved: Color::LightMagenta, +diff_file_modified: Color::Yellow, +commit_hash: Color::Magenta, +commit_time: Color::LightCyan, +commit_author: Color::Green, +danger_fg: Color::Red, +push_gauge_bg: Color::Reset, +push_gauge_fg: Color::Reset, +tag_fg: Color::LightMagenta, +branch_fg: Color::LightYellow, +line_break: "ΒΆ".to_string(), +) From 0fa02a9eb57e4f1c94eedc222114727a0b86f994 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:51:58 -0500 Subject: [PATCH 29/44] Cargo.lock --- Cargo.lock | 3811 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 3040 insertions(+), 771 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5d4bdca0..9e56161d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,11 +2,50 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "abscissa_core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6750843603bf31a83accd3c8177f9dbf53a7d64275688fc7371e0a4d9f8628b5" +dependencies = [ + "abscissa_derive", + "arc-swap", + "backtrace", + "canonical-path", + "clap 3.2.25", + "color-eyre", + "fs-err", + "once_cell", + "regex", + "secrecy", + "semver", + "serde", + "termcolor", + "toml 0.5.11", + "tracing", + "tracing-log 0.1.4", + "tracing-subscriber", + "wait-timeout", +] + +[[package]] +name = "abscissa_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a3473aa652e90865a06b723102aaa4a54a7d9f2092dbf4582497a61d0537d3f" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -19,9 +58,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -43,9 +82,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.1" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6cd65a4b849ace0b7f6daeebcc1a1d111282227ca745458c61dbf670e52a597" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" dependencies = [ "anstyle", "anstyle-parse", @@ -57,49 +96,80 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0238ca56c96dfa37bdf7c373c8886dd591322500aceeeccdb2216fe06dc2f796" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.78" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[package]] +name = "argparse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f8ebf5827e4ac4fd5946560e6a99776ea73b596d80898f357007317a7141e47" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-compression" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +dependencies = [ + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] [[package]] name = "asyncgit" version = "0.24.3" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crossbeam-channel", "easy-cast", "env_logger", @@ -121,6 +191,51 @@ dependencies = [ "url", ] +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auditable-extract" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a62a6f4a522a2ab30b5fca049b9587228d17e4ac648106aeaf7da9b70b5e2b" +dependencies = [ + "binfarce", +] + +[[package]] +name = "auditable-info" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e563c9e31a71d1a6f2ab7a5a168cdb0d387f59bde891aac5957b9ebaaf03f602" +dependencies = [ + "auditable-extract", + "auditable-serde", + "miniz_oxide 0.6.2", + "serde_json", +] + +[[package]] +name = "auditable-serde" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b23f8f6711ddeb1c2a163edc94dff5d7c805ca484d33e3464e779741805790c0" +dependencies = [ + "cargo-lock", + "semver", + "serde", + "serde_json", + "topological-sort", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -129,24 +244,24 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.1", "object", "rustc-demangle", ] [[package]] name = "base64" -version = "0.13.1" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bincode" @@ -157,6 +272,12 @@ dependencies = [ "serde", ] +[[package]] +name = "binfarce" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18464ccbb85e5dede30d70cc7676dc9950a0fb7dbf595a43d765be9123c616a2" + [[package]] name = "bit-set" version = "0.5.3" @@ -178,6 +299,44 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata 0.4.3", + "serde", +] + +[[package]] +name = "btoi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" +dependencies = [ + "num-traits", +] + [[package]] name = "bugreport" version = "0.5.0" @@ -191,9 +350,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bwrap" @@ -204,12 +363,64 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + [[package]] name = "bytesize" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" + +[[package]] +name = "canonical-path" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e9e01327e6c86e92ec72b1c798d4a94810f147209bbe3ffab6a86954937a6f" + +[[package]] +name = "cargo-audit" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b658bdd57c923260baa93b9a9f5cd652b06b45ff7688cf83933ffa03a3a6b1d" +dependencies = [ + "abscissa_core", + "auditable-info", + "auditable-serde", + "binfarce", + "cargo-lock", + "clap 3.2.25", + "home", + "once_cell", + "quitters", + "rustsec", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cargo-lock" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72" +dependencies = [ + "petgraph", + "semver", + "serde", + "toml 0.7.8", + "url", +] + [[package]] name = "cassowary" version = "0.3.0" @@ -218,11 +429,12 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -239,31 +451,72 @@ checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", + "js-sys", "num-traits", - "windows-targets 0.48.1", + "wasm-bindgen", + "windows-targets 0.48.5", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim", + "termcolor", + "textwrap", ] [[package]] name = "clap" -version = "4.4.14" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.4.14" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", - "clap_lex", + "clap_lex 0.6.0", "strsim", ] +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "clap_lex" version = "0.6.0" @@ -271,13 +524,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "clru" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" + +[[package]] +name = "color-eyre" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" dependencies = [ - "termcolor", - "unicode-width", + "backtrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", ] [[package]] @@ -286,11 +548,30 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] [[package]] name = "crc32fast" @@ -301,20 +582,35 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ + "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -323,22 +619,31 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset", - "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153" +dependencies = [ + "cfg-if", + "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -349,7 +654,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crossterm_winapi", "libc", "mio", @@ -362,76 +667,71 @@ dependencies = [ [[package]] name = "crossterm_winapi" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ "winapi", ] [[package]] -name = "cxx" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.90" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", + "generic-array", + "typenum", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.90" +name = "cvss" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" +checksum = "7ec6a2f799b0e3103192800872de17ee1d39fe0c598628277b9b012f09b4010f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "serde", ] [[package]] name = "dashmap" -version = "5.4.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown", + "hashbrown 0.14.3", "lock_api", "once_cell", "parking_lot_core", ] +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", + "serde", +] + [[package]] name = "diff" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "dirs" version = "5.0.1" @@ -453,6 +753,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "easy-cast" version = "0.5.2" @@ -461,9 +767,18 @@ checksum = "10936778145f3bea71fd9bf61332cce28c28e96a380714f7ab34838b80733fd6" [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "encoding_rs" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] [[package]] name = "env_logger" @@ -478,45 +793,76 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] -name = "fancy-regex" -version = "0.11.0" +name = "eyre" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799" dependencies = [ - "bit-set", + "indenter", + "once_cell", +] + +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set", "regex", ] [[package]] -name = "fastrand" -version = "1.9.0" +name = "faster-hex" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" +dependencies = [ + "serde", +] + +[[package]] +name = "faster-hex" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" dependencies = [ - "instant", + "serde", ] +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "filetime" -version = "0.2.20" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", "redox_syscall", - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] @@ -527,14 +873,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -552,6 +904,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -561,11 +922,17 @@ dependencies = [ "libc", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "futures" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -578,9 +945,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -588,15 +955,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -605,27 +972,27 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-sink" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.26" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -647,15 +1014,31 @@ dependencies = [ "thread_local", ] +[[package]] +name = "gcc" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -670,30 +1053,28 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "git-version" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" dependencies = [ "git-version-macro", - "proc-macro-hack", ] [[package]] name = "git-version-macro" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ - "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 2.0.41", ] [[package]] @@ -702,7 +1083,7 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "libgit2-sys", "log", @@ -735,1022 +1116,2750 @@ dependencies = [ ] [[package]] -name = "gitui" -version = "0.24.3" -dependencies = [ - "anyhow", - "asyncgit", - "backtrace", - "bitflags", - "bugreport", - "bwrap", - "bytesize", - "chrono", - "clap", - "crossbeam-channel", - "crossterm", - "dirs", - "easy-cast", - "filetreelist", - "fuzzy-matcher", - "gh-emoji", - "indexmap", - "itertools", - "log", - "notify", - "notify-debouncer-mini", +name = "gix" +version = "0.55.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea" +dependencies = [ + "gix-actor", + "gix-attributes", + "gix-commitgraph", + "gix-config", + "gix-credentials", + "gix-date", + "gix-diff", + "gix-discover", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-hashtable", + "gix-ignore", + "gix-index", + "gix-lock", + "gix-macros", + "gix-negotiate", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-pathspec", + "gix-prompt", + "gix-protocol", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-revwalk", + "gix-sec", + "gix-submodule", + "gix-tempfile", + "gix-trace", + "gix-transport", + "gix-traverse", + "gix-url", + "gix-utils", + "gix-validate", + "gix-worktree", + "gix-worktree-state", "once_cell", - "pretty_assertions", - "ratatui", - "rayon-core", - "ron", - "scopeguard", - "scopetime", - "serde", - "shellexpand", - "simplelog", - "struct-patch", - "syntect", - "tempfile", - "unicode-segmentation", - "unicode-truncate", - "unicode-width", - "which", + "parking_lot", + "smallvec", + "thiserror", + "unicode-normalization", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "gix-actor" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417" +dependencies = [ + "bstr", + "btoi", + "gix-date", + "itoa", + "thiserror", + "winnow", +] [[package]] -name = "hermit-abi" -version = "0.3.2" +name = "gix-attributes" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror", + "unicode-bom", +] [[package]] -name = "humantime" -version = "2.1.0" +name = "gix-bitmap" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "d49e1a13a30d3f88be4bceae184dd13a2d3fb9ffa7515f7ed7ae771b857f4916" +dependencies = [ + "thiserror", +] [[package]] -name = "iana-time-zone" -version = "0.1.53" +name = "gix-chunk" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", + "thiserror", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" +name = "gix-command" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7" dependencies = [ - "cxx", - "cxx-build", + "bstr", ] [[package]] -name = "idna" -version = "0.5.0" +name = "gix-commitgraph" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "bstr", + "gix-chunk", + "gix-features", + "gix-hash", + "memmap2 0.9.2", + "thiserror", ] [[package]] -name = "indexmap" -version = "1.9.3" +name = "gix-config" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb" dependencies = [ - "autocfg", - "hashbrown", + "bstr", + "gix-config-value", + "gix-features", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", + "winnow", ] [[package]] -name = "inotify" -version = "0.9.6" +name = "gix-config-value" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e" dependencies = [ - "bitflags", - "inotify-sys", + "bitflags 2.4.1", + "bstr", + "gix-path", "libc", + "thiserror", ] [[package]] -name = "inotify-sys" -version = "0.1.5" +name = "gix-credentials" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "1c5c5d74069b842a1861e581027ac6b7ad9ff66f5911c89b9f45484d7ebda6a4" dependencies = [ - "libc", + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-url", + "thiserror", ] [[package]] -name = "instant" -version = "0.1.12" +name = "gix-date" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be" dependencies = [ - "cfg-if", + "bstr", + "itoa", + "thiserror", + "time 0.3.30", ] [[package]] -name = "invalidstring" -version = "0.1.2" - -[[package]] -name = "io-lifetimes" -version = "1.0.5" +name = "gix-diff" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" +checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554" dependencies = [ - "libc", - "windows-sys 0.45.0", + "gix-hash", + "gix-object", + "thiserror", ] [[package]] -name = "is-terminal" -version = "0.4.3" +name = "gix-discover" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef" +checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2" dependencies = [ - "hermit-abi", - "io-lifetimes", - "rustix", - "windows-sys 0.45.0", + "bstr", + "dunce", + "gix-hash", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror", ] [[package]] -name = "itertools" -version = "0.12.0" +name = "gix-features" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2" dependencies = [ - "either", + "bytes", + "crc32fast", + "crossbeam-channel", + "flate2", + "gix-hash", + "gix-trace", + "jwalk", + "libc", + "once_cell", + "parking_lot", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", ] [[package]] -name = "itoa" -version = "1.0.8" +name = "gix-filter" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a" +checksum = "92f674d3fdb6b1987b04521ec9a5b7be8650671f2c4bbd17c3c81e2a364242ff" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes", + "gix-command", + "gix-hash", + "gix-object", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "smallvec", + "thiserror", +] [[package]] -name = "jobserver" -version = "0.1.25" +name = "gix-fs" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107" dependencies = [ - "libc", + "gix-features", ] [[package]] -name = "js-sys" -version = "0.3.61" +name = "gix-glob" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19" dependencies = [ - "wasm-bindgen", + "bitflags 2.4.1", + "bstr", + "gix-features", + "gix-path", ] [[package]] -name = "kqueue" -version = "1.0.7" +name = "gix-hash" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0" dependencies = [ - "kqueue-sys", - "libc", + "faster-hex 0.9.0", + "thiserror", ] [[package]] -name = "kqueue-sys" -version = "1.0.3" +name = "gix-hashtable" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca" dependencies = [ - "bitflags", - "libc", + "gix-hash", + "hashbrown 0.14.3", + "parking_lot", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "gix-ignore" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "unicode-bom", +] [[package]] -name = "libc" -version = "0.2.139" +name = "gix-index" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650" +dependencies = [ + "bitflags 2.4.1", + "bstr", + "btoi", + "filetime", + "gix-bitmap", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-traverse", + "itoa", + "memmap2 0.7.1", + "smallvec", + "thiserror", +] [[package]] -name = "libgit2-sys" -version = "0.15.2+1.6.4" +name = "gix-lock" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa" +checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37" dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", + "gix-tempfile", + "gix-utils", + "thiserror", ] [[package]] -name = "libssh2-sys" -version = "0.3.0" +name = "gix-macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae" dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] -name = "libz-sys" -version = "1.1.8" +name = "gix-negotiate" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "2a5cdcf491ecc9ce39dcc227216c540355fe0024ae7c38e94557752ca5ebb67f" dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", + "bitflags 2.4.1", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror", ] [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "gix-object" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51" dependencies = [ - "cc", + "bstr", + "btoi", + "gix-actor", + "gix-date", + "gix-features", + "gix-hash", + "gix-validate", + "itoa", + "smallvec", + "thiserror", + "winnow", ] [[package]] -name = "linux-raw-sys" -version = "0.1.4" +name = "gix-odb" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features", + "gix-hash", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror", +] [[package]] -name = "lock_api" -version = "0.4.10" +name = "gix-pack" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3" dependencies = [ - "autocfg", - "scopeguard", + "clru", + "gix-chunk", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-path", + "gix-tempfile", + "memmap2 0.7.1", + "parking_lot", + "smallvec", + "thiserror", + "uluru", ] [[package]] -name = "log" -version = "0.4.20" +name = "gix-packetline" +version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab" +dependencies = [ + "bstr", + "faster-hex 0.8.1", + "thiserror", +] [[package]] -name = "memoffset" -version = "0.7.1" +name = "gix-packetline-blocking" +version = "0.16.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39" dependencies = [ - "autocfg", + "bstr", + "faster-hex 0.8.1", + "thiserror", ] [[package]] -name = "miniz_oxide" -version = "0.6.2" +name = "gix-path" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1" dependencies = [ - "adler", + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror", ] [[package]] -name = "mio" -version = "0.8.5" +name = "gix-pathspec" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d" dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.42.0", + "bitflags 2.4.1", + "bstr", + "gix-attributes", + "gix-config-value", + "gix-glob", + "gix-path", + "thiserror", ] [[package]] -name = "notify" -version = "5.2.0" +name = "gix-prompt" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" +checksum = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678" dependencies = [ - "bitflags", - "crossbeam-channel", - "filetime", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "mio", - "walkdir", - "windows-sys 0.45.0", + "gix-command", + "gix-config-value", + "parking_lot", + "rustix", + "thiserror", ] [[package]] -name = "notify-debouncer-mini" -version = "0.2.1" +name = "gix-protocol" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23e9fa24f094b143c1eb61f90ac6457de87be6987bc70746e0179f7dbc9007b" +checksum = "391e3feabdfa5f90dad6673ce59e3291ac28901b2ff248d86c5a7fbde0391e0e" dependencies = [ - "crossbeam-channel", - "notify", + "bstr", + "btoi", + "gix-credentials", + "gix-date", + "gix-features", + "gix-hash", + "gix-transport", + "maybe-async", + "thiserror", + "winnow", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "gix-quote" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2" dependencies = [ - "autocfg", + "bstr", + "btoi", + "thiserror", ] [[package]] -name = "object" -version = "0.30.3" +name = "gix-ref" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52" dependencies = [ - "memchr", + "gix-actor", + "gix-date", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-validate", + "memmap2 0.7.1", + "thiserror", + "winnow", ] [[package]] -name = "once_cell" -version = "1.19.0" +name = "gix-refspec" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision", + "gix-validate", + "smallvec", + "thiserror", +] [[package]] -name = "onig" -version = "6.4.0" +name = "gix-revision" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588" dependencies = [ - "bitflags", - "libc", - "once_cell", - "onig_sys", + "bstr", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "gix-trace", + "thiserror", ] [[package]] -name = "onig_sys" -version = "69.8.1" +name = "gix-revwalk" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0" dependencies = [ - "cc", - "pkg-config", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "gix-sec" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2" +dependencies = [ + "bitflags 2.4.1", + "gix-path", + "libc", + "windows", +] [[package]] -name = "openssl-src" -version = "300.1.3+3.1.2" +name = "gix-submodule" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107" +checksum = "bba78c8d12aa24370178453ec3a472ff08dfaa657d116229f57f2c9cd469a1c2" dependencies = [ - "cc", + "bstr", + "gix-config", + "gix-path", + "gix-pathspec", + "gix-refspec", + "gix-url", + "thiserror", ] [[package]] -name = "openssl-sys" -version = "0.9.98" +name = "gix-tempfile" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23" dependencies = [ - "cc", + "gix-fs", "libc", - "openssl-src", - "pkg-config", - "vcpkg", + "once_cell", + "parking_lot", + "tempfile", ] [[package]] -name = "option-ext" -version = "0.2.0" +name = "gix-trace" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497" [[package]] -name = "parking_lot" -version = "0.12.1" +name = "gix-transport" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "2f209a93364e24f20319751bc11092272e2f3fe82bb72592b2822679cf5be752" dependencies = [ - "lock_api", - "parking_lot_core", + "base64", + "bstr", + "gix-command", + "gix-credentials", + "gix-features", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url", + "reqwest", + "thiserror", ] [[package]] -name = "parking_lot_core" -version = "0.9.7" +name = "gix-traverse" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", "smallvec", - "windows-sys 0.45.0", + "thiserror", ] [[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "phf" -version = "0.11.1" +name = "gix-url" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005" dependencies = [ - "phf_shared", + "bstr", + "gix-features", + "gix-path", + "home", + "thiserror", + "url", ] [[package]] -name = "phf_shared" -version = "0.11.1" +name = "gix-utils" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e" dependencies = [ - "siphasher", + "fastrand", ] [[package]] -name = "pin-project-lite" -version = "0.2.9" +name = "gix-validate" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f" +dependencies = [ + "bstr", + "thiserror", +] [[package]] -name = "pin-utils" -version = "0.1.0" +name = "gix-worktree" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "ddaf79e721dba64fe726a42f297a3c8ed42e55cdc0d81ca68452f2def3c2d7fd" +dependencies = [ + "bstr", + "gix-attributes", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", +] [[package]] -name = "pkg-config" -version = "0.3.26" +name = "gix-worktree-state" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "34a2fcccdcaf3c71c00a03df31c9aa459d444cabbec4ed9ca1fa64e43406bed4" +dependencies = [ + "bstr", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-index", + "gix-object", + "gix-path", + "gix-worktree", + "io-close", + "thiserror", +] [[package]] -name = "pretty_assertions" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +name = "gnostr-legit" +version = "0.0.4" dependencies = [ - "diff", - "yansi", + "argparse", + "chrono", + "git2", + "pad", + "rust-crypto", + "sha2", + "time 0.1.45", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +name = "gnostr-tui" +version = "0.0.5" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", + "anyhow", + "asyncgit", + "backtrace", + "bitflags 1.3.2", + "bugreport", + "bwrap", + "bytesize", + "cargo-audit", + "chrono", + "clap 4.4.11", + "crossbeam-channel", + "crossterm", + "dirs", + "easy-cast", + "filetreelist", + "fuzzy-matcher", + "gh-emoji", + "indexmap 1.9.3", + "itertools", + "log", + "notify", + "notify-debouncer-mini", + "once_cell", + "pretty_assertions", + "ratatui", + "rayon-core", + "ron", + "scopeguard", + "scopetime", + "serde", + "shellexpand", + "simplelog", + "struct-patch", + "syntect", + "tempfile", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", + "which", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "h2" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ - "proc-macro2", - "quote", - "version_check", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] -name = "proc-macro2" -version = "1.0.63" +name = "hashbrown" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" -dependencies = [ - "unicode-ident", -] +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] -name = "quote" -version = "1.0.29" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" -dependencies = [ - "proc-macro2", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "ratatui" -version = "0.21.0" +name = "hermit-abi" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce841e0486e7c2412c3740168ede33adeba8e154a15107b879d8162d77c7174e" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "bitflags", - "cassowary", - "crossterm", - "serde", - "unicode-segmentation", - "unicode-width", + "libc", ] [[package]] -name = "rayon" -version = "1.8.0" +name = "hermit-abi" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" -dependencies = [ - "either", - "rayon-core", -] +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] -name = "rayon-core" -version = "1.12.0" +name = "home" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "crossbeam-deque", - "crossbeam-utils", + "windows-sys 0.52.0", ] [[package]] -name = "redox_syscall" -version = "0.2.16" +name = "http" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ - "bitflags", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "redox_users" -version = "0.4.3" +name = "http-body" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "getrandom", - "redox_syscall", - "thiserror", + "bytes", + "http", + "pin-project-lite", ] [[package]] -name = "regex" -version = "1.9.1" +name = "httparse" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] -name = "regex-automata" -version = "0.3.4" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" -dependencies = [ +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "invalidstring" +version = "0.1.2" + +[[package]] +name = "io-close" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadcf447f06744f8ce713d2d6239bb5bde2c357a452397a9ed90c625da390bc" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.3", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" +dependencies = [ + "crossbeam", + "rayon", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "kstring" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libgit2-sys" +version = "0.15.2+1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall", +] + +[[package]] +name = "libssh2-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "maybe-async" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memmap2" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a69c7c189ae418f83003da62820aca28d15a07725ce51fb924999335d622ff" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "notify" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" +dependencies = [ + "bitflags 1.3.2", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "mio", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "notify-debouncer-mini" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e23e9fa24f094b143c1eb61f90ac6457de87be6987bc70746e0179f7dbc9007b" +dependencies = [ + "crossbeam-channel", + "notify", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "onig" +version = "6.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +dependencies = [ + "bitflags 1.3.2", + "libc", + "once_cell", + "onig_sys", +] + +[[package]] +name = "onig_sys" +version = "69.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "300.2.1+3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "pad" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" +dependencies = [ + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prodash" +version = "26.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" + +[[package]] +name = "quitters" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88ccde7d84d2115b250b5cba923973fc42fe23ad42d9d63bb129d956a6db014" +dependencies = [ + "once_cell", + "regex", + "semver", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +dependencies = [ + "libc", + "rand 0.4.6", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "ratatui" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce841e0486e7c2412c3740168ede33adeba8e154a15107b879d8162d77c7174e" +dependencies = [ + "bitflags 1.3.2", + "cassowary", + "crossterm", + "serde", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "async-compression", + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.48.0", +] + +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64", + "bitflags 2.4.1", + "serde", + "serde_derive", +] + +[[package]] +name = "rust-crypto" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" +dependencies = [ + "gcc", + "libc", + "rand 0.3.23", + "rustc-serialize", + "time 0.1.45", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-serialize" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401" + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustsec" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c843c389d3d5175ab32d894b1b5c08570fdd319ee78ef29e27c70bfc1be79464" +dependencies = [ + "cargo-lock", + "cvss", + "fs-err", + "gix", + "home", + "platforms", + "semver", + "serde", + "tame-index", + "thiserror", + "time 0.3.30", + "toml 0.7.8", + "url", +] + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scopetime" +version = "0.1.2" +dependencies = [ + "log", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "serde", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "538c30747ae860d6fb88330addbbd3e0ddbe46d662d032855596d8a8ca260611" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "regex-syntax" -version = "0.7.4" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] [[package]] -name = "ron" -version = "0.8.0" +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shellexpand" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" dependencies = [ - "base64", - "bitflags", - "serde", + "dirs", ] [[package]] -name = "rustc-demangle" -version = "0.1.21" +name = "signal-hook" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] [[package]] -name = "rustix" -version = "0.36.16" +name = "signal-hook-mio" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ - "bitflags", - "errno", - "io-lifetimes", "libc", - "linux-raw-sys", - "windows-sys 0.45.0", + "mio", + "signal-hook", ] [[package]] -name = "ryu" -version = "1.0.14" +name = "signal-hook-registry" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] [[package]] -name = "same-file" -version = "1.0.6" +name = "simplelog" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369" dependencies = [ - "winapi-util", + "log", + "time 0.3.30", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "siphasher" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] -name = "scopetime" -version = "0.1.2" +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "log", + "autocfg", ] [[package]] -name = "scratch" -version = "1.0.3" +name = "smallvec" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] -name = "serde" -version = "1.0.156" +name = "smol_str" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" dependencies = [ - "serde_derive", + "serde", ] [[package]] -name = "serde_derive" -version = "1.0.156" +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "struct-patch" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0c25d7271340ea5e82f6d598a02ad5fc155c11b703c808b120a8873279027b4" +dependencies = [ + "struct-patch-derive", +] + +[[package]] +name = "struct-patch-derive" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" +checksum = "dead485b43c32fccb5a6ac1e94a938adcd616d80903d92fb1b1d9d633ea0d29f" dependencies = [ + "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] -name = "serde_json" -version = "1.0.93" +name = "syn" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "itoa", - "ryu", - "serde", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "serial_test" -version = "1.0.0" +name = "syn" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "538c30747ae860d6fb88330addbbd3e0ddbe46d662d032855596d8a8ca260611" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ - "dashmap", - "futures", - "lazy_static", - "log", - "parking_lot", - "serial_test_derive", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "serial_test_derive" -version = "1.0.0" +name = "synstructure" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", + "unicode-xid", ] [[package]] -name = "shell-escape" -version = "0.1.5" +name = "syntect" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" +dependencies = [ + "bincode", + "bitflags 1.3.2", + "fancy-regex", + "flate2", + "fnv", + "once_cell", + "onig", + "regex-syntax 0.7.5", + "serde", + "serde_json", + "thiserror", + "walkdir", +] [[package]] -name = "shellexpand" -version = "3.1.0" +name = "sys-info" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" +checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" dependencies = [ - "dirs", + "cc", + "libc", ] [[package]] -name = "signal-hook" -version = "0.3.15" +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" dependencies = [ + "core-foundation-sys", "libc", - "signal-hook-registry", ] [[package]] -name = "signal-hook-mio" -version = "0.2.3" +name = "tame-index" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +checksum = "7de490ea0f16ed92bd6b9f874acd3c692c75436b6a81277c05bd931742782209" dependencies = [ + "camino", + "crossbeam-channel", + "gix", + "home", + "http", "libc", - "mio", - "signal-hook", + "memchr", + "rayon", + "reqwest", + "semver", + "serde", + "serde_json", + "smol_str", + "thiserror", + "tokio", + "toml 0.8.8", + "twox-hash", + "windows-targets 0.48.5", ] [[package]] -name = "signal-hook-registry" -version = "1.4.1" +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termcolor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thiserror" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "libc", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ - "libc", + "time-core", ] [[package]] -name = "simplelog" -version = "0.12.1" +name = "tinyvec" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ - "log", - "time", + "tinyvec_macros", ] [[package]] -name = "siphasher" -version = "0.3.10" +name = "tinyvec_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] -name = "slab" -version = "0.4.8" +name = "tokio" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ - "autocfg", + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2 0.5.5", + "windows-sys 0.48.0", ] [[package]] -name = "smallvec" -version = "1.11.0" +name = "tokio-rustls" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] [[package]] -name = "strsim" -version = "0.10.0" +name = "tokio-util" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] [[package]] -name = "struct-patch" -version = "0.2.3" +name = "toml" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c25d7271340ea5e82f6d598a02ad5fc155c11b703c808b120a8873279027b4" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "struct-patch-derive", + "serde", ] [[package]] -name = "struct-patch-derive" -version = "0.2.3" +name = "toml" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dead485b43c32fccb5a6ac1e94a938adcd616d80903d92fb1b1d9d633ea0d29f" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", ] [[package]] -name = "syn" -version = "1.0.107" +name = "toml" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.21.0", ] [[package]] -name = "syntect" -version = "5.1.0" +name = "toml_datetime" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ - "bincode", - "bitflags", - "fancy-regex", - "flate2", - "fnv", - "once_cell", - "onig", - "regex-syntax", "serde", - "serde_json", - "thiserror", - "walkdir", ] [[package]] -name = "sys-info" -version = "0.9.1" +name = "toml_edit" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "cc", - "libc", + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] -name = "tempfile" -version = "3.4.0" +name = "toml_edit" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.42.0", + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] -name = "termcolor" -version = "1.2.0" +name = "topological-sort" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] +checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" [[package]] -name = "thiserror" -version = "1.0.39" +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "thiserror-impl", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "thiserror-impl" -version = "1.0.39" +name = "tracing-attributes" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.41", ] [[package]] -name = "thread_local" -version = "1.1.7" +name = "tracing-core" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ - "cfg-if", "once_cell", + "valuable", ] [[package]] -name = "time" -version = "0.3.22" +name = "tracing-log" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "itoa", - "serde", - "time-core", - "time-macros", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "time-core" -version = "0.1.1" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] [[package]] -name = "time-macros" -version = "0.2.9" +name = "tracing-subscriber" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ - "time-core", + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "tinyvec_macros", + "cfg-if", + "static_assertions", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uluru" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794a32261a1f5eb6a4462c81b59cec87b5c27d5deea7dd1ac8fc781c41d226db" +dependencies = [ + "arrayvec", +] [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + +[[package]] +name = "unicode-bom" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -1782,6 +3891,18 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.0" @@ -1791,6 +3912,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -1799,6 +3921,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1811,16 +3939,40 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1829,9 +3981,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1839,24 +3991,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.41", "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1864,32 +4028,43 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", ] [[package]] @@ -1910,9 +4085,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -1924,18 +4099,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows-sys" -version = "0.42.0" +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", + "windows-targets 0.48.5", ] [[package]] @@ -1944,7 +4122,7 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets 0.42.1", + "windows-targets 0.42.2", ] [[package]] @@ -1953,125 +4131,216 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] [[package]] name = "yansi" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" From 443a258d9c6e4d9c144810d92516e4627954e396 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:52:16 -0500 Subject: [PATCH 30/44] rust-toolchain.toml --- rust-toolchain.toml | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 rust-toolchain.toml diff --git a/rust-toolchain.toml b/rust-toolchain.toml deleted file mode 100644 index 02cb8fcb..00000000 --- a/rust-toolchain.toml +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "stable" -profile = "default" From fbf45146ca1dfefaf8d717b8a5fd4725dabea5fc Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:52:38 -0500 Subject: [PATCH 31/44] serve --- serve | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 serve diff --git a/serve b/serve new file mode 100755 index 00000000..7de164a3 --- /dev/null +++ b/serve @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# avoid some errors +touch favicon.ico +touch apple-touch-icon.png +touch apple-touch-icon-precomposed.png + +# Start an HTTP server from a directory, optionally specifying the port + +# Usage: +# ./serve or ./serve 1234 + +function serve() { + local port="${1:-8080}"; + sleep 1 && open "http://localhost:${port}/" #& + + # Set the default Content-Type to `text/plain` instead of `application/octet-stream` + # And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files) + + $(python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port";) +} + +port="${1:-8080}"; +npx -y http-server -p $port #-o 2>/tmp/serve.log || echo "install npx" From d8d8b74f3743182f92e33817c09887dbd8a7ea61 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:52:50 -0500 Subject: [PATCH 32/44] run --- run | 2 ++ 1 file changed, 2 insertions(+) create mode 100755 run diff --git a/run b/run new file mode 100755 index 00000000..e938af9d --- /dev/null +++ b/run @@ -0,0 +1,2 @@ +docker pull ghcr.io/gnostr-org/gnostr-tui:latest || true +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/gnostr-org/gnostr-tui/v0.0.5/gnostr-tui-docker)" -- run "cargo install --path . && $(which gnostr-tui)" From 52470b7c6156292505d11fc69b1d059d0337ce67 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Sat, 30 Dec 2023 19:53:03 -0500 Subject: [PATCH 33/44] .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 715365c3..c202a795 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ .DS_Store /.idea/ flamegraph.svg +src/ui/bash_profile.log +bash_profile.log From 50e42d805d0449ada406419c2d69d22c6b37e883 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Mon, 1 Jan 2024 10:12:00 -0500 Subject: [PATCH 34/44] src/args.rs --- src/args.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/args.rs b/src/args.rs index 0a45fb28..fe43b875 100644 --- a/src/args.rs +++ b/src/args.rs @@ -71,7 +71,7 @@ fn app() -> ClapApp { .about(crate_description!()) .help_template( "\ -{before-help}gitui {version} +{before-help}gnostr-tui {version} {author} {about} @@ -127,7 +127,7 @@ fn app() -> ClapApp { fn setup_logging() -> Result<()> { let mut path = get_app_cache_path()?; - path.push("gitui.log"); + path.push("gnostr-tui.log"); println!("Logging enabled. log written to: {path:?}"); @@ -144,7 +144,7 @@ fn get_app_cache_path() -> Result { let mut path = dirs::cache_dir() .ok_or_else(|| anyhow!("failed to find os cache dir."))?; - path.push("gitui"); + path.push("gnostr-tui"); fs::create_dir_all(&path)?; Ok(path) } @@ -157,7 +157,7 @@ pub fn get_app_config_path() -> Result { } .ok_or_else(|| anyhow!("failed to find os config dir."))?; - path.push("gitui"); + path.push("gnostr-tui"); fs::create_dir_all(&path)?; Ok(path) } From 71a1bafe6563ba19647628af7311e2e8065734f7 Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Mon, 1 Jan 2024 10:36:51 -0500 Subject: [PATCH 35/44] src/tabs/status.rs --- src/tabs/status.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tabs/status.rs b/src/tabs/status.rs index d7e32374..c0926c9e 100644 --- a/src/tabs/status.rs +++ b/src/tabs/status.rs @@ -303,6 +303,7 @@ impl Status { r: ratatui::layout::Rect, ) { if self.git_state != RepoState::Clean { + //TODO: gnostr-legit alert! let txt = Self::repo_state_text( &self.repo.borrow(), &self.git_state, @@ -411,6 +412,7 @@ impl Status { config, ))?; + //TODO: gnostr-legit aware RepoState::Clean self.git_state = sync::repo_state(&self.repo.borrow()) .unwrap_or(RepoState::Clean); From 2bdb82aacbaeccd7d36e3fe6a96820817eddc70e Mon Sep 17 00:00:00 2001 From: "@RandyMcMillan" Date: Mon, 1 Jan 2024 10:38:09 -0500 Subject: [PATCH 36/44] wix/main.wxs --- wix/main.wxs | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/wix/main.wxs b/wix/main.wxs index 61ecda29..ee38f86c 100644 --- a/wix/main.wxs +++ b/wix/main.wxs @@ -33,7 +33,7 @@ - + - + - + - + - + - - + + - + - - + + - +