From a21f8a74f390044d6c40d4f7509ccfe865729869 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Mon, 23 Dec 2024 19:58:14 -0500 Subject: [PATCH 01/13] chore: cargo update --- Cargo.lock | 142 ++++++++++++++++++++++++++--------------------------- deny.toml | 3 -- 2 files changed, 71 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1513ee..5694ada 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -213,7 +213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -348,7 +348,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -552,9 +552,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" dependencies = [ "backtrace", ] @@ -621,9 +621,9 @@ dependencies = [ [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ "event-listener", "event-listener-strategy", @@ -724,7 +724,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -764,7 +764,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -781,7 +781,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1070,7 +1070,7 @@ checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1305,7 +1305,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1724,7 +1724,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1744,7 +1744,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "unicode-xid", ] @@ -1783,7 +1783,7 @@ dependencies = [ "diesel_table_macro_syntax", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1792,7 +1792,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" dependencies = [ - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1821,7 +1821,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2051,7 +2051,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2072,7 +2072,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2083,7 +2083,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2268,7 +2268,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2366,7 +2366,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3118,7 +3118,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3824,7 +3824,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4243,7 +4243,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.8", + "thiserror 2.0.9", "ucd-trie", ] @@ -4267,7 +4267,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4316,7 +4316,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4549,7 +4549,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4609,7 +4609,7 @@ dependencies = [ "rustc-hash 2.1.0", "rustls 0.23.20", "socket2", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", ] @@ -4628,7 +4628,7 @@ dependencies = [ "rustls 0.23.20", "rustls-pki-types", "slab", - "thiserror 2.0.8", + "thiserror 2.0.9", "tinyvec", "tracing", "web-time 1.1.0", @@ -5016,7 +5016,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.90", + "syn 2.0.91", "unicode-ident", ] @@ -5291,14 +5291,14 @@ checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" dependencies = [ "itoa", "memchr", @@ -5314,7 +5314,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -5413,7 +5413,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -5436,7 +5436,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "thiserror 2.0.8", + "thiserror 2.0.9", "tower", "tracing", "tracing-opentelemetry", @@ -5495,7 +5495,7 @@ dependencies = [ "serde", "shuttle-common", "strfmt", - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] @@ -5756,7 +5756,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -5779,7 +5779,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.90", + "syn 2.0.91", "tempfile", "tokio", "url", @@ -5970,7 +5970,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6003,9 +6003,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" dependencies = [ "proc-macro2", "quote", @@ -6035,7 +6035,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6111,11 +6111,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.8" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" dependencies = [ - "thiserror-impl 2.0.8", + "thiserror-impl 2.0.9", ] [[package]] @@ -6126,18 +6126,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "thiserror-impl" -version = "2.0.8" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6267,7 +6267,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6504,7 +6504,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6703,7 +6703,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a615d6c2764852a2e88a4f16e9ce1ea49bb776b5872956309e170d63a042a34f" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6876,7 +6876,7 @@ dependencies = [ "cargo-util", "clap", "git2", - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] @@ -6937,7 +6937,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "wasm-bindgen-shared", ] @@ -6972,7 +6972,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7005,7 +7005,7 @@ checksum = "54171416ce73aa0b9c377b51cc3cb542becee1cd678204812e8392e5b0e4a031" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7379,7 +7379,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7390,7 +7390,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7639,9 +7639,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.30.6" +version = "0.30.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d72dfa0f47e429290cd0d236884ca02f22dbd5dd33a43ad2b8bf4d79b6c18" +checksum = "dba50bc8ef4b6f1a75c9274fb95aa9a8f63fbc66c56f391bd85cf68d51e7b1a3" dependencies = [ "ahash", "android-activity", @@ -7730,7 +7730,7 @@ dependencies = [ "futures-util", "rand", "serde", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", "wykies-shared", @@ -7818,7 +7818,7 @@ dependencies = [ "sqlx", "static_assertions", "strum 0.26.3", - "thiserror 2.0.8", + "thiserror 2.0.9", "tracing", "tracing-bunyan-formatter", "tracing-log 0.2.0", @@ -7931,7 +7931,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "synstructure", ] @@ -7991,7 +7991,7 @@ checksum = "709ab20fc57cb22af85be7b360239563209258430bccf38d8b979c5a2ae3ecce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "zbus-lockstep", "zbus_xml", "zvariant", @@ -8006,7 +8006,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "zvariant_utils", ] @@ -8052,7 +8052,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8072,7 +8072,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "synstructure", ] @@ -8101,7 +8101,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8154,7 +8154,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "zvariant_utils", ] @@ -8166,5 +8166,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] diff --git a/deny.toml b/deny.toml index ff6db86..ecd14e0 100644 --- a/deny.toml +++ b/deny.toml @@ -12,7 +12,4 @@ ignore = [ # Haven't been able to find the tracking issue for this but we don't try to access any user supplied urls "RUSTSEC-2024-0421", - - # Will remove this one I pull proc-macro-error out of shuttle - "RUSTSEC-2024-0370", ] From 832e91a9432b64057d37c2f61115a1d01d8afac0 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Mon, 23 Dec 2024 20:06:38 -0500 Subject: [PATCH 02/13] chore: switch shuttle main for RUSTSEC-2024-0370 --- Cargo.lock | 80 +++++++++++++++++++++++++++++++++++++----------------- Cargo.toml | 1 + 2 files changed, 56 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5694ada..9344398 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4491,27 +4491,25 @@ dependencies = [ ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", + "syn 2.0.91", ] [[package]] @@ -5384,8 +5382,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "shuttle-api-client" version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe7537d0542543b2f26f48e113e1b9366ad9f675d511084ecac098107ad7bc2" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ "anyhow", "async-trait", @@ -5397,7 +5394,7 @@ dependencies = [ "rmp-serde", "serde", "serde_json", - "shuttle-common", + "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", "tokio", "tokio-tungstenite 0.20.1", "url", @@ -5407,10 +5404,9 @@ dependencies = [ [[package]] name = "shuttle-codegen" version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5088974f1b70861d15606e80011a4b14537cf6fe3d4ae3a25ed286fd9ca56364" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.91", @@ -5421,6 +5417,29 @@ name = "shuttle-common" version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f167b3f5fd96e6c7465e85c17267daef7c364da5b8f0c24f4027cf829343e9d" +dependencies = [ + "anyhow", + "chrono", + "comfy-table", + "crossterm 0.27.0", + "http 0.2.12", + "semver", + "serde", + "serde_json", + "strum 0.26.3", + "thiserror 2.0.9", + "tracing", + "tracing-subscriber", + "typeshare", + "url", + "uuid", + "zeroize", +] + +[[package]] +name = "shuttle-common" +version = "0.49.0" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ "anyhow", "async-trait", @@ -5450,21 +5469,19 @@ dependencies = [ [[package]] name = "shuttle-proto" version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "132a015d70a737692569573320421d87c0fc3cf5696bf9f62451542ddbadf508" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ "futures-core", "prost", "prost-types", - "shuttle-common", + "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", "tonic", ] [[package]] name = "shuttle-runtime" version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "337789faa0372648a8ac286b2f92a53121fe118f12e29009ac504872a5413cc6" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ "anyhow", "async-trait", @@ -5473,9 +5490,9 @@ dependencies = [ "serde_json", "shuttle-api-client", "shuttle-codegen", - "shuttle-common", + "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", "shuttle-proto", - "shuttle-service", + "shuttle-service 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", "strfmt", "tokio", "tokio-stream", @@ -5493,7 +5510,20 @@ dependencies = [ "anyhow", "async-trait", "serde", - "shuttle-common", + "shuttle-common 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)", + "strfmt", + "thiserror 2.0.9", +] + +[[package]] +name = "shuttle-service" +version = "0.49.0" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" +dependencies = [ + "anyhow", + "async-trait", + "serde", + "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", "strfmt", "thiserror 2.0.9", ] @@ -5508,7 +5538,7 @@ dependencies = [ "diesel-async", "serde", "serde_json", - "shuttle-service", + "shuttle-service 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)", "sqlx", ] diff --git a/Cargo.toml b/Cargo.toml index da6305c..1461319 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,3 +79,4 @@ opt-level = 2 # fast and small wasm # https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#testing-a-bugfix [patch.crates-io] reqwest = { git = "https://github.com/c-git/reqwest.git", branch = "wasm-cookies" } +shuttle-runtime = { git = "https://github.com/shuttle-hq/shuttle" } From 838dd3224b1047e2d77d692d3f4fd59c1271652e Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 22:27:25 -0500 Subject: [PATCH 03/13] chore: switch to standalone --- .vscode/settings.json | 4 ++-- crates/wykies-server/.env | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 31d98be..bead156 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,7 +26,7 @@ "password": "password" } ], - "rust-analyzer.cargo.features": ["shuttle"], // Switch to Shuttle - // "rust-analyzer.cargo.features": ["standalone", "mysql"], // Switch to Standalone + // "rust-analyzer.cargo.features": ["shuttle"], // Switch to Shuttle + "rust-analyzer.cargo.features": ["standalone", "mysql"], // Switch to Standalone "rust-analyzer.cargo.noDefaultFeatures": true } diff --git a/crates/wykies-server/.env b/crates/wykies-server/.env index 1df47f0..6632b76 100644 --- a/crates/wykies-server/.env +++ b/crates/wykies-server/.env @@ -1,3 +1,3 @@ -# DATABASE_URL="mysql://db_user:password@localhost:3306/chat_demo" # Switch to Standalone -DATABASE_URL="postgres://db_user:password@localhost:5432/chat_demo" # Switch to Shuttle +DATABASE_URL="mysql://db_user:password@localhost:3306/chat_demo" # Switch to Standalone +# DATABASE_URL="postgres://db_user:password@localhost:5432/chat_demo" # Switch to Shuttle SQLX_OFFLINE=true From 8a34563856deaddcad2bf977e5c36c4859215332 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 22:54:19 -0500 Subject: [PATCH 04/13] chore: upgrade egui --- Cargo.lock | 211 ++++++++++------------------- Cargo.toml | 6 +- crates/chat-app-client/index.html | 6 +- crates/chat-app-client/src/main.rs | 15 +- 4 files changed, 85 insertions(+), 153 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9344398..a28fdd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" [[package]] name = "accesskit" -version = "0.16.3" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b76d84ee70e30a4a7e39ab9018e2b17a6a09e31084176cc7c0b2dec036ba45" +checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a" dependencies = [ "enumn", "serde", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "accesskit_atspi_common" -version = "0.9.3" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5393c75d4666f580f4cac0a968bc97c36076bb536a129f28210dac54ee127ed" +checksum = "7c5dd55e6e94949498698daf4d48fb5659e824d7abec0d394089656ceaf99d4f" dependencies = [ "accesskit", "accesskit_consumer", @@ -44,33 +44,34 @@ dependencies = [ [[package]] name = "accesskit_consumer" -version = "0.24.3" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a12dc159d52233c43d9fe5415969433cbdd52c3d6e0df51bda7d447427b9986" +checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" dependencies = [ "accesskit", + "hashbrown 0.15.2", "immutable-chunkmap", ] [[package]] name = "accesskit_macos" -version = "0.17.4" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc6c1ecd82053d127961ad80a8beaa6004fb851a3a5b96506d7a6bd462403f6" +checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" dependencies = [ "accesskit", "accesskit_consumer", + "hashbrown 0.15.2", "objc2", "objc2-app-kit", "objc2-foundation", - "once_cell", ] [[package]] name = "accesskit_unix" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be7f5cf6165be10a54b2655fa2e0e12b2509f38ed6fc43e11c31fdb7ee6230bb" +checksum = "fcee751cc20d88678c33edaf9c07e8b693cd02819fe89053776f5313492273f5" dependencies = [ "accesskit", "accesskit_atspi_common", @@ -86,23 +87,24 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.23.2" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "974e96c347384d9133427167fb8a58c340cb0496988dacceebdc1ed27071023b" +checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" dependencies = [ "accesskit", "accesskit_consumer", + "hashbrown 0.15.2", "paste", "static_assertions", - "windows 0.58.0", + "windows", "windows-core 0.58.0", ] [[package]] name = "accesskit_winit" -version = "0.22.4" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea3522719f1c44564d03e9469a8e2f3a98b3a8a880bd66d0789c6b9c4a669dd" +checksum = "6a6a48dad5530b6deb9fc7a52cc6c3bf72cdd9eb8157ac9d32d69f2427a5e879" dependencies = [ "accesskit", "accesskit_macos", @@ -942,18 +944,18 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bit-set" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" @@ -1339,37 +1341,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "com" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" -dependencies = [ - "com_macros", -] - -[[package]] -name = "com_macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" -dependencies = [ - "com_macros_support", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "com_macros_support" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "combine" version = "4.6.7" @@ -1862,9 +1833,9 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "ecolor" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775cfde491852059e386c4e1deb4aef381c617dc364184c6f6afee99b87c402b" +checksum = "7d72e9c39f6e11a2e922d04a34ec5e7ef522ea3f5a1acfca7a19d16ad5fe50f5" dependencies = [ "bytemuck", "emath", @@ -1873,9 +1844,9 @@ dependencies = [ [[package]] name = "eframe" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac2645a9bf4826eb4e91488b1f17b8eaddeef09396706b2f14066461338e24f" +checksum = "b2f2d9e7ea2d11ec9e98a8683b6eb99f9d7d0448394ef6e0d6d91bd4eb817220" dependencies = [ "ahash", "bytemuck", @@ -1884,7 +1855,7 @@ dependencies = [ "egui-wgpu", "egui-winit", "egui_glow", - "glow 0.14.2", + "glow 0.16.0", "glutin", "glutin-winit", "home", @@ -1896,6 +1867,7 @@ dependencies = [ "objc2-foundation", "parking_lot", "percent-encoding", + "profiling", "raw-window-handle", "ron", "serde", @@ -1905,15 +1877,15 @@ dependencies = [ "web-sys", "web-time 1.1.0", "winapi", - "windows-sys 0.52.0", + "windows-sys 0.59.0", "winit", ] [[package]] name = "egui" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53eafabcce0cb2325a59a98736efe0bf060585b437763f8c476957fb274bb974" +checksum = "252d52224d35be1535d7fd1d6139ce071fb42c9097773e79f7665604f5596b5e" dependencies = [ "accesskit", "ahash", @@ -1921,15 +1893,16 @@ dependencies = [ "epaint", "log", "nohash-hasher", + "profiling", "ron", "serde", ] [[package]] name = "egui-wgpu" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00fd5d06d8405397e64a928fa0ef3934b3c30273ea7603e3dc4627b1f7a1a82" +checksum = "26c1e821d2d8921ef6ce98b258c7e24d9d6aab2ca1f9cdf374eca997e7f67f59" dependencies = [ "ahash", "bytemuck", @@ -1937,6 +1910,7 @@ dependencies = [ "egui", "epaint", "log", + "profiling", "thiserror 1.0.69", "type-map", "web-time 1.1.0", @@ -1946,15 +1920,16 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a9c430f4f816340e8e8c1b20eec274186b1be6bc4c7dfc467ed50d57abc36c6" +checksum = "1e84c2919cd9f3a38a91e8f84ac6a245c19251fd95226ed9fae61d5ea564fce3" dependencies = [ "accesskit_winit", "ahash", "arboard", "egui", "log", + "profiling", "raw-window-handle", "serde", "smithay-clipboard", @@ -1965,29 +1940,31 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3c1f5cd8dfe2ade470a218696c66cf556fcfd701e7830fa2e9f4428292a2a1" +checksum = "3d7a8198c088b1007108cb2d403bc99a5e370999b200db4f14559610d7330126" dependencies = [ "ahash", "egui", "enum-map", "log", "mime_guess2", + "profiling", ] [[package]] name = "egui_glow" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e39bccc683cd43adab530d8f21a13eb91e80de10bcc38c3f1c16601b6f62b26" +checksum = "3eaf6264cc7608e3e69a7d57a6175f438275f1b3889c1a551b418277721c95e6" dependencies = [ "ahash", "bytemuck", "egui", - "glow 0.14.2", + "glow 0.16.0", "log", "memoffset", + "profiling", "wasm-bindgen", "web-sys", "winit", @@ -2004,9 +1981,9 @@ dependencies = [ [[package]] name = "emath" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1fe0049ce51d0fb414d029e668dd72eb30bc2b739bf34296ed97bd33df544f3" +checksum = "c4fe73c1207b864ee40aa0b0c038d6092af1030744678c60188a05c28553515d" dependencies = [ "bytemuck", "serde", @@ -2088,9 +2065,9 @@ dependencies = [ [[package]] name = "epaint" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a32af8da821bd4f43f2c137e295459ee2e1661d87ca8779dfa0eaf45d870e20f" +checksum = "5666f8d25236293c966fbb3635eac18b04ad1914e3bab55bc7d44b9980cafcac" dependencies = [ "ab_glyph", "ahash", @@ -2101,14 +2078,15 @@ dependencies = [ "log", "nohash-hasher", "parking_lot", + "profiling", "serde", ] [[package]] name = "epaint_default_fonts" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483440db0b7993cf77a20314f08311dbe95675092405518c0677aa08c151a3ea" +checksum = "66f6ddac3e6ac6fd4c3d48bb8b1943472f8da0f43a4303bcd8a18aa594401c80" [[package]] name = "equivalent" @@ -2511,9 +2489,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.13.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" dependencies = [ "js-sys", "slotmap", @@ -2523,9 +2501,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -2618,19 +2596,6 @@ dependencies = [ "bitflags 2.6.0", ] -[[package]] -name = "gpu-allocator" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" -dependencies = [ - "log", - "presser", - "thiserror 1.0.69", - "winapi", - "windows 0.52.0", -] - [[package]] name = "gpu-descriptor" version = "0.3.1" @@ -2704,21 +2669,6 @@ dependencies = [ "hashbrown 0.14.5", ] -[[package]] -name = "hassle-rs" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" -dependencies = [ - "bitflags 2.6.0", - "com", - "libc", - "libloading", - "thiserror 1.0.69", - "widestring", - "winapi", -] - [[package]] name = "headers" version = "0.3.9" @@ -3646,9 +3596,9 @@ checksum = "e94e1e6445d314f972ff7395df2de295fe51b71821694f0b0e1e79c4f12c8577" [[package]] name = "naga" -version = "22.1.0" +version = "23.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" +checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" dependencies = [ "arrayvec", "bit-set", @@ -4475,12 +4425,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "presser" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" - [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -7212,9 +7156,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "22.1.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" +checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" dependencies = [ "arrayvec", "cfg_aliases 0.1.1", @@ -7236,9 +7180,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "22.1.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" +checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" dependencies = [ "arrayvec", "bit-vec", @@ -7261,22 +7205,21 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "22.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" +checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" dependencies = [ "android_system_properties", "arrayvec", "ash", "bitflags 2.6.0", + "bytemuck", "cfg_aliases 0.1.1", "core-graphics-types", - "glow 0.13.1", + "glow 0.14.2", "glutin_wgl_sys", "gpu-alloc", - "gpu-allocator", "gpu-descriptor", - "hassle-rs", "js-sys", "khronos-egl", "libc", @@ -7297,14 +7240,14 @@ dependencies = [ "wasm-bindgen", "web-sys", "wgpu-types", - "winapi", + "windows", ] [[package]] name = "wgpu-types" -version = "22.0.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" +checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" dependencies = [ "bitflags 2.6.0", "js-sys", @@ -7322,12 +7265,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - [[package]] name = "winapi" version = "0.3.9" @@ -7359,16 +7296,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.58.0" diff --git a/Cargo.toml b/Cargo.toml index 1461319..5eab123 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,9 +28,9 @@ chrono = { version = "0.4.34", default-features = false, features = ["clock", "s clap = "4.2.4" config = { version = "0.14", default-features = false, features = ["toml"] } db-types = { version = "*", path = "crates/db-types", default-features = false } -eframe = "0.29.1" -egui = { version = "0.29.1", default-features = false } -egui_extras = "0.29.1" +eframe = "0.30.0" +egui = { version = "0.30.0", default-features = false } +egui_extras = "0.30.0" ewebsock = "0.8.0" futures = "0.3.28" futures-util = "0.3.30" diff --git a/crates/chat-app-client/index.html b/crates/chat-app-client/index.html index f1fb6c9..72bc9cf 100644 --- a/crates/chat-app-client/index.html +++ b/crates/chat-app-client/index.html @@ -18,13 +18,13 @@ - + - + @@ -143,4 +143,4 @@ - + \ No newline at end of file diff --git a/crates/chat-app-client/src/main.rs b/crates/chat-app-client/src/main.rs index a98e405..47f7b1c 100644 --- a/crates/chat-app-client/src/main.rs +++ b/crates/chat-app-client/src/main.rs @@ -16,10 +16,14 @@ fn main() -> eframe::Result<()> { chat_app_client::background_worker::start_background_worker(rt); // This is also needed to prevent the runtime from stopping let native_options = eframe::NativeOptions { - viewport: egui::ViewportBuilder::default().with_icon( - eframe::icon_data::from_png_bytes(&include_bytes!("../assets/icon-256.png")[..]) - .expect("failed to load png from bytes"), - ), + viewport: egui::ViewportBuilder::default() + // TODO 4: Fix default size of chat client + .with_inner_size([400.0, 300.0]) + .with_min_inner_size([300.0, 220.0]) + .with_icon( + eframe::icon_data::from_png_bytes(&include_bytes!("../assets/icon-256.png")[..]) + .expect("Failed to load icon"), + ), ..Default::default() }; eframe::run_native( @@ -29,7 +33,7 @@ fn main() -> eframe::Result<()> { ) } -// when compiling to web using trunk. +// When compiling to web using trunk #[cfg(target_arch = "wasm32")] fn main() { // TODO 4: Look into dark mode not working in WASM @@ -60,6 +64,7 @@ fn main() { ) .await; + // Remove the loading text and spinner: if let Some(loading_text) = document.get_element_by_id("loading_text") { match start_result { Ok(_) => { From 7d524692f1c207b59ef31579fd373547a119892d Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 22:57:06 -0500 Subject: [PATCH 05/13] chore: upgrade dependencies --- Cargo.lock | 14 +++++++------- Cargo.toml | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a28fdd1..0d1af34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1378,14 +1378,14 @@ dependencies = [ [[package]] name = "config" -version = "0.14.1" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" +checksum = "3d84f8d224ac58107d53d3ec2b9ad39fd8c8c4e285d3c9cb35485ffd2ca88cb3" dependencies = [ - "nom", "pathdiff", "serde", "toml", + "winnow", ] [[package]] @@ -5207,9 +5207,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -5227,9 +5227,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 5eab123..12ca323 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ anyhow = "1.0.94" argon2 = "0.5.3" chrono = { version = "0.4.34", default-features = false, features = ["clock", "serde"] } clap = "4.2.4" -config = { version = "0.14", default-features = false, features = ["toml"] } +config = { version = "0.15.4", default-features = false, features = ["toml"] } db-types = { version = "*", path = "crates/db-types", default-features = false } eframe = "0.30.0" egui = { version = "0.30.0", default-features = false } @@ -45,15 +45,15 @@ ringbuffer = "0.15.0" ron = "0.8.1" rstest = "0.23.0" secrecy = { version = "0.10.3", features = ["serde"] } -serde = { version = "1.0.215", features = ["derive"] } +serde = { version = "1.0.217", features = ["derive"] } serde_json = "1.0.113" serde-aux = "4.5.0" shuttle-runtime = { version = "0.49.0", default-features = false } shuttle-shared-db = "0.49.0" sqlx = { version = "0.8.2", default-features = false } static_assertions = "1.1.0" -strum = "0.26.2" -thiserror = "2.0.7" +strum = "0.26.3" +thiserror = "2.0.9" tokio = { version = "1.42.0", default-features = false } tokio-util = "0.7.13" tracing = "0.1.41" From d12877e32b50ff3faa82e71f782ac6e7999789bb Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 23:46:35 -0500 Subject: [PATCH 06/13] feat: support running locally in debug mode --- crates/wykies-client-core/src/client.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/wykies-client-core/src/client.rs b/crates/wykies-client-core/src/client.rs index e5d5327..81602db 100644 --- a/crates/wykies-client-core/src/client.rs +++ b/crates/wykies-client-core/src/client.rs @@ -37,8 +37,11 @@ impl Default for Client { // TODO 3: Add test to ensure URL starts with "http" so when we replace "http" // with "ws" it will not be a problem. Ignore the following s as both // would need it. Both https and wss. - Self::new("https://chat-demo-umon.shuttle.app".to_string()) - // Self::new("http://localhost:8789".to_string()) + if cfg!(debug_assertions) { + Self::new("http://localhost:8789".to_string()) + } else { + Self::new("https://chat-demo-umon.shuttle.app".to_string()) + } } } From 1a049e22dd583746e2cd44ff28d701bc64e68d83 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 23:47:11 -0500 Subject: [PATCH 07/13] chore: inherit dependencies in switcher --- Cargo.toml | 1 + crates/switch-db/Cargo.toml | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 12ca323..e525254 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,6 +72,7 @@ wykies-server = { version = "*", path = "crates/wykies-server", default-features wykies-server-test-helper = { version = "*", path = "crates/wykies-server-test-helper" } wykies-shared = { version = "*", path = "crates/wykies-shared" } wykies-time = { version = "*", path = "crates/wykies-time" } +version-control-clean-check = "0.1.4" [profile.release] opt-level = 2 # fast and small wasm diff --git a/crates/switch-db/Cargo.toml b/crates/switch-db/Cargo.toml index c135212..8deebff 100644 --- a/crates/switch-db/Cargo.toml +++ b/crates/switch-db/Cargo.toml @@ -4,8 +4,8 @@ version = "0.1.0" edition = "2021" [dependencies] -anyhow = "1.0.94" -clap = { version = "4.5.23", features = ["derive", "wrap_help"] } -tracing = "0.1.41" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -version-control-clean-check = { version = "0.1.4", features = ["clap"] } +anyhow.workspace = true +clap = { workspace = true, features = ["derive", "wrap_help"] } +tracing.workspace = true +tracing-subscriber = { workspace = true, features = ["env-filter"] } +version-control-clean-check = { workspace = true, features = ["clap"] } From 81657e6b865f7b24a5a217113c6b56ae78c0e961 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sat, 28 Dec 2024 23:47:33 -0500 Subject: [PATCH 08/13] chore: sync dependencies so shuttle can run --- Cargo.lock | 53 +++++++---------------------------------------------- Cargo.toml | 1 + 2 files changed, 8 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0d1af34..4c92b22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5338,7 +5338,7 @@ dependencies = [ "rmp-serde", "serde", "serde_json", - "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", + "shuttle-common", "tokio", "tokio-tungstenite 0.20.1", "url", @@ -5356,30 +5356,6 @@ dependencies = [ "syn 2.0.91", ] -[[package]] -name = "shuttle-common" -version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f167b3f5fd96e6c7465e85c17267daef7c364da5b8f0c24f4027cf829343e9d" -dependencies = [ - "anyhow", - "chrono", - "comfy-table", - "crossterm 0.27.0", - "http 0.2.12", - "semver", - "serde", - "serde_json", - "strum 0.26.3", - "thiserror 2.0.9", - "tracing", - "tracing-subscriber", - "typeshare", - "url", - "uuid", - "zeroize", -] - [[package]] name = "shuttle-common" version = "0.49.0" @@ -5418,7 +5394,7 @@ dependencies = [ "futures-core", "prost", "prost-types", - "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", + "shuttle-common", "tonic", ] @@ -5434,9 +5410,9 @@ dependencies = [ "serde_json", "shuttle-api-client", "shuttle-codegen", - "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", + "shuttle-common", "shuttle-proto", - "shuttle-service 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", + "shuttle-service", "strfmt", "tokio", "tokio-stream", @@ -5445,20 +5421,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "shuttle-service" -version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ba454b13e4e29b5b892a62c334360a571de5a25c936283416c94328427dd57" -dependencies = [ - "anyhow", - "async-trait", - "serde", - "shuttle-common 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)", - "strfmt", - "thiserror 2.0.9", -] - [[package]] name = "shuttle-service" version = "0.49.0" @@ -5467,7 +5429,7 @@ dependencies = [ "anyhow", "async-trait", "serde", - "shuttle-common 0.49.0 (git+https://github.com/shuttle-hq/shuttle)", + "shuttle-common", "strfmt", "thiserror 2.0.9", ] @@ -5475,14 +5437,13 @@ dependencies = [ [[package]] name = "shuttle-shared-db" version = "0.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb87f86f196570fb30c87fac722c78cd8852e63a570722c4f579d8acc0fb8d6" +source = "git+https://github.com/shuttle-hq/shuttle#52525c106601c2363ee35f1626dc6d912c87ec6d" dependencies = [ "async-trait", "diesel-async", "serde", "serde_json", - "shuttle-service 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)", + "shuttle-service", "sqlx", ] diff --git a/Cargo.toml b/Cargo.toml index e525254..53d56bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,3 +81,4 @@ opt-level = 2 # fast and small wasm [patch.crates-io] reqwest = { git = "https://github.com/c-git/reqwest.git", branch = "wasm-cookies" } shuttle-runtime = { git = "https://github.com/shuttle-hq/shuttle" } +shuttle-shared-db = { git = "https://github.com/shuttle-hq/shuttle" } From 1c58241faf4e87f1939a05f17b1b8343c30c374c Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sun, 29 Dec 2024 00:06:26 -0500 Subject: [PATCH 09/13] chore: update bacon (ALL TESTED) - Tested all commands (in local bacon.toml) to ensure they work - Remove redundant lines and add run commands --- bacon.toml | 166 ++++++++++++++--------------------------------------- 1 file changed, 44 insertions(+), 122 deletions(-) diff --git a/bacon.toml b/bacon.toml index 88619d5..4ee520e 100644 --- a/bacon.toml +++ b/bacon.toml @@ -1,125 +1,75 @@ # This is a configuration file for the bacon tool # -# Bacon repository: https://github.com/Canop/bacon # Complete help on configuration: https://dystroy.org/bacon/config/ -# You can also check bacon's own bacon.toml file -# as an example: https://github.com/Canop/bacon/blob/main/bacon.toml -default_job = "check" +default_job = "clippy-all" -[jobs.check] -command = ["cargo", "check", "--color", "always"] -need_stdout = false - -[jobs.check-all] +[jobs.run-server-standalone-mysql] command = [ "cargo", - "check", - "--all-features", - "--all-targets", - "--color", - "always", -] -need_stdout = false - -[jobs.clippy] -command = [ - "cargo", - "clippy", - "--all-features", - "--all-targets", - "--color", - "always", + "run", + "--bin", + "chat-app-server", + "--no-default-features", + "--features", + "standalone,mysql,running-from-workspace-root", ] -need_stdout = false +need_stdout = true +allow_warnings = true +background = false +on_change_strategy = "kill_then_restart" -# This job lets you run -# - all tests: bacon test -# - a specific test: bacon test -- config::test_default_files -# - the tests of a package: bacon test -- -- -p config -[jobs.test] +[jobs.run-server-standalone-postgres] command = [ "cargo", - "test", - "--color", - "always", - "--", - "--color", - "always", + "run", + "--bin", + "chat-app-server", + "--no-default-features", + "--features", + "standalone,postgres,running-from-workspace-root", ] need_stdout = true +allow_warnings = true +background = false +on_change_strategy = "kill_then_restart" -[jobs.test-all] +[jobs.run-server-shuttle] command = [ - "cargo", - "test", - "--all-features", - "--color", - "always", - "--", - "--color", - "always", + "shuttle", + "run", ] need_stdout = true +allow_warnings = true +background = false +on_change_strategy = "kill_then_restart" -[jobs.doc] -command = ["cargo", "doc", "--color", "always", "--no-deps"] -need_stdout = false - -# If the doc compiles, then it opens in your browser and bacon switches -# to the previous job -[jobs.doc-open] -command = ["cargo", "doc", "--color", "always", "--no-deps", "--open"] -need_stdout = false -on_success = "back" # so that we don't open the browser at each change - -# You can run your application and have the result displayed in bacon, -# *if* it makes sense for this crate. -# Don't forget the `--color always` part or the errors won't be -# properly parsed. -# If your program never stops (eg a server), you may set `background` -# to false to have the cargo run output immediately displayed instead -# of waiting for program's end. -[jobs.run] +[jobs.run-client-egui] command = [ "cargo", "run", - "--color", - "always", - # put launch parameters for your program behind a `--` separator + "--bin", + "chat-app-client", + "--all-features", ] need_stdout = true allow_warnings = true -background = true - -# This parameterized job runs the example of your choice, as soon -# as the code compiles. -# Call it as -# bacon ex -- my-example -[jobs.ex] -command = ["cargo", "run", "--color", "always", "--example"] -need_stdout = true -allow_warnings = true +background = false +on_change_strategy = "kill_then_restart" [jobs.include-ignored] command = [ "cargo", "test", - "--all-features", - "--all-targets", - "--color", - "always", "--", "--include-ignored", - "--color", - "always", ] need_stdout = true background = false env.TEST_LOG = "true" [jobs.test-trace] -command = ["cargo", "test", "--color", "always", "--", "--color", "always"] +command = ["cargo", "test"] need_stdout = true env.TEST_LOG = "true" @@ -129,28 +79,20 @@ command = [ "check", "--target", "wasm32-unknown-unknown", - "--color", - "always", "--package", "chat-app-client", ] need_stdout = false -# To test Standalone mode [jobs.test-chat-server-standalone-mysql] command = [ "cargo", "test", - "--color", - "always", "--package", "chat-app-server", "--no-default-features", "--features", "standalone,mysql", - "--", - "--color", - "always", ] need_stdout = true @@ -158,16 +100,11 @@ need_stdout = true command = [ "cargo", "test", - "--color", - "always", "--package", "chat-app-server", "--no-default-features", "--features", "standalone,mysql", - "--", - "--color", - "always", ] need_stdout = true env.TEST_LOG = "true" @@ -177,16 +114,11 @@ env.TEST_LOG = "true" command = [ "cargo", "test", - "--color", - "always", "--package", "chat-app-server", "--no-default-features", "--features", "standalone,postgres", - "--", - "--color", - "always", ] need_stdout = true @@ -194,16 +126,11 @@ need_stdout = true command = [ "cargo", "test", - "--color", - "always", "--package", "chat-app-server", "--no-default-features", "--features", "standalone,postgres", - "--", - "--color", - "always", ] need_stdout = true env.TEST_LOG = "true" @@ -217,8 +144,6 @@ command = [ "--no-default-features", "--features", "shuttle", - "--color", - "always", ] need_stdout = false @@ -231,23 +156,20 @@ command = [ "--no-default-features", "--features", "shuttle", - "--color", - "always", ] need_stdout = false -# You may define here keybindings that would be specific to -# a project, for example a shortcut to launch a specific job. -# Shortcuts to internal functions (scrolling, toggling, etc.) -# should go in your personal global prefs.toml file instead. [keybindings] -i = "job:include-ignored" alt-t = "job:test-trace" -alt-q = "job:check" # Provides a way to do a quick check without including clippy like I normally want -w = "job:check-wasm-client" -s = "job:test-chat-server-standalone-mysql" -alt-s = "job:test-chat-server-standalone-mysql-trace" +e = "job:run-client-egui" +i = "job:include-ignored" p = "job:test-chat-server-standalone-pg" alt-p = "job:test-chat-server-standalone-pg-trace" -alt-v = "job:check-shuttle" +r = "job:run-server-standalone-mysql" +alt-r = "job:run-server-standalone-postgres" +ctrl-r = "job:run-server-shuttle" +s = "job:test-chat-server-standalone-mysql" +alt-s = "job:test-chat-server-standalone-mysql-trace" v = "job:clippy-shuttle" +alt-v = "job:check-shuttle" +w = "job:check-wasm-client" From 49299ff8c195161e0378f8cb3fc25f24257f72c3 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:48:38 -0500 Subject: [PATCH 10/13] docs: improve log messages for restoring state --- crates/chat-app-client/src/app.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/chat-app-client/src/app.rs b/crates/chat-app-client/src/app.rs index c90572b..62c1abf 100644 --- a/crates/chat-app-client/src/app.rs +++ b/crates/chat-app-client/src/app.rs @@ -125,19 +125,19 @@ impl ChatApp { // Load previous app state (if any). // Note that you must enable the `persistence` feature for this to work. if let Some(storage) = cc.storage { - info!("Storage found. Loading..."); + info!("Storage found. Loading App State..."); match eframe::get_value(storage, eframe::APP_KEY) { Some(value) => { - info!("Loaded succeeded"); + info!("App state loading succeeded"); value } None => { - warn!("Load failed"); + warn!("App state loading failed, error message logged by egui at debug level (so probably lost)"); Default::default() } } } else { - info!("No storage found"); + info!("Unable to load app state, no storage found"); Default::default() } } From b4689ca6a7c7209d09bb02c953b8fc89df2dcc4a Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:50:45 -0500 Subject: [PATCH 11/13] feat: restore visuals on restart Save visuals when changed and load on restart --- crates/chat-app-client/src/app.rs | 11 +++++++++ crates/chat-app-client/src/main.rs | 1 - .../src/pages/egui_settings.rs | 23 ++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/crates/chat-app-client/src/app.rs b/crates/chat-app-client/src/app.rs index 62c1abf..059c797 100644 --- a/crates/chat-app-client/src/app.rs +++ b/crates/chat-app-client/src/app.rs @@ -116,11 +116,22 @@ impl eframe::App for ChatApp { } impl ChatApp { + pub const VISUALS_KEY: &str = "visuals"; + /// Called once before the first frame. pub fn new(cc: &eframe::CreationContext<'_>) -> Self { init_permissions_to_defaults(); // This is also where you can customize the look and feel of egui using // `cc.egui_ctx.set_visuals` and `cc.egui_ctx.set_fonts`. + if let Some(visuals) = cc + .egui_ctx + .data_mut(|r| r.get_persisted::(egui::Id::new(ChatApp::VISUALS_KEY))) + { + info!("Found saved Visuals. Loading..."); + cc.egui_ctx.set_visuals(visuals); + } else { + info!("Unable to load Visuals, no saved version found"); + } // Load previous app state (if any). // Note that you must enable the `persistence` feature for this to work. diff --git a/crates/chat-app-client/src/main.rs b/crates/chat-app-client/src/main.rs index 47f7b1c..10b6986 100644 --- a/crates/chat-app-client/src/main.rs +++ b/crates/chat-app-client/src/main.rs @@ -36,7 +36,6 @@ fn main() -> eframe::Result<()> { // When compiling to web using trunk #[cfg(target_arch = "wasm32")] fn main() { - // TODO 4: Look into dark mode not working in WASM use eframe::wasm_bindgen::JsCast as _; // Redirect `log` message to `console.log` and friends: diff --git a/crates/chat-app-client/src/pages/egui_settings.rs b/crates/chat-app-client/src/pages/egui_settings.rs index 4361df7..b1ea3e2 100644 --- a/crates/chat-app-client/src/pages/egui_settings.rs +++ b/crates/chat-app-client/src/pages/egui_settings.rs @@ -1,4 +1,6 @@ -use crate::displayable_page_common; +use tracing::info; + +use crate::{displayable_page_common, ChatApp}; use super::DisplayablePage; @@ -7,6 +9,17 @@ use super::DisplayablePage; pub struct UiEguiSettings { is_open: bool, page_unique_number: usize, + #[serde(skip)] + prev_ui_options: Option, +} +impl UiEguiSettings { + fn save_current_ui_options(&mut self, ctx: egui::Context) { + let current_ui_options = ctx.options(|o| o.clone()); + self.prev_ui_options = Some(current_ui_options); + let visuals = ctx.style().visuals.clone(); + ctx.data_mut(|w| w.insert_persisted(egui::Id::new(ChatApp::VISUALS_KEY), visuals)); + info!("Saved UI Visuals"); + } } impl DisplayablePage for UiEguiSettings { @@ -17,5 +30,13 @@ impl DisplayablePage for UiEguiSettings { fn show(&mut self, ui: &mut eframe::egui::Ui, _data_shared: &mut crate::DataShared) { let ctx = ui.ctx().clone(); ctx.settings_ui(ui); + match self.prev_ui_options.as_ref() { + Some(prev) => { + if ctx.options(|o| o != prev) { + self.save_current_ui_options(ctx) + } + } + None => self.save_current_ui_options(ctx), + } } } From 488b376791564366442f3f6866468f73d515b0e8 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:55:22 -0500 Subject: [PATCH 12/13] chore: switch to shuttle --- .vscode/settings.json | 4 ++-- crates/wykies-server/.env | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bead156..31d98be 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,7 +26,7 @@ "password": "password" } ], - // "rust-analyzer.cargo.features": ["shuttle"], // Switch to Shuttle - "rust-analyzer.cargo.features": ["standalone", "mysql"], // Switch to Standalone + "rust-analyzer.cargo.features": ["shuttle"], // Switch to Shuttle + // "rust-analyzer.cargo.features": ["standalone", "mysql"], // Switch to Standalone "rust-analyzer.cargo.noDefaultFeatures": true } diff --git a/crates/wykies-server/.env b/crates/wykies-server/.env index 6632b76..1df47f0 100644 --- a/crates/wykies-server/.env +++ b/crates/wykies-server/.env @@ -1,3 +1,3 @@ -DATABASE_URL="mysql://db_user:password@localhost:3306/chat_demo" # Switch to Standalone -# DATABASE_URL="postgres://db_user:password@localhost:5432/chat_demo" # Switch to Shuttle +# DATABASE_URL="mysql://db_user:password@localhost:3306/chat_demo" # Switch to Standalone +DATABASE_URL="postgres://db_user:password@localhost:5432/chat_demo" # Switch to Shuttle SQLX_OFFLINE=true From 99e02cd4dcbfa6db1be299b27a178e16c9cac058 Mon Sep 17 00:00:00 2001 From: One <43485962+c-git@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:56:59 -0500 Subject: [PATCH 13/13] chore: version bump 0.1.3 --- Cargo.lock | 4 ++-- crates/chat-app-client/Cargo.toml | 2 +- crates/chat-app-server/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c92b22..f979782 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1197,7 +1197,7 @@ dependencies = [ [[package]] name = "chat-app-client" -version = "0.1.2" +version = "0.1.3" dependencies = [ "anyhow", "clap", @@ -1224,7 +1224,7 @@ dependencies = [ [[package]] name = "chat-app-server" -version = "0.1.2" +version = "0.1.3" dependencies = [ "actix-web", "anyhow", diff --git a/crates/chat-app-client/Cargo.toml b/crates/chat-app-client/Cargo.toml index 18ab3cb..9fdb51f 100644 --- a/crates/chat-app-client/Cargo.toml +++ b/crates/chat-app-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chat-app-client" -version = "0.1.2" +version = "0.1.3" edition = "2021" publish = false description = "EGUI Client for the Demo Chat App" diff --git a/crates/chat-app-server/Cargo.toml b/crates/chat-app-server/Cargo.toml index 57114f4..bf1fee6 100644 --- a/crates/chat-app-server/Cargo.toml +++ b/crates/chat-app-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chat-app-server" -version = "0.1.2" +version = "0.1.3" edition = "2021" publish = false description = "Server for Demo Chat App"