Generate push_next function for non root structs

Fixes https://github.com/MaikKlein/ash/issues/229

Seems like I have to commit the generated files.
But the changes I would commit look suspect and affect files that should not be affected.
For example:
$ git diff ash/src/vk/macros.rs
diff --git a/ash/src/vk/macros.rs b/ash/src/vk/macros.rs
index cae901d..d3ffee3 100644
--- a/ash/src/vk/macros.rs
+++ b/ash/src/vk/macros.rs
@@ -1,6 +1,6 @@
 #[macro_export]
 macro_rules! vk_bitflags_wrapped {
-    ($ name : ident , $ all : expr , $ flag_type : ty) => {
+    ( $ name : ident , $ all : expr , $ flag_type : ty ) => {
         impl Default for $name {
             fn default() -> $name {
                 $name(0)
@@ -104,10 +104,10 @@ macro_rules! vk_bitflags_wrapped {
 }
 #[macro_export]
 macro_rules! handle_nondispatchable {
-    ($ name : ident , $ ty : ident) => {
+    ( $ name : ident , $ ty : ident ) => {
         handle_nondispatchable!($name, $ty, doc = "");
     };
-    ($ name : ident , $ ty : ident , $ doc_link : meta) => {
+    ( $ name : ident , $ ty : ident , $ doc_link : meta ) => {
         #[repr(transparent)]
         #[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Default)]
         #[$doc_link]
@@ -140,10 +140,10 @@ macro_rules! handle_nondispatchable {
 }
 #[macro_export]
 macro_rules! define_handle {
-    ($ name : ident , $ ty : ident) => {
+    ( $ name : ident , $ ty : ident ) => {
         define_handle!($name, $ty, doc = "");
     };
-    ($ name : ident , $ ty : ident , $ doc_link : meta) => {
+    ( $ name : ident , $ ty : ident , $ doc_link : meta ) => {
         #[repr(transparent)]
         #[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash)]
         #[$doc_link]

or
$ git diff ash/src/vk/native.rs
warning: LF will be replaced by CRLF in ash/src/vk/native.rs.
The file will have its original line endings in your working directory
diff --git a/ash/src/vk/native.rs b/ash/src/vk/native.rs
index f8d2bca..ae1d474 100644
--- a/ash/src/vk/native.rs
+++ b/ash/src/vk/native.rs
@@ -80,15 +80,7 @@ where
         }
     }
 }
-pub type size_t = ::std::os::raw::c_ulong;
-pub type __int8_t = ::std::os::raw::c_schar;
-pub type __uint8_t = ::std::os::raw::c_uchar;
-pub type __int16_t = ::std::os::raw::c_short;
-pub type __uint16_t = ::std::os::raw::c_ushort;
-pub type __int32_t = ::std::os::raw::c_int;
-pub type __uint32_t = ::std::os::raw::c_uint;
-pub type __int64_t = ::std::os::raw::c_long;
-pub type __uint64_t = ::std::os::raw::c_ulong;
+pub type size_t = ::std::os::raw::c_ulonglong;
 pub const StdVideoH264ChromaFormatIdc_std_video_h264_chroma_format_idc_monochrome:
     StdVideoH264ChromaFormatIdc = 0;
 pub const StdVideoH264ChromaFormatIdc_std_video_h264_chroma_format_idc_420:
@@ -2795,6 +2787,7 @@ fn bindgen_test_layout_StdVideoH265SubLayerHrdParameters() {
 pub struct StdVideoH265HrdFlags {
     pub _bitfield_align_1: [u8; 0],
     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+    pub __bindgen_padding_0: [u8; 3usize],
     pub fixed_pic_rate_general_flag: u8,
     pub fixed_pic_rate_within_cvs_flag: u8,
     pub low_delay_hrd_flag: u8,
@@ -2803,7 +2796,7 @@ pub struct StdVideoH265HrdFlags {
 fn bindgen_test_layout_StdVideoH265HrdFlags() {
     assert_eq!(
         ::std::mem::size_of::<StdVideoH265HrdFlags>(),
-        4usize,
+        8usize,
         concat!("Size of: ", stringify!(StdVideoH265HrdFlags))
     );
     assert_eq!(
@@ -2816,7 +2809,7 @@ fn bindgen_test_layout_StdVideoH265HrdFlags() {
eral_flag as *const _
                 as usize
         },
-        1usize,
+        4usize,
         concat!(
             "Offset of field: ",
             stringify!(StdVideoH265HrdFlags),
@@ -2829,7 +2822,7 @@ fn bindgen_test_layout_StdVideoH265HrdFlags() {
hin_cvs_flag
                 as *const _ as usize
         },
-        2usize,
+        5usize,
         concat!(
             "Offset of field: ",
             stringify!(StdVideoH265HrdFlags),
@@ -2841,7 +2834,7 @@ fn bindgen_test_layout_StdVideoH265HrdFlags() {
         unsafe {
 as *const _ as usize
         },
-        3usize,
+        6usize,
         concat!(
             "Offset of field: ",
             stringify!(StdVideoH265HrdFlags),

Could be explained by my build setup. I am using Rust from MinGW/MSYS2 on Windows 10.
$ cargo --version
cargo 1.52.0

Philippe@DESKTOP-IIU0C7D MINGW64 ~/rust/ash
$ rustc --version
rustc 1.52.1

@filnet The formatting change is odd, I recall that being changed the other way around when upgrading proc_macro2/syn/quote to v1.0 in https://github.com/MaikKlein/ash/commit/43b5058e364c652cf65ce4e3153d8ef383fad6dd. It's pretty much impossible to go back to that old generator by maybe the initial 1.0 releases did not deal with whitespace this way yet. Are you by chance on a -Z minimal-versions, and is this solved after running cargo update and re-running the generator?
(By the way, if you add the word diff and console after the triple backticks in the corresponding code blocks they are nicely highlighted; see how I edited them in your post).
The alignment change in StdVideoH265HrdFlags is something I have yet to investigate following https://github.com/MaikKlein/ash/pull/417#issuecomment-850998722, bitfields are dealt with differently on Linux and Windows and I don't know which one is correct - or if there's really a platform difference. For now you can revert (or not commit) the changes to native.rs.
As for the PR solution itself, I'll have to look into that in more detail. The idea with root structs is that there's always a single type (represented by the trait) of objects that can be chained, where it doesn't matter what it's chained to. Now there are quite a few new traits that are not implemented by anything, meaning .push_next essentially cannot be called at all. It is probably more useful to generate all these .push_next functions with the root struct/trait as trait bound instead.
However, when working on the video extensions (which turned out to be a different issue in the end) it seemed that vk.xml was trying to represent nested subclassing, ie. where specific ordering may be required. Haven't thought how to represent that yet.

Diff remains the same after a  cargo update. The update did do something:
$ cargo update
    Updating crates.io index
    Updating adler v0.2.3 -> v1.0.2
    Updating adler32 v1.0.4 -> v1.2.0
    Updating aho-corasick v0.7.15 -> v0.7.18
    Updating arc-swap v0.4.7 -> v0.4.8
    Updating arrayvec v0.5.1 -> v0.5.2
    Updating autocfg v1.0.0 -> v1.0.1
      Adding base64 v0.13.0
      Adding bitvec v0.19.5
    Updating bytemuck v1.2.0 -> v1.5.1
    Updating byteorder v1.3.2 -> v1.4.3
      Adding cache-padded v1.1.1
    Updating cc v1.0.50 -> v1.0.68
    Removing cloudabi v0.1.0
    Updating cmake v0.1.42 -> v0.1.45
    Removing const_fn v0.4.2
    Updating core-graphics v0.19.0 -> v0.19.2
      Adding cpufeatures v0.1.4
    Removing cpuid-bool v0.1.2
    Updating crc32fast v1.2.0 -> v1.2.1
    Updating crossbeam v0.7.3 -> v0.8.1
    Removing crossbeam-channel v0.4.4
    Removing crossbeam-channel v0.5.0
      Adding crossbeam-channel v0.5.1
    Removing crossbeam-deque v0.7.3
    Removing crossbeam-epoch v0.8.2
    Removing crossbeam-epoch v0.9.0
      Adding crossbeam-epoch v0.9.5
    Updating crossbeam-queue v0.2.3 -> v0.3.2
    Removing crossbeam-utils v0.7.2
    Removing crossbeam-utils v0.8.0
      Adding crossbeam-utils v0.8.5
    Updating derivative v2.1.1 -> v2.2.0
    Removing dlib v0.4.1
      Adding dlib v0.4.2
      Adding dlib v0.5.0
    Updating downcast-rs v1.1.1 -> v1.2.0
    Updating dtoa v0.4.6 -> v0.4.8
    Updating flate2 v1.0.14 -> v1.0.20
      Adding funty v1.1.0
    Updating generic-array v0.12.3 -> v0.12.4
    Updating getrandom v0.1.14 -> v0.1.16
    Updating gif v0.11.1 -> v0.11.2
    Updating hdrhistogram v7.1.0 -> v7.3.0
    Updating hermit-abi v0.1.17 -> v0.1.18
    Updating instant v0.1.7 -> v0.1.9
    Updating itoa v0.4.6 -> v0.4.7
    Updating jpeg-decoder v0.1.20 -> v0.1.22
    Updating lexical-core v0.7.4 -> v0.7.6
    Updating libc v0.2.89 -> v0.2.95
    Updating libloading v0.5.2 -> v0.6.7
    Updating linked-hash-map v0.5.3 -> v0.5.4
    Removing lock_api v0.3.3
    Removing lock_api v0.4.1
      Adding lock_api v0.3.4
      Adding lock_api v0.4.4
    Updating log v0.4.8 -> v0.4.14
    Updating matrixmultiply v0.2.3 -> v0.2.4
    Updating memchr v2.3.3 -> v2.4.0
    Updating memoffset v0.5.6 -> v0.6.4
    Removing miniz_oxide v0.3.6
    Removing miniz_oxide v0.4.3
      Adding miniz_oxide v0.3.7
      Adding miniz_oxide v0.4.4
    Updating mio v0.7.10 -> v0.7.11
    Updating mio-misc v1.0.0 -> v1.2.1
    Updating miow v0.3.6 -> v0.3.7
      Adding nix v0.20.0
    Removing nom v5.1.2
    Removing nom v6.0.1
      Adding nom v6.1.2
    Updating ntapi v0.3.4 -> v0.3.6
    Updating num-bigint v0.3.1 -> v0.3.2
    Updating num-rational v0.3.1 -> v0.3.2
    Updating once_cell v1.5.2 -> v1.7.2
    Updating ordered-float v1.0.2 -> v1.1.1
    Removing parking_lot v0.10.0
    Removing parking_lot v0.11.0
      Adding parking_lot v0.10.2
      Adding parking_lot v0.11.1
    Removing parking_lot_core v0.7.0
    Removing parking_lot_core v0.8.0
      Adding parking_lot_core v0.7.2
      Adding parking_lot_core v0.8.3
    Updating paste v1.0.2 -> v1.0.5
    Updating pkg-config v0.3.17 -> v0.3.19
    Updating png v0.16.7 -> v0.16.8
    Updating ppv-lite86 v0.2.6 -> v0.2.10
    Updating proc-macro-crate v0.1.4 -> v0.1.5
    Updating proc-macro2 v1.0.24 -> v1.0.27
    Updating quote v1.0.7 -> v1.0.9
      Adding radium v0.5.3
    Updating rayon v1.5.0 -> v1.5.1
    Updating rayon-core v1.9.0 -> v1.9.1
    Removing redox_syscall v0.1.56
      Adding redox_syscall v0.1.57
      Adding redox_syscall v0.2.8
    Updating regex v1.4.5 -> v1.5.4
    Updating regex-syntax v0.6.23 -> v0.6.25
    Updating ringbuf v0.2.2 -> v0.2.5
    Updating same-file v1.0.5 -> v1.0.6
    Updating serde v1.0.106 -> v1.0.126
    Updating serde_derive v1.0.106 -> v1.0.126
    Updating serde_json v1.0.59 -> v1.0.64
    Updating serde_yaml v0.8.14 -> v0.8.17
    Updating sha2 v0.9.1 -> v0.9.5
    Updating smallvec v1.4.2 -> v1.6.1
    Removing socket2 v0.3.19
    Updating spin v0.7.0 -> v0.7.1
    Updating syn v1.0.54 -> v1.0.72
      Adding tap v1.0.1
    Updating thiserror v1.0.22 -> v1.0.25
    Updating thiserror-impl v1.0.22 -> v1.0.25
    Updating tiff v0.6.0 -> v0.6.1
    Updating toml v0.5.6 -> v0.5.8
    Updating typenum v1.12.0 -> v1.13.0
    Updating unicode-xid v0.2.0 -> v0.2.2
    Updating version_check v0.9.2 -> v0.9.3
    Updating walkdir v2.3.1 -> v2.3.2
    Updating wayland-client v0.28.2 -> v0.28.5
    Updating wayland-commons v0.28.2 -> v0.28.5
    Updating wayland-cursor v0.28.2 -> v0.28.5
    Updating wayland-protocols v0.28.2 -> v0.28.5
    Updating wayland-scanner v0.28.2 -> v0.28.5
    Updating wayland-sys v0.28.2 -> v0.28.5
    Updating weezl v0.1.2 -> v0.1.5
    Updating winapi v0.3.8 -> v0.3.9
    Updating winapi-util v0.1.2 -> v0.1.5
      Adding wyz v0.2.0
    Updating yaml-rust v0.4.4 -> v0.4.5

And a full rebuild gives:
$ cargo run -p generator && cargo fmt -p ash
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling winapi v0.3.8
   Compiling memchr v2.4.0
   Compiling proc-macro2 v1.0.9
   Compiling version_check v0.9.2
   Compiling unicode-xid v0.2.0
   Compiling bitflags v1.2.1
   Compiling libc v0.2.68
   Compiling glob v0.3.0
   Compiling cfg-if v0.1.10
   Compiling syn v1.0.17
   Compiling radium v0.5.3
   Compiling ryu v1.0.5
   Compiling log v0.4.8
   Compiling serde v1.0.105
   Compiling regex-syntax v0.6.25
   Compiling lexical-core v0.7.4
   Compiling unicode-width v0.1.8
   Compiling arrayvec v0.5.2
   Compiling vec_map v0.8.2
   Compiling tap v1.0.0
   Compiling funty v1.0.1
   Compiling humantime v2.1.0
   Compiling wyz v0.2.0
   Compiling strsim v0.8.0
   Compiling bindgen v0.58.1
   Compiling static_assertions v1.1.0
   Compiling either v1.5.3
   Compiling shlex v1.0.0
   Compiling lazy_static v1.4.0
   Compiling unicode-segmentation v1.6.0
   Compiling rustc-hash v1.1.0
   Compiling peeking_take_while v0.1.2
   Compiling xml-rs v0.8.0
   Compiling lazycell v1.3.0
   Compiling once_cell v1.7.2
   Compiling textwrap v0.11.0
   Compiling nom v5.1.2
   Compiling nom v6.0.1
   Compiling itertools v0.10.0
   Compiling clang-sys v1.2.0
   Compiling heck v0.3.1
   Compiling bitvec v0.19.4
   Compiling which v3.1.1
   Compiling aho-corasick v0.7.18
   Compiling quote v1.0.3
   Compiling regex v1.5.4
   Compiling cexpr v0.4.0
   Compiling winapi-util v0.1.5
   Compiling atty v0.2.14
   Compiling libloading v0.7.0
   Compiling clap v2.33.3
   Compiling termcolor v1.1.2
   Compiling env_logger v0.8.3
   Compiling serde_derive v1.0.105
   Compiling vkxml v0.3.1
   Compiling vk-parse v0.6.0
   Compiling generator v0.1.0 (C:\msys64\home\Philippe\rust\ash\generator)
    Finished dev [unoptimized + debuginfo] target(s) in 34.23s
     Running `target\debug\generator.exe`

And here is the use cases I am trying to fix:
let mut vulkan11_features = vk::PhysicalDeviceVulkan11Features::builder();
let device_create_info = vk::DeviceCreateInfo::builder().push_next(&mut vulkan11_features);

The above works because PhysicalDeviceVulkan11Features implements the ExtendsDeviceCreateInfo trait as expected by push_next.
let mut vulkan11_features = vk::PhysicalDeviceVulkan11Features::builder();
let mut physical_device_features2 = vk::PhysicalDeviceFeatures2::builder().push_next(&mut vulkan11_features);

On the other hand, the above fails to compile because PhysicalDeviceFeatures2Builder does not have a push_next function.
And this because the generator does not consider PhysicalDeviceFeatures2  as a "root structure".
The proposed fix addresses this by generating the missing push_next function and additional trait:
pub unsafe trait ExtendsPhysicalDeviceFeatures2 {}

And making sure that structures that extend PhysicalDeviceFeatures2 implement it. For example:
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11FeaturesBuilder<'_> {}
unsafe impl ExtendsPhysicalDeviceFeatures2 for PhysicalDeviceVulkan11Features {}

But as you noted, the same treatment will be applied to many other structures that are not (currently) extended.
For those we are generating push_next functions that cannot be called.
The PhysicalDeviceVulkan11Features structure is one such structure...
Which makes me wonder what would happen if such a structure ended up being extended. Chains of chains ?

By forcing the version of the quote crate to 1.0.9 the extraneous spaces are gone.
The generator currently uses version 1.0.3 because of the bindgen dependency.

Thanks for looking into it, I'll have a closer look at the PR this weekend.

By forcing the version of the quote crate to 1.0.9 the extraneous spaces are gone.

@filnet Thanks for following up. That's quite surprising, seeing:

Updating quote v1.0.7 -> v1.0.9

Followed by:

Compiling quote v1.0.3

(And no other version is listed)
By chance there were multiple duplicates of this dependencies, but locally here (on Linux, fwiw) there's only quote 1.0.9 and quote 0.6.13. If you remove Cargo.lock altogether and run the commands again, does it jump back to 1.0.3?

The generator currently uses version 1.0.3 because of the bindgen dependency.
And after reverting to 1.0, the generator still uses 1.0.9. I guess I don't understand how cargo works...
PS: was using quote version 1.0.3.

You're on bindgen 0.58.1 too which doesn't request a specific version of quote afaik, at least it doesn't here. Oh well, it's fine and clean now :)

I think I can explain the confusion.
I ran cargo update in my project not in ash... thus the disconnect between the cargo update output and the generator build.
@MarijnS95 as you said, all is fine now...

I think I can explain the confusion.
I ran cargo update in my project not in ash... thus the disconnect between the cargo update output and the generator build.

I should have noticed, many of the listed dependencies are not part of ash :smile:, thanks for clarifying!

As for the implementation itself, we may not need more traits. Instead, I propose: if a struct has pNext, but is not a root structure, it receives a push_next function that uses the trait of the root structure. That way all root structs can still be extended in a chain in expected order, instead of repeatedly calling push_next in inverse order on the parent (ie. DeviceCreateInfo). In this specific case however PhysicalDeviceVulkan11Features can directly extend PhysicalDeviceFeatures2 or DeviceCreateInfo.

Alternatively it seems we can also go the trait-bound route, and create a trait for every non-root struct that has the root struct (and eventual other structs further up the chain) as trait bound. In other words:
pub unsafe trait ExtendsPhysicalDeviceFeatures2: ExtendsDeviceCreateInfo {}

That might be the most elegant given that PhysicalDeviceVulkan11Features extends both, and PhysicalDeviceFeatures2 extends DeviceCreateInfo, but I'm not sure if this holds for every nested/recursive extension.
However, all the unusable (never implemented) traits and fn push_next are still an issue: they generate tons of bloat and don't allow the function to be called. Additionally it doesn't allow "extends" of the root struct to be passed here, but that may not be an issue assuming that push_next can still be called on the root struct itself in the right order to get the desired items in, eventually in some specific order. I haven't checked yet if there are cases where order is important.
We might be able to do away with that by doing a pre-scan: collect all the names that are ever used in structextends, and only generate traits for those.

Finally I'm not a fan of the push_next function in its current form. We had quite a few changes past weeks to reduce line count significantly, and this patch adds back 5.5k. That's in part due to the verbose documentation replicated on every function, but the implementation is quite a few lines too. Would like to compare compile-times just in case.
I wonder if we can move the implementation and documentation to a single function on BaseOutStructure (or trait with default implementation), and make this fn push_next only perform a simple cast and forward to that. The docs can then use an intradoc link to this so that it's a little more bearable on line count, too.

Here is the Vulkan specs description of PhysicalDeviceVulkan11Features's  pNext:

pNext is NULL or a pointer to a structure extending this structure.

This means that, if VkPhysicalDeviceVulkan11Features were to have a push_next function, then the push_next function should only accept structures that extend VkPhysicalDeviceVulkan11Features.

The PhysicalDeviceVulkan11Features's  pNext  is used when this structure is included in the pNext chain of a PhysicalDeviceFeatures2.
But it could also be used to extend the PhysicalDeviceVulkan11Features structure with features defined by extensions (?).
I can wrap my head around what would happen if both are uses are done at the same time. Is that even possible ?
Is it correct to say that structures have pNext member either to be the root of a chain or to participate to a chain but not both ?

Root structs are supposedly defined as structs that can be passed to a function, at least if the comment on fn push_next() is to be believed:
This method only exists on structs that can be passed to a function directly.

I don't know if this is thought up by Ash or written somewhere in the Vulkan specification, but there's no notion of it in vk.xml hence structextends appears to be used as a heuristic for it.

Is it correct to say that structures have a pNext member either to be the root of a chain or to participate in a chain but not both ?

VkPhysicalDeviceFeatures2 definitely fulfills both:

This structure can be used in vkGetPhysicalDeviceFeatures2 or can be included in the pNext chain of a VkDeviceCreateInfo structure

Hence I don't think that's true.

You could construct such a chain : DeviceCreateInfo -> PhysicalDeviceVulkan11Features -> SomeStructureThatExtendsDeviceCreateInfo and then call push_next(<null>) on the PhysicalDeviceVulkan11Features thus breaking the chain.

push_next accepts borrows only which cannot be NULL. It is up to the user to maintain their chains and not mix them (by ie. reusing structs). That's part of why they're mutably borrowed, too.

Note that the initial chain also implies that the pNext member of PhysicalDeviceVulkan11Features points to something that does not extend PhysicalDeviceVulkan11Features which contradicts the specs.

I think that anything in PhysicalDeviceVulkan11Features::pNext could extend DeviceCreateInfo but not necessarily PhysicalDeviceVulkan11Features, how else would you pass multiple extension-structures? It's a linear list of extensions after all, not a tree-structure (even if it seems we'd like to represent that). However, I do believe there may be some extensions that always have to come after (not before) their "parent".

master branch build time:
$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 12.88s

$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 12.98s

$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 12.95s

push next branch:
$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 14.03s

$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 13.38s

$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 13.26s

$ cargo clean -p ash && cargo build
   Compiling ash v0.32.0 (C:\msys64\home\Philippe\rust\ash\ash)
    Finished dev [unoptimized + debuginfo] target(s) in 13.38s

I concur that the large increase in line count, and noticeable increase in our already bad compile time, are concerning. I thought the original draft of this PR just white-listed the very few structs where we know this comes up--can we go back to that?

I concur that the large increase in line count, and noticeable increase in our already bad compile time, are concerning. I thought the original draft of this PR just white-listed the very few structs where we know this comes up--can we go back to that?

Good point, I manually checked a few functions and most of them are completely useless. For example no one implements ExtendsImportMemoryZirconHandleInfoFUCHSIA. push_next can't even be called.
The extend struct count should be >1 before we generate a push_next function + trait. Or we just whitelist.

The extend struct count should be >1 before we generate a push_next function + trait.

Actually, I think this would be perfect--not only do we avoid the maintenance overhead of whitelisting, we'll also probably reduce total LoC by dropping all the traits/methods for existing top-level structures that haven't yet been extended.

Awesome! That definitely resolves my concerns.

Can we proceed and merge this pull request ?
Once merged, I'll try to work on the improvements suggested by @MarijnS95.

Awesome, this looks correct to me.

However, I do believe there may be some extensions that always have to come after (not before) their "parent".

I don't think so, see KhronosGroup/Vulkan-Docs#929

I wonder if this still holds, as I was running into such a problem with the video extensions. The PhysicalDevice*Features structs above extend all the root structs in the chain which is fine. VkVideoProfileKHR however seems to imply some sort of hierarchy:
<type category="struct" name="VkVideoProfileKHR" structextends="VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">

Then, types that extend it are defined as:
<type category="struct" name="VkVideoDecodeH264ProfileEXT" structextends="VkVideoProfileKHR">

These do not extend the root structs from VkVideoProfileKHR and are hence assumed to be "invalid" to sit anywhere before VkVideoProfileKHR.
This seems to be ever so slightly different from the linked issue, as this is more a case of:
B extends A
C extends B
(C does not explicitly extend A)

This PR fixes that case too, as ExtendsVideoProfileKHR was not generated before and VideoDecodeH264ProfileEXT (+friends) were never impl'ing another trait, hence impossible to pass anywhere :partying_face:

Do you have any concerns here @MarijnS95 @Ralith ?

Nothing that I haven't already written above, so that's the many new traits+push_next that are never implemented hence useless. It looks like my suggestion above:

We might be able to do away with that by doing a pre-scan: collect all the names that are ever used in structextends, and only generate traits for those.

Has exactly been discussed and implemented :grinning:. Thanks @filnet!

I just pushed a quick and dirty new approach: root structures are now structures that are extended.

In that sense I don't think this is dirty, it actually makes a lot of sense, makes the code shorter and more easily "readable" (ie. no unusable/unimplemented traits nor its associated push_next at all!).

Once merged, I'll try to work on the improvements suggested by @MarijnS95.

It might not even be worth anything anymore, now that significant lines have been dropped. But feel free to see if we can generalize and reduce autogenerated bloat even further :)

Before merging, mind if I change the title to: (Only) consider extended structs as root structs or Consider all extended structs as root structs?

Before merging, mind if I change the title to: (Only) consider extended structs as root structs or Consider all extended structs as root structs? I'm looking for something that, for the most part, also represents the removal of dead traits and push_next.

Feel free to do all the changes that you see fit.


doubt: a much lower rouge score of pointer-generator

The rouge(1/2/L) score of pointer-generator reported in the paper is: 34.11/6.76/30.63 ,
however, I run the pointer-generator model (guided by https://opennmt.net/OpenNMT-py/examples/Summarization.html) but find the rouge is: 30/5.11/26.42, when training for 200,000 steps.
So could you please provide me your pointer-generator model result, or your training setting?

@yaolu

Here is the pointer-generator output.
pointer-generator.zip

@yaolu Thank you for your help.
Do you merge the decoded files into one .txt file before calculating rouge?
I trained 120K steps in the PG, and got Rouges [0.3009, 0.0504, 0.1628]
Testing multi files produce very low Rouge-L scores.
but when I merge the decoded files [0000decoded.txt, 0001decoded.txt......] into a single text file, and do the same for the ref files, the score of Rouge-L rises into 25, got Rouges=[0.3009, 0.0504, 0.2575]
Do you what is the reason?
And could you please let me know whats the value you used for max_dec_steps?
Many thanks,


Improve documentation about Nested Queries (Follow up to #5615)

It might be possible that nested upsert can also be used on other top-level methods besides update(), like create() and similar.
If that is the case, it might also make sense to mention and describe that under the "Nested Queries" headline, where currently we directly start listing the queries instead of describing them. Adding that would help users to understand how these nested queries are to be used beyond the limited examples we can provide there.

Hey Jan, hope you're doing well 😄 I couldn't figure out which parts in the docs you're referring to here. If you still think this is relevant, feel free to re-open the issue with more info.


Set basePath config

When setting the editor mode to json, ace tries to load /mode-json.js
Setting basePath config fixes the issue.
Tested with angular cli

Thx <3


[Bug] Pointpillars training fails on Kitti after 2 epoch (ERROR: numba.cuda.cudadrv.driver.LinkerError and ptxas application ptx input, line 9; fatal   : Unsupported .version 7.6; current version is '7.4')

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (dev-1.x) or latest version (dev-1.0).

Task
I'm using the official example scripts/configs for the officially supported tasks/models/datasets.
Branch
main branch https://github.com/open-mmlab/mmdetection3d
Environment
sys.platform: linux
Python: 3.8.17 (default, Jul  5 2023, 21:04:15) [GCC 11.2.0]
CUDA available: True
numpy_random_seed:<PHONE_NUMBER>
GPU 0: NVIDIA GeForce GTX 1070 Ti
CUDA_HOME: /home/lw/miniconda3/envs/openmmlab
NVCC: Cuda compilation tools, release 11.6, V11.6.124
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
PyTorch: 1.13.1
PyTorch compiling details: PyTorch built with:

GCC 9.3
C++ Version: 201402
Intel(R) oneAPI Math Kernel Library Version 2023.1-Product Build 20230303 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX2
CUDA Runtime 11.6
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
CuDNN 8.3.2  (built against CUDA 11.5)
Magma 2.6.1
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.6, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.13.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.14.1
OpenCV: 4.8.0
MMEngine: 0.8.4
MMDetection: 3.1.0
MMDetection3D: 1.2.0+c04831c
spconv2.0: False
Numba: 0.56.4
Numpy: 1.19.5
Reproduces the problem - code sample
none
Reproduces the problem - command or script
python python tools/train.py configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py
Reproduces the problem - error message
running
python python tools/train.py configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py
on KITTI dataset
after the first epoch ends I get:
Converting 3D prediction to KITTI format
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 50/50, 895.5 task/s, elapsed: 0s, ETA:     0s
Result is saved to /tmp/tmpqdiad9q5/results/pred_instances_3d.pkl.
Traceback (most recent call last):
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/cudadrv/driver.py", line 2705, in add_ptx
driver.cuLinkAddData(self.handle, enums.CU_JIT_INPUT_PTX,
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/cudadrv/driver.py", line 320, in safe_cuda_api_call
self._check_ctypes_error(fname, retcode)
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/cudadrv/driver.py", line 388, in _check_ctypes_error
raise CudaAPIError(retcode, msg)
numba.cuda.cudadrv.driver.CudaAPIError: [222] Call to cuLinkAddData results in UNKNOWN_CUDA_ERROR
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "tool/train.py", line 135, in
main()
File "tool/train.py", line 131, in main
runner.train()
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/mmengine/runner/runner.py", line 1745, in train
model = self.train_loop.run()  # type: ignore
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/mmengine/runner/loops.py", line 102, in run
self.runner.val_loop.run()
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/mmengine/runner/loops.py", line 366, in run
metrics = self.evaluator.evaluate(len(self.dataloader.dataset))
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/mmengine/evaluator/evaluator.py", line 79, in evaluate
_results = metric.evaluate(size)
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/mmengine/evaluator/metric.py", line 133, in evaluate
metrics = self.compute_metrics(results)  # type: ignore
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/metrics/kitti_metric.py", line 205, in compute_metrics
ap_dict = self.kitti_evaluate(
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/metrics/kitti_metric.py", line 244, in kitti_evaluate
ap_result_str, ap_dict = kitti_eval(
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/eval.py", line 725, in kitti_eval
mAP40_3d, mAP40_aos = do_eval(gt_annos, dt_annos,
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/eval.py", line 626, in do_eval
ret = eval_class(gt_annos, dt_annos, current_classes, difficultys, 1,
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/eval.py", line 480, in eval_class
rets = calculate_iou_partly(dt_annos, gt_annos, metric, num_parts)
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/eval.py", line 384, in calculate_iou_partly
overlap_part = bev_box_overlap(dt_boxes,
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/eval.py", line 118, in bev_box_overlap
from .rotate_iou import rotate_iou_gpu_eval
File "/home/lw/LW/mmdetection3d/mmdet3d/evaluation/functional/kitti_utils/rotate_iou.py", line 283, in
def rotate_iou_kernel_eval(N,
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/decorators.py", line 115, in _jit
disp.compile(argtypes)
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/dispatcher.py", line 796, in compile
kernel.bind()
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/dispatcher.py", line 178, in bind
self._codelibrary.get_cufunc()
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/codegen.py", line 208, in get_cufunc
cubin = self.get_cubin(cc=device.compute_capability)
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/codegen.py", line 181, in get_cubin
linker.add_ptx(ptx.encode())
File "/home/lw/miniconda3/envs/openmmlab/lib/python3.8/site-packages/numba/cuda/cudadrv/driver.py", line 2708, in add_ptx
raise LinkerError("%s\n%s" % (e, self.error_log))
numba.cuda.cudadrv.driver.LinkerError: [222] Call to cuLinkAddData results in UNKNOWN_CUDA_ERROR
ptxas application ptx input, line 9; fatal   : Unsupported .version 7.6; current version is '7.4'
Additional information
No response

Because your version of numba doesn't work. Reinstall the appropriate version of numba


ServiceBus Release for June.

Updating version number to release for June.

Closing this PR as this version has been released and this is no longer relevant


chore: use .ts instead of .tsx for useChainId hook

Very small change, noticed when going through the code and thought I'd change it after I kept seeing it

@Imti Thanks!


ECR - InvalidParameterException: Invalid parameter at 'registryIds' failed to satisfy constraint

I'm unable to make this to work in a Kubernetes 1.16. My configuration is:
apiVersion: v1
kind: Secret
metadata:
  name: registry-creds-ecr
  namespace: kube-system
  labels:
    app: registry-creds
    kubernetes.io/minikube-addons: registry-creds
    cloud: ecr
data:
  AWS_ACCESS_KEY_ID: xxx
  AWS_SECRET_ACCESS_KEY: xxx
  aws-region: xxx
type: Opaque
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: registry-creds
rules:
  - apiGroups:
      - ""
    resources:
      - namespaces
    verbs:
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - create
      - get
      - update
  - apiGroups:
      - ""
    resources:
      - serviceaccounts
    verbs:
      - get
      - update
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: registry-creds
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: registry-creds
subjects:
  - kind: ServiceAccount
    name: registry-creds
    namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: registry-creds
  namespace: kube-system

My deployment file is:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry-creds
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      name: registry-creds
  template:
    metadata:
      labels:
        name: registry-creds
    spec:
      serviceAccountName: registry-creds
      containers:
        - image: upmcenterprises/registry-creds:1.10
          name: registry-creds
          imagePullPolicy: Always
          env:
            - name: AWS_ACCESS_KEY_ID
              valueFrom:
                secretKeyRef:
                  name: registry-creds-ecr
                  key: AWS_ACCESS_KEY_ID
            - name: AWS_SECRET_ACCESS_KEY
              valueFrom:
                secretKeyRef:
                  name: registry-creds-ecr
                  key: AWS_SECRET_ACCESS_KEY
            - name: awsregion
              valueFrom:
                secretKeyRef:
                  name: registry-creds-ecr
                  key: aws-region
            - name: awsaccount
              valueFrom:
                secretKeyRef:
                  name: registry-creds-ecr
                  key: aws-account
      volumes:
        - name: gcr-creds
          secret:
            secretName: registry-creds-gcr

When the two files are deployed, then the logs from the pod are:
time="2020-03-22T03:18:09Z" level=info msg="------------------ [awsecr-cred] ------------------
"
time="2020-03-22T03:18:09Z" level=info msg="Getting secret; try #1 of 4"
time="2020-03-22T03:18:09Z" level=info msg="InvalidParameterException: Invalid parameter at 'registryIds' failed to satisfy constraint: 'Member must satisfy constraint: [Member must satisfy regular expression pattern: [0-9]{12}]'
	status code: 400, request id: a2acc201-35df-40c0-8cce-196f02b53e02"
time="2020-03-22T03:18:09Z" level=error msg="Error getting secret for provider awsecr-cred. Will try again after 5.000000 seconds. [Err: InvalidParameterException: Invalid parameter at 'registryIds' failed to satisfy constraint: 'Member must satisfy constraint: [Member must satisfy regular expression pattern: [0-9]{12}]'
	status code: 400, request id: a2acc201-35df-40c0-8cce-196f02b53e02]"

The secret awsecr-cred is empty. Any thoughts on this?

My fault, I'm using an incorrect AWS account ID.
Using the correct one, it works fine.


[BUG] - Set-SPOTenant -SiteOwnerManageLegacyServicePrincipalEnable -- Command Doesn't Work Setting to False

Reporting an Issue or Missing Feature
This command does not work.
Set-PnPTenant -SiteOwnerManageLegacyServicePrincipalEnabled $false
Expected behavior
This should set the tenant setting to False.
Set-PnPTenant -SiteOwnerManageLegacyServicePrincipalEnabled $false
Actual behavior
When I run this set of commands it does not set the tenant setting to False. It always remains set to True.
No errors are thrown.
Steps to reproduce behavior
Import-Module -Name PnP.PowerShell -RequiredVersion 2.2.54
Connect-PnPOnline -Url 'https://DOMAIN-admin.sharepoint.com' -Interactive
Get-PnPContext
Set-PnPTenant -SiteOwnerManageLegacyServicePrincipalEnabled $false
Get-PnPTenant | Select-Object SiteOwnerManageLegacyServicePrincipalEnabled

What is the version of the Cmdlet module you are running?
Latest nightly build of 2.2.54 using PowerShell 7.3.6 in VS Code. Everything is updated.
Which operating system/environment are you running PnP PowerShell on?

[x] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

I also tried with just the main domain URL, not admin. Same results, it does not apply.  Always stays set to True.

Can confirm the same using SharePoint Online Management Shell, as per the Message Center ID: MC660075
Connect-SPOService -Url 'https://DOMAIN-admin.sharepoint.com
Get-SPOTenant | Select-Object SiteOwnerManageLegacyServicePrincipalEnabled
Set-SPOTenant -SiteOwnerManageLegacyServicePrincipalEnabled $false
Output of Get-SPOTenant | Select-Object SiteOwnerManageLegacyServicePrincipalEnabled remains as 'True' after setting to false, as above.
Using PowerShell 7 and SPO Management Shell ver. 16.0.23710.12000

If the same happens with the SPO Management Shell, then we'll need to wait for Microsoft to fix it (likely CSOM if this is what we use in the background). Then PnP PowerShell will consume it.

Problem isn't solved though.

We looked at it today. If you read the Message Center info carefully, it does actually state that it will not change even if you set it to false, even if you set to true.

Yeah they added that special note 2 days ago. Thank you.
On Fri, Sep 1, 2023 at 3:31 PM joelbibby @.***> wrote:

We looked at it today. If you read the Message Center info carefully, it
does actually state that it will not change even if you set it to false,
even if you set to true.
—
Reply to this email directly, view it on GitHub
https://github.com/pnp/powershell/issues/3359#issuecomment-1703289619,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMJ2HNAU3IEUORIUPUV2FLXYJA3VANCNFSM6AAAAAA336KWMQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

It appears that Microsoft has resolved this issue in the latest scripts for SharePoint Online. With the script below, it now works for me.

Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
some variables
$adminUPN=""
$orgName=""
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password."
login to the SharePoint Service
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential
get App Authentication
Get-SPOTenant | Select-Object SiteOwnerManageLegacyServicePrincipalEnabled
Setting App Authentication to true
Set-SPOTenant -SiteOwnerManageLegacyServicePrincipalEnabled $true

The previous comment is the best explanation on the internet how enable this thing so I can renew the expired credentials for a task that uploads some build artifacts to Sharepoint (45 minutes to upload 1 gigabyte no less!). Altho ran into some issues during Connect-SPOService.
First attempt:
$> Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential

Connect-SPOService : The remote server returned an error: (503) Server Unavailable.

Second attempt:
$> Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential

Connect-SPOService : Identity Client Runtime Library (IDCRL) did not get a response from the Login server.

Out of desperation tried to omit the -Credential part, it asked for my credentials and it worked:
Connect-SPOService -Url https://$orgName-admin.sharepoint.com

Surprisingly, the Set-SPOTenant line worked fine afterwards so could finally go back to renewing the credentials, updating the task and get back to work.


Analysis: Connect with lines - Type: Sequential ; feature request, GroupBy

This dataset for example is GPS tracks for WaiveCar, a car sharing service in Santa Monica. The cars each have a unique ID and a datetime stamp. The Connect with Lines tool, type: sequential is awesome. And it'd be really awesome to also allow the ability to connect with lines sequentially, but yet also GroupBy'ed each car's unique id. In this example its just taking any GPS point and connecting the next one with the next closest timestamp (ascending.)

@nygeog this is being tackled right now in https://github.com/CartoDB/cartodb/pull/9839


strange window behavior

Windows Terminal version
1.13.10733.0
Windows build number
10.0.19042.1586
Other Software
No response
Steps to reproduce

open the windows terminal preview
paste the code into terminal
things happened

Expected Behavior
window behavior normally
Actual Behavior
half window is gray

Thanks for the report! This is actually already being tracked by another issue on our repo - please refer to #12775 for more discussion.
/dup #12775


json::parse() works only with absolute paths

So when i'm trying to read from a json file everything works fine with absolute paths but when i pass relative path the program crashes with this error message:
terminate called after throwing an instance of 'nlohmann::detail::parse_error'
  what():  [json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal
make: *** [Makefile:2: start] Error 3

the function code:
json loadFile(string filename) {
    ifstream ifs(filename);
    json data = json::parse(ifs);
    ifs.close();
    return data;
}

unexpected end of input means the that no input could be read - this is not a bug in the library, but just an indication that the file could not be read in the first place. Please make sure the working directory is correct. Maybe try to dump the file content to stdout without calling parse first.


problem volume group alexa echo

later update 3.4.7 or 3.4.8 i have problem volume group stop work
volume work ok with 3.4.5

Please fill out the template.

Please fill out the template.

the volume group the all alexa does not show where the level is.
it always remains at 0
with version 3.4.5 I have no problem
entities:

entity: media_player.casa
full_row: true
max: 50
min: 0
step: 10
type: 'custom:slider-entity-row'
title: VOLUME CASA
type: entities

the volume group the all alexa does not show where the level is.
it always remains at 0
with version 3.4.5 I have no problem
entities:

entity: media_player.casa
full_row: true
max: 50
min: 0
step: 10
type: 'custom:slider-entity-row'
title: VOLUME CASA
type: entities

I increase and decrease the volume at the echo group the all devices created by alexa the signal arrives volume change, but the cursor always remains fixed at 0

I increase and decrease the volume at the echo group the all devices created by alexa the signal arrives volume change, but the cursor always remains fixed at 0

also with a new versione 3.5.0 continue no work good group all device volume

also with a new versione 3.5.0 continue no work good group all device volume


Add Litecoin LTC

Pull request to add Litecoin on Tixl Finance.

Hey Matthew, thanks for your PR, it is already looking great! If you'd like, you could add a description.md like the Tixl one with a short description in it, which will display in the project tab on the project detail page.
We're currently still working on an updated version of the project integration flow and are planning to be finished by tomorrow evening and will then merge it.
Best greetings from Hamburg, Finn

Hey Matthew, thanks for your PR, it is already looking great! If you'd like, you could add a description.md like the Tixl one with a short description in it, which will display in the project tab on the project detail page.
We're currently still working on an updated version of the project integration flow and are planning to be finished by tomorrow evening and will then merge it.
Best greetings from Hamburg, Finn

Description has been added, and it's ready to merge!

Description has been added, and it's ready to merge!

Thanks a lot, we'll merge it as soon as we're ready!

Thanks a lot, we'll merge it as soon as we're ready!

Hi Matthew,
thanks for the Request.
I just tested the data with our project data preview tool (which will launch publicly soon) and everything looks great! I will merge your PR right now :)

Hi Matthew,
thanks for the Request.
I just tested the data with our project data preview tool (which will launch publicly soon) and everything looks great! I will merge your PR right now :)


Copyright update

Thank you for this, it looks good.
You opened this pull request against the 0.12 branch, which is the stable branch, we have recently moved to using a 'develop' branch for the actual development.  I will merge this to the 0.12 branch today, in future please use the develop branch.


Fix fold constant invalid yyyy-mm-31 to the last day of month incorrectly

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run p0

run buildall

add regression cast or ut

run buildall

run p0

run p0

run p0

run p0


Fix max current error

I have absolutely no experience with this module so maybe this change I'm requesting is wrong - if it is, sorry for wasting your time.
But this code for non-PD USB2 support looks wrong, it first sets active_voltage to 5000 (5 V), and then immediately afterwards it sets active_voltage down to 900 (900 mV).
This looks a lot like a typo and the code was supposed to set active_max_current to 900 (900 mA) instead.

Looks like a bug indeed. I will test and integrate it.

Thanks. I've integrated it.


check_stock_quantity_bulk TypeError: 'NoneType' object is not iterable

My variant is in stock btw
ERROR saleor.graphql.errors.unhandled A query failed unexpectedly [PID:2131:ThreadPoolExecutor-0_0]
Traceback (most recent call last):
  File "/home/leondaz/crime_scene/venv/lib/python3.8/site-packages/promise/promise.py", line 489, in _resolve_from_executor
    executor(resolve, reject)
  File "/home/leondaz/crime_scene/venv/lib/python3.8/site-packages/promise/promise.py", line 756, in executor
    return resolve(f(*args, **kwargs))
  File "/home/leondaz/crime_scene/venv/lib/python3.8/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
    return next(*args, **kwargs)
  File "/home/leondaz/crime_scene/backend/core/saleor/graphql/core/mutations.py", line 297, in mutate
    response = cls.perform_mutation(root, info, **data)
  File "/home/leondaz/crime_scene/backend/core/saleor/graphql/checkout/mutations.py", line 381, in perform_mutation
    cleaned_input = cls.clean_input(info, checkout, data.get("input"))
  File "/home/leondaz/crime_scene/backend/core/saleor/graphql/checkout/mutations.py", line 309, in clean_input
    ) = cls.clean_checkout_lines(lines, country, cleaned_input["channel"].id)
  File "/home/leondaz/crime_scene/backend/core/saleor/graphql/checkout/mutations.py", line 225, in clean_checkout_lines
    check_lines_quantity(variants, quantities, country)
  File "/home/leondaz/crime_scene/backend/core/saleor/graphql/checkout/mutations.py", line 121, in check_lines_quantity
    check_stock_quantity_bulk(variants, country, quantities)
  File "/home/leondaz/crime_scene/backend/core/saleor/warehouse/availability.py", line 57, in check_stock_quantity_bulk
    available_quantity = sum([stock.available_quantity for stock in stocks])
TypeError: 'NoneType' object is not iterable

Okay I've figured out the "why" part, this happens because
def check_stock_quantity_bulk(variants, country_code, quantities):
    """Validate if there is stock available for given variants in given country.

    :raises InsufficientStock: when there is not enough items in stock for a variant.
    """
    all_variants_stocks = (
        Stock.objects.for_country(country_code)
        .filter(product_variant__in=variants)
        .annotate_available_quantity()
    )

all_variant_stocks is empty, and Stock.objects.for_country(country_code) also is empty, even though I've warehouses with stocks available

Okay I've figured out the "why" part, this happens because
def check_stock_quantity_bulk(variants, country_code, quantities):
    """Validate if there is stock available for given variants in given country.

    :raises InsufficientStock: when there is not enough items in stock for a variant.
    """
    all_variants_stocks = (
        Stock.objects.for_country(country_code)
        .filter(product_variant__in=variants)
        .annotate_available_quantity()
    )

all_variant_stocks is empty, and Stock.objects.for_country(country_code) also is empty, even though I've warehouses with stocks available


Fixes #130: SERVICE_IP interpolation issue

Fixes #130

This depends on the fate of the check script feature. Track here: https://github.com/gliderlabs/registrator/issues/233

Would consider a quick merge with a rebase.


get_present always returns True

I found that get_present() always returned True
An additional cast too int() in the current implementation fixed my issue:
def get_present(self):
    """
    Check if the registered actor is currently present (reachable).
    """
    return bool(
        int (
            self.box.homeautoswitch("getswitchpresent", self.actor_id)
        )
    )

This method is also used in get_state.

Thank you for the report.
Version 1.0.3 has been pushed to PyPi.


Union of scalar and array of classes does not work

Hi, when trying to map union of scalar and array of classes, i get error:
CuyZ\Valinor\Mapper\TypeTreeMapperError: Could not map type `Foo`. An error occurred at path items: Invalid value array{0: array{…}}.

(new MapperBuilder())->mapper()->map(Foo::class, Source::array([
    'items' => [
        [
            'id' => 1,
            'value' => 'baz',
        ],
    ],
]));

readonly final class Foo
{
    public function __construct(
        /** @var string|list<Bar> */
        public string|array $items,
    ) {
    }
}

readonly final class Bar
{
    public function __construct(
        public int $id,
        public string $value,
    ) {
    }
}

When trying as source the string value (first type of the union) it works as expected.
(new MapperBuilder())->mapper()->map(Foo::class, Source::array([
    'items' => 'some value',
]));

Currently my workaround is to not map it to array of objects but to union of string and array shape and do the mapping later separately which works but it is not as comfortable as it could be.

Similar issue with something like ''|DateTimeImmutable (for an API that returns date strings or empty strings): Will not map the dates appropriately (probably because they are not '').


(ChainHelper) Implement mutex on tx generation

Description
prevent nonce overlap
Type of change
Please delete options that are not relevant.

[ ] 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

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.

Deployment

[ ] Should publish npm package
[ ] Should publish Docker image

Closing since it is not expected to fix the issue


Add excludes to Baffle options

Fixes #16

I think exposing this makes sense. Thanks! The plumbing is already there, so we might as well. I'll review and merge this soon.

Certainly!

The changes have been made btw

Just a heads up that I plan to merge this very soon. I'm waiting until I have a moment to update documentation on the site.

#22


graph/path: allow cost-based Yen shortest path calculation

This adds an additional constraint onto YenKShortestPaths to consider the paths' cost as well as the number of paths, enabling search within a constrained distance.
This is a breaking change.
Please take a look.

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.87 :tada:

Comparison is base (258a51e) 73.93% compared to head (313e258) 74.80%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1863      +/-   ##
==========================================
+ Coverage   73.93%   74.80%   +0.87%
==========================================
  Files         526      521       -5
  Lines       63112    66366    +3254
==========================================
+ Hits        46659    49646    +2987
- Misses      13884    14185     +301
+ Partials     2569     2535      -34

Impacted Files
Coverage Δ

graph/path/yen_ksp.go
91.89% <100.00%> (+5.59%)
:arrow_up:

... and 11 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

ping

PTAL


Add optional prefix for S3 uploads

Add an optional prefix input to upload files to S3 bucket with the given prefix.

action.yml

Add an optional AWS_S3_PREFIX input.

src/index.ts

Add a new input for AWS_S3_PREFIX.
Update syncFilesToS3 function to include the prefix in the S3 sync command.

tests/index.test.ts

Add a test case for the prefix input.
Add a test case for syncing files without a prefix.

README.md

Document the new prefix input.

-> 100% done with Github Copilot (except that comment), tell me what you think about it!

For more details, open the Copilot Workspace session.

@bpolaszek Thanks for creating this PR, I will take a look when I get some free time this weekend.


Bump to LangChain4j 0.26

I am already working on this but it has run into a few roadblocks

We went straight to 0.27 in version 0.8 of the extension


[debezium] Bump debezium version to 2.3.1.Final

refer to https://github.com/ververica/flink-cdc-connectors/pull/2156

https://debezium.io/releases/2.0/release-notes
https://debezium.io/releases/2.1/release-notes
https://debezium.io/releases/2.2/release-notes
https://debezium.io/releases/2.3/release-notes

Hi @liugddx, seems Debezium 2.x requires JDK 11+, however currently Flink CDC needs to support Java 8. As Flink 1.20 still keeps Java 8 compatibility, we can't drop support for legacy JDKs in next following minor releases.


How to run MobilenetV2 image classification model on Nvidia Jetson (Not SSD_mobilenet)

Hi
I have been trying hard to find how to run mobilenet model on Nvidia Jetson. In Imagenet the list of network supported is as below:
root@jasvinder-desktop:/jetson-inference/python/training/classification# imagenet --help
usage: imagenet [--help] [--network=NETWORK] ...
                input_URI [output_URI]

Classify a video/image stream using an image recognition DNN.
See below for additional arguments that may not be shown above.

positional arguments:
    input_URI       resource URI of input stream  (see videoSource below)
    output_URI      resource URI of output stream (see videoOutput below)

imageNet arguments:
  --network=NETWORK    pre-trained model to load, one of the following:
                           * alexnet
                           * googlenet (default)
                           * googlenet-12
                           * resnet-18
                           * resnet-50
                           * resnet-101
                           * resnet-152
                           * vgg-16
                           * vgg-19
                           * inception-v4
  --model=MODEL        path to custom model to load (caffemodel, uff, or onnx)

I  don't see any mobilenet network here.
When I try to run my mobilenet.onnx model I have below error:
 ----- Parsing of ONNX model /jetson-inference/data/custom_inference//model.onnx is Done ----
[TRT]    device GPU, configuring network builder
[TRT]    device GPU, building FP16:  ON
[TRT]    device GPU, building INT8:  OFF
[TRT]    device GPU, workspace size: 33554432
[TRT]    device GPU, building CUDA engine (this may take a few minutes the first time a network is loaded)
[TRT]    Network has dynamic or shape inputs, but no optimization profile has been defined.
[TRT]    Network validation failed.
[TRT]    device GPU, failed to build CUDA engine
[TRT]    device GPU, failed to load /jetson-inference/data/custom_inference//model.onnx
[TRT]    failed to load /jetson-inference/data/custom_inference//model.onnx
[TRT]    imageNet -- failed to initialize.
jetson.inference -- imageNet failed to load built-in network 'googlenet'
Traceback (most recent call last):
  File "/usr/local/bin/imagenet.py", line 55, in <module>
    net = jetson.inference.imageNet(opt.network, sys.argv)
Exception: jetson.inference -- imageNet failed to load network

Can anybody please help

Network has dynamic or shape inputs, but no optimization profile has been defined.

Hi @jasvinderkhurana, you need to export this model without dynamic input shapes.

@dusty-nv , thanks a lot for your reply!  Can you please provide more details on:

How to export any model without dynamic input shapes
What is the reference application (C++ or python), to run inference on that model, because imagenet , sample application do not take Mobilenet network as input, check "imagenet --help"

'''
root@jasvinder-desktop:/jetson-inference/python/training/classification# imagenet --help
usage: imagenet [--help] [--network=NETWORK] ...
input_URI [output_URI]
Classify a video/image stream using an image recognition DNN.
See below for additional arguments that may not be shown above.
positional arguments:
input_URI       resource URI of input stream  (see videoSource below)
output_URI      resource URI of output stream (see videoOutput below)
imageNet arguments:
--network=NETWORK    pre-trained model to load, one of the following:
* alexnet
* googlenet (default)
* googlenet-12
* resnet-18
* resnet-50
* resnet-101
* resnet-152
* vgg-16
* vgg-19
* inception-v4
--model=MODEL        path to custom model to load (caffemodel, uff, or onnx)
'''

How to export any model without dynamic input shapes

What is your framework that you are exporting the ONNX model from?
This script I use with PyTorch to export classification models without using dynamic shapes:
https://github.com/dusty-nv/pytorch-classification/blob/393914b484fc946876e0a1fe37c971acdfb1fec6/onnx_export.py

I am using tensorflow framework to get pretrained MobileNetV2 model, train for custom dataset and save checkpoint model (.pb), Freeze model graph and then finally use tf2onnx utility to convert to onnx.
Used below command to save tf2 model:
tf.saved_model.save(model,'.\mobilenet_v2_1.0_224.tf2')

I am not bound to any framework, but I am bound to train MobileNetV2 model with custom data set and run it on Nvidia Jetson Nano. I have also checked out below Pytorch examples for classification and Detection, and there is no reference for MobileNet model for image classification.
https://github.com/dusty-nv/jetson-inference/blob/master/docs/pytorch-cat-dog.md
https://github.com/dusty-nv/jetson-inference/blob/master/docs/pytorch-ssd.md

Also BTW, I had already using pytorch references and faced issue with MobileNet there as well, raised below ticket for the same:
https://github.com/dusty-nv/pytorch-classification/issues/6


chore: Update README with registry link, and markdown heading for SEO

Firstly, thank you for forking the Fly.io Terraform provider, especially given that you are no longer using the platform. Please consider registering for GitHub Sponsorships, it may make it more sustainable to maintain the repository.
It's noticeably difficult to find this GitHub repo by searching the web for "andrewbaxter/fly".

This change includes the provider name in a README heading, which will improve search indexing.
It also adds a link to the registry from the README, which is it significantly more accessible than GitHub's "website" link in the repository settings.

Arrg, sorry... was this really open for 5 months? I can't believe I didn't see it.
This change seems reasonable, I'd be happy to merge it.

Thanks @andrewbaxter, I have re-opened
Nothing to apologise for, I also forgot about it too :laughing:


[Bug] TC-IDM-10.2, TC-IDM-10.3 failed on Evse device

Describe the bug
The TC-IDM-10.2 and TC-IDM-10.3 cases failed, it seems that the xml file version we used in 1.3 SVE are not fit the data model version in docker, for cluster DeviceEnergyManagement, PowerSource,
[MatterTest] 03-11 05:21:49.191 INFO
Problem: ProblemSeverity.ERROR
test_name: IDM-10.2
location:
Endpoint: 1,
Cluster:  152 (0x98) DeviceEnergyManagement,
Attribute:0 (0x00)
problem: Standard attribute found on device, but not in spec
spec_location:
[MatterTest] 03-11 05:21:49.190 INFO
Problem: ProblemSeverity.ERROR
test_name: IDM-10.2
location:
Endpoint: 0,
Cluster:  47 (0x2f) PowerSource,
Attribute:38 (0x26)
problem: Attribute 0x26 is required, but is not present on the DUT. Conformance: M, implemented features: WIRED
spec_location:
[MatterTest] 03-11 05:31:06.243 INFO
Problem: ProblemSeverity.ERROR
test_name: IDM-10.3
location:
Endpoint: 0,
Cluster:  47 (0x2f) PowerSource,
Attribute:65533 (0xfffd)
problem: Revision found on cluster (2) does not match revision listed in the spec (3)
spec_location:
Steps to reproduce the behavior

Test on this energy evse example:  https://github.com/project-chip/connectedhomeip/tree/master/examples/energy-management-app/esp32\
. testing TC-IDM-10.2 with command:    python3 TC_DeviceConformance.py --discriminator 599 --passcode 25392129 --commissioning-method ble-wifi --wifi-ssid matter1_1 --wifi-passphrase espressif --int-arg use_pase_only:0 --storage-path admin_storage.json --tests test_TC_IDM_10_2 --paa-trust-store-path /credentials/development/paa-root-certs/
testing TC-IDM-10.2 with command:   python3 TC_DeviceConformance.py --discriminator 599 --passcode 25392129 --commissioning-method ble-wifi --wifi-ssid matter1_1 --wifi-passphrase espressif --int-arg use_pase_only:0 --storage-path admin_storage.json --tests test_TC_IDM_10_3 --paa-trust-store-path /credentials/development/paa-root-certs/

Expected behavior
pass
Log files
TC-IDM-10.2_fail_311.txt
TC_IDM_10.3_fail_0311.txt
PICS file
PICS.zip
Screenshots
No response
Environment
matter1.3 SVE
Additional Information
No response

I notice that the Network commissioning cluster issue and Power Source cluster issue had been raised, so please just check the DeviceEnergyManagement cluster, tnanks.

@Jerry-ESP can you check if the resolution in https://github.com/project-chip/matter-test-scripts/issues/202 helped you as well ?

@Jerry-ESP can you check if the resolution in project-chip/matter-test-scripts#202 helped you as well ?

Thanks for your reply, yes, this PR can resolve the Network commissioning cluster issue,  but not for the DeviceEnergyManagement cluster and PowerSource cluster.

@Jerry-ESP are you still facing this issue?


[Azure] Add sovereign cloud support for Storage

This PR resolves the Base URI for the Resource Group module to support sovereign cloud.
Addresses #811, fixes #861
cc. @rguthriemsft

[Microsoft CI Bot] TL;DR; success :thumbsup:
You can check the status of the CI Pipeline logs here ; https://github.com/aztfmod/terratest/actions/runs/745238923


Error: Ledger device is unavailable

I cannot connect to my Ledger device.
Steps to reproduce:

Start Ledger device, oben the Komodo app.
Open https://atomiclabs.github.io/ledger-kmd-reward-claim/. (Tested with Firefox and Chrome)
Click "Check Rewards"
Get "unavailable" error.

I can connect other usb-apps, such as the "TronWalletPlay" or "Ledger Live Desktop" app, so I assume the usb-connection is working in principle.
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.04
DISTRIB_CODENAME=disco
DISTRIB_DESCRIPTION="Ubuntu 19.04"

Same problem....updated firmware but that did not help

Tried again, now I get #21

Error
Bitcoin JSON-RPC: Request Error: connect ECONNREFUSED <IP_ADDRESS>:8232

Error
Bitcoin JSON-RPC: Request Error: connect ECONNREFUSED <IP_ADDRESS>:8232

The issue should now be resolved: https://github.com/atomiclabs/ledger-kmd-reward-claim/issues/21#issuecomment-591851710

Still not working for me.....error exporting and ledger device unavailable

@Dectman update Ledger Komodo app on your device

just updated drivers, 1.3.21; did not work. Keeps saying "could not complete sign in" and then later device unavailable

@Dectman On your device, in Komodo app. Settings->Public keys export->Auto Approval

appreciate the help. I put it on auto approval but that did not work...it tries couple of times in sequence but fails every time. Tried 2 different browsers and different cables. Would be weird if it's only me so i'll keep an eye out on Github if more reports come in.

It’s work only Google Chrome

i always used to claim fine in Firefox. Tried Chrome just now, same result


bug 1118351 - Contributors page

Coverage increased (+0.02%) when pulling 8f46a26552a7f27e47b44f54b4430bd745dc7207 on peterbe:bug-1118351-contributors-page into fdf7640b1856aafb44a9496b40af5e63215d0862 on mozilla:master.


Mana preview

Created a small arrow which will point along the mana bar to indicate the amount of mana a skill will use.  This is accomplished via a series of signals between the circular menu and the manabar.
There are many more updated files than I'd expected, I believe due to godot's processing/compilation processes.  If there is a way to avoid such noisy pull requests to simplify the reviewer's job please let me know.
Appreciate any/all feedback.

You shouldn't remove the *.import files, they're important. Then, when you stage files in git, you shouldn't do git add * unless you checked with git status that you do want them all.
 This allows you to edit commits, remove staged files.

If you're having trouble with the git rebase, we can have a call on discord and I can guide you.

Thank you for the feedback, apologies that first attempt was rather messy with so many files.  Rebased and cleaned up, hopefully easier to work through now.
Made changes based on feedback as well as topics discussed in the guidelines linked.

Thanks for the improvements. You don't have to comment on every change, github will mark review points as outdated once you change the corresponding lines.

Open RPG is getting a Godot 4 rewrite, closing because of this. See https://github.com/GDQuest/godot-open-rpg/pull/209
Thanks for your work!


Scan chain

Need resource on how this is done from an MCU.  Nothing found online.

Assigning to Jon to define scan chain requirements and provide resources on how to do it in firmware.

Done and working just like TTF.


[CORE] Category description

I would like to know if necessary this feature ?
Add the field description to the categories.

I would definitely use this feature.
It allows me to create a rich category listing page with a snippet of text about each category. An image for a category can be extracted from the content it contains, but this doesn't make sense for a description.
Disclaimer: I created the original PR referenced above.

Implemented, I just push the code to github.


Spark Support of ShapRFECV

Problem Description
We would like to have Spark Support for the package
Desired Outcome
Spark DataFrame as input
Solution Outline
Replace Pandas Dataframe with Spark DataFrame as input

Please feel free to start/try making an implementation for it

Will look into it if we can provide an notebook where ShapRFECV is used as part of PySpark pipeline. I think I have an example somewhere on my other laptop.

As it currently stands, we use the SHAP package. This package at the moment only supports pandas. If they start supporting more packages way of saving data (pyspark, polars, ...) then we will also be able to make our package compatible with that and by doing so allow for Spark Dataframe as input.
Right now the only thing we can do is have some kind of wrapper that allows us to run pandas+shap code on pyspark without converting it to spark dataframe.
Also we could try and allow other dataframe types like pyspark in this package but for now that would result in immediate conversion when we call the SHAP library which will be inefficient.

Thanks for the comment. We can close it.


Add Kill button to Field system

@Cellomonster this looks good so here is some details on the code for the field
First of all I would add the java code to handle the web request in the FieldRequestHandler  class. You will need to look into NanoHTTPD on how to handle post requests because I am not exactly sure.
You could write something similar to this function to get the driverstation connection objects. You can use those objects to find the one with the matching IP and close it.
In the future it would be great if it only disabled the robot, but that functionallity is not added yet. If you have any questions, don't be afraid to ask!


Target blank in header link of siteconfig.js

🐛 Bug Report
How to add support for target='_blank' in headerlink of siteconfig.js file
Have you read the Contributing Guidelines on issues?
Yes
To Reproduce
Tried to have external link in header segment
{href: 'https://github.com', label: 'Github', target: '_blank'}
Expected behavior

It should be redirect the user to that particular site, once they click the link
Actual Behavior

After rendering it is displayed below mentioned screenshot
Your Environment

Docusaurus version used: ^1.14.4

Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Version 81.0.4044.129 (Official Build) (64-bit)

Operating system and version (desktop or mobile): macOS mojave (Version 10.14.6)

Reproducible Demo
https://gist.github.com/sriramgroot/093b67699a57bdff0308857e9fbfc11e

I don't think it's a bug. If anything, it's probably a feature request. Based on the docs, I don't think it's currently possible to set a header link to open in a new tab.

I don't think it's a bug. If anything, it's probably a feature request. Based on the docs, I don't think it's currently possible to set a header link to open in a new tab.

Hi @amimas ,
Really thanks for the reply. Whether it is possible in Version 1 of "Docusaurus". If there is not possible in Version1 can you please add them as Version2 of "Docusaurus"

This is already possible in v2, but I am not sure if it will be added in v1.

This is already possible in v2, but I am not sure if it will be added in v1.

Hi @lex111,
How can we add this as a feature in upcoming version release of Docusaurus V1

Pull requests welcome.

@yangshun Is this solved already?

Hey, this exists in v1 since 2017, just wasn't documented 🤪
  { href: "https://github.com/", label: "GitHub", external: true },

=> #3011


Repetitions aren't accounted for in the transposition table

Because of move history not being included in a transposition table (by design), positions can be evaluated as winning even though they are running into a repetition draw after playing it in a different position. This leads to winning positions being drawn by repetition. Because of this, QuintBot currently resets the transposition table after each move in the game to avoid most of these problems. This leads to the bot not being able to use information from the last move to speed up the search and introduces an overhead every move by having to clear a large amount of memory, which leads to disadvantages in low-time control, such as QuintTest, and prevents the engine to use a very large transposition table. This problem might also appear with the 50-move-rule, although at a much smaller scale.

Possible solution: Evaluate two-fold repetition as a draw. A disadvantage of this is positions with a two-fold repetition evaluating incorrectly, or the engine making a wrong decision to force the opponent into a two-fold repetition, even though it is losing. Maybe after a two-fold repetition, moves are no longer looked up in the transposition table. This however might come with big performance problems.


Ability to set style "scoped deep/slotted"

What problem does this feature solve?
Right now based on RFC 0023 we lost Vue 2 behavior of scoped - passing down styles to slotted elements. I understand the need for fine grained control but this decision results in relatively polluted styles of library elements. E.g. lets say we have DataTable component. This component exposes header and cell slots. Styles for elements in these slots are switched based on attributes - sortable makes headers clickable and adds arrow, highlight highlights cell/row/column on hover etc.
All these style are expected to be deep/slotted by default. But in respect to RFC 0023 I am forced to ::v-deep(<class/element>) everything. This would be 10 v-deeps under single style not counting media queries and selectors. (There is only few non deep styles)
It would be great if we can set additional properties to <style scoped> - deep or slotted. Which would affect behavior automatically.
As bonus this would make migration to vnext much easier as we would not be forced to rewrite v2 scoped style.
What does the proposed API look like?
Automatically inject ::v-deep(<element/class>):
<style scoped deep>
...
</style>

Automatically inject ::v-slotted(<element/class>):
<style scoped slotted>
...
</style>

I personally think v-deep and v-slotted as attributes (with the v-) or a new attribute value (so there can only be one) like
<style scoped="deep" />
<style scoped="slotted" />

are a better fit

Yea looks nice @posva. I made pull request with this. Please let me know if you require any changes.
I would like to get this feature out so we can continue with library migration.

Hi @posva @yyx990803
any chance for this to be included in 3.2?

Is there any point to keep this open @posva @yyx990803 ?


fix(nft): Allow sending NFTs

Pull request related to this trello task

:tada: This PR is included in version 1.11.5 :tada:
Your semantic-release bot :package::rocket:


boolean htmx attributes don't work properly with ft

HTMX attributes expect the string "true" to indicate that they are enabled (hx-push-url="true"), but ft translates something like Form(hx_push_url=True) to <Form hx-push-url> which doesn't work for HTMX attributes.
Maybe we could check whether the html attribute belongs to htmx and then translate the python boolean to a string for these attributes when translating ft to html.
An argument against it would be maybe that this change to ft is too specific for htmx, but that's something we could discuss.
What do you think?

Use the string 'true', not the bool True.


Select Panel: Add built-in "No matches" item

Without feature flag
With feature flag

Only works for modern ActionList (feature flag on). See visual snapshot changes to see what it looks like with flag and without flag (flag: primer_react_select_panel_with_modern_action_list )
Visual changes only, screen reader announcements are tackled in https://github.com/primer/react/pull/4927, can be merged independently
The design matches what teams are using in production (more context in https://github.com/github/primer/issues/3409#issuecomment-2331799508). We might want to change the design later when we work on this epic: https://github.com/github/primer/issues/3399

Rollout strategy

[x] Patch release
[ ] Minor release
[ ] Major release; if selected, include a written rollout or migration plan
[ ] None; if selected, include a brief description as to why

Testing & Reviewing

Merge checklist

[x] Added/updated tests
[ ] Added/updated documentation
[x] Added/updated previews (Storybook)
[x] Changes are SSR compatible
[x] Tested in Chrome
[ ] Tested in Firefox
[x] Tested in Safari
[ ] Tested in Edge
[ ] (GitHub staff only) Integration tests pass at github/github (Learn more about how to run integration tests)

I agree with you. I was under the impression https://github.com/github/primer/issues/3922 was not part of the current epic and we would only work on it next quarter with https://github.com/github/primer/issues/3399:)
Happy to update the designs

Since the empty state is officially part of the mockups design provided, I think we should avoid supporting an official "No matches" item and encourage teams to migrate.

I'm not sure if I agree on the last bit about encourage teams to migrate. It would help us to have a default no-results state that matches the new design with the option to customise the message.

I agree with you. I was under the impression https://github.com/github/primer/issues/3922 was not part of the current epic and we would only work on it next quarter with https://github.com/github/primer/issues/3399)

Ah yeah, I think this work was originally scoped under #3399 but I moved it into the group of issues due 9/27 because it's related pretty directly to accessibility.

I'm not sure if I agree on the last bit about encourage teams to migrate. It would help us to have a default no-results state that matches the new design with the option to customise the message.

The good news is that "No matches" items will continue to work, so teams can either migrate and reap the accessibility rewards or choose to stick with what they already have and maintain existing functionality.

On second thoughts, given how loading states (https://github.com/github/primer/issues/3921) is very similar design wise. I think we should address this after merging that.

Yes! That was my thinking as well.


Removes undefined values when populating

Factory-girl does not support being passed an object spec where a member has the value undefined. This happens:
$ npm test -- test/utils/asyncPopulateSpec.js

><EMAIL_ADDRESS>test /Users/pdokas/dev/factory-girl
> NODE_ENV=test mocha "test/utils/asyncPopulateSpec.js"

  asyncPopulate
    ✓ returns a promise
    ✓ throws error if target or source is not an object
    1) populates objects correctly
    ✓ overrides only provided data

  3 passing (28ms)
  1 failing

  1) asyncPopulate populates objects correctly:
     TypeError: Cannot convert undefined or null to object
      at getPrototypeOf (<anonymous>)
      at isPlainObject (src/utils/asyncPopulate.js:35:10)
      at src/utils/asyncPopulate.js:19:16
      at Array.map (<anonymous>)
      at asyncPopulate (src/utils/asyncPopulate.js:10:40)
      at _callee3$ (test/utils/asyncPopulateSpec.js:62:11)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new Promise (<anonymous>)
      at new F (node_modules/core-js/library/modules/_export.js:35:28)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12
      at _callee$ (test/test-helper/asyncFunction.js:4:11)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new Promise (<anonymous>)
      at new F (node_modules/core-js/library/modules/_export.js:35:28)
      at Context.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
      at Context.<anonymous> (test/test-helper/asyncFunction.js:2:23)

If source[attr] is defined as undefined, then asyncPopulate calls isPlainObject which passes undefined to Object.getPrototypeOf which throws a TypeError.
This PR alleviates this by having factory-girl remove members where the value is undefined. A use case where this comes up is when using factory-girl with structure. Structure validates objects against a spec, and allows you to define default values for individual members.
So if I have an object spec and a factory for it like this:
module.exports = structure({
  is_followed: {
    type: Boolean,
    default: false,
  }
});

factory.define('person', exports, {
  is_followed: factory.chance('bool'),
});

This is great for tests, except when you want to test that the default works because there is no way to tell factory-girl "completely leave this one value out". And so, this PR alleviates this need by allowing someone to build a factory and tell it to drop a member from the built object.

P.S. I would love to document this in the readme, but I don’t see an obvious place to add the info. I’m absolutely open to suggestions!

@aexmachina: Hi there, I don't mean to pester but I was wondering if you have any thoughts about this. Thank you!


Plist update to handle referral links

iOS plist changes to handle referral link sharing/opening on mobile app

@feruzm We already accept these url schemes, is there any other scheme you want me to add...? the paths allowed are determined by Site Association

@noumantahir maybe it is outdated issue. But here I checked opening this url<EMAIL_ADDRESS>on app I got not existing post page why it should open page relevant within app which we already have


make readme removes all inputs and outputs

I am trying to get together a PR for kms_key_id support and as soon as I run make readme it works but it removes all of the inputs and outputs from the resultant README.md, is there something special I need to be doing?

The README.md is generated from the README.yaml. Make all your changes to the README.yaml, then rebuild. The outputs are generated using terraform-docs. Just make sure you add a proper description field to all outputs and variables.
Please rebuild the README.md by running the following commands:
make init
make readme/deps
make readme

There might be a lot of changes in the README.md as a result. That's okay!
Sorry for the inconvenience!

@osterman that still removes the entire inputs/outputs tables, there is nothing about inputs/outputs in the existing README.yaml should there be?

@osterman I opened the PR anyway can discuss what is happening over there.

Someone else has reported this issue as well. Not sure when it started happening. I will look into it.


Dynomite and Redis integration driver for FastoNoSQL

Hi, i found here https://github.com/Netflix/dynomite/blob/dev/notes/redis.md commands which dynomite support in Redis, i think i can implement driver for dynomite to show Redis content. is it a good idea? do you have some use cases when needed GUI for this solution?

Hi @ipapapa thank you for reply, we have 10 database drivers (FastoNoSQL slang, common interface wrap DB api) here sources https://github.com/fastogt/fastonosql_core/tree/master/src/core/db , in your case i think driver can be inharitance from https://github.com/fastogt/fastonosql_core/tree/master/src/core/db/redis_compatible which based on hiredis with ssh support , but commands count will be less than in common redis driver.

Correct. Note that Sentinel and Cluster commands are not relevant to us because Dynomite is multi-master and does not require external management systems.

Hi @ipapapa , i added DynomiteDB driver into FastoNoSQL here screenshot:

It will be very cool if DynomiteDB have AUTH, SELECT, and DBSIZE implementation.

Awesome looks good. Note that DynomiteDB is a private company not currently associated with the project. Our OSS solution is called Dynomite. Currently, we only allow single DB that is why the SELECT command is not there. At some point, we are thinking of adding AUTH.


Improve: Make serde optional, a dirty work

Signed-off-by: Chojan Shang<EMAIL_ADDRESS>
This is a simple implementation and serde will be the default feature. But of course, you can turn it off now with 'default-features = false'.
I need some suggestions to see how to make it better.
Checklist

[ ] Updated guide with pertinent info (may not always apply).
[x] Squash down commits to one or two logical commits which clearly describe the work you've done. If you don't, then Dodd will :).

This change is

A feature called "serde_impl" is currently used to control serde support. I haven't added any relevant tests for now, because I'm not sure which ones are necessary.
Since memstore and example-raft-kv both rely on openraft/serde_impl, I think they have helped us with a simple verification. Please remind me if I've missed anything.

Edit:
The types used in Raft should also be included:
AddLearnerResponse
ClientWriteResponse

Add two missing serializble types


List supported source control platforms on README

It would be nice to see on the main README to see what source code control platforms the tools supports.
The output from howfairis --help should also list the supported platforms.

Added in PR #157

Also in PR #203

Was done, clsoing


I want to add scroll animations to homepage using framer motion .

@varma-101
You can start working

@varma-101
are you working on this??
If there is no progress then let me know i will assign this to another person

@MitulSonagara can i work on this as he is not created any pull request since one week

@MitulSonagara when i am doing changes in pages html but its not reflecting on website ? why


Error:  detected space-or-tab-containing sequence

Hi, I am trying to run this pipeline through Anaconda and I am getting the following error:
Error! File: data/Nitens-and-Greg/GCF_021461395.2_iqSchAmer2.1_genomic.fna - detected space-or-tab-containing sequence:
NC_060119.1 Schistocerca americana isolate TAMUIC-IGC-003095 chromosome 1, iqSchAmer2.1, whole genome shotgun sequence
Please exclude or fix sequences with spaces and tabs.
From what I can tell, it is a problem with the formatting of the header in the fasta file as suggested in the GitHub. I have seen the script to rename after running but there is no script to rename before. do you have a script I can use or a suggestion on how to fix this error? I have included a screenshot of the full run below.
I am trying to run this on very large RefSeq genomes (~8Gb) and I would appreciate any help you can offer!

Hi, @MichaelHiller and @kirilenkobm. I just wanted to add details to this request. We understand this is probably an issue because we use the chromosome with "NCXXX.Y," specified in issue #8 #3 and added in the README. Still, we would appreciate knowing what is the best method to rename here and being able to use your custom scripts to rename afterward standalone_scripts/rename_chromosomes_back.py.
We want to use make_lastz_chain and TOGA to check whether the ortholog detection using RefSeq on some of our genomes could be improved compared to OrthoFinder, so we want to keep the GCF type. I am sure the solution is very straightforward, and I am sorry for the silly question. Bioinformatics is hard, even after many years!! o(>.<)o
Thanks for your time!

I believe I've corrected it myself, the code I used is below. and was saved into a .sh file
#!/bin/bash
Define the input and output files
input_file="input-name.fna"
output_file="input-name_only_contig_name.fna"
Use sed to process both headers and sequences in one pass
sed -e 's/^(>\S*).*/\1/' "$input_file" > "$output_file"
echo "Processing complete. Output written to $output_file."

Thx for sharing this. This is the easiest solution.


Outdated bcrypt version

NPM throws the following warning when attempting to install:
npm WARN deprecated<EMAIL_ADDRESS>bcrypt < v2.0.0 is susceptible to bcrypt wrap-around bug. Upgrade to bcrypt >= v2.0.0 for improved support for newer bcrypt hashes
The node-gyp rebuild also fails on Ubuntu 18.04 with properly installed node-gyp after throwing lots of warnings.
Any chance of upgrading to bcrypt 3.x or at least 2.x?

@gunnik I think the project is kinda dead. I worked-around this by using https://www.npmjs.com/package/passwordless-redisstore-bcryptjs


Temp hotfix - Service worker configuration, router-switch, and cleanup

Because @Fdom92 and @GroveDev said I could :)


Create plot: mass of ice for cooling hot water

In the course of thinking about the content of the solution of the example and the made schedule, I came to the conclusion that it needs to be changed. I will make replacements:

the parameter $V_{bath}$ to $T_{hot-water}$,
along the vertical axis $m_{ice}$ to $m_{ice} / m_{hot-water}$.


Escape quotes in generated build.gradle files

Fixes #20981
Context

Currently, the gradle init command doesn't escape quotes in literal
strings (e.g. the value of the description field) in generated
build.gradle.kts files. This commit causes Gradle to correctly escape
quotes in these strings (single quotes when generating Groovy and double
quotes for Kotlin).
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[x] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[x] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation
[x] Recognize contributor in release notes

@abstratt I wanted to check in on this PR. Do you think you'd have time to approve running workflows on it? Then, I can fix any issues exposed by the CI process.

@abstratt I wanted to check in on this PR. Do you think you'd have time to approve running workflows on it? Then, I can fix any issues exposed by the CI process.

Sorry for the long delay, just approved running of workflows.

The failing check can be reproduced locally using:
./gradlew :base-services:classycleMain

For convenience, the report output shows:
show onlyShortestPaths allResults
check absenceOfPackageCycles > 1 in org.gradle.*
  org.gradle.internal et al. contains 2 packages:
    org.gradle.internal
    org.gradle.util.internal

See also: https://github.com/gradle/gradle/blob/master/CONTRIBUTING.md#testing-changes

Thanks for the feedback! It all makes sense to me - will implement now.
Do you have any tips for understanding the output of the classycleMain text? Based only on the output, I find it difficult to see which file or files are causing the dependency loop.

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

This looks good to me. Requesting final review from another Gradle maintainer.

No milestone for this PR. Please set a milestone and retry.

Your PR is queued. See the queue page for details.

@bot-gradle help

Currently, the following commands are supported:
@bot-gradle test <BuildTrigger1> <BuildTrigger2> ... <BuildTriggerN>

A trigger is a special build for this PR on TeamCity, common triggers are:

SanityCheck/CompileAll/QuickFeedbackLinux/QuickFeedback/PullRequestFeedback/ReadyForNightly/ReadyForRelease
Shortcuts: SC/CA/QFL/QF/PRF/RFN/RFR
Specific builds:

BD: BuildDistributions/BuildDocs so that you can preview the generated docs/distribution.
PT: PerformanceTest, all performance tests for Ready For Nightly stage.
APT: AllPerformanceTest, all performance tests, including slow performance tests.
AST: AllSmokeTestsPullRequestFeedback
AFT: AllFunctionalTestsPullRequestFeedback
ASB: AllSpecificBuildsPullRequestFeedback
ACC: AllConfigCacheTestsPullRequestFeedback
ACT: AllCrossVersionTestsReadyForNightly
AFTN: AllFunctionalTestsReadyForNightly
ACTR: AllCrossVersionTestsReadyForRelease
AFTR: AllFunctionalTestsReadyForRelease

@bot-gradle test and merge

queues this PR for testing and merges if all tests pass by:

Creating a merge commit from your PR branch HEAD and the target branch
Running a ReadyForNightly build against the merge commit
When it passes, fast-forward the target branch to this merge commit (i.e. merge the PR)

The merge commit is called a pre-tested commit, which means that it fully tests the integration
of your branch HEAD and latest master, instead of only testing your branch HEAD.
@bot-gradle cancel

cancel a running pre-tested commit build or remove it from queue

@bot-gradle clean

clear the conversation history

@bot-gradle help

display this message

To run a command, simply submit a comment.  For detailed instructions see here.

@bot-gradle cancel

OK, I've already cancelled the pre-tested commit build.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

@tbroadley Thank you very much for your contribution, Thomas, your fix should be available in Gradle 7.6.

OK, I've already triggered a build for you.


vscode-uri (3.0.5): Incorrect Types

Fixes microsoft/vscode#161166
Looks like a change in webpack caused this rule also to be applied for the d.ts file

@aeschli,
Thank you.


Be able to drop diagram file from another application (e.g. IntelliJ) into modeler

It would be great to be able to grab a file from external application and drag & drop it onto Modeler similar to filesystem drag & drop.
See original support ticket.

Fixed under #615


libspectrum 1.2.2

@BrewTestBot test this please

This should include a revision bump for fuse-emulator, to get it to link to the updated libspectrum. You can add a revision 1 right below the url and sha256 lines in fuse-emulator.rb.

That's a good call. revision added.

Oh I have to make a revision in fuse-emulator, not here. Reverted. I'll make a revision there once this gets merged.

Actually, the way to do it is to make a revision in fuse-emulator, but as part of this PR here, so the rebuilt fuse-emulator gets tested and deployed as a unit with the new libspectrum. You can include revision bumps for any number of dependent formula in a single PR. As far as style goes, each revision bump should be a separate commit. Have a look at https://github.com/Homebrew/homebrew-core/pull/4341 for an example.

Merged in #655 (with revision bump added).
Thank you for your contribution to Homebrew!


added favicon to website

Kindly approve my pull request and merge it
and please don't forget to add label of "hacktoberfest" and "hacktoberfest-accepted"