all: sync up with other Rust repos

This commit is contained in:
Harsh Shandilya 2022-02-06 16:11:20 +05:30
parent e0deedafca
commit 593a73a506
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
9 changed files with 161 additions and 88 deletions

View file

@ -1,57 +1,15 @@
on:
push:
branches:
- develop
- main
- renovate/**
paths-ignore:
- README.md
pull_request:
paths-ignore:
- README.md
name: Check Rust code
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust nightly with rustfmt and clippy
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: rustfmt, clippy
- name: Cache cargo registry and build outputs
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
- name: Annotate commit with clippy warnings
if: "${{ github.event_name == 'push' }}"
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test
- name: Run cargo doc
uses: actions-rs/cargo@v1
with:
command: doc
args: --no-deps
uses: msfjarvis/shared-workflows/.github/workflows/test-rust-project.yml@main

81
Cargo.lock generated
View file

@ -4,9 +4,9 @@ version = 3
[[package]]
name = "anyhow"
version = "1.0.52"
version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3"
checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0"
[[package]]
name = "atty"
@ -48,19 +48,34 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "3.0.10"
version = "3.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a30c3bf9ff12dfe5dae53f0a96e0febcd18420d1c0e7fad77796d9d5c4b5375"
checksum = "b63edc3f163b3c71ec8aa23f9bd6070f77edbf3d1d198b164afa90ff00e4ec62"
dependencies = [
"atty",
"bitflags",
"clap_derive",
"indexmap",
"lazy_static",
"os_str_bytes",
"strsim",
"termcolor",
"textwrap",
]
[[package]]
name = "clap_derive"
version = "3.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a1132dc3944b31c20dd8b906b3a9f0a5d0243e092d59171414969657ac6aa85"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "form_urlencoded"
version = "1.0.1"
@ -105,6 +120,12 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
version = "0.1.19"
@ -144,11 +165,17 @@ dependencies = [
"libc",
]
[[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.113"
version = "0.2.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eef78b64d87775463c549fbd80e19249ef436ea3bf1de2a1eb7e717ec7fab1e9"
checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c"
[[package]]
name = "libgit2-sys"
@ -251,6 +278,30 @@ version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
[[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",
"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.36"
@ -262,9 +313,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.14"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d"
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
dependencies = [
"proc-macro2",
]
@ -280,18 +331,18 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.133"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a"
checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.133"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537"
checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
dependencies = [
"proc-macro2",
"quote",
@ -393,6 +444,12 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walkdir"
version = "2.3.2"

View file

@ -14,11 +14,11 @@ include = ["src/**/*", "LICENSE-*", "README.md"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.52"
clap = "3.0.10"
anyhow = "1.0.53"
clap = { version = "3.0.14", features = ["color", "derive"] }
git2 = "0.13.25"
serde = { version = "1.0.133", default-features = false, features = ["derive"] }
serde_derive = "1.0.133"
serde = { version = "1.0.136", default-features = false, features = ["derive"] }
serde_derive = "1.0.136"
toml = "0.5.8"
walkdir = "2.3.2"

41
deny.toml Normal file
View file

@ -0,0 +1,41 @@
targets = [
{ triple = "x86_64-unknown-linux-gnu" },
{ triple = "aarch64-unknown-linux-gnu" },
{ triple = "x86_64-unknown-linux-musl" },
{ triple = "aarch64-apple-darwin" },
{ triple = "x86_64-apple-darwin" },
{ triple = "x86_64-pc-windows-msvc" },
]
[advisories]
db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"]
vulnerability = "deny"
unmaintained = "warn"
yanked = "warn"
notice = "warn"
[licenses]
unlicensed = "deny"
allow = [
"MIT",
"Apache-2.0",
]
copyleft = "allow"
allow-osi-fsf-free = "neither"
default = "deny"
confidence-threshold = 0.8
exceptions = [
]
[licenses.private]
ignore = false
[bans]
multiple-versions = "deny"
wildcards = "deny"
highlight = "all"
[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-git = []

12
renovate.json Normal file
View file

@ -0,0 +1,12 @@
{
"extends": [
"config:base"
],
"packageRules": [
{
"matchPackagePatterns": ["*"],
"automerge": true,
"automergeType": "branch"
}
]
}

15
shell.nix Normal file
View file

@ -0,0 +1,15 @@
with import <nixpkgs> { overlays = [ (import <rust-overlay>) ]; };
mkShell {
RUSTFLAGS = "";
buildInputs = [
(rust-bin.selectLatestNightlyWith (toolchain:
toolchain.default.override {
extensions = [ "rust-src" "rustfmt-preview" ];
}))
pkg-config
openssl
clang_12
] ++ lib.optionals stdenv.isDarwin [
pkgs.darwin.apple_sdk.frameworks.Security
];
}

View file

@ -1,37 +1,28 @@
use clap::{crate_authors, crate_description, crate_name, crate_version, AppSettings, Clap};
use clap::{AppSettings, Parser};
#[derive(Clap)]
#[clap(
name = crate_name!(),
version = crate_version!(),
author = crate_authors!(),
about = crate_description!(),
setting = AppSettings::ColoredHelp,
setting = AppSettings::DeriveDisplayOrder,
setting = AppSettings::SubcommandRequiredElseHelp,
)]
#[derive(Parser)]
#[clap(author, version, about)]
#[clap(global_setting(AppSettings::DeriveDisplayOrder))]
pub(crate) struct Opts {
#[clap(subcommand)]
pub(crate) subcommand: SubCommand,
}
#[derive(Clap)]
#[derive(Parser)]
pub(crate) enum SubCommand {
Freeze(Freeze),
Thaw(Thaw),
}
/// recursively find git repos and record their states into a lockfile
#[derive(Clap)]
#[clap(setting = AppSettings::ColoredHelp)]
#[derive(Parser)]
pub(crate) struct Freeze {
/// directory to search and freeze repos from.
pub(crate) directory: String,
}
/// takes the given
#[derive(Clap)]
#[clap(setting = AppSettings::ColoredHelp)]
/// takes the given lockfile and clones them back into the given directory
#[derive(Parser)]
pub(crate) struct Thaw {
/// directory to put cloned repos into.
pub(crate) directory: String,

View file

@ -73,9 +73,9 @@ pub(crate) fn thaw_repos(dir: &str, lockfile: &str) -> anyhow::Result<()> {
.expect("Failed to run `git clone`. Perhaps git is not installed?");
if output.status.success() {
println!("Thawed {} successfully.", name)
println!("Thawed {} successfully.", name);
} else {
println!("{}", std::str::from_utf8(&output.stderr)?)
println!("{}", std::str::from_utf8(&output.stderr)?);
}
}

View file

@ -2,9 +2,8 @@ pub(crate) mod cli;
pub(crate) mod git;
pub(crate) mod model;
use clap::Clap;
use cli::Opts;
use cli::SubCommand;
use clap::Parser;
use cli::{Opts, SubCommand};
use git::freeze_repos;
use git::thaw_repos;