Cannot get cgmath and collision to work together with Matrix4

Hey,
For some reason collision does not seem to accept Matrix4 from cgmath. Here's the code:
        {
            let s = cgmath::Matrix4::<f32>::identity();
            let ss = collision::Frustum::<f32>::from_matrix4(s);
        }

And here's the error:
error[E0308]: mismatched types
   --> *path*
    |
894 |             let ss = collision::Frustum::<f32>::from_matrix4(s);
    |                                                              ^ expected struct `cgmath::matrix::Matrix4`, found struct `Matrix4`
    |
    = note: expected struct `cgmath::matrix::Matrix4<f32>`
               found struct `Matrix4<f32>`
    = note: perhaps two different versions of crate `cgmath` are being used?

I cannot import cgmath::matrix::Matrix4 because matrix is private. I am importing Matrix4 with use cgmath::{Matrix4};
Versions on Cargo.toml are as follows. I am using workspaces.
cgmath = "0.18.0"
collision = "0.20.1"

Can you share Cargo.lock?

Yes. Here a the 2 lock files for the workspace member lock file and root of the workspace lock file:
This is for the workspace member in question:
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"

[[package]]
name = "adler32"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"

[[package]]
name = "approx"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
dependencies = [
 "num-traits",
]

[[package]]
name = "autocfg"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"

[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"

[[package]]
name = "bytemuck"
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"

[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"

[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"

[[package]]
name = "cgmath"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317"
dependencies = [
 "approx",
 "num-traits",
]

[[package]]
name = "color_quant"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"

[[package]]
name = "crc32fast"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [
 "cfg-if 1.0.0",
]

[[package]]
name = "crossbeam-channel"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-deque"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-epoch",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-epoch"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-utils",
 "lazy_static",
 "memoffset",
 "scopeguard",
]

[[package]]
name = "crossbeam-utils"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
 "cfg-if 1.0.0",
 "lazy_static",
]

[[package]]
name = "deflate"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
dependencies = [
 "adler32",
 "byteorder",
]

[[package]]
name = "either"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"

[[package]]
name = "gif"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a668f699973d0f573d15749b7002a9ac9e1f9c6b220e7b165601334c173d8de"
dependencies = [
 "color_quant",
 "weezl",
]

[[package]]
name = "gl"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404"
dependencies = [
 "gl_generator",
]

[[package]]
name = "gl_generator"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
dependencies = [
 "khronos_api",
 "log",
 "xml-rs",
]

[[package]]
name = "golem_test"
version = "0.1.0"
dependencies = [
 "cgmath",
 "gl",
 "image",
 "lazy_static",
 "rayon",
 "sdl2",
]

[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
 "libc",
]

[[package]]
name = "image"
version = "0.23.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
dependencies = [
 "bytemuck",
 "byteorder",
 "color_quant",
 "gif",
 "jpeg-decoder",
 "num-iter",
 "num-rational",
 "num-traits",
 "png",
 "scoped_threadpool",
 "tiff",
]

[[package]]
name = "jpeg-decoder"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
dependencies = [
 "rayon",
]

[[package]]
name = "khronos_api"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"

[[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.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1fa8cddc8fbbee11227ef194b5317ed014b8acbf15139bd716a18ad3fe99ec5"

[[package]]
name = "log"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
dependencies = [
 "cfg-if 1.0.0",
]

[[package]]
name = "memoffset"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
 "autocfg",
]

[[package]]
name = "miniz_oxide"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
dependencies = [
 "adler32",
]

[[package]]
name = "miniz_oxide"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
 "adler",
 "autocfg",
]

[[package]]
name = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
 "autocfg",
 "num-traits",
]

[[package]]
name = "num-iter"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
dependencies = [
 "autocfg",
 "num-integer",
 "num-traits",
]

[[package]]
name = "num-rational"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
dependencies = [
 "autocfg",
 "num-integer",
 "num-traits",
]

[[package]]
name = "num-traits"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
 "autocfg",
]

[[package]]
name = "num_cpus"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
dependencies = [
 "hermit-abi",
 "libc",
]

[[package]]
name = "pkg-config"
version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"

[[package]]
name = "png"
version = "0.16.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
dependencies = [
 "bitflags",
 "crc32fast",
 "deflate",
 "miniz_oxide 0.3.7",
]

[[package]]
name = "rayon"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
 "autocfg",
 "crossbeam-deque",
 "either",
 "rayon-core",
]

[[package]]
name = "rayon-core"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
 "crossbeam-channel",
 "crossbeam-deque",
 "crossbeam-utils",
 "lazy_static",
 "num_cpus",
]

[[package]]
name = "scoped_threadpool"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"

[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"

[[package]]
name = "sdl2"
version = "0.34.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "deecbc3fa9460acff5a1e563e05cb5f31bba0aa0c214bb49a43db8159176d54b"
dependencies = [
 "bitflags",
 "lazy_static",
 "libc",
 "sdl2-sys",
]

[[package]]
name = "sdl2-sys"
version = "0.34.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41a29aa21f175b5a41a6e26da572d5e5d1ee5660d35f9f9d0913e8a802098f74"
dependencies = [
 "cfg-if 0.1.10",
 "libc",
 "pkg-config",
 "version-compare",
]

[[package]]
name = "tiff"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
dependencies = [
 "jpeg-decoder",
 "miniz_oxide 0.4.4",
 "weezl",
]

[[package]]
name = "version-compare"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"

[[package]]
name = "weezl"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b77fdfd5a253be4ab714e4ffa3c49caf146b4de743e97510c0656cf90f1e8e"

[[package]]
name = "xml-rs"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
And this is from the root of the workspace:
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "ab_glyph"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61caed9aec6daeee1ea38ccf5fb225e4f96c1eeead1b4a5c267324a63cf02326"
dependencies = [
 "ab_glyph_rasterizer",
 "owned_ttf_parser",
]

[[package]]
name = "ab_glyph_rasterizer"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e"

[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"

[[package]]
name = "adler32"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"

[[package]]
name = "ahash"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
 "getrandom",
 "once_cell",
 "version_check",
]

[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
 "memchr",
]

[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
 "winapi",
]

[[package]]
name = "approx"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
dependencies = [
 "num-traits",
]

[[package]]
name = "approx"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
dependencies = [
 "num-traits",
]

[[package]]
name = "asset_packer"
version = "0.1.0"
dependencies = [
 "bincode",
 "const_format",
 "flate2",
 "pental_tools",
 "serde",
 "serde_json",
]

[[package]]
name = "atomic_refcell"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d"

[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
 "hermit-abi",
 "libc",
 "winapi",
]

[[package]]
name = "autocfg"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"

[[package]]
name = "autocfg"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"

[[package]]
name = "benchmark"
version = "0.1.0"
dependencies = [
 "criterion",
]

[[package]]
name = "bincode"
version = "2.0.0-alpha.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f15e4a3f8ad2e4bc6c5a24233a3dcf1ad449857dd8fe76fa23f8ef6ea4cb4f7c"
dependencies = [
 "bincode_derive",
]

[[package]]
name = "bincode_derive"
version = "2.0.0-alpha.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbdb4d197bb44b42f71ab87dcade323bc0035196cafe268d916f959e1de88c9f"

[[package]]
name = "bit-set"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
dependencies = [
 "bit-vec",
]

[[package]]
name = "bit-vec"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"

[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"

[[package]]
name = "bstr"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
 "lazy_static",
 "memchr",
 "regex-automata",
 "serde",
]

[[package]]
name = "bumpalo"
version = "3.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"

[[package]]
name = "bytemuck"
version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439989e6b8c38d1b6570a384ef1e49c8848128f5a97f3914baef02920842712f"

[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"

[[package]]
name = "cast"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
dependencies = [
 "rustc_version",
]

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"

[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"

[[package]]
name = "cgmath"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "283944cdecc44bf0b8dd010ec9af888d3b4f142844fdbe026c20ef68148d6fe7"
dependencies = [
 "approx 0.3.2",
 "num-traits",
 "rand",
 "serde",
]

[[package]]
name = "cgmath"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317"
dependencies = [
 "approx 0.4.0",
 "num-traits",
]

[[package]]
name = "chrono"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
 "js-sys",
 "libc",
 "num-integer",
 "num-traits",
 "time 0.1.43",
 "wasm-bindgen",
 "winapi",
]

[[package]]
name = "clap"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
 "bitflags",
 "textwrap",
 "unicode-width",
]

[[package]]
name = "cloudabi"
version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
 "bitflags",
]

[[package]]
name = "collision"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6107f6be76c2269a9c8d89e707a66122bd3086f987fa508133a5f774e8ac4ced"
dependencies = [
 "approx 0.3.2",
 "bit-set",
 "cgmath 0.17.0",
 "num",
 "rand",
 "smallvec",
]

[[package]]
name = "color_quant"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"

[[package]]
name = "const_format"
version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22bc6cd49b0ec407b680c3e380182b6ac63b73991cb7602de350352fc309b614"
dependencies = [
 "const_format_proc_macros",
]

[[package]]
name = "const_format_proc_macros"
version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d"
dependencies = [
 "proc-macro2",
 "quote",
 "unicode-xid",
]

[[package]]
name = "crc32fast"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [
 "cfg-if 1.0.0",
]

[[package]]
name = "criterion"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10"
dependencies = [
 "atty",
 "cast",
 "clap",
 "criterion-plot",
 "csv",
 "itertools",
 "lazy_static",
 "num-traits",
 "oorandom",
 "plotters",
 "rayon",
 "regex",
 "serde",
 "serde_cbor",
 "serde_derive",
 "serde_json",
 "tinytemplate",
 "walkdir",
]

[[package]]
name = "criterion-plot"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57"
dependencies = [
 "cast",
 "itertools",
]

[[package]]
name = "crossbeam-channel"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-deque"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-epoch",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-epoch"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
 "cfg-if 1.0.0",
 "crossbeam-utils",
 "lazy_static",
 "memoffset",
 "scopeguard",
]

[[package]]
name = "crossbeam-utils"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
 "cfg-if 1.0.0",
 "lazy_static",
]

[[package]]
name = "csv"
version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
dependencies = [
 "bstr",
 "csv-core",
 "itoa 0.4.8",
 "ryu",
 "serde",
]

[[package]]
name = "csv-core"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
dependencies = [
 "memchr",
]

[[package]]
name = "deflate"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
dependencies = [
 "adler32",
 "byteorder",
]

[[package]]
name = "demo_bin"
version = "0.1.0"
dependencies = [
 "cgmath 0.18.0",
 "collision",
 "const_format",
 "egui",
 "egui_demo_lib",
 "egui_sdl2_gl",
 "flexi_logger",
 "gl",
 "image",
 "lazy_static",
 "log",
 "pental_tools",
 "rayon",
 "sdl2",
]

[[package]]
name = "egui"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c8d416a3343cbfc6f4d17bb1cba46b4d7efecb9ee541967763e0b5e04e5fae7"
dependencies = [
 "ahash",
 "epaint",
 "nohash-hasher",
]

[[package]]
name = "egui_demo_lib"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e460c555188dad3a6fb2de8f1201cee56aefdd5e9ab7c906ca8ebb1b640b0adb"
dependencies = [
 "chrono",
 "egui",
 "enum-map",
 "epi",
 "unicode_names2",
]

[[package]]
name = "egui_sdl2_gl"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d06e26b97dea10b59bd07a40423c42f659eb681c68a98003b3bfdeab7a75ed3"
dependencies = [
 "egui",
 "gl",
 "sdl2",
]

[[package]]
name = "either"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"

[[package]]
name = "emath"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24a1aaa922d55da6a2bf32957c3d153e7fb9d52ed8d69777a75092240172eb6e"

[[package]]
name = "enum-map"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e893a7ba6116821058dec84a6fb14fb2a97cd8ce5fd0f85d5a4e760ecd7329d9"
dependencies = [
 "enum-map-derive",
 "serde",
]

[[package]]
name = "enum-map-derive"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84278eae0af6e34ff6c1db44c11634a694aafac559ff3080e4db4e4ac35907aa"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "epaint"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16bb4d3b8bbbd132c99d2a5efec8567e8b6d09b742f758ae6cf1e4b104fe0231"
dependencies = [
 "ab_glyph",
 "ahash",
 "atomic_refcell",
 "emath",
 "nohash-hasher",
]

[[package]]
name = "epi"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f5e4e08127f9b86e2c450c96a3032764b63546eb170c2fc54684dc70ff3fc82"
dependencies = [
 "egui",
]

[[package]]
name = "flate2"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
dependencies = [
 "cfg-if 1.0.0",
 "crc32fast",
 "libc",
 "miniz_oxide 0.4.4",
]

[[package]]
name = "flexi_logger"
version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "969940c39bc718475391e53a3a59b0157e64929c80cf83ad5dde5f770ecdc423"
dependencies = [
 "ansi_term",
 "atty",
 "glob",
 "lazy_static",
 "log",
 "regex",
 "rustversion",
 "thiserror",
 "time 0.3.7",
]

[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"

[[package]]
name = "getrandom"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c"
dependencies = [
 "cfg-if 1.0.0",
 "libc",
 "wasi",
]

[[package]]
name = "gif"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3a7187e78088aead22ceedeee99779455b23fc231fe13ec443f99bb71694e5b"
dependencies = [
 "color_quant",
 "weezl",
]

[[package]]
name = "gl"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404"
dependencies = [
 "gl_generator",
]

[[package]]
name = "gl_generator"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
dependencies = [
 "khronos_api",
 "log",
 "xml-rs",
]

[[package]]
name = "glob"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"

[[package]]
name = "half"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"

[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
 "libc",
]

[[package]]
name = "image"
version = "0.23.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
dependencies = [
 "bytemuck",
 "byteorder",
 "color_quant",
 "gif",
 "jpeg-decoder",
 "num-iter",
 "num-rational 0.3.2",
 "num-traits",
 "png",
 "scoped_threadpool",
 "tiff",
]

[[package]]
name = "itertools"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
dependencies = [
 "either",
]

[[package]]
name = "itoa"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"

[[package]]
name = "itoa"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"

[[package]]
name = "jpeg-decoder"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
dependencies = [
 "rayon",
]

[[package]]
name = "js-sys"
version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
dependencies = [
 "wasm-bindgen",
]

[[package]]
name = "khronos_api"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"

[[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.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"

[[package]]
name = "log"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
dependencies = [
 "cfg-if 1.0.0",
]

[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"

[[package]]
name = "memchr"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"

[[package]]
name = "memoffset"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
 "autocfg 1.0.1",
]

[[package]]
name = "miniz_oxide"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
dependencies = [
 "adler32",
]

[[package]]
name = "miniz_oxide"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
 "adler",
 "autocfg 1.0.1",
]

[[package]]
name = "nohash-hasher"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"

[[package]]
name = "num"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
dependencies = [
 "num-bigint",
 "num-complex",
 "num-integer",
 "num-iter",
 "num-rational 0.2.4",
 "num-traits",
]

[[package]]
name = "num-bigint"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
dependencies = [
 "autocfg 1.0.1",
 "num-integer",
 "num-traits",
 "serde",
]

[[package]]
name = "num-complex"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
dependencies = [
 "autocfg 1.0.1",
 "num-traits",
 "serde",
]

[[package]]
name = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
 "autocfg 1.0.1",
 "num-traits",
]

[[package]]
name = "num-iter"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
dependencies = [
 "autocfg 1.0.1",
 "num-integer",
 "num-traits",
]

[[package]]
name = "num-rational"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
dependencies = [
 "autocfg 1.0.1",
 "num-bigint",
 "num-integer",
 "num-traits",
 "serde",
]

[[package]]
name = "num-rational"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
dependencies = [
 "autocfg 1.0.1",
 "num-integer",
 "num-traits",
]

[[package]]
name = "num-traits"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
 "autocfg 1.0.1",
]

[[package]]
name = "num_cpus"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
dependencies = [
 "hermit-abi",
 "libc",
]

[[package]]
name = "num_threads"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15"
dependencies = [
 "libc",
]

[[package]]
name = "once_cell"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"

[[package]]
name = "oorandom"
version = "11.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"

[[package]]
name = "owned_ttf_parser"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ef05f2882a8b3e7acc10c153ade2631f7bfc8ce00d2bf3fb8f4e9d2ae6ea5c3"
dependencies = [
 "ttf-parser",
]

[[package]]
name = "pental_tools"
version = "0.1.0"
dependencies = [
 "bincode",
 "cgmath 0.18.0",
 "collision",
 "const_format",
 "flate2",
 "log",
 "rayon",
 "serde",
 "serde_json",
]

[[package]]
name = "pkg-config"
version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"

[[package]]
name = "plotters"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
dependencies = [
 "num-traits",
 "plotters-backend",
 "plotters-svg",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "plotters-backend"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"

[[package]]
name = "plotters-svg"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
dependencies = [
 "plotters-backend",
]

[[package]]
name = "png"
version = "0.16.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
dependencies = [
 "bitflags",
 "crc32fast",
 "deflate",
 "miniz_oxide 0.3.7",
]

[[package]]
name = "proc-macro2"
version = "1.0.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
dependencies = [
 "unicode-xid",
]

[[package]]
name = "quote"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
dependencies = [
 "proc-macro2",
]

[[package]]
name = "rand"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
dependencies = [
 "autocfg 0.1.7",
 "libc",
 "rand_chacha",
 "rand_core 0.4.2",
 "rand_hc",
 "rand_isaac",
 "rand_jitter",
 "rand_os",
 "rand_pcg",
 "rand_xorshift",
 "winapi",
]

[[package]]
name = "rand_chacha"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
dependencies = [
 "autocfg 0.1.7",
 "rand_core 0.3.1",
]

[[package]]
name = "rand_core"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
dependencies = [
 "rand_core 0.4.2",
]

[[package]]
name = "rand_core"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"

[[package]]
name = "rand_hc"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
dependencies = [
 "rand_core 0.3.1",
]

[[package]]
name = "rand_isaac"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
dependencies = [
 "rand_core 0.3.1",
]

[[package]]
name = "rand_jitter"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
dependencies = [
 "libc",
 "rand_core 0.4.2",
 "winapi",
]

[[package]]
name = "rand_os"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
dependencies = [
 "cloudabi",
 "fuchsia-cprng",
 "libc",
 "rand_core 0.4.2",
 "rdrand",
 "winapi",
]

[[package]]
name = "rand_pcg"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
dependencies = [
 "autocfg 0.1.7",
 "rand_core 0.4.2",
]

[[package]]
name = "rand_xorshift"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
dependencies = [
 "rand_core 0.3.1",
]

[[package]]
name = "rayon"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
 "autocfg 1.0.1",
 "crossbeam-deque",
 "either",
 "rayon-core",
]

[[package]]
name = "rayon-core"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
 "crossbeam-channel",
 "crossbeam-deque",
 "crossbeam-utils",
 "lazy_static",
 "num_cpus",
]

[[package]]
name = "rdrand"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
dependencies = [
 "rand_core 0.3.1",
]

[[package]]
name = "regex"
version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
dependencies = [
 "aho-corasick",
 "memchr",
 "regex-syntax",
]

[[package]]
name = "regex-automata"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"

[[package]]
name = "regex-syntax"
version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"

[[package]]
name = "rustc_version"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
 "semver",
]

[[package]]
name = "rustversion"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"

[[package]]
name = "ryu"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"

[[package]]
name = "same-file"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
dependencies = [
 "winapi-util",
]

[[package]]
name = "scoped_threadpool"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"

[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"

[[package]]
name = "sdl2"
version = "0.34.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "deecbc3fa9460acff5a1e563e05cb5f31bba0aa0c214bb49a43db8159176d54b"
dependencies = [
 "bitflags",
 "lazy_static",
 "libc",
 "sdl2-sys",
]

[[package]]
name = "sdl2-sys"
version = "0.34.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41a29aa21f175b5a41a6e26da572d5e5d1ee5660d35f9f9d0913e8a802098f74"
dependencies = [
 "cfg-if 0.1.10",
 "libc",
 "pkg-config",
 "version-compare",
]

[[package]]
name = "semver"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"

[[package]]
name = "serde"
version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
dependencies = [
 "serde_derive",
]

[[package]]
name = "serde_cbor"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
dependencies = [
 "half",
 "serde",
]

[[package]]
name = "serde_derive"
version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "serde_json"
version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063bf466a64011ac24040a49009724ee60a57da1b437617ceb32e53ad61bfb19"
dependencies = [
 "itoa 0.4.8",
 "ryu",
 "serde",
]

[[package]]
name = "smallvec"
version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
dependencies = [
 "maybe-uninit",
]

[[package]]
name = "syn"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
dependencies = [
 "proc-macro2",
 "quote",
 "unicode-xid",
]

[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
 "unicode-width",
]

[[package]]
name = "thiserror"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
 "thiserror-impl",
]

[[package]]
name = "thiserror-impl"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "tiff"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
dependencies = [
 "jpeg-decoder",
 "miniz_oxide 0.4.4",
 "weezl",
]

[[package]]
name = "time"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
 "libc",
 "winapi",
]

[[package]]
name = "time"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d"
dependencies = [
 "itoa 1.0.1",
 "libc",
 "num_threads",
 "time-macros",
]

[[package]]
name = "time-macros"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6"

[[package]]
name = "tinytemplate"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
dependencies = [
 "serde",
 "serde_json",
]

[[package]]
name = "ttf-parser"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ccbe8381883510b6a2d8f1e32905bddd178c11caef8083086d0c0c9ab0ac281"

[[package]]
name = "unicode-width"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"

[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

[[package]]
name = "unicode_names2"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87d6678d7916394abad0d4b19df4d3802e1fd84abd7d701f39b75ee71b9e8cf1"

[[package]]
name = "version-compare"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"

[[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"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
dependencies = [
 "same-file",
 "winapi",
 "winapi-util",
]

[[package]]
name = "wasi"
version = "0.10.2+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"

[[package]]
name = "wasm-bindgen"
version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
dependencies = [
 "cfg-if 1.0.0",
 "wasm-bindgen-macro",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
dependencies = [
 "bumpalo",
 "lazy_static",
 "log",
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-backend",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"

[[package]]
name = "web-sys"
version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
dependencies = [
 "js-sys",
 "wasm-bindgen",
]

[[package]]
name = "weezl"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b77fdfd5a253be4ab714e4ffa3c49caf146b4de743e97510c0656cf90f1e8e"

[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
 "winapi-i686-pc-windows-gnu",
 "winapi-x86_64-pc-windows-gnu",
]

[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"

[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
 "winapi",
]

[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

[[package]]
name = "xml-rs"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"

I think the way semantic versioning works, the published version of collision-rs requires version 0.17 but srictly less than 0.18.
The latest revision on github has bumped the version to 0.18 though so you can use this:
collision = { version = "0.20.1", git = "https://github.com/rustgd/collision-rs" }

Very nice, thanks!


/work: Filters Badge does not show; icons missing from Layers, Filters, Download

When adding a filter, a yellow badge with a number should appear to show that filters are engaged. None appear.
Also, the icons for Layers, Filters, and Download are all missing.

Looks good.


Update logging for failed async operations

Description
Controllers currently have two ways of bubbling up errors to the async worker:

By returning the error, which is then added to the result by the async worker.
By directly returning a non-empty result with error message populated and provisioning state set to "failed".

We have a few gaps in the logging today which results into false data or no data, this PR aims to fix these gaps -

Error is not logged if it is returned as a part of the result (scenario 2 above).
Operation is logged as successful if a direct error is returned (scenario 1 above).
Provisioning state is set to succeeded even if the controller returns an error (scenario 1 above).

Type of change

This pull request fixes a bug in Radius and has an approved issue (issue link required).

Part of https://github.com/radius-project/radius/issues/7369

Error is not logged if it is returned as a part of the result (scenario 2 above).

This is not true. err is always logged. L270 has been logged the error unless it is cancelled one. So operation returned might log wrong info, but it still needs to log error correctly.
https://github.com/radius-project/radius/blob/22d69efce8d61eb03e723edeeabc56d95c3d6c94/pkg/armrpc/asyncoperation/worker/worker.go#L262-L274
I would combine with L267-271 and then refactor it like below.
                 result, err := asyncCtrl.Run(asyncReqCtx, asyncReq)
                 if err != nil {
                                 // Just in case, controller returns result and error both. (it should not happen)
				logger.Error(err, "returned controller error")
				armErr := extractError(err)
                                 if result.Error == nil {
				      result.SetFailed(armErr, false)
                                 }
		}

		logger.Info("Operation result", "success", result.Error == nil, "code", result.Error.Code, "provisioningState", result.ProvisioningState(), "err", err)

		// There are two cases when asyncReqCtx is canceled.
		// 1. When the operation is timed out, w.completeOperation will be called in L186
		// 2. When parent context is canceled or done, we need to requeue the operation to reprocess the request.
		// Such cases should not call w.completeOperation.
		if !errors.Is(asyncReqCtx.Err(), context.Canceled) {
			w.completeOperation(ctx, message, result, asyncCtrl.StorageClient())
		}

Error is not logged if it is returned as a part of the result (scenario 2 above).

This is not true. err is always logged. L270 has been logged the error unless it is cancelled one

I debugged it locally and verified before writing what I wrote. Have you tried this scenario?

Error is not logged if it is returned as a part of the result (scenario 2 above).

This is not true. err is always logged. L270 has been logged the error unless it is cancelled one

I debugged it locally and verified before writing what I wrote. Have you tried this scenario?

If L270 doesn't log the error, then we need to fix L270 block as well. let me debug this scenario.

I would combine with L267-271 and then refactor it like below.

I spent quite a bit of time on this code before sending this PR and intentionally didn't combine the two because I believe we don't want to update the provisioning state if the operation was cancelled, which is why the error handling is currently inside the if block on L266. I'm guessing you would have the most context on the existing code, so you can confirm what the rationale was behind this. It would have been easier if more comments were added on this code path when it was written.

Error is not logged if it is returned as a part of the result (scenario 2 above).

This is not true. err is always logged. L270 has been logged the error unless it is cancelled one

I debugged it locally and verified before writing what I wrote. Have you tried this scenario?

If L270 doesn't log the error, then we need to fix L270 block as well. let me debug this scenario.

Apologies, I was thinking that Error is err returned from controller. If Error is result.Error, then yes, it is right that we don't log its context correctly. looks like Ryan added this part in his tracked resource work.

I would combine with L267-271 and then refactor it like below.

I spent quite a bit of time on this code before sending this PR and intentionally didn't combine the two because I believe we don't want to update the provisioning state if the operation was cancelled, which is why the error handling is currently inside the if block on L266. I'm guessing you would have the most context on the existing code, so you can confirm what the rationale was behind this. It would have been easier if more comments were added on this code path when it was written.

The current update is to extract the error from result.Error and err. Instead of doing this, converting err to result.Error is simpler earlier.
As you can see, the context is marked as cancelled for the following scenario. I recall I added the test code for the following scenario as well.
https://github.com/radius-project/radius/blob/22d69efce8d61eb03e723edeeabc56d95c3d6c94/pkg/armrpc/asyncoperation/worker/worker.go#L262-L265
In most of the cases, it happens by opCancel() when the timeout happens. As you can see the following code, we update the resource metadata after opCancel(). This happens before L267-271 in the go routine is processed. The main reason we check the cancellation is not to overwrite provisioningState by the following code. So if we do not call w.completeOperation(ctx, message, result, asyncCtrl.StorageClient()), it is okay to convert err to result.Error. I think this way allows us to simplify this logic. We can also move L260 logging after L274. Then L255-L258 are not required.
https://github.com/radius-project/radius/blob/22d69efce8d61eb03e723edeeabc56d95c3d6c94/pkg/armrpc/asyncoperation/worker/worker.go#L295-L300

Updated. Moved error logging after error handling so that it is consistent for all error scenarios. https://github.com/radius-project/radius/blob/8754c50c827e912f38bf824d6ae3de709b1ecef3/pkg/armrpc/asyncoperation/worker/worker.go#L262-L265


Fix svg hover issue in the popular components section of the Bit BlazorUI demo project (#2483)

this closes #2483

@maryamhdr
plz review


Adds variety to db seed data

Student first and last names via faker,
Attendance and discipline events with some simple probabilities (could
be better)
Addresses issue #94

:+1: :+1:
Travis tests couldn't complete for some reason but tests pass with flying colors on my local machine.
Will ask @marimuraki to help us find a value for % of students with discipline events in #94.

@alexsoble, Just pushed a new branch to my fork, "demo-data-refinement" that adds some more variety: separate attendance events and slightly lower discipline event generation.  I'm not sure it really needs its own pull request, but I wanted to mention it here to open dialogue


The post_logout_redirect_uri in portals can be tenant qualified

Is your suggestion related to an experience ? Please describe.
let's consider someone entering the tenant qualified console or myaccount,

Enter tenant qualified portal URL (https://localhost:9443/t/sen.com/console)
Login page will be prompted. This login page will have tenant information as I have entered through tenant qualified portal URL.
log in to the portal
Logout from portal
It will redirect to the common portal URL (https://localhost:9443/console)
Login page will be prompted. This login page will not have tenant information.

So we are having an inconsistency here, the login page prompted in step 5 should also have the tenant information. To do this we need to have the post_logout_redirect_uri of the logout tenant qualified.
The main advantage is we can use this tenant information to theme the login page and have customizations in the authentication flow based it.

When migrating to 5.12.0, we need to add the tenant qualified console and myaccount login page as the redirect URL in those application oAuth configurations.
regexp=(https://<hostname>/console/login|<hostname>/t/(.*)/console/login)


Fixed the bug of updating current page object of pagination and enabled ulClass

Fixed the bug of updating current page object of pagination
I believe the directive should update the current page object which is
passed via page attribute. I replaced ‘@‘ by ‘=‘.
Enabled ulClass to be customisable
I think it would be useful if ulClass can be customised.
I updated the directive, now the ulClass can be passed as an object or
a string. The default class is ‘pagination’.
Example:
Pass object via ul-class :
<pagination ul-class=“{‘pagination pagination-venter’: condition, ‘pagination pagination-left’: !condition}”>

Pass string via ul-class:
(Only one class acceptable)
<pagination ul-class=“customClass”>

Pass multiple classes via ul-class:
(This has to be passed as a string object)
// in controller:
$scope.customClass = 'class-1 class-2 class-3';

<pagination ul-class=“customClass”>

This is the most detailed pull request i have seen in quite a while, nice work.
And the code looks good to, so I merged it.


Feat(Social): Add more ways to earn money

Wheel of Fortune, based on: https://github.com/Favna/ribbon/blob/master/src/commands/casino/wheeloffortune.ts

Since we're moving to a RPG based system, powered by Nayre, we will not longer require this suggestion to take place. See the Notion document for more information.


Fix duplicate imports with near-operation-file and inlineFragmentTypes === 'combine'

Description
This is a fix for issue #406. The fragments to import were not deduplicated, which could cause multiple import statements for the same symbol in the same file to be generated when using the near-operation-file preset and inlineFragmentTypes === 'combine'.
Related # (issue)
#406
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as
expected)
[ ] This change requires a documentation update

Screenshots/Sandbox (if appropriate/relevant):
Not relevant
How Has This Been Tested?
Tested using a new Jest test (which fails on the first commit, but passes on the second commit with the bugfix).
Test Environment:

OS: Linux
NodeJS: 18.17.1

Checklist:

[x] I have followed the
CONTRIBUTING doc and the
style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] ~I have made corresponding changes to the documentation~
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] ~Any dependent changes have been merged and published in downstream modules~

hey @aboks can you sync this branch with main so we can have CI passing here?

@saihaj I rebased this branch onto main, so it should be up to date now

@saihaj great, thanks for merging!
As a small addition, while trying to reproduce this bug I noticed another small issue that sometimes masked this issue. The logic in https://github.com/dotansimha/graphql-code-generator-community/blob/03655cc7ce680c042650550fcf75183a0ca8bcd5/packages/presets/near-operation-file/src/fragment-resolver.ts#L165 directly assigns an array from the fragment registry to the fragmentFileImports, after which the push in https://github.com/dotansimha/graphql-code-generator-community/blob/03655cc7ce680c042650550fcf75183a0ca8bcd5/packages/presets/near-operation-file/src/fragment-resolver.ts#L167 can contaminate the registry, making in-place changes that alter the return value from subsequent registry lookups. It is not really possible to write a failing test for this (especially after this PR the incorrect logic does not result in incorrect observable output), but it is probably necessary to change https://github.com/dotansimha/graphql-code-generator-community/blob/03655cc7ce680c042650550fcf75183a0ca8bcd5/packages/presets/near-operation-file/src/fragment-resolver.ts#L165 to make a copy (something like [...fragmentDetails.imports]) instead of assigning it directly.


ember-intl upgrade side effects

Expected behavior:
Warning message should have no HTML in it.
Actual behavior:
Warning message has HTML in it.
Steps to reproduce:
New Inventory Item Add

Login
Click on Inventory Received
Click on add button
View the message with HTML in it

OR
New Patient Quick Add

Login
Click on Medication -> New Request
Enter patient name that doesn't exist
Fill in other information
View error message

Screenshots (if applicable):
New Inventory Item Add

New Patient Quick Add

OS and Browser:
MacOS, Chrome 70, Firefox, Safari

[ ] warning messages which use HTML to render are showing the raw html in the message
[ ] unable to select first lanaguage
[x] navigation bar items not being translated
[ ] warnings with Hebrew in the console and some Hebrew messages not rendering
[x] default to English for missing translations
[x] different results between missing translations and empty translations
[x] loss of support of right-to-left languages

That's interesting, I'm not reproducing it. It just appears in a bold font. And I used Chromium 70 in Ubuntu.

I was poking around in the translations files...
Could it be related to the recent work on translations? After pulling in the most recent changes, I ran npm install

I just realized my previous comment was using code before https://github.com/HospitalRun/hospitalrun-frontend/pull/1553. Just tried with the most recent code and now I'm reproducing, so yeah that must be it.

I just went back to commit ee9bcc0fb3b2c2ae13c3ee90e1c7c937f01ef938 and was able to render the messages with the proper styling.

Looks like this might be able to fix it:
https://www.npmjs.com/package/ember-intl#format-html-message

There appear to be a few other side-effects of the change to ember-intl:

language select control doesn't work the same as before, not able to select the very top language (chinese? not sure)
navigation bar items not being translated
some warnings appear on npm start, but I tested the appointments.messages.appointmentSaved and login.messages.signIn one and they are still being displayed

I did a quick test to fix the New Inventory Item message issue using htmlSafe=true. And it appears to work.
Here is the change in app/inventory/quick-add/template.hbs

{{t 'inventory.messages.itemNotFound' item=model.name htmlSafe=true}}

@MatthewDorner
Looks like the warning messages have to do with the 8th language in the list. I was not able to get the appointments.messages.appointmentSaved to work.
The warning message has an Israeli flag, so I think the language is Hebrew

Also we have lost the "default to English for missing translation" behavior, and we're getting different behavior if the translation key itself is missing from the JSON vs. if it is just a empty string, although that could be fixed with a script. Russian has a bunch of empty string translations but Thailand has a lot of missing ones.

Well none of these things individually seem like they will be too hard to fix. If you'd like to work on it, I will be happy to help.

Sure, I'd like to work on it!

language select control doesn't work the same as before, not able to select the very top language (chinese? not sure)

I was able to select the top language and see the translations take place. Any special steps to reproduce this one?

Happens for me on Firefox and Chromium. I think it's because the action only happens when you change the selection. The actual difference is that before, the default selected value would be your current language, and now it's always defaulting to the first one instead:

I'll start looking at the navigation bar not being translated issue.

Gotcha. I'm looking at the HTML rendering one.

This is related to my implementation of ember-intl. Sorry for the bugs that were introduced. I can investigate and work on some of these issues, too.

The htmlSafe as you've discovered will fix any of the translations relying on html, this slipped my mind.
The old translations had null for missing translations, I changed these to empty string because a null value wasn't allowed by ember-intl
I will have to double-check what is happening with the select, it might need to pick the default value from the service on init.

Missing Translations
To be consistent with missing translations we should probably:

Remove all empty strings and rely on the warnings of missing strings report at build time
Let missing translations fallback to the missing translations message util:

// app/utils/intl/missing-message.js:

export default function missingMessage(key, locales, options) {
  throw new Error(`[ember-intl] Missing translation for key: "${key}" for locales: "${locales}"`);
}

What do you think?

@chadian missing translations use to fall back to English. Is this still possible?

We added the fall back to English pretty recently, and the change was made here: https://github.com/HospitalRun/hospitalrun-frontend/pull/1458.
I'd prefer keeping it that way since the error message doesn't help those trying to use the software, and we will be missing translations for a while.

Ah yeah, that makes sense. I was just digging through the ember-intl issues and there's a solution that landed 3 weeks ago:
https://github.com/ember-intl/ember-intl/issues/584
Changing to:
return run(() => this.set('intl.locale', [selectedLanguage, 'en']));
in #setApplicationLanguage language-preference.js.
Can you confirm that's the behavior you expect?

Just tested myself, looks good!

@MatthewDorner do you want us to open a PR for each task on this issue?

Fewer PRs would be better, these don't look like they'll get too complicated individually.

However if that makes it more confusing to keep track of who's doing what where, you can make them individually, doesn't really matter to me.

I have a branch with a fix for:

remove empty string translations
setting a missing translation message to an empty string
Adding the fallback locale

I can split them into separate PR's though.

Together is fine if they're already together.

I've got a branch for the htmlSafe and I'm trying to fix the hebrew translations

Related to this issue and the migration toember-intl was the loss of support for right-to-left languages. That's been added back as part of my #1562 pull request.

@MatthewDorner Looks like my PR closed the issue, sorry about that. Maybe we can reopen it for the remaining checklist @jackcmeyer has setup and track the remaining issues.
Missing translations
As a follow up to the question from @MatthewDorner about missing translations in these files I think we will need some sort of tooling. I was thinking we can use en.json as a source of truth and then maybe flatten the structure into something like:
flatten_en_reference.json
{
  "admin.address.address1Label": "Address 1 Label"
}

flatten_fr_missing.json
{
  "admin.address.address1Label": ""
}

Only missing from en.json would should up in the flattened. We would be able to run the reverse feed of the flatten_fr_missing.json back into the fr.json. If there are any tools that do something similar out of the box that would be nice, too.
I have a few friends that can help out with a few of the missing translations and have reached out already so if we could get a friendlier format we could fill in a bit of what's missing.
Urdu font change when switching to ember-intl
I am not sure why it changed, but maybe first we can verify if it's something that changes the meaning, context, readability, usability of the app? If it's okay we can just leave it, otherwise I can create an issue and investigate further.

@chadian and @MatthewDorner I've updated the task list to align with items that have been fixed and merged to master.

@jackcmeyer I think "unable to select first language" was fixed in my PR:
https://github.com/HospitalRun/hospitalrun-frontend/pull/1562/files#diff-4a152be7cf0c07e5f4bde6a37a912d69R56
(at least I hope so!)

@chadian sorry, must have missed this. I've also updated the list after my PR was merged. Last thing to do is the Hebrew translation warnings.

Yeah that one was fixed.

I was trying to get hospitalrun-server working with a current frontend. So I built the frontend with ember build --environment=production, copied to prod folder, and pointed the frontend npm dependency in hospitalrun-server to my git branch with my new build, but I am getting this error when I try to access the app running with hospitalrun-server:

It's the same error whether or not I enable sourcemaps in ember-cli-build.js, though we've had them disabled so far. It works however if I do the build without --environment=production.

Regarding the above, I think I have it fixed by changing broccoli-serviceworker excludePaths setting in config/environment.js, will PR after testing a little more.


Implement backend fetching for component item overview page

Keep the design as is, but do the fetching from an actual backend instance.

The frontend makes assumption that some data is available but only "name" and "description" are specced. Only "name" is required by spec.
No front-end oriented "Component" spec/types.
No "remove entity" logic.
Todo:

unregister component (remove entity?)
get and visualize all the extra data
subscription to update?

Semantics between front-end <--> backend.


Use global borrow flags to avoid per-archetype borrow checking overhead.

This reduces the number of dynamic borrow checks to one per component instead of one per archetype, thereby avoiding dynamic allocations for the reference wrappers.
However, it also means that e.g. World::get_mut can now fail due overlapping borrows for entities in different archetypes which would have worked before.

Tested this using swifco-rs and it does work. Performance improvements are hardly measurable though, i.e. from
Benchmark #1: python3 test.py
  Time (mean ± σ):      3.409 s ±  0.106 s    [User: 3.572 s, System: 0.881 s]
  Range (min … max):    3.260 s …  3.605 s    10 runs

to
Benchmark #1: python3 test.py
  Time (mean ± σ):      3.393 s ±  0.040 s    [User: 3.552 s, System: 0.885 s]
  Range (min … max):    3.313 s …  3.438 s    10 runs


sink not working with column with datatype 'timestamp' and python producer

Hello,
I'd like an Astra sink to consume some data. The sink should pull data to an Astra table with some columns having type timestamp but this is not working.
CREATE TABLE streaming_test.test_streaming_timestamp (
    sensor text,
    added timeuuid,
    temperature int,
    timestamp timestamp,
    PRIMARY KEY (sensor, added)
)

My sink's mapping is
sensor=value.sensor, added=now(), temperature=value.temperature, timestamp=value.timestamp
My test python producer script is
import pulsar
import uuid
from pulsar.schema import *
from datetime import datetime

class Example(Record):
    sensor = String()
    temperature = Integer()
    timestamp = String()

service_url = 'pulsar+ssl://my.cloud.somewhere.my.streaming.example:port'

# Use default CA certs for your environment
# Debian/Ubuntu:
trust_certs='/etc/ssl/certs/ca-certificates.crt'

token='myToken'
client = pulsar.Client(service_url,
                        authentication=pulsar.AuthenticationToken(token),
                        tls_trust_certs_file_path=trust_certs)

producer = client.create_producer('persistent://my-tenant/my-namespame/my-topic', schema=JsonSchema(Example))

now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

producer.send(Example(sensor=str(uuid.uuid4()), temperature=20, timestamp=now))

client.close()

Referring to the pulsar python client (definition.py), I cannot see any ways to specify Timestamp() in the schema. That is the reason why I am specifying timestamp as a String(), but still does not work. What am I missing?
Thanks a lot

Timestamp is stored as Integer in Cassandra, so converting it to int like this  timestamp = int(time.time())*1000 works for me.


Inquiry about Memory Usage in LazyDocker

As a beginner user of LazyDocker, I'm interested in understanding how memory usage (RAM) is managed within the application. Specifically, I'd like to know:
How does LazyDocker handle memory allocation for Docker containers?
Is there a way to determine the memory usage of individual containers within LazyDocker?
Are there any recommended practices for monitoring and managing memory usage in LazyDocker?
I'm seeking guidance on these topics to better understand the resource management aspect of Docker containers when using LazyDocker. Any insights or explanations would be greatly appreciated, especially from more experienced users or maintainers of the LazyDocker project.
I'm new to Docker and LazyDocker, so any beginner-friendly explanations or tips would be helpful.
Thanks

How does LazyDocker handle memory allocation for Docker containers?

It doesn't, lazydocker is just showing the information one would get from docker itself, it doesn't do anything else except bundle it in a text user interface.

Is there a way to determine the memory usage of individual containers within LazyDocker?

One thing you could do is select a container and press ] to go to the Stats tab where you can see the CPU and memory usages of said container.

Are there any recommended practices for monitoring and managing memory usage in LazyDocker?

About monitoring, the Stats window, but as for managing, lazydocker can't do something like that AFAIK, you can spawn a shell and kill processes within the container, but that's not really that lazydocker can take credit for.


Partitioner names other than CDCPartitioner are assumed to be Murmur3

PreparedStatement::set_partitioner_name is given a string with parittioner name and sets the partitioner to the right one based on this name.
Every name other than CDCPartitioner is interpreted as Murmur3Partitioner.
This is dangerous, what if someone tries using a thrid partitioner or types CDCpartitoner instead of CDCpartitioner. We will silently ignore the fact that this is an unrecogized partitioner and use Murmur3.
Maybe this function should return error when partitioner name is unknown.
https://github.com/scylladb/scylla-rust-driver/blob/5a56e852763ee04e5883180b020810880aea0f93/scylla/src/statement/prepared_statement.rs#L264-L272

Before fixing this we should wait for #484 to be merged first. Otherwise there are gonna be merge conflicts.


[Enhancement] upgrade staros to v3.3-rc5

starmanager fixes:

support balance between workers
fix leaderInfo in starmgr follower

starlet

fix incorrect byte range in s3 read
expose starcache instance setter interface

Why I'm doing:
What I'm doing:
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@mergifyio rebase


Execute arbitrary command without leaving fzf

Add execute(...) action for --bind option
{} as the placeholder for the double-quoted string of the current item

fzf --bind "ctrl-m:execute(less {})"
fzf --bind "ctrl-t:execute(tmux new-window -d 'vim {}')"

Hey, this would be a super neat feature! Do you need help with this or do you have it implemented already?

I already have prototype implementation, but there are still a few things to be sorted out.

I'm not yet sure if execute(...) is the most pleasing syntax I can imagine :)
What to do with --multi

Ignore --multi and just run the command for the current line only (I'm leaning towards this)
Execute the command multiple times for each selected line
Execute the command once with the selected lines concatenated (seems too complicated. separator?)

The syntax works well for the simple commands like shown above, but it gets nasty when the user becomes too ambitious; commands with nested parens, unbalanced parens, commas, new lines ...

Just declare that as the limitation of the option and tell the users to write a wrapper script instead;

e.g. execute(do-something.sh {})

Escaping issue can be greatly simplified if we allow different set of characters to surround command (a la :s of vim)

execute(...)
execute[...]
execute/.../
execute:...:
execute;...;
<EMAIL_ADDRESS>execute~...~
execute%...%

Good questions; here are my personal thoughts:

What to do with --multi: just run the command for the current line only. For me the main use case of this feature is being in fzf in order to select one or more entries, and having to quickly do something different on one of the entries (e.g. delete history entry, look at the content of a file, etc.); if I am halfway a long multi-entry selection, I would definitely expect the "side action" to only apply to the element under the cursor. To be clear: this considers such actions "secondary" compared to the "primary" action which is the final output of fzf, and as such only the "primary" action can be affected by the --multi modifier.
Escaping: I don't have a good answer for this, but I think it would be easier to solve if key bindings must be specified as distinct arguments, e.g. fzf --bind=ctrl-j:accept --bind=ctrl-k:kill-line --bind='ctrl-d:exec rm {}' (which I believe could only possibly work here because you are parsing the arguments by hand, since otherwise normally only the last flag would be considered by the standard flag package -- but I may be wrong); this way you would basically just rely on normal shell string escaping and consume everything up to the end of the argument itself, and don't have to worry about inventing a new parallel syntax for sub-escaping.

Thanks for the comment. I agree with what you said about --multi and this being "secondary" action.

I think it would be easier to solve if key bindings must be specified as distinct arguments

Yeah, it'll definitely make things much simpler, and I do hate having to come up with an arbitrary syntax, but I also don't like breaking backward compatibility and such limitation of the option may not look consistent with the other options that take comma-separated values.
I think I'm going to push the feature as described above as an experimental feature until I tag the next version. You can try it and give me some feedback. Thanks.

A git commit browser:
  git log --graph --color=always \
      --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |
  fzf --ansi --no-sort --reverse --tiebreak=index --toggle-sort=\` \
      --bind 'ctrl-m:execute/
                echo {} | grep -o "[a-f0-9]\{7\}" |
                xargs -I % sh -c "git show --color=always % | less -R"
              /'

Note that you do not necessarily have to break backwards compatibility: AFAICT your option parser already supports both comma-separated options in the same argument (e.g. fzf --bind=X,Y) as well as multiple distinct argument for the same option (e.g. fzf --bind=X --bind=Y). My suggestion would be to enforce that each exec command needs to be specified in its own argument, and that the command to be executed extends until the end of the argument itself (following existing and well-known shell escaping rules). So for instance you could have fzf --bind=X,Y --bind='exec Z', but not fzf --bind=X,Y,exec Z (which would produce an error instead). Note that backwards compatibility is preserved this way, and it would not be too hard to implement given that your option parser is already quite sophisticated (it would be much harder to do with the standard flag package alone).

So it's not backward incompatible in the sense that it doesn't break any existing configuration since execute action is not publicly announced yet. I see your point. My viewpoint is that it's kind of backward incompatible since it changes the definition of --bind from

comma-separated list of key:actions pairs
to comma-separated list of key:actions pairs except for execute action which you have to write separately

So the users have to learn about the exception. execute(...) notation on the other hand is consistent and does not change the definition of --bind, but conversely, users have to learn about that syntax and its alternative notations for avoiding parse errors. In either way, no free lunch. But I'm leaning towards the latter since it feels more consistent especially if, although unlikely, we are going to add more actions with arguments in the future.

AFAICT the definition of --bind already supports both modes (comma-separated vs. separate args); if you wanted, you could gradually change the API to only support the latter, starting with --bind which should have to be on its own, and later on with other options too. The transition should not be too painful as long as you print a meaningful error message saying to separate the options in distinct arguments I think.
Also note that rolling your own escaping function may get really messy if shell variable substitution is added to the mix, e.g. fzf --bind="ctrl-m:execute/somethingsomething$VAR/" and $VAR contains /.

Also note that rolling your own escaping function may get really messy if shell variable substitution is added to the mix, e.g. fzf --bind="ctrl-m:execute/somethingsomething$VAR/" and $VAR contains /.

Yes, that's a valid point, but if the variable is exported, we can use single quotes since fzf internally executes the command with sh -c, so VAR="..." fzf --bind='ctrl-m:execute/somethingsomething$VAR/' will work regardless of the value of the variable. And if the expression gets really complicated we should probably tell the users to write an external script.
As I mentioned in the earlier comment, another point I like about parens notation is that it allows me to extend the existing actions to have optional arguments in a concise and consistent manner. For example, I prefer --bind ctrl-j:accept,ctrl-f:page-down(3),ctrl-b:page-up(3) over --bind ctrl-j:accept,ctrl-f:page-down:3 --bind ctrl-b:page-up:3

We can also consider providing both methods, 1. concise parens notation, 2. and an alternative notation with which you don't have to worry about parse errors, something like --bind ctrl-m:execute=COMMAND

Now this also works:
fshow() {
  git log --graph --color=always \
      --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |
  fzf --ansi --no-sort --reverse --tiebreak=index --toggle-sort=\` \
      --bind 'ctrl-m:execute:
                echo {} | grep -o "[a-f0-9]\{7\}" |
                xargs -I % sh -c "git show --color=always % | less -R"'
}

I'm thinking which one I like more

Speaking of --multi, here is my thought. You can add execute-cursor (or execute-cursor-line) action/binding to execute action on the current line only, and execute-selected action to execute the action on all the selected/marked lines.
Another side and off-topic note, or rather a humble request is to keep the number of features in this wonderful piece of software under control. I really appreciate your work here and I absolutely can't live without fzf on a daily basis by now but at the same time I really don't want fzf to become too bloated and complicated. Thanks for the understanding.

@balta2ar Thanks for your feedback. It's ironic that you're requesting another feature and at the same time expressing your concern on feature bloat :) But I also feel the same. Actually to my usual standard, fzf is already bloated. I'm thinking about hiding some exotic features from the --help output, having them only on man page, so that fzf feels simpler and friendlier to average users.
Regarding your idea on execute-cursor, it still leaves us with the question whether we should also support executing the command once for all selected items, e.g. cat {} > concatenated. Then why not cat {2} {1} > {&}, it's a rabbit hole of never-ending requirements. We should probably just keep it simple and not support it.

@junegunn I completely agree, this looks like the case where one can argue on the color of bike shed until the end of times. What comes into my mind is man find, specifically -exec option which supports both exec per one result and exec once with all results.

Why do you make it so complex  on my prompt in bash:  $(cat ~/.bash_history | sort | uniq | fzf)
if you use the $( it execute the return value of fzf no need to program it


Allow user to add recipes into build artifacts

If we have recipes inside build artifacts, users can query recipes directly from network with following command:
npx @web3api/ci recipes -e storage.eth

This will query fetch recipes.json from build artifact and execute it.
This can even be used in hub for standardise experience.

This is very cool, I'm all for this! Also note that we support the queries: property in the web3api.meta.yaml manifest file, which allows users to provide query fragments w/ descriptions. I think the query recipes should be thought of as a layer on-top of this, where a recipe could contain multiple combinations of individual query fragments.


⚠ Bofrost.de has degraded performance

In a4f6b36, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1129 ms

Resolved: Bofrost.de performance has improved in 36d8850 after 25 minutes.


Question about @use

Hello - Thank you for this project :)
I have ./src/scss/styles.scss/  with @use 'open-props-scss' as op; as the first line. When I run Sass, I get Error: Can't find stylesheet to import.
Have I misunderstood something?

Hi @mayank99  - here is an example repo: https://github.com/wcDogg/eleventy-test.
It's an Eleventy project and I'm not using webpack or other bundler - just Sass.  So I need an import map?
Reading the MDN article, it's not clear to me how I'd set that up.
I sincerely appreciate your help :)

Closing this - went with the PostCSS JIT props implementation - but I will be keeping an eye on this project :)


HIVE-27088: fixed nway join pattern

What changes were proposed in this pull request?

When hive.merge.nway.joins is set to true and JOIN is performed with INNER and OUTER and a filter exists, normal results cannot be obtained.
For example:
FROM a
INNER JOIN b
  ON a.id = b.id
        AND (a.code = 1 or a.code = 2)
LEFT OUTER JOIN c
  ON a.id = c.id

Why are the changes needed?

In the case above, it doesn't return normal results.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Added pattern tests to itest for these to work correctly.

@ryukobayashi
I run the q test introduced by this patch on both apache/master and a branch where this patch is applied. There is no difference between the q.out files.
Could you please add a test where the results was originally wrong.

@kasakrisz Thanks, got it. I will recreate the test with the example described in the ticket.


chore: update spdlog to 1.12.0

Alpine 3.19 got rid of lfs64
https://gitlab.alpinelinux.org/alpine/aports/-/commit/cab9b787b39387f0b3d30d218b0739c3e21aefb8
So spdlog fixed by not using it in musl
https://github.com/gabime/spdlog/commit/287a00d364990edbb621fe5e392aeb550135fb96
A small spdlog update is required to install vscode in Alpine 3.19
Installing @vscode/spdlog with spdlog v1.11.0 in Alpine 3.19
10.55 npm ERR! ../deps/spdlog/include/spdlog/details/os-inl.h:241:19: error: aggregate 'spdlog::details::os::filesize(FILE*)::stat64 st' has incomplete type and cannot be defined
10.55 npm ERR!   241 |     struct stat64 st;
10.55 npm ERR!       |                   ^~
10.55 npm ERR! ../deps/spdlog/include/spdlog/details/os-inl.h:242:11: error: '::fstat64' has not been declared; did you mean 'stat64'?
10.55 npm ERR!   242 |     if (::fstat64(fd, &st) == 0)
10.55 npm ERR!       |           ^~~~~~~
10.55 npm ERR!       |           stat64

Installing @vscode/spdlog with spdlog v1.12.0 in Alpine 3.19 works like a charm!

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@deepak1556 Thanks for merging 🙏
Expected time before publishing to npmjs?

I don't have publishing rights for this repo, /cc @rzhao271 ☝


Cd relnotes 802xx cds 76594

Harness Developer Pull Request
CD 802xx release notes:

https://64d3d4e311b7b6111dc423b0--harness-developer.netlify.app/release-notes/continuous-delivery
https://64d3d4e311b7b6111dc423b0--harness-developer.netlify.app/release-notes/whats-new

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


[Payjoin] Recently sweeped wallet with 0 balance is able to generate a PJ address

A wallet that is sweeped and the sweep tx is still not confirmed is able to generate a payjoin address even though it has no utxos.

Hi there,
We use GitHub issues as a place to track bugs and other development-related issues.
Please see the link below to our dedicated support line:
Help Center :  Click Here
Ticket ID: WB240
Note: Click on the live chat icon at the bottom corner of the page to start a conversation.


Export Button Bug In Project Tab Options [GAE, Godot Android Editor]

Godot version
v4.0.3.stable.official [5222a99f5]
System information
Android 10, AArch64 Processor rev 2 (aarch64), 64-bit & 4 x Kryo 260 (A53) & 4 x Kryo 260 (A73), Qualcomm Adreno (TM) 610, OpenGL ES 3.2
Issue description
https://github.com/godotengine/godot/assets/83836349/0a99ee50-4fc3-4808-98da-6d991fd21ae5
This is a video link that uses Google Drive if the GitHub video can't be played: https://drive.google.com/file/d/16_8-6yMu8zrzMPogTV74GsIetj9Du_0v/view?usp=drivesdk
There is a bug on screens with 720x1600 resolution, namely a bug in the project options section for export where the export button disappears somewhere or maybe sinks to the bottom when you want to export to the Android platform, which prevents me from exporting it to tpz/zip format because of the button. It passes through the screen limiter of my smartphone
Steps to reproduce
For the next update, please change the size of the tab, if the tab reaches the screen size limit, make it so that the tab size does not hit the screen border which will remove some buttons
Minimal reproduction project
N/A

Duplicate of #73130


transcripts are lost after stringtie merge

Hello,
I'm using Stringtie v2.0.4 for my RNAseq data analysis. I have a reference genome and annotation file but I still intend to identify novel genes since the annotation is not complete for my species. I used:
for f in *.bam; do echo ${f}; stringtie -p 8 -f 0.3 -j 5 -G gene_models_main.gff3 -o ${f%.*}.gtf ${f}; done
to assemble for individual samples. Then used:
stringtie --merge -p 8 -G gene_models_main.gff3 -o stringtie_merged.gtf ./mergelist.txt
to get the nonredundant transcript gtf file.
We have characterized novel genes (2 paralogs ) in our species (tetraploid), so I want to ckeck if the two genes are in my data. But I can only find one in the merged gtf file. When I checked the individual assembly, I can find the missed one in some samples and there are reads covered in this region. But in the merged assembly, it's gone. (see figure)

The merged assembly is on the top, and the rest are the individual assemblies. My target trasncript (start with STRG) is assembled in many samples but not in the merged file. Even more strange is that the close reference gene (arahyL5ZR7F) has no coverage and is not assembled in most samples, but it is there.
I tried merging without any filtering criteria and without annotation file. But I cannot see that transcript in the merged file.
Regards,
Ziliang

Hello, did you find a solution ?

I have the same issue. Has it been resolved?

I have the same issue. Has it been resolved?

I wasn't able to solve this issue. Seems Stringtie stick to the provided reference strictly. I used a better annotation for the assembly, and there was no issue because the gene model is correctly annotated. Just make sure you have the best annotation for your analysis, or do the de novo assembly.

Thanks @Kennyluo4


fix typo: Propoability -> Probability

Sorry for the delay on reviewing. Thank you for fixing this!


extends plugin:import/recommended and fix warnings

don't be scary of modified code lines, it's mostly only yarn.lock changes (:

@acao ani idea why netlify deploy fails ? 🤔

@B2o5T seems to be that it's running out of build time? The build toolchain has gotten much longer now that we're using vite + webpack4 🙈

@B2o5T are you able to see the netlify build logs?

@B2o5T are you able to see the netlify build logs?

Unfortunately not, infinity loading

@B2o5T seems to be that it's running out of build time? The build toolchain has gotten much longer now that we're using vite + webpack4 🙈

seems due hosting of dependencies, migration to pnpm should avoid these problems in the future 🤔

@acao after removing examples from workspaces, deploy passes

seems due hosting of dependencies, migration to pnpm should avoid these problems in the future

indeed! once we replace or upgrade webpack for bundling graphiql, we can support pnpm.

@thomasheyenbrock updated all examples:

removed instruction to do yarn/yarn start from the root
moved typescript to devDeps
replaced all relative packages version "file:../../ with published versions since examples no longer included in workspaces


English documentation

Translate Chinese documents to English and deploy.

I am not familiar with how mkdocs is internationalized and need some time or help.

Using https://github.com/ultrabug/mkdocs-static-i18n

Done.


Interest in partial parsing and sql formatting?

Hello! I've been loving sqlparser-rs, I've been having a lot of fun using it with a tool I've been working on recently. As part of my work, I would like to do two things with sqlparser-rs that I don't think are supported right now. I'd like to be able to get a partial parse of a sql string back out, for use with code editors and text highlighting. Additionally, I would like to be able to format sql with my particular dialect as well eventually. Would you all be interested in me trying to contribute this back to the library somehow when I get around to it? Did I miss something somewhere hopefully? Thanks again for a great library.

This is a great feature. SQL formatting, removing comments, and highlighting keywords are all very practical capabilities. If necessary, I can also contribute what I can.

I think adding hooks (like offsets / spans into the AST) would fit into sqlparser-rs 's design
I am not quite sure what you mean by "partial parse of a sql string" -- maybe you mean the parser would be able to produce an AST even for a partial SQL query?
Text highlighting I think would be possible if the ast had spans (location in the original parsed query) -- I am not sure highlighting itself fits into the crate

I think we only need to provide some built-in visitors like alibaba/druid to meet the needs, which will also help others learn and use sqlparser @alamb

There is a basic visitor already: https://docs.rs/sqlparser/latest/sqlparser/ast/trait.Visitor.html, perhaps that is enough

Of course, this is a small case for SQL engine developers. I want to provide some SqlUtils to attract more developers. I will try to do something. If there is progress, I will synchronize with everyone.