diff --git a/.github/workflows/clippy.yaml b/.github/workflows/clippy-warnings-comment.yaml similarity index 93% rename from .github/workflows/clippy.yaml rename to .github/workflows/clippy-warnings-comment.yaml index 80296ba8..05fe6161 100644 --- a/.github/workflows/clippy.yaml +++ b/.github/workflows/clippy-warnings-comment.yaml @@ -1,8 +1,8 @@ -name: Clippy Check with PR Comments +name: Clippy Check on: pull_request: - branches: [ master ] + branches: [master] jobs: clippy: @@ -13,7 +13,7 @@ jobs: pull-requests: write steps: - uses: actions/checkout@v3 - + - name: Install Rust uses: actions-rs/toolchain@v1 with: @@ -24,7 +24,7 @@ jobs: - name: Install Deps run: sudo apt-get install libgtk-3-dev libsoup2.4-dev libjavascriptcoregtk-4.0-dev libwebkit2gtk-4.0-dev - + - name: Run Clippy id: clippy run: | @@ -49,11 +49,11 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, }); - + const botComments = comments.filter(comment => comment.user.type === 'Bot' && comment.body.includes('Clippy Warnings/Errors') ); - + for (const comment of botComments) { await github.rest.issues.deleteComment({ owner: context.repo.owner, @@ -61,7 +61,7 @@ jobs: comment_id: comment.id, }); } - + - name: Comment PR if: steps.clippy.outputs.CLIPPY_ISSUES_FOUND == 'true' uses: actions/github-script@v6 @@ -70,9 +70,9 @@ jobs: script: | const clippy_output = ${{ steps.clippy.outputs.CLIPPY_OUTPUT }}; const output = ` -
+
- Found Clippy warnings + Found Clippy warnings #### Clippy Warnings/Errors @@ -82,11 +82,10 @@ jobs:
`; - + github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: output }) - diff --git a/Cargo.lock b/Cargo.lock index b00932b8..580745f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,6 +124,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + [[package]] name = "anstream" version = "0.6.14" @@ -456,17 +462,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.3.0" @@ -941,16 +936,57 @@ dependencies = [ ] [[package]] -name = "clap" -version = "2.34.0" +name = "ciborium" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ - "bitflags 1.3.2", - "textwrap", - "unicode-width", + "ciborium-io", + "ciborium-ll", + "serde", ] +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + [[package]] name = "clipboard-win" version = "5.4.0" @@ -1200,24 +1236,24 @@ dependencies = [ [[package]] name = "criterion" -version = "0.3.6" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ - "atty", + "anes", "cast", + "ciborium", "clap", "criterion-plot", - "csv", + "is-terminal", "itertools 0.10.5", - "lazy_static", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", "regex", "serde", - "serde_cbor", "serde_derive", "serde_json", "tinytemplate", @@ -1226,9 +1262,9 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", "itertools 0.10.5", @@ -1311,27 +1347,6 @@ dependencies = [ "syn 2.0.72", ] -[[package]] -name = "csv" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" -dependencies = [ - "csv-core", - "itoa 1.0.11", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" -dependencies = [ - "memchr", -] - [[package]] name = "ctor" version = "0.2.8" @@ -2470,7 +2485,7 @@ dependencies = [ "bytemuck", "dyn-any", "glam", - "half 2.4.1", + "half", "image 0.25.2", "js-sys", "kurbo", @@ -2724,12 +2739,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "half" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" - [[package]] name = "half" version = "2.4.1" @@ -2794,15 +2803,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.3.9" @@ -5637,16 +5637,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "serde_cbor" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" -dependencies = [ - "half 1.8.3", - "serde", -] - [[package]] name = "serde_derive" version = "1.0.204" @@ -6633,15 +6623,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - [[package]] name = "thin-slice" version = "0.1.1" @@ -7713,7 +7694,7 @@ dependencies = [ "glam", "gpu-executor", "graphene-core", - "half 2.4.1", + "half", "log", "node-macro", "num-traits", diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 7606e7b2..61122b5a 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -381,7 +381,7 @@ impl MessageHandler> for PortfolioMes let document_name = document_name.replace("__DO_NOT_UPGRADE__", ""); let document = DocumentMessageHandler::deserialize_document(&document_serialized_content).map(|mut document| { - document.name = document_name.clone(); + document.name.clone_from(&document_name); document }); diff --git a/editor/src/node_graph_executor.rs b/editor/src/node_graph_executor.rs index d9357931..27af96b0 100644 --- a/editor/src/node_graph_executor.rs +++ b/editor/src/node_graph_executor.rs @@ -255,7 +255,7 @@ impl NodeRuntime { assert_ne!(proto_network.nodes.len(), 0, "No proto nodes exist?"); self.executor.update(proto_network).await.map_err(|e| { - self.node_graph_errors = e.clone(); + self.node_graph_errors.clone_from(&e); format!("{e:?}") }) } diff --git a/frontend/wasm/Cargo.toml b/frontend/wasm/Cargo.toml index 3003dfd3..f30d5ed3 100644 --- a/frontend/wasm/Cargo.toml +++ b/frontend/wasm/Cargo.toml @@ -52,7 +52,6 @@ web-sys = { workspace = true, features = [ # Optional workspace dependencies ron = { workspace = true, optional = true } - [package.metadata.wasm-pack.profile.dev] wasm-opt = false diff --git a/libraries/raw-rs/src/decoder/arw1.rs b/libraries/raw-rs/src/decoder/arw1.rs index cdc523d5..b495a90b 100644 --- a/libraries/raw-rs/src/decoder/arw1.rs +++ b/libraries/raw-rs/src/decoder/arw1.rs @@ -23,6 +23,7 @@ pub fn decode_a100(ifd: Ifd, file: &mut TiffRead) -> RawImage width: image_width, height: image_height, cfa_pattern: todo!(), + #[allow(unreachable_code)] maximum: (1 << 12) - 1, black: SubtractBlack::None, camera_to_xyz: None, diff --git a/libraries/raw-rs/tests/tests.rs b/libraries/raw-rs/tests/tests.rs index 681da198..e6147003 100644 --- a/libraries/raw-rs/tests/tests.rs +++ b/libraries/raw-rs/tests/tests.rs @@ -307,7 +307,8 @@ fn _test_final_image(content: &[u8], raw_image: RawImage) -> Result<(), String> Ok(()) } -// #[test] +#[ignore] +#[test] fn extract_data_from_dng_images() { read_dir(BASE_PATH) .unwrap() diff --git a/node-graph/gcore/src/vector/vector_data/modification.rs b/node-graph/gcore/src/vector/vector_data/modification.rs index fa2cf481..41dcadd1 100644 --- a/node-graph/gcore/src/vector/vector_data/modification.rs +++ b/node-graph/gcore/src/vector/vector_data/modification.rs @@ -508,6 +508,7 @@ where H: BuildHasher + Default, { struct HashMapVisitor { + #[allow(clippy::type_complexity)] marker: std::marker::PhantomData HashMap>, } diff --git a/node-graph/graph-craft/Cargo.toml b/node-graph/graph-craft/Cargo.toml index a03d8536..4d885642 100644 --- a/node-graph/graph-craft/Cargo.toml +++ b/node-graph/graph-craft/Cargo.toml @@ -50,15 +50,13 @@ wasm-bindgen-futures = { workspace = true } # Workspace dependencies winit = { workspace = true } - [dev-dependencies] -criterion = { version = "0.3", features = ["html_reports"] } +criterion = { version = "0.5", features = ["html_reports"] } glob = "0.3" pprof = { version = "0.13", features = ["flamegraph"] } serde_json = { workspace = true } graph-craft = { workspace = true, features = ["serde"] } - [[bench]] name = "compile_demo_art" harness = false diff --git a/node-graph/graph-craft/benches/compile_demo_art.rs b/node-graph/graph-craft/benches/compile_demo_art.rs index 173fef26..28c33683 100644 --- a/node-graph/graph-craft/benches/compile_demo_art.rs +++ b/node-graph/graph-craft/benches/compile_demo_art.rs @@ -1,5 +1,7 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use graph_craft::{document::NodeNetwork, graphene_compiler::Compiler, proto::ProtoNetwork}; +use graph_craft::document::NodeNetwork; +use graph_craft::graphene_compiler::Compiler; +use graph_craft::proto::ProtoNetwork; pub fn compile_to_proto(c: &mut Criterion) { let artworks = glob::glob("../../demo-artwork/*.graphite").expect("failed to read glob pattern"); @@ -14,9 +16,8 @@ pub fn compile_to_proto(c: &mut Criterion) { } fn load_network(document_string: &str) -> NodeNetwork { - let document: serde_json::Value = serde_json::from_str(&document_string).expect("Failed to parse document"); - let network = serde_json::from_value::(document["network_interface"]["network"].clone()).expect("Failed to parse document"); - network + let document: serde_json::Value = serde_json::from_str(document_string).expect("Failed to parse document"); + serde_json::from_value::(document["network_interface"]["network"].clone()).expect("Failed to parse document") } fn compile(network: NodeNetwork) -> ProtoNetwork { let compiler = Compiler {}; diff --git a/node-graph/graph-craft/src/document.rs b/node-graph/graph-craft/src/document.rs index 208ffcc5..d8727afe 100644 --- a/node-graph/graph-craft/src/document.rs +++ b/node-graph/graph-craft/src/document.rs @@ -2,12 +2,12 @@ use crate::document::value::TaggedValue; use crate::proto::{ConstructionArgs, ProtoNetwork, ProtoNode, ProtoNodeInput}; use dyn_any::{DynAny, StaticType}; -use glam::IVec2; use graphene_core::memo::MemoHashGuard; pub use graphene_core::uuid::generate_uuid; use graphene_core::{Cow, MemoHash, ProtoNodeIdentifier, Type}; -use rustc_hash::{FxHashMap, FxHashSet}; +use glam::IVec2; +use rustc_hash::FxHashMap; use std::collections::hash_map::DefaultHasher; use std::collections::HashMap; use std::hash::{Hash, Hasher}; @@ -1026,7 +1026,7 @@ impl NodeNetwork { Self::replace_value_inputs_with_nodes( &mut inner_network.exports, &mut inner_network.nodes, - &node.original_location.path.as_ref().unwrap_or(&vec![]), + node.original_location.path.as_ref().unwrap_or(&vec![]), gen_id, map_ids, id, @@ -1058,9 +1058,8 @@ impl NodeNetwork { NodeInput::Node { node_id, output_index, lambda } => { let skip = node.original_location.skip_inputs; nested_node.populate_first_network_input(node_id, output_index, nested_input_index, lambda, node.original_location.inputs(*import_index), skip); - if let input_node = self.nodes.get_mut(&node_id).unwrap() { - input_node.original_location.dependants[output_index].push(nested_node_id); - }; + let input_node = self.nodes.get_mut(&node_id).unwrap(); + input_node.original_location.dependants[output_index].push(nested_node_id); } NodeInput::Network { import_index, .. } => { let parent_input_index = import_index; @@ -1276,8 +1275,7 @@ impl NodeNetwork { /// Creates a proto network for evaluating each output of this network. pub fn into_proto_networks(self) -> impl Iterator { - // let input_node = self.nodes.iter().find_map(|(node_id, node)| if node.name == "SetNode" { Some(node_id.clone()) } else { None }); - let mut nodes: Vec<_> = self.nodes.into_iter().map(|(id, node)| (id, node.resolve_proto_node())).collect(); + let nodes: Vec<_> = self.nodes.into_iter().map(|(id, node)| (id, node.resolve_proto_node())).collect(); // Create a network to evaluate each output if self.exports.len() == 1 { @@ -1285,7 +1283,7 @@ impl NodeNetwork { return vec![ProtoNetwork { inputs: Vec::new(), output: node_id, - nodes: nodes, + nodes, }] .into_iter(); } diff --git a/node-graph/graph-craft/src/proto.rs b/node-graph/graph-craft/src/proto.rs index faae28b9..7f410d0b 100644 --- a/node-graph/graph-craft/src/proto.rs +++ b/node-graph/graph-craft/src/proto.rs @@ -3,8 +3,8 @@ use crate::document::{NodeId, OriginalLocation}; use dyn_any::DynAny; use graphene_core::*; -use rustc_hash::{FxHashMap, FxHashSet}; +use rustc_hash::FxHashMap; #[cfg(feature = "serde")] use std::borrow::Cow; use std::collections::{HashMap, HashSet}; @@ -430,10 +430,7 @@ impl ProtoNetwork { } fn collect_inwards_edges_with_mapping(&self) -> (Vec>, FxHashMap) { - let mut id_map = FxHashMap::with_capacity_and_hasher(self.nodes.len(), Default::default()); - - // Create dense mapping - id_map = self.nodes.iter().enumerate().map(|(idx, (id, _))| (*id, idx)).collect(); + let id_map: FxHashMap<_, _> = self.nodes.iter().enumerate().map(|(idx, (id, _))| (*id, idx)).collect(); // Collect inwards edges using dense indices let mut inwards_edges = vec![Vec::new(); self.nodes.len()]; @@ -584,7 +581,7 @@ impl ProtoNetwork { /// Sort the nodes vec so it is in a topological order. This ensures that no node takes an input from a node that is found later in the list. fn reorder_ids(&mut self) -> Result<(), String> { - let (order, id_map) = self.topological_sort()?; + let (order, _id_map) = self.topological_sort()?; // // Map of node ids to their current index in the nodes vector // let current_positions: FxHashMap<_, _> = self.nodes.iter().enumerate().map(|(pos, (id, _))| (*id, pos)).collect(); diff --git a/node-graph/gstd/src/imaginate.rs b/node-graph/gstd/src/imaginate.rs index 06774216..e4dafb1b 100644 --- a/node-graph/gstd/src/imaginate.rs +++ b/node-graph/gstd/src/imaginate.rs @@ -370,7 +370,7 @@ async fn imaginate_maybe_fail<'a, P: Pixel, F: Fn(ImaginateStatus)>( prompt: prompt.await, seed: seed.await, steps: samples.await, - cfg_scale: prompt_guidance.await as f64, + cfg_scale: prompt_guidance.await, width: res.x, height: res.y, restore_faces: improve_faces.await, @@ -385,7 +385,7 @@ async fn imaginate_maybe_fail<'a, P: Pixel, F: Fn(ImaginateStatus)>( override_settings: Default::default(), init_images: vec![base64_data], - denoising_strength: image_creativity.await as f64 * 0.01, + denoising_strength: image_creativity.await * 0.01, mask: None, }; let url = join_url(&base_url, SDAPI_IMAGE_TO_IMAGE)?;