Update Rust, Diesel CLI and dev. environment.

This commit is contained in:
Orne Brocaar 2024-06-18 13:56:31 +01:00
parent 38d544a5f7
commit 3b95a413a6
4 changed files with 212 additions and 192 deletions

View File

@ -8,7 +8,7 @@ dist:
# Install dev dependencies
dev-dependencies:
cargo install cross --version 0.2.5
cargo install diesel_cli --version 2.1.1 --no-default-features --features postgres
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres
cargo install cargo-deb --version 1.43.1
cargo install cargo-generate-rpm --version 0.12.1

View File

@ -1,159 +1,179 @@
[package]
name = "chirpstack"
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
repository = "https://github.com/chirpstack/chirpstack"
homepage = "https://www.chirpstack.io/"
version = "4.8.1"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
publish = false
license = "MIT"
name = "chirpstack"
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
repository = "https://github.com/chirpstack/chirpstack"
homepage = "https://www.chirpstack.io/"
version = "4.8.1"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
publish = false
license = "MIT"
[dependencies]
# CLI interface
clap = { version = "4.5", features = ["derive"] }
# CLI interface
clap = { version = "4.5", features = ["derive"] }
# Configuration
serde = { version = "1.0", features = ["derive", "rc"] }
serde_yaml = "0.9"
serde_json = "1.0"
serde_urlencoded = "0.7"
humantime-serde = "1.1"
toml = "0.8"
handlebars = "5.1"
# Configuration
serde = { version = "1.0", features = ["derive", "rc"] }
serde_yaml = "0.9"
serde_json = "1.0"
serde_urlencoded = "0.7"
humantime-serde = "1.1"
toml = "0.8"
handlebars = "5.1"
# Database
email_address = "0.2"
diesel = { version = "2.1", features = [
# Database
email_address = "0.2"
diesel = { version = "2.1", features = [
"chrono",
"uuid",
"serde_json",
"numeric",
"64-column-tables",
"postgres_backend",
] }
diesel_migrations = { version = "2.1" }
diesel-async = { version = "0.4", features = ["deadpool", "postgres", "async-connection-wrapper"] }
tokio-postgres = "0.7"
tokio-postgres-rustls = "0.11"
bigdecimal = "0.4"
redis = { version = "0.25.2", features = [ "tls-rustls", "tokio-rustls-comp"] }
deadpool-redis = { version = "0.15", features = ["cluster"] }
] }
diesel_migrations = { version = "2.1" }
diesel-async = { version = "0.4", features = [
"deadpool",
"postgres",
"async-connection-wrapper",
] }
tokio-postgres = "0.7"
tokio-postgres-rustls = "0.11"
bigdecimal = "0.4"
redis = { version = "0.25.2", features = ["tls-rustls", "tokio-rustls-comp"] }
deadpool-redis = { version = "0.15", features = ["cluster"] }
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [
"fmt",
"ansi",
"json",
], default-features = true }
], default-features = true }
# ChirpStack API definitions
chirpstack_api = { path = "../api/rust", features = ["default", "internal", "diesel"] }
lrwn = { path = "../lrwn", features = ["serde", "diesel", "regions", "crypto"] }
backend = { path = "../backend" }
# ChirpStack API definitions
chirpstack_api = { path = "../api/rust", features = [
"default",
"internal",
"diesel",
] }
lrwn = { path = "../lrwn", features = [
"serde",
"diesel",
"regions",
"crypto",
] }
backend = { path = "../backend" }
# HTTP
reqwest = { version = "0.12", features = [
# HTTP
reqwest = { version = "0.12", features = [
"json",
"rustls-tls-native-roots",
], default-features = false }
], default-features = false }
# Integrations
aws-sign-v4 = "0.3"
hmac = "0.12"
sha2 = "0.10"
urlencoding = "2.1"
geohash = "0.13"
gcp_auth = "0.11"
lapin = "2.3"
tokio-executor-trait = "2.1"
tokio-reactor-trait = "1.1"
rdkafka = { version = "0.36", default-features = false, features = ["tokio", "cmake-build"] }
# Integrations
aws-sign-v4 = "0.3"
hmac = "0.12"
sha2 = "0.10"
urlencoding = "2.1"
geohash = "0.13"
gcp_auth = "0.11"
lapin = "2.3"
tokio-executor-trait = "2.1"
tokio-reactor-trait = "1.1"
rdkafka = { version = "0.36", default-features = false, features = [
"tokio",
"cmake-build",
] }
# gRPC and Protobuf
tonic = "0.11"
tonic-web = "0.11"
tonic-reflection = "0.11"
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
tokio-stream = "0.1"
prost-types = "0.12"
prost = "0.12"
pbjson-types = "0.6"
# gRPC and Protobuf
tonic = "0.11"
tonic-web = "0.11"
tonic-reflection = "0.11"
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
tokio-stream = "0.1"
prost-types = "0.12"
prost = "0.12"
pbjson-types = "0.6"
# gRPC and HTTP multiplexing
warp = { version = "0.3", features = ["tls"], default-features = false }
hyper = "0.14"
tower = "0.4"
futures = "0.3"
futures-util = "0.3"
http = "0.2"
http-body = "0.4"
rust-embed = "8.3"
mime_guess = "2.0"
tower-http = { version = "0.4", features = ["trace", "auth"] }
# gRPC and HTTP multiplexing
warp = { version = "0.3", features = ["tls"], default-features = false }
hyper = "0.14"
tower = "0.4"
futures = "0.3"
futures-util = "0.3"
http = "0.2"
http-body = "0.4"
rust-embed = "8.3"
mime_guess = "2.0"
tower-http = { version = "0.4", features = ["trace", "auth"] }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Authentication
pbkdf2 = { version = "0.12", features = ["simple"] }
rand_core = { version = "0.6", features = ["std"] }
jsonwebtoken = "9.2"
rustls = "0.22"
rustls-native-certs = "0.7"
rustls-pemfile = "2.1"
pem = "3.0"
x509-parser = "0.16"
rsa = "0.9"
elliptic-curve = { version = "0.13", features = ["pem"] }
p256 = "0.13"
rcgen = { version = "0.13.1", features = [ "x509-parser" ] }
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
oauth2 = "4.4"
# Authentication
pbkdf2 = { version = "0.12", features = ["simple"] }
rand_core = { version = "0.6", features = ["std"] }
jsonwebtoken = "9.2"
rustls = "0.22"
rustls-native-certs = "0.7"
rustls-pemfile = "2.1"
pem = "3.0"
x509-parser = "0.16"
rsa = "0.9"
elliptic-curve = { version = "0.13", features = ["pem"] }
p256 = "0.13"
rcgen = { version = "0.13.1", features = ["x509-parser"] }
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
oauth2 = "4.4"
# MQTT
rumqttc = { version = "0.24", features = ["url"] }
hex = "0.4"
# MQTT
rumqttc = { version = "0.24", features = ["url"] }
hex = "0.4"
# Codecs
rquickjs = { version = "0.6", features = [
# Codecs
rquickjs = { version = "0.6", features = [
"bindgen",
"loader",
"array-buffer",
"chrono",
] }
] }
# Misc
lazy_static = "1.4"
uuid = { version = "1.8", features = ["v4", "serde"] }
chrono = "0.4"
async-trait = "0.1"
aes = "0.8"
rand = "0.8"
base64 = "0.22"
async-recursion = "1.0"
regex = "1.10"
petgraph = "0.6"
prometheus-client = "0.22"
pin-project = "1.1"
# Misc
lazy_static = "1.4"
uuid = { version = "1.8", features = ["v4", "serde"] }
chrono = "0.4"
async-trait = "0.1"
aes = "0.8"
rand = "0.8"
base64 = "0.22"
async-recursion = "1.0"
regex = "1.10"
petgraph = "0.6"
prometheus-client = "0.22"
pin-project = "1.1"
# Development and testing
[dev-dependencies]
httpmock = "0.7.0"
bytes = "1.5"
dotenv = "0.15"
httpmock = "0.7.0"
bytes = "1.5"
dotenv = "0.15"
[features]
test-all-integrations = ["test-integration-amqp", "test-integration-kafka", "test-integration-mqtt"]
test-integration-amqp = []
test-integration-kafka = []
test-integration-mqtt = []
test-all-integrations = [
"test-integration-amqp",
"test-integration-kafka",
"test-integration-mqtt",
]
test-integration-amqp = []
test-integration-kafka = []
test-integration-mqtt = []
# Debian packaging.
[package.metadata.deb]
assets = [
# Debian packaging.
[package.metadata.deb]
assets = [
[
"target/release/chirpstack",
"usr/bin/",
@ -164,8 +184,8 @@ assets = [
"etc/chirpstack/",
"640",
],
]
conf-files = [
]
conf-files = [
"/etc/chirpstack/chirpstack.toml",
"/etc/chirpstack/region_as923.toml",
"/etc/chirpstack/region_as923_2.toml",
@ -194,29 +214,29 @@ conf-files = [
"/etc/chirpstack/region_us915_5.toml",
"/etc/chirpstack/region_us915_6.toml",
"/etc/chirpstack/region_us915_7.toml",
]
suggests = "postgresql, mosquitto, redis"
maintainer-scripts = "debian/"
systemd-units = { enable = true }
]
suggests = "postgresql, mosquitto, redis"
maintainer-scripts = "debian/"
systemd-units = { enable = true }
[package.metadata.generate-rpm]
auto-req = "no"
[package.metadata.generate-rpm]
auto-req = "no"
pre_install_script = '''
pre_install_script = '''
id chirpstack &>/dev/null
if [[ $? -ne 0 ]]; then
useradd --system -U -M chirpstack -s /bin/false -d /etc/chirpstack
fi
'''
post_install_script = '''
post_install_script = '''
chown -R chirpstack:chirpstack /etc/chirpstack
chmod 750 /etc/chirpstack
chmod 640 /etc/chirpstack/*.toml
'''
assets = [
assets = [
{ source = "target/release/chirpstack", dest = "/usr/bin/chirpstack", mode = "755" },
{ source = "configuration/*", dest = "/etc/chirpstack"},
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service"},
]
{ source = "configuration/*", dest = "/etc/chirpstack" },
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service" },
]

View File

@ -1,4 +1,4 @@
[toolchain]
channel = "1.78.0"
components = ["rustfmt", "clippy"]
profile = "default"
channel = "1.79.0"
components = ["rustfmt", "clippy"]
profile = "default"

View File

@ -1,4 +1,4 @@
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz") {} }:
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.05.tar.gz") {} }:
pkgs.mkShell {
nativeBuildInputs = [