diff --git a/.bumpversion.cfg b/.bumpversion.cfg index f078e3b..2cadfa9 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -3,10 +3,6 @@ current_version = 0.2.5 commit = True tag = True -[bumpversion:file:warpgate/Cargo.toml] -search = version = "{current_version}" -replace = version = "{new_version}" - -[bumpversion:file:warpgate-protocol-http/Cargo.toml] +[bumpversion:file:Cargo.toml] search = version = "{current_version}" replace = version = "{new_version}" diff --git a/Cargo.lock b/Cargo.lock index 9545026..f0e791f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4194,7 +4194,7 @@ dependencies = [ [[package]] name = "warpgate-common" -version = "0.1.0" +version = "0.2.5" dependencies = [ "anyhow", "argon2", @@ -4228,7 +4228,7 @@ dependencies = [ [[package]] name = "warpgate-db-entities" -version = "0.1.0" +version = "0.2.5" dependencies = [ "chrono", "poem-openapi", @@ -4240,7 +4240,7 @@ dependencies = [ [[package]] name = "warpgate-db-migrations" -version = "0.1.0" +version = "0.2.5" dependencies = [ "async-std", "chrono", @@ -4279,7 +4279,7 @@ dependencies = [ [[package]] name = "warpgate-protocol-ssh" -version = "0.1.0" +version = "0.2.5" dependencies = [ "ansi_term", "anyhow", @@ -4302,7 +4302,7 @@ dependencies = [ [[package]] name = "warpgate-web" -version = "0.1.0" +version = "0.2.5" dependencies = [ "rust-embed", "serde", diff --git a/Cargo.toml b/Cargo.toml index a7fc1ad..df0c356 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,7 @@ +cargo-features = ["workspace-inheritance"] + [workspace] +default-members = ["warpgate"] members = [ "warpgate", "warpgate-admin", @@ -9,7 +12,55 @@ members = [ "warpgate-protocol-ssh", "warpgate-web", ] -default-members = ["warpgate"] + +[workspace.package] +edition = "2021" +license = "Apache-2.0" +version = "0.2.5" + +[workspace.dependencies] +anyhow = { version = "1.0", features = ["backtrace", "std"] } +async-trait = "0.1" +chrono = { version = "0.4", features = ["serde"] } +bytes = "1.1" +data-encoding = "2.3" +tracing = "0.1" +lazy_static = "1.4" +dialoguer = "0.10" +futures = "0.3" +poem = { version = "^1.3.30", features = [ + "cookie", + "session", + "anyhow", + "websocket", + "rustls", + "websocket", + "sse", + "embed", +] } +poem-openapi = { version = "^1.3.30", features = [ + "swagger-ui", + "chrono", + "uuid", + "static-files", +] } +russh = { version = "0.34.0-beta.5", features = ["openssl"] } +russh-keys = { version = "0.22.0-beta.2", features = ["openssl"] } +rust-embed = "6.3" +time = "0.3" +tokio = { version = "1.19", features = ["tracing", "signal", "macros"] } +sea-orm = { version = "^0.8", features = [ + "sqlx-sqlite", + "runtime-tokio-native-tls", + "macros", + "with-chrono", + "with-uuid", + "with-json", +], default-features = false } +serde = "1.0" +thiserror = "1.0" +uuid = { version = "0.8", features = ["v4", "serde"] } +serde_json = "1.0" [profile.release] lto = true diff --git a/deny.toml b/deny.toml index f00a164..fad75c3 100644 --- a/deny.toml +++ b/deny.toml @@ -111,22 +111,11 @@ exceptions = [ # Some crates don't have (easily) machine readable licensing information, # adding a clarification entry for it allows you to manually specify the # licensing information -#[[licenses.clarify]] -# The name of the crate the clarification applies to -#name = "ring" -# The optional version constraint for the crate -#version = "*" -# The SPDX expression for the license requirements of the crate -#expression = "MIT AND ISC AND OpenSSL" -# One or more files in the crate's source used as the "source of truth" for -# the license expression. If the contents match, the clarification will be used -# when running the license check, otherwise the clarification will be ignored -# and the crate will be checked normally, which may produce warnings or errors -# depending on the rest of your configuration -#license-files = [ - # Each entry is a crate relative path, and the (opaque) hash of its contents - #{ path = "LICENSE", hash = 0xbd0eed23 } -#] +[[licenses.clarify]] +name = "ring" +version = "*" +expression = "MIT AND ISC AND OpenSSL" +license-files = [] [licenses.private] # If true, ignores workspace crates that aren't published, or are only diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5df4faf..31ddac1 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2022-03-14" +channel = "nightly-2022-05-30" diff --git a/warpgate-admin/Cargo.toml b/warpgate-admin/Cargo.toml index e27b8eb..2f53d3f 100644 --- a/warpgate-admin/Cargo.toml +++ b/warpgate-admin/Cargo.toml @@ -1,29 +1,31 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-admin" -version = "0.2.5" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] -anyhow = {version = "1.0", features = ["std"]} -async-trait = "0.1" -bytes = "1.1" -chrono = "0.4" -futures = "0.3" +anyhow.workspace = true +async-trait.workspace = true +bytes.workspace = true +chrono.workspace = true +futures.workspace = true hex = "0.4" -mime_guess = {version = "2.0", default_features = false} -poem = {version = "^1.3.30", features = ["cookie", "session", "anyhow", "websocket"]} -poem-openapi = {version = "^1.3.30", features = ["swagger-ui", "chrono", "uuid", "static-files"]} -russh-keys = {version = "0.22.0-beta.2", features = ["openssl"]} -rust-embed = "6.3" -sea-orm = {version = "^0.8", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"], default-features = false} -serde = "1.0" -serde_json = "1.0" -thiserror = "1.0" -tokio = {version = "1.19", features = ["tracing"]} -tracing = "0.1" -uuid = {version = "0.8", features = ["v4", "serde"]} -warpgate-common = {version = "*", path = "../warpgate-common"} -warpgate-db-entities = {version = "*", path = "../warpgate-db-entities"} -warpgate-protocol-ssh = {version = "*", path = "../warpgate-protocol-ssh"} -warpgate-web = {version = "*", path = "../warpgate-web"} +mime_guess = { version = "2.0", default_features = false } +poem.workspace = true +poem-openapi.workspace = true +russh-keys.workspace = true +rust-embed.workspace = true +sea-orm.workspace = true +serde.workspace = true +serde_json.workspace = true +thiserror.workspace = true +tokio.workspace = true +tracing.workspace = true +uuid.workspace = true +warpgate-common = { version = "*", path = "../warpgate-common" } +warpgate-db-entities = { version = "*", path = "../warpgate-db-entities" } +warpgate-protocol-ssh = { version = "*", path = "../warpgate-protocol-ssh" } +warpgate-web = { version = "*", path = "../warpgate-web" } diff --git a/warpgate-common/Cargo.toml b/warpgate-common/Cargo.toml index c16f789..1cbadc7 100644 --- a/warpgate-common/Cargo.toml +++ b/warpgate-common/Cargo.toml @@ -1,35 +1,37 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-common" -version = "0.1.0" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] -anyhow = "1.0" +anyhow.workspace = true argon2 = "0.4" -async-trait = "0.1" -bytes = "1.1" -chrono = {version = "0.4", features = ["serde"]} -data-encoding = "2.3" +async-trait.workspace = true +bytes.workspace = true +chrono.workspace = true +data-encoding.workspace = true humantime-serde = "1.1" -lazy_static = "1.4" +lazy_static.workspace = true once_cell = "1.10" packet = "0.1" password-hash = "0.4" -poem-openapi = {version = "^1.3.30", features = ["swagger-ui", "chrono", "uuid", "static-files"]} +poem-openapi.workspace = true rand = "0.8" rand_chacha = "0.3" rand_core = {version = "0.6", features = ["std"]} -sea-orm = {version = "^0.8", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"], default-features = false} -serde = "1.0" -serde_json = "1.0" -thiserror = "1.0" -tokio = {version = "1.19", features = ["tracing"]} +sea-orm.workspace = true +serde.workspace = true +serde_json.workspace = true +thiserror.workspace = true +tokio.workspace = true totp-rs = {version = "2.0", features = ["otpauth"]} -tracing = "0.1" +tracing.workspace = true tracing-core = "0.1" tracing-subscriber = "0.3" url = "2.2" -uuid = {version = "0.8", features = ["v4", "serde"]} +uuid.workspace = true warpgate-db-entities = {version = "*", path = "../warpgate-db-entities"} warpgate-db-migrations = {version = "*", path = "../warpgate-db-migrations"} diff --git a/warpgate-db-entities/Cargo.toml b/warpgate-db-entities/Cargo.toml index eb4917c..f6a3b4a 100644 --- a/warpgate-db-entities/Cargo.toml +++ b/warpgate-db-entities/Cargo.toml @@ -1,13 +1,15 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-db-entities" -version = "0.1.0" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] -chrono = {version = "0.4", features = ["serde"]} -poem-openapi = {version = "^1.3.30", features = ["chrono", "uuid"]} -sea-orm = {version = "^0.8", features = ["macros", "with-chrono", "with-uuid", "with-json"], default-features = false} -serde = "1.0" -serde_json = "1.0" -uuid = {version = "0.8", features = ["v4", "serde"]} +chrono.workspace = true +poem-openapi.workspace = true +sea-orm.workspace = true +serde.workspace = true +serde_json.workspace = true +uuid.workspace = true diff --git a/warpgate-db-migrations/Cargo.toml b/warpgate-db-migrations/Cargo.toml index a633880..6b52b24 100644 --- a/warpgate-db-migrations/Cargo.toml +++ b/warpgate-db-migrations/Cargo.toml @@ -1,15 +1,16 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-db-migrations" -publish = false -version = "0.1.0" +edition.workspace = true +license.workspace = true +version.workspace = true [lib] [dependencies] async-std = "^1.11" -chrono = "0.4" -sea-orm = {version = "^0.8", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"], default-features = false} +chrono.workspace = true +sea-orm.workspace = true sea-orm-migration = {version = "^0.8", default-features = false} -uuid = {version = "0.8", features = ["v4", "serde"]} +uuid.workspace = true diff --git a/warpgate-protocol-http/Cargo.toml b/warpgate-protocol-http/Cargo.toml index ae4c977..92551c2 100644 --- a/warpgate-protocol-http/Cargo.toml +++ b/warpgate-protocol-http/Cargo.toml @@ -1,29 +1,31 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-protocol-http" -version = "0.2.5" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] -anyhow = "1.0" -async-trait = "0.1" +anyhow.workspace = true +async-trait.workspace = true cookie = "0.16" -data-encoding = "2.3" +data-encoding.workspace = true delegate = "0.6" -futures = "0.3" +futures.workspace = true http = "0.2" -lazy_static = "1.4" -poem = {version = "^1.3.30", features = ["cookie", "session", "anyhow", "rustls", "websocket", "sse", "embed"]} -poem-openapi = {version = "^1.3.30", features = ["swagger-ui"]} +lazy_static.workspace = true +poem.workspace = true +poem-openapi.workspace = true reqwest = {version = "0.11", features = ["rustls-tls-native-roots", "stream"]} -serde = "1.0" -serde_json = "1.0" -tokio = {version = "1.18", features = ["tracing", "signal"]} +serde.workspace = true +serde_json.workspace = true +tokio.workspace = true tokio-tungstenite = {version = "0.17", features = ["rustls-tls-native-roots"]} -tracing = "0.1" +tracing.workspace = true warpgate-admin = {version = "*", path = "../warpgate-admin"} warpgate-common = {version = "*", path = "../warpgate-common"} warpgate-db-entities = {version = "*", path = "../warpgate-db-entities"} warpgate-web = {version = "*", path = "../warpgate-web"} percent-encoding = "2.1" -uuid = {version = "0.8", features = ["v4"]} +uuid.workspace = true diff --git a/warpgate-protocol-ssh/Cargo.toml b/warpgate-protocol-ssh/Cargo.toml index 62e6bbd..7366c9d 100644 --- a/warpgate-protocol-ssh/Cargo.toml +++ b/warpgate-protocol-ssh/Cargo.toml @@ -1,24 +1,26 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-protocol-ssh" -version = "0.1.0" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] ansi_term = "0.12" -anyhow = "1.0" -async-trait = "0.1" +anyhow.workspace = true +async-trait.workspace = true bimap = "0.6" -bytes = "1.1" -dialoguer = "0.10" -futures = "0.3" -russh = {version = "0.34.0-beta.5", features = ["openssl"]} -russh-keys = {version = "0.22.0-beta.2", features = ["openssl"]} -sea-orm = {version = "^0.8", features = ["runtime-tokio-native-tls"], default-features = false} -thiserror = "1.0" -time = "0.3" -tokio = {version = "1.19", features = ["tracing", "signal"]} -tracing = "0.1" -uuid = {version = "0.8", features = ["v4"]} -warpgate-common = {version = "*", path = "../warpgate-common"} -warpgate-db-entities = {version = "*", path = "../warpgate-db-entities"} +bytes.workspace = true +dialoguer.workspace = true +futures.workspace = true +russh.workspace = true +russh-keys.workspace = true +sea-orm.workspace = true +thiserror.workspace = true +time.workspace = true +tokio.workspace = true +tracing.workspace = true +uuid.workspace = true +warpgate-common = { version = "*", path = "../warpgate-common" } +warpgate-db-entities = { version = "*", path = "../warpgate-db-entities" } diff --git a/warpgate-web/Cargo.toml b/warpgate-web/Cargo.toml index d51d79b..eaf23a9 100644 --- a/warpgate-web/Cargo.toml +++ b/warpgate-web/Cargo.toml @@ -1,11 +1,13 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate-web" -version = "0.1.0" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] -rust-embed = "6.3" -serde = "1.0" -serde_json = "1.0" -thiserror = "1.0" +rust-embed.workspace = true +serde.workspace = true +serde_json.workspace = true +thiserror.workspace = true diff --git a/warpgate/Cargo.toml b/warpgate/Cargo.toml index 3e8d2cd..e1fc099 100644 --- a/warpgate/Cargo.toml +++ b/warpgate/Cargo.toml @@ -1,36 +1,41 @@ +cargo-features = ["workspace-inheritance"] + [package] -edition = "2021" -license = "Apache-2.0" name = "warpgate" -version = "0.2.5" +edition.workspace = true +license.workspace = true +version.workspace = true [dependencies] ansi_term = "0.12" -anyhow = {version = "1.0", features = ["backtrace"]} -async-trait = "0.1" +anyhow.workspace = true +async-trait.workspace = true atty = "0.2" -bytes = "1.1" -clap = {version = "3.2", features = ["derive"]} -config = {version = "0.13", features = ["yaml"], default_features = false} -console = {version = "0.15", default_features = false} -console-subscriber = {version = "0.1", optional = true} -data-encoding = "2.3" -dhat = {version = "0.3", optional = true} -dialoguer = "0.10" -futures = "0.3" +bytes.workspace = true +clap = { version = "3.2", features = ["derive"] } +config = { version = "0.13", features = ["yaml"], default_features = false } +console = { version = "0.15", default_features = false } +console-subscriber = { version = "0.1", optional = true } +data-encoding.workspace = true +dhat = { version = "0.3", optional = true } +dialoguer.workspace = true +futures.workspace = true notify = "^5.0.0-beta.1" -openssl = {version = "0.10", features = ["vendored"]}# Embed OpenSSL +openssl = { version = "0.10", features = ["vendored"] } # Embed OpenSSL qrcode = "0.12" -rcgen = {version = "0.9", features = ["zeroize"]} +rcgen = { version = "0.9", features = ["zeroize"] } serde_yaml = "0.8.23" -time = "0.3" -tokio = {version = "1.19", features = ["tracing", "signal", "macros"]} -tracing = "0.1" -tracing-subscriber = {version = "0.3", features = ["env-filter", "local-time"]} -warpgate-admin = {version = "*", path = "../warpgate-admin"} -warpgate-common = {version = "*", path = "../warpgate-common"} -warpgate-protocol-http = {version = "*", path = "../warpgate-protocol-http"} -warpgate-protocol-ssh = {version = "*", path = "../warpgate-protocol-ssh"} +time.workspace = true +tokio.workspace = true +tracing.workspace = true +tracing-subscriber = { version = "0.3", features = [ + "env-filter", + "local-time", +] } +warpgate-admin = { version = "*", path = "../warpgate-admin" } +warpgate-common = { version = "*", path = "../warpgate-common" } +warpgate-protocol-http = { version = "*", path = "../warpgate-protocol-http" } +warpgate-protocol-ssh = { version = "*", path = "../warpgate-protocol-ssh" } [target.'cfg(target_os = "linux")'.dependencies] sd-notify = "0.4"