[livesplit-hotkey] There seems to be a concurrency issue.

thread '' panicked at livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:271:31:
already borrowed: BorrowMutError
stack backtrace:
0:     0x7ff7d84bc3ca - std::sys_common::backtrace::print::impl$0::fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:44
1:     0x7ff7d84d438b - core::fmt::rt::Argument::fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\fmt\rt.rs:138
2:     0x7ff7d84d438b - core::fmt::write
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\fmt\mod.rs:1094
3:     0x7ff7d84b87d1 - std::io::Write::write_fmtstd::sys::windows::stdio::Stderr
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\io\mod.rs:1714
4:     0x7ff7d84bc14a - std::sys_common::backtrace::print
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:47
5:     0x7ff7d84bc14a - std::sys_common::backtrace::print
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:34
6:     0x7ff7d84be8ea - std::panicking::default_hook::closure$1
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:270
7:     0x7ff7d84be558 - std::panicking::default_hook
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:290
8:     0x7ff7d84bef9e - std::panicking::rust_panic_with_hook
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:707
9:     0x7ff7d84bee8d - std::panicking::begin_panic_handler::closure$0
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:599
10:     0x7ff7d84bcdb9 - std::sys_common::backtrace::rust_end_short_backtracestd::panicking::begin_panic_handler::closure_env$0,never$
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:170
11:     0x7ff7d84beb90 - std::panicking::begin_panic_handler
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:595
12:     0x7ff7d84dd4e5 - core::panicking::panic_fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\panicking.rs:67
13:     0x7ff7d84dda04 - core::result::unwrap_failed
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\result.rs:1652
14:     0x7ff7d8097fed - enum2$<core::result::Result<core::cell::RefMut<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,core::cell::BorrowMutError> >::expect<core::cell::RefMut<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,core::cell::BorrowM
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\result.rs:1034
15:     0x7ff7d809d7b4 - core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >::borrow_mut<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\cell.rs:1017
16:     0x7ff7d80a9cd0 - livesplit_hotkey::windows::callback_proc::closure$0
at C:\Users\sosee\nuxt-tauri\src-tauri\lib\livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:271
17:     0x7ff7d809aa22 - std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > > >::try_with<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,livesplit_hotkey::windows::callback_proc::
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\local.rs:270
18:     0x7ff7d809a31e - std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > > >::with<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,livesplit_hotkey::windows::callback_proc::clos
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\local.rs:246
19:     0x7ff7d808e5c1 - livesplit_hotkey::windows::callback_proc
at C:\Users\sosee\nuxt-tauri\src-tauri\lib\livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:270
20:     0x7fff55c078a4 - GetAsyncKeyState
21:     0x7fff55c6d1a3 - CreateSystemThreads
22:     0x7fff562b33b4 - KiUserCallbackDispatcher
23:     0x7fff537c1834 - NtUserCallNextHookEx
24:     0x7fff55c126bb - WindowFromPoint
25:     0x7ff7d80a9d58 - livesplit_hotkey::windows::callback_proc::closure$0
at C:\Users\sosee\nuxt-tauri\src-tauri\lib\livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:380
26:     0x7ff7d809aa22 - std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > > >::try_with<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,livesplit_hotkey::windows::callback_proc::
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\local.rs:270
27:     0x7ff7d809a31e - std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > > >::with<core::cell::RefCell<enum2$<core::option::Option<livesplit_hotkey::windows::State> > >,livesplit_hotkey::windows::callback_proc::clos
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\local.rs:246
28:     0x7ff7d808e5c1 - livesplit_hotkey::windows::callback_proc
at C:\Users\sosee\nuxt-tauri\src-tauri\lib\livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:270
29:     0x7fff55c078a4 - GetAsyncKeyState
30:     0x7fff55c6d1a3 - CreateSystemThreads
31:     0x7fff562b33b4 - KiUserCallbackDispatcher
32:     0x7fff537c1534 - NtUserGetMessage
33:     0x7fff55c0535a - GetMessageW
34:     0x7ff7d80aa316 - livesplit_hotkey::windows::impl$3::new::closure$0
at C:\Users\sosee\nuxt-tauri\src-tauri\lib\livesplit-core\crates\livesplit-hotkey\src\windows\mod.rs:436
35:     0x7ff7d80b5549 - std::sys_common::backtrace::rust_begin_short_backtrace<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\sys_common\backtrace.rs:154
36:     0x7ff7d809d201 - std::thread::impl$0::spawn_unchecked::closure$1::closure$0<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\mod.rs:529
37:     0x7ff7d80b60a1 - core::panic::unwind_safe::impl$23::call_once<enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> >,std::thread::impl$0::spawn_unchecked::closure$1::closure_env$0<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\panic\unwind_safe.rs:271
38:     0x7ff7d809f8d0 - std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::impl$0::spawn_unchecked::closure$1::closure_env$0<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::E
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\panicking.rs:502
39:     0x7ff7d809ff43 - std::panicking::try::do_catch<core::panic::unwind_safe::AssertUnwindSafe<std::thread::impl$7::drop::closure_env$0<enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> > > >,tuple$<> >
40:     0x7ff7d809f4ce - std::panicking::try<enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> >,core::panic::unwind_safe::AssertUnwindSafe<std::thread::impl$0::spawn_unchecked::closure$1::closure_env$0<livesplit_hotkey::windows::impl$3::new::closure_env$0,e
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\panicking.rs:466
41:     0x7ff7d809d025 - std::panic::catch_unwind
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\panic.rs:142
42:     0x7ff7d809d025 - std::thread::impl$0::spawn_unchecked::closure$1<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\thread\mod.rs:528
43:     0x7ff7d8091bee - core::ops::function::FnOnce::call_once<std::thread::impl$0::spawn_unchecked::closure_env$1<livesplit_hotkey::windows::impl$3::new::closure_env$0,enum2$<core::result::Result<tuple$<>,livesplit_hotkey::windows::Error> > >,tuple$<> >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\ops\function.rs:250
44:     0x7ff7d84c320c - std::sys::windows::thread::impl$0::new::thread_start
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys\windows\thread.rs:57
45:     0x7fff557d257d - BaseThreadInitThunk
46:     0x7fff5626aa58 - RtlUserThreadStart

Remapped keys using PowerToys.

This issue report doesn't give us enough to figure out what is going on.
First of all, you should not just paste the backtrace directly into your comment, but instead upload it as a file. Pasting it directly into your issue comes off as extremely spammy and is quite annoying because github actually replaced part of your backtrace with emoji.
The other thing is we don't have any steps we can take to even reproduce this. If you can come up with a consistent way to trigger this crash and give us steps on how to do it, we can try and reproduce it on our end and fix it.

It looks like the hook callback gets called, then it calls CallNextHookEx which seems to call our callback again. I didn't think this was possible. An easy way to fix this is simply moving the call to CallNextHookEx outside the STATE.with(...), which ensures that we don't doubly lock the RefCell. The problem however is that the panic of the RefCell as seen here is meant to highlight a potential problem of unexpected recursion. So while it might fix the problem, we don't really know why our hook is even seemingly installed twice here. Can you show more of your code, so we can reproduce it?

I'm sorry for not asking the question correctly in the first place. I apologize for the confusion. The issue arises when, because I use an HHKB keyboard, I use PowerToys to remap the Win key to the Ctrl key. Then, when I bind Ctrl+O in Rust, an exception occurs whenever I press the Win key (which has been remapped to Ctrl).

So you do nothing special in your code that uses livesplit-hotkey? Can we maybe see it anyway?

Alright, try this:
unsafe extern "system" fn callback_proc(code: i32, wparam: WPARAM, lparam: LPARAM) -> LRESULT {
    let hook = STATE.with(|state| {
        let mut state = state.borrow_mut();
        let state = state.as_mut().expect("State should be initialized by now");

        if code >= 0 {
            let hook_struct = &*(lparam as *const KBDLLHOOKSTRUCT);
            let event = wparam as u32;
            if event == WM_KEYDOWN || event == WM_SYSKEYDOWN {
                // Windows in addition to the scan code has a notion of a
                // virtual key code. This however is already dependent on the
                // keyboard layout. So we should prefer the scan code over the
                // virtual key code. It's hard to come by what these scan codes
                // actually mean, but there's a document released by Microsoft
                // that contains most (not all sadly) mappings from USB HID to
                // the scan code (which matches the PS/2 scan code set 1 make
                // column).
                // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf
                // Scan codes can come in an extended form `e0/e1 xx`, so you
                // need to check for the extended field in the flags, as the
                // scan code provided by itself is not extended. Also not every
                // key press somehow even has a scan code. It seems like these
                // might be caused by a special keyboard driver that directly
                // emits the virtual key codes for those keys rather than any
                // physical scan codes ever coming in. Windows has a way to
                // translate those back into scan codes though, so this is what
                // we do in that case.
                let scan_code = if hook_struct.scanCode != 0 {
                    hook_struct.scanCode + ((hook_struct.flags & LLKHF_EXTENDED) * 0xE000)
                } else {
                    MapVirtualKeyW(hook_struct.vkCode, MAPVK_VK_TO_VSC_EX)
                };

                if let Some(key_code) = parse_scan_code(scan_code) {
                    let (idx, bit) = key_idx(key_code);
                    if state.key_state[idx as usize] & bit == 0 {
                        state.key_state[idx as usize] |= bit;

                        state
                            .events
                            .send(Hotkey {
                                key_code,
                                modifiers: state.modifiers,
                            })
                            .expect("Callback Thread disconnected");

                        match key_code {
                            KeyCode::AltLeft | KeyCode::AltRight => {
                                state.modifiers.insert(Modifiers::ALT);
                            }
                            KeyCode::ControlLeft | KeyCode::ControlRight => {
                                state.modifiers.insert(Modifiers::CONTROL);
                            }
                            KeyCode::MetaLeft | KeyCode::MetaRight => {
                                state.modifiers.insert(Modifiers::META);
                            }
                            KeyCode::ShiftLeft | KeyCode::ShiftRight => {
                                state.modifiers.insert(Modifiers::SHIFT);
                            }
                            _ => {}
                        }
                    }
                }
            } else if event == WM_KEYUP || event == WM_SYSKEYUP {
                // Windows in addition to the scan code has a notion of a
                // virtual key code. This however is already dependent on the
                // keyboard layout. So we should prefer the scan code over the
                // virtual key code. It's hard to come by what these scan codes
                // actually mean, but there's a document released by Microsoft
                // that contains most (not all sadly) mappings from USB HID to
                // the scan code (which matches the PS/2 scan code set 1 make
                // column).
                // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf
                // Scan codes can come in an extended form `e0/e1 xx`, so you
                // need to check for the extended field in the flags, as the
                // scan code provided by itself is not extended. Also not every
                // key press somehow even has a scan code. It seems like these
                // might be caused by a special keyboard driver that directly
                // emits the virtual key codes for those keys rather than any
                // physical scan codes ever coming in. Windows has a way to
                // translate those back into scan codes though, so this is what
                // we do in that case.
                let scan_code = if hook_struct.scanCode != 0 {
                    hook_struct.scanCode + ((hook_struct.flags & LLKHF_EXTENDED) * 0xE000)
                } else {
                    MapVirtualKeyW(hook_struct.vkCode, MAPVK_VK_TO_VSC_EX)
                };

                if let Some(key_code) = parse_scan_code(scan_code) {
                    let (idx, bit) = key_idx(key_code);
                    state.key_state[idx as usize] &= !bit;

                    match key_code {
                        KeyCode::AltLeft | KeyCode::AltRight => {
                            state.modifiers.remove(Modifiers::ALT);
                        }
                        KeyCode::ControlLeft | KeyCode::ControlRight => {
                            state.modifiers.remove(Modifiers::CONTROL);
                        }
                        KeyCode::MetaLeft | KeyCode::MetaRight => {
                            state.modifiers.remove(Modifiers::META);
                        }
                        KeyCode::ShiftLeft | KeyCode::ShiftRight => {
                            state.modifiers.remove(Modifiers::SHIFT);
                        }
                        _ => {}
                    }
                }
            }
        }

        state.hook
    });

    CallNextHookEx(hook, code, wparam, lparam)
}

original keys:
mapped keys:
unsafe extern "system" fn callback_proc(code: i32, wparam: WPARAM, lparam: LPARAM) -> LRESULT {
    println!("{:?} {:?} {:?}", code, wparam, lparam);
    let hook = STATE.with(|state| {
     // ...


chore(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/icd-postgresql/ibm (source)
module
minor
3.14.3 -> 3.16.4

terraform-ibm-modules/landing-zone-vpc/ibm (source)
module
minor
7.18.3 -> 7.19.0

Release Notes

terraform-ibm-modules/terraform-ibm-icd-postgresql (terraform-ibm-modules/icd-postgresql/ibm)
v3.16.4
Compare Source
Bug Fixes

deps: require ibm provider version >=1.68.1 to pull in fix for https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5546 (#474) (d72a8ef)

v3.16.3
Compare Source
Bug Fixes

deps: update terraform-module (#469) (0516d6d)

v3.16.2
Compare Source
Bug Fixes

workaround provider idempotent issue (#467) (7c11009)

v3.16.1
Compare Source
Bug Fixes

deps: update terraform terraform-ibm-modules/cbr/ibm to v1.23.3 (#464) (2ecf9ae)

v3.16.0
Compare Source
Features

added support for v16 (#462) (f2e6388)

v3.15.2
Compare Source
Bug Fixes

deps: update terraform-module (#456) (80fced7)

v3.15.1
Compare Source
Bug Fixes

deps: update terraform-module (#441) (f83aa69)

v3.15.0
Compare Source
Features

updated default value of member_memory_mb to 4096.Reference: Cloud Database Hosting ModelsThe host model switching section has details of the migrations that the service is rolling out. All instances will have to be switched and the time line for the migrations is outlined.During the transition both existing and new models are supported.Users of this module should consider the changes being implemented by the service. It is recommended that new deployments use the shared or isolated compute models to start, by specifying the member_host_flavor. It is recommended that existing deployments make updates to control the upgrade process by specifying shared or isolate compute configurations and the resource required to run the service, by adding the member_host_flavor. (#439) (4789bed)

v3.14.4
Compare Source
Bug Fixes

deps: bump IBM provider (#446) (ec2fd4e)

terraform-ibm-modules/terraform-ibm-landing-zone-vpc (terraform-ibm-modules/landing-zone-vpc/ibm)
v7.19.0
Compare Source
Features

added new outputs dns_instance_id and dns_custom_resolver_id (#817) (b84f23a)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

There is a single upgrade error in the logs
# module.postgresql_db.ibm_database.postgresql_db will be updated in-place
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:   ~ resource "ibm_database" "postgresql_db" {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         id                      = "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/abac0df06b644a9cabc6e44f55b3880e:3772ef1d-f5e0-40c0-9071-100e2c0a806d::"
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         name                    = "vpe-upgrade-8zdrba-vpe-pg"
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         tags                    = []
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         # (16 unchanged attributes hidden)
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:       - group {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           - group_id = "member" -> null
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           - cpu {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               - allocation_count = 0 -> null
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           - disk {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               - allocation_mb = 5120 -> null
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           - members {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               - allocation_count = 2 -> null
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           - memory {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               - allocation_mb = 1024 -> null
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:       + group {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           + group_id = "member"
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           + cpu {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               + allocation_count = 0
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           + disk {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               + allocation_mb = 5120
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           + members {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               + allocation_count = 2
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:           + memory {
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:               + allocation_mb = 4096
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:             }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:         # (2 unchanged blocks hidden)
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:     }
TestRunUpgradeExample 2024-08-18T08:01:16Z command.go:185:

This is a known change, resulting in an upgrade in place and this is part of the example, not part of the main module. As such, it is appriate to skip the upgrade test.

:tada: This PR is included in version 4.3.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


create Jalali calendar

Hi
I want vue-fullcalendar ad date Chang  to vue-fullcalendar Jalali(persian)
(Gregorian to Jalali calendar)
how can i do that
some like this

ho can i do that please guide me ,
Tanx for help ....

I'm not sure if fullcalendar has an option for this.
It looks like some people are creating their own forks to add this functionality
https://github.com/Natico/fullcalendar-Jalaali
If you are using webpack you should be able to add an alias so that fullcalendar will point at this new package. Something like this...
// webpack.base.conf.js
resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      'fullcalendar$': 'fullcalendar-jalaali',
...

@BrockReece
look here

<template>

</template>

I load jalali calendar in vuejs but  not fun for me i need better way for this ...
how can i Chang  my cod for access  vue cod i dont use more this jquery cod ...not fun for my project ....
how i can do ...

Why don't you import these js dependencies at the top of your script tag in your component? Like this...

Just as an aside, this is a Vue wrapper for the fullcalendar library. In the code above, you are not using this wrapper at all.
Also, it appears as if you are using the config from the package that I linked you to, but you are not using their forked library.
I am happy to help you find a solution but I will need some info from you...
Do you use webpack/browserify?
Do you use npm/yarn for your dependencies?

@BrockReece
i know this cod not in vue-fullcalndar ...
i want show you this way for jalali calendar ...
but not fun  in vue js ...
so yes i use vue-cli(webpack.config.js and ....)
this is my package json

{
  "name": "calebdar",
  "description": "A Vue.js project",
  "version": "1.0.0",
  "author"<EMAIL_ADDRESS><EMAIL_ADDRESS>  "private": true,
  "scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
  },
  "dependencies": {
    "fullcalendar": "^3.4.0",
    "jquery": "^3.2.1",
    "locale": "^0.1.0",
    "moment-jalaali": "^0.6.1",
    "vue": "^2.3.3",
    "vue-full-calendar": "^2.0.0"
  },
  "devDependencies": {
    "babel-core": "^6.0.0",
    "babel-loader": "^6.0.0",
    "babel-preset-env": "^1.5.1",
    "cross-env": "^3.0.0",
    "css-loader": "^0.25.0",
    "file-loader": "^0.9.0",
    "vue-loader": "^12.1.0",
    "vue-template-compiler": "^2.3.3",
    "webpack": "^2.6.1",
    "webpack-dev-server": "^2.4.5"
  }
}

this is my webpack.config.js
var path = require('path')
var webpack = require('webpack')

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: 'build.js'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
          }
          // other vue-loader options go here
        }
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      {
        test: /\.(png|jpg|gif|svg)$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]?[hash]'
        }
      }
    ]
  },
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js'
    }
  },
  devServer: {
    historyApiFallback: true,
    noInfo: true
  },
  performance: {
    hints: false
  },
  devtool: '#eval-source-map'
}

if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
    new webpack.LoaderOptionsPlugin({
      minimize: true
    })
  ])
}

Ok, I will try to help, but just to manage expectations, this is way beyond the scope of this package and may not work. I don't have the time to test this but these are the kind of steps I would try to get it to work.
As above, there is a fork of fullcalendar that adds Jalaali functionality. This fork doesn't appear to have a 'package.json' so you won't be able to use NPM/Yarn, you will need to manually download the 'fullcalendar.js' file and add it to your src dir.
My package imports 'fullcalendar' from the node modules folder, but using Webpack Resolve Aliases we can point Webpack at the forked version that you downloaded. In your webpack config above, find the 'resolve' part and then add to it like so.
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      'fullcalendar$': path.resolve(__dirname, 'src/fullcalendar.js')
    }
  },

At the top of your parent component, I would import moment and moment-jalaali at the top of your script tags.

I would then build up the config you need in your Vue Component's data section
export default {
  data() {
    return {
    }
  },
}

I have created a Jalaali branch on my example repo, that you can use as a guide.
These are my exact changes and it worked for me.
n.b. I have had to edit the fullcalendar.js slightly to fix their usage of reserved keyword 'arguments' within strict mode.

@BrockReece  so i test this and report you
tnx..

Hi @BrockReece
i come back

Hi @davodaslanifakor
What's up?

i change my cod
  import moment from 'moment'
  import momentJalaali from './fullcalendar-Jalaali-master/lib/moment-jalaali.js'
  import fa from './fullcalendar-Jalaali-master/locale/fa.js'

and isJalaali: true,

in file
'fullcalendar$' : './src/fullcalendar-Jalaali-master/fullcalendar.js'

and this is my err

but when i comment  import fa from './fullcalendar-Jalaali-master/locale/fa.js'
and  uncomment again this err not show but and load calendar default

but don;t load  jalalicalendar...

i think better is i upload my cod for you and test this please say your email thank you

Hi @davodaslanifakor
I don't mind helping you with issues to do with my libraries, but I don't have time to test/fix/write your code for you, especially when I have already provided you with a working example, so please don't send me your code.
That being said, I think there is something wrong with the way you are loading moment-jalaali. I load the module via the webpack.base.conf.js file, using Webpack Provide Plugin. I set the identifier to 'moment' to trick fullcalendar into using this different version of moment
This is in my example on [this line] (https://github.com/BrockReece/vue-fullcalendar-example/blob/jalaali/build/webpack.base.conf.js#L27 )

ok i more try and report you thank you so much


OpenCL failed

Hi,
I have an Alienware Aurora with NVIDIA Titan Z Dual GPU.
I know I'm suppose to use cuda but somehow OpenCL switch gives me better results (~40 sols/s).
I was using this line in v0.3a
nheqminer.exe -l eu -u [myWalletAddress].OpenCL -t 8 -op 0 -od 0 1
and its working fine. But in the new version (0.4b), I just changed it to
nheqminer.exe -l equihash.eu.nicehash.com:3357 -u [myWalletAddress].OpenCL -t 8 -op 0 -od 0 1 and its either just exiting, or giving fail OCL error.
I also noticed the new switches in OpenCL section
-ov, 0 gives OpenCL error: -1001 at opencl.cpp:14 and -ov 1 gives fail OCL error
-ot, Do I have to specify value here, or can I skip this?
I tried copying the OpenCL.dll from v03.a but it makes no difference.
What could be causing OpenCL to fail?
Thanks in advance.

-1001 means that platform does not exist.  Show the output for -oi, please.

	==================== www.nicehash.com ====================
		Equihash CPU&GPU Miner for NiceHash v0.4b
	Thanks to Zcash developers for providing base of the code.
	       Special thanks to tromp, xenoncat, mbevand
	             and eXtremal-ik7 for providing
	      optimized CPU, CUDA and AMD equihash solvers.
	==================== www.nicehash.com ====================

Number of OpenCL devices found: 2
	Platform: NVIDIA CUDA | PlatformNum: 0
		Devices:
			#0 GeForce GTX TITAN Z | GPU
			#1 GeForce GTX TITAN Z | GPU

AMD (OpenCL) solver are dropped from nheqminer.
Closing issue...


Define and use some types

This PR is a prep PR for adding edmf. It makes more sense to use dispatch over further specializing with Val over more symbols that come with using edmf. So, this PR adds and uses some types, some of which will be used to create an edmf model, so that we can create the state vector. I think that the cache is nearly finished / compatible, so we're getting pretty close.
None of this is final, I think there's still many changes to come, it's just a small step towards being compatible with edmf requirements.
Once all of this is in, @dennisYatunin can apply the driver revamp and I suspect much of this will be more polished

I am working on have #438 merged in soon. Once done, the held_suarez paper plots will need changes accordingly.

I am working on have #438 merged in soon. Once done, the held_suarez paper plots will need changes accordingly.

Sounds good, I'll rebase after #438 merges, I think I'd like to merge #445 before this.

Waiting for #447 to merge since I'm getting a formatter error..

bors r+

bors r-

bors r+

bors r-

bors r+

bors r+


Does this library works on Windows?

Doesn't seems like this gem is working on windows. This doesn't look to work at all:
gelfclient = GELF::Notifier.new(host, port, chunksize)
gelfclient.notify!("short_message" => "prime")

Closing this issue, the GELF library does work and the UDP Socket is working as expected. Another component of the application was causing a UDP socket error.


Cannot build, unclear build deps?

Would it be possible to list the build deps in the README or somewhere accessible?
virtualenv and libmsgpack-dev where for example some I had to install before I could run the build script. But I'm still missing something.
~/Git/nvim-ui main 10s ❯ ./scripts/build.sh                                                                                13:09:36
created virtual environment CPython3.10.4.final.0-64 in 75ms
  creator CPython3Posix(dest=/home/turiiya/Git/nvim-ui/venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/turiiya/.local/share/virtualenv)
    added seed packages: Jinja2==3.1.2, MarkupSafe==2.1.1, pip==22.0.2, setuptools==59.6.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Requirement already satisfied: Jinja2 in /home/turiiya/Git/nvim-ui/venv/lib/python3.10/site-packages (from -r gir2cpp/requirements.txt (line 1)) (3.1.2)
Requirement already satisfied: MarkupSafe>=2.0 in /home/turiiya/Git/nvim-ui/venv/lib/python3.10/site-packages (from Jinja2->-r gir2cpp/requirements.txt (line 1)) (2.1.1)
The Meson build system
Version: 0.61.2
Source dir: /home/turiiya/Git/nvim-ui
Build dir: /home/turiiya/Git/nvim-ui/BUILD
Build type: native build
Project name: nvim-ui
Project version: 0.1.0
C compiler for the host machine: cc (gcc 11.2.0 "cc (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
C linker for the host machine: cc ld.bfd 2.38
C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
C++ linker for the host machine: c++ ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency msgpack found: YES 3.3.0
Run-time dependency libuv found: YES 1.43.0
Run-time dependency gtk4 found: YES 4.6.2
Submodule 'subprojects/spdlog' (https://github.com/gabime/spdlog) registered for path 'spdlog'
Cloning into '/home/turiiya/Git/nvim-ui/subprojects/spdlog'...
Submodule path 'spdlog': checked out '76fb40d95455f249bd70824ecfcae7a8f0930fa3'

Executing subproject spdlog method cmake

spdlog| Found CMake: /usr/bin/cmake (3.22.1)

| Configuring the build directory with CMake version 3.22.1
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr
|   - build directory:          /home/turiiya/Git/nvim-ui/BUILD/subprojects/spdlog/__CMake_build
|   - source directory:         /home/turiiya/Git/nvim-ui/subprojects/spdlog
|   - toolchain file:           /home/turiiya/Git/nvim-ui/BUILD/subprojects/spdlog/__CMake_build/CMakeMesonToolchainFile.cmake
|   - preload file:             /home/turiiya/Git/nvim-ui/BUILD/meson-private/data/preload.cmake
|   - trace args:               --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
|   - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]

| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is GNU 11.2.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Build spdlog: 1.10.0
| -- Looking for C++ include pthread.h
| -- Looking for C++ include pthread.h - found
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
| -- Found Threads: TRUE
| -- Build type: Release
| -- Generating example(s)
| -- Generating install
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/turiiya/Git/nvim-ui/BUILD/subprojects/spdlog/__CMake_build

spdlog| CMake configuration: SUCCEEDED
spdlog| CMake project spdlog has 3 build targets.

cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/turiiya/Git/nvim-ui/BUILD/subprojects/spdlog/meson.build

spdlog| Project name: spdlog
spdlog| Project version: undefined
spdlog| C compiler for the host machine: cc (gcc 11.2.0 "cc (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
spdlog| C linker for the host machine: cc ld.bfd 2.38
spdlog| C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
spdlog| C++ linker for the host machine: c++ ld.bfd 2.38
spdlog| Build targets in project: 2
spdlog| Subproject spdlog finished.

Submodule 'subprojects/msgpack-c' (https://github.com/msgpack/msgpack-c) registered for path 'msgpack-c'
Cloning into '/home/turiiya/Git/nvim-ui/subprojects/msgpack-c'...
Submodule path 'msgpack-c': checked out '63511f29dbac8a1200a7653e561055e82e43d391'

Executing subproject msgpack-c method cmake

| Configuring the build directory with CMake version 3.22.1
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr
|   - build directory:          /home/turiiya/Git/nvim-ui/BUILD/subprojects/msgpack-c/__CMake_build
|   - source directory:         /home/turiiya/Git/nvim-ui/subprojects/msgpack-c
|   - toolchain file:           /home/turiiya/Git/nvim-ui/BUILD/subprojects/msgpack-c/__CMake_build/CMakeMesonToolchainFile.cmake
|   - preload file:             /home/turiiya/Git/nvim-ui/BUILD/meson-private/data/preload.cmake
|   - trace args:               --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
|   - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]

| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is GNU 11.2.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Dynamically linking with Boost
| -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0")
| -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/turiiya/Git/nvim-ui/BUILD/subprojects/msgpack-c/__CMake_build

msgpack-c| CMake configuration: SUCCEEDED
msgpack-c| CMake project msgpack has 1 build targets.

cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/turiiya/Git/nvim-ui/BUILD/subprojects/msgpack-c/meson.build

msgpack-c| Project name: msgpack
msgpack-c| Project version: undefined
msgpack-c| Build targets in project: 2
msgpack-c| Subproject msgpack-c finished.

Found pkg-config: /usr/bin/pkg-config (0.29.2)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Submodule 'subprojects/ut' (https://github.com/boost-ext/ut) registered for path 'ut'
Cloning into '/home/turiiya/Git/nvim-ui/subprojects/ut'...
Submodule path 'ut': checked out 'cd12498349362cc646a7140451bf51db2a2dac00'

Executing subproject ut

ut| Project name: boost.ut
ut| Project version: undefined
ut| C++ compiler for the host machine: c++ (gcc 11.2.0 "c++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0")
ut| C++ linker for the host machine: c++ ld.bfd 2.38
ut| Build targets in project: 7
ut| Subproject ut finished.

Build targets in project: 12

nvim-ui 0.1.0

  Subprojects
    msgpack-c: YES
    spdlog   : YES
    ut       : YES

  User defined options
    buildtype: release
    prefix   : /usr

Found ninja-1.10.1 at /usr/bin/ninja
ninja: Entering directory `/home/turiiya/Git/nvim-ui/BUILD'
[5/39] Compiling C++ object tests/tests.p/Renderer.cpp.o
FAILED: tests/tests.p/Renderer.cpp.o
c++ -Itests/tests.p -Itests -I../tests -I../subprojects/ut/include -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O3 '-DGETTEXT_PACKAGE="nvim-ui"' '-DVERSION="0.1.0"' -MD -MQ tests/tests.p/Renderer.cpp.o -MF tests/tests.p/Renderer.cpp.o.d -o tests/tests.p/Renderer.cpp.o -c ../tests/Renderer.cpp
In file included from ../tests/../src/Renderer.hpp:5,
                 from ../tests/Renderer.cpp:3:
../tests/../src/AsyncExec.hpp:6:10: fatal error: fmt/format.h: No such file or directory
    6 | #include <fmt/format.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
[7/39] Precompiling header ../src/pch/all.hpp
FAILED: src/libnvim-ui-lib.a.p/all.hpp.gch
c++ -Isrc/libnvim-ui-lib.a.p -Isrc -I../src -I../subprojects/spdlog/include -Isubprojects/spdlog/__CMake_build -I../subprojects/spdlog/__CMake_build -Isubprojects/spdlog -I../subprojects/spdlog -Isubprojects/msgpack-c/__CMake_build/include -I../subprojects/msgpack-c/__CMake_build/include -I../subprojects/msgpack-c/include -I/usr/include -Isubprojects/msgpack-c/__CMake_build -I../subprojects/msgpack-c/__CMake_build -Isubprojects/msgpack-c -I../subprojects/msgpack-c -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O3 '-DGETTEXT_PACKAGE="nvim-ui"' '-DVERSION="0.1.0"' -fPIC -DBOOST_ALL_NO_LIB -DSPDLOG_COMPILED_LIB -MD -MQ src/libnvim-ui-lib.a.p/all.hpp.gch -MF src/libnvim-ui-lib.a.p/all.hpp.gch.d -o src/libnvim-ui-lib.a.p/all.hpp.gch -c ../src/pch/all.hpp
../src/pch/all.hpp:12:10: fatal error: fmt/format.h: No such file or directory
   12 | #include <fmt/format.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
[8/39] Precompiling header ../src/pch/all-gtk.hpp
FAILED: src/nvim-ui.p/all-gtk.hpp.gch
c++ -Isrc/nvim-ui.p -Isrc -I../src -I../subprojects/spdlog/include -Isubprojects/spdlog/__CMake_build -I../subprojects/spdlog/__CMake_build -Isubprojects/spdlog -I../subprojects/spdlog -Isubprojects/msgpack-c/__CMake_build/include -I../subprojects/msgpack-c/__CMake_build/include -I../subprojects/msgpack-c/include -I/usr/include -Isubprojects/msgpack-c/__CMake_build -I../subprojects/msgpack-c/__CMake_build -Isubprojects/msgpack-c -I../subprojects/msgpack-c -I../src/gtkpp/gir2cpp -I../src/gtkpp/cpp-generated -Ires -I/usr/include/gtk-4.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O3 '-DGETTEXT_PACKAGE="nvim-ui"' '-DVERSION="0.1.0"' -mfpmath=sse -msse -msse2 -pthread -DBOOST_ALL_NO_LIB -DSPDLOG_COMPILED_LIB -DGIR_INLINE -MD -MQ src/nvim-ui.p/all-gtk.hpp.gch -MF src/nvim-ui.p/all-gtk.hpp.gch.d -o src/nvim-ui.p/all-gtk.hpp.gch -c ../src/pch/all-gtk.hpp
In file included from ../src/pch/all-gtk.hpp:1:
../src/pch/all.hpp:12:10: fatal error: fmt/format.h: No such file or directory
   12 | #include <fmt/format.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
[17/39] Compiling C++ object subprojects/spdlog/libspdlog.a.p/src_spdlog.cpp.o
ninja: build stopped: subcommand failed.

Yes, sure. Please feel free to report anything I missed.


reference array via a state value

We have a quadratic cost x'*A*x where A is a function of some time series data. In order to build this time dependent matrix we need to be able to retrieve the data from some time variable,
i.e.
data(state.time)
or
interpolate the data based on state.time.value.
minimal example:
Given data
z= [1.11 3.4 2 4.3 7.9 12.1 ...]
we want to build a matrix A where at integer times t,
A(t) = [ z(t)  z(t+1); z(t-1)  z(t)]
Is there a way to use a time variable in such a way. As far as I have tested It seems that the states don't have an assigned numerical value until the solver completes, so this may be impossible.

I think you can implement this by specifying gridcosts (see docs of Solver)
You implement a function with the signature
function gridcosts(cost, k, K, x, p)

If you have N control intervals, the state trajectory is represented by states at K=N+1 gridpoints (or timepoints). The gridcosts function will be called K times with the indizes k from 1 to K for the current gridpoint (k and K are numeric values, integers).
If you have a fixed endtime T your current time is t=k/K*T.
If you have a free endtime, things get trickier. Let me know if that is the case, possible solutions would be time transformation or using polynomial interpolation/splines etc.

sorry in the current version v5.08 those cost terms are called pointcosts. I will try to make a release tomorrow to avoid confusion, i changed the name to gridcosts in the current master branch and in the docs.

This is what I was looking for. Is there a way to include control variables into the grid cost?

Yes x are the states only.
You can declare your controls as states, and introduce new controls u_prime and define the differential equations
daeh.setODE('u', u_prime)

so u_prime are the time derivatives of your (original) controls.

i made a new release v5.11 you can get it from here or clone the master. Let me know if you have any questions


Crash When Tapping Back Button In The Player

Steps to reproduce

Start playing an episode
Tap the top left back button

Expected behavior
Aniyomi should go to the screen that it was on before the episode started playing.
Actual behavior
Aniyomi just closes itself.
Crash logs
aniyomi_crash_logs.txt
Aniyomi version
Preview r7509
Android version
Android 14
Device
Realme XT
Other details
.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an official extension, I should be opening an issue in the extensions repository.
[X] If this is an issue with an official manga extension and this issue can be replicated in the Tachiyomi app, that I should be opening an issue in Tachiyomi's extensions repository.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Found this on my device as well a52s5g

for anyone working on it or wants temporary solution: it happens when you have auto rotation enabled. if you horizontal your device and vertical again, it should close/crash the app.

@fakebhai  auto rotation in app or on phone?

@fakebhai  auto rotation in app or on phone?

phone, as app has it enabled by default

by app I mean player here

is this issue still relevant?

Oh ye this is fixed too


Add and release experimental distroless image

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind feature
/area build
/area CI

What this PR does / why we need it:
This is actually the work done in this PR https://github.com/falcosecurity/falco/pull/2510 plus the necessary CI/CD change to make it build and release.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

new(docker): add experimental falco-distroless image based on Wolfi

LGTM label has been added.  Git tree hash: 3a6edd5d4f161f10db55b415ddf43b5760fe234f

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Allow np steps docs

@mscolnick you merged before I could submit the docs 😅.

ah apologies! thanks for adding them


Feature Suggestion: Automatic Spell Correction

I recently stumbled upon codespell, which takes a different approach to spellchecking: instead of indicating spelling mistakes, it just has a big library of words that are clearly misspelled and autofixes them (see here for the dictionary). (despite the name it also fixes none-code)
I was wondering whether this could also be a direction for the Obsidian Linter to explore? rather than fixing every misspelling individually, one could have a bunch of common and clear misspellings automatically fixed.

That is an interesting suggestion. The problem I see with doing this is that startup time may be negatively impacted and this rule would not be fast at all. The reason for this being that it would have to look for either each word in the misspelling list and check the document for it or vice versa. That doesn't mean it is not worth doing. I am just not sure how performant using such a large set of words would be.

Hmm, how does codespell do it though? The cli is almost instant for me, even on big files

It looks like it iterates over each word in the file, but I have not had time to take amuch closer look. I will see about taking a look at this later on this week.

Out of curiosity, would you expect an ignore word list as well? I plan to add it, but I am not sure I can do a very good job letting people know what the default list of auto-corrected words would be.

for non-code I think one can do without an ignore list. I tried codespell for a wekk now, and it seems to really only fixes clear misspellings like "teh" to "the" 🤔

Gotcha. I think I would add one just in case there is a someone who really wants the auto-correct ability, but also wants one of the misspellings for some odd reason.
I am pretty sure that load time for the plugin may double with the change, but that may be fine.

for non-code I think one can do without an ignore list. I tried codespell for a week now, and it seems to really only fixes clear misspellings like "teh" to "the" 🤔

When you say "non-code" do you mind clarifying what you mean?
Also would this affect tags as well? I plan to have it affect the YAML.

with "non-code" I mean natural language. not sure how it would go with the yaml. Especially with tags, I think there is a real danger of accidentally messing up vault organization (you search for a tag, but cannot find the note, since the spelling of the tag has changed)

Some of them are easy to simply replace, but these ones are a little tougher to handle. I can remove them or I can just let it handle the values as if they were one value and let the person decide which to select after linting is done.

Any suggested way to tackle mappings that go from one value to 2 possible values?
For example ["referers", "referrer, referrers,"] and ["referes", "refers, referees,]".

I think I'd leave them out. Codespell use this for displaying earnings in the editor, not for auto fixing

Gotcha. I was not aware of that. I will go clean it up and then see if I can test it out. Whether it gets added will be dependent on how much it affects runtime performance.

Performance looks pretty good from my test. It looks like it may only add about 30 seconds to linting my personal vault which has 3k+ files.

This looks pretty good. I added an ignore list for people like myself who write in multiple languages at times and need to have the ability to specify that the word in question is actually valid in that language.

This should be on master and will go out with the next release. Thanks for the great suggestion!


Updating docs to support for APCu as a cache driver

APC is used in examples for the query cache or the result cache, should be replaced with APCu IMO: https://github.com/doctrine/doctrine2/blob/cd11723e6310b5973f50e7d9819c58916721d290/docs/en/reference/caching.rst

Same here: https://github.com/doctrine/doctrine2/blob/cd11723e6310b5973f50e7d9819c58916721d290/docs/en/reference/metadata-drivers.rst


Invalid Trade Link

If a user does not have an updated trade link the bot crashes attempting to send the trade offer to an outdated trade link (Steam API error 404).
I was thinking of adding a function in the bot DepositTradeOfferUserHandler.cs that keeps the items with the bot, logs which items were supposed to be sent and the user with the outdated link has to submit a support ticket to get the items he won because his trade link was out of date.
Would that be the best way of handling this or does anyone think there is a better way?

I think this is probably the best way, besides possibly periodically going through the database of unsent offers and attempting to send them if the link has been updated.

Currently testing to see if this fixes it:
                                    else if (errorResponse.StatusCode == HttpStatusCode.NotFound)                                     {                                         Bot.CloseTrade();                                         Log.Error("User has an invalid Steam Trade Link.");                                     }
Right after the if statement line 391 in DepositTradeOfferUserHandler.cs

I found a better way of doing this. Here is the modified code for DepositTradeOfferUserHandler.cs
`
//Send trade offer to winner
if (itemsToGive.Count > 0)
{
string winnerTradeOfferId, winnerMessage = "Congratulations, you have won a round on " + Bot.BotWebsiteName + "! Here are your items.";
                            doWebWithCatch(-1, () =>
                            {
                                try
                                {
                                    if (winnerTradeOffer.SendWithToken(out winnerTradeOfferId, winnerTradeToken, winnerMessage))
                                    {
                                        Bot.AcceptAllMobileTradeConfirmations();
                                        Log.Success("Offer sent to winner.");
                                    }
                                }
                                catch (WebException e)
                                {
                                    HttpWebResponse errorResponse = e.Response as HttpWebResponse;

                                    if (errorResponse.StatusCode == HttpStatusCode.NotFound)
                                    {
                                        Log.Error("(404) User has an invalid trade link. Closing trade...");
                                        Bot.CloseTrade();
                                        Log.Error("Unsent items: " + itemsToGive);
                                    }
                                }
                            });
                        }
                        else
                        {
                            Log.Info("No items to give?");
                        }

`
Testing it now.


Add bower support fixes issue #79

Added bower.json file - just needs to be registered with Bower.
e.g.
bower register jquery.filedownload https://github.com/johnculviner/jquery.fileDownload

Thanks @phipps73  this is LONG overdue. Thanks for putting the right ignores in there too. I really should switch the demo src over to being Node.js too rather than the kluge ASP.NET MVC folder structure. Thank you!


Merge Aruba release documentation

What this PR does / why we need it:
This merges documentation updates for the official Aruba release.

Coverage remained the same at 43.911% when pulling b14029c748cf764067178461b3e70a33a98d129b on development into f4fc4f84c8c32eda335a35bd57b07f65e0bc2bba on master.


[Bug] Setup with sveltekit fails

Describe the bug
I'm trying to get this to run, but it fails to start.
Key differences from readme:

Monorepo setup (hence my node_modules are one folder up)
in vite config: import { sveltekit } from '@sveltejs/kit/vite'; instead of using@sveltejs/vite-plugin-svelte
in storyboard config: framework is @storybook/sveltekit instead of @storybook/svelte-vite

I'm using a monorepo, hence the node_modules folder is one layer above my project.
My .storybook/main.js file looks like the following:
import { join, dirname } from 'path';

/**
 * This function is used to resolve the absolute path of a package.
 * It is needed in projects that use Yarn PnP or are set up within a monorepo.
 */
function getAbsolutePath(value) {
	return dirname(require.resolve(join(value, 'package.json')));
}

/** @type { import('@storybook/sveltekit').StorybookConfig } */
const config = {
	stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx|svelte)'],
	addons: [
		getAbsolutePath('@storybook/addon-links'),
		getAbsolutePath('@storybook/addon-essentials'),
		getAbsolutePath('@storybook/addon-interactions'),
		getAbsolutePath('@storybook/addon-svelte-csf')
	],
	framework: {
		name: getAbsolutePath('@storybook/sveltekit'),
		options: {}
	},
	docs: {
		autodocs: 'tag'
	}
};
export default config;

One thing that stands out to me is the getAbsolutePath('@storybook/sveltekit'), piece, which differs from the README, but is afaik the new supported framework. The getAbsolutePath part of it was auto-generated from the npx storybook@latest init command already, which detected the monorepo setup.
Also, this is sveltekit, so in my vite config I'm not using '@sveltejs/vite-plugin-svelte, but instead import { sveltekit } from '@sveltejs/kit/vite';, which also differs from the README.
Screenshots and/or logs
storybook dev -p 6006
@storybook/cli v7.5.3

(node:78056) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
SB_CORE-SERVER_0002 (CriticalPresetLoadError): Storybook failed to load the following preset: ./.storybook/main.js.

Please check whether your setup is correct, the Storybook dependencies (and their peer dependencies) are installed correctly and there are no package version clashes.

If you believe this is a bug, please open an issue on Github.

SB_CORE-SERVER_0002 (CriticalPresetLoadError): Storybook failed to load the following preset<EMAIL_ADDRESS>
Please check whether your setup is correct, the Storybook dependencies (and their peer dependencies) are installed correctly and there are no package version clashes.

If you believe this is a bug, please open an issue on Github.

/Developer/test_project/node_modules/@storybook/addon-svelte-csf/dist/components/Meta.svelte:1
<script>
^

SyntaxError: Unexpected token '<'
    at internalCompileFunction (node:internal/vm:77:18)
    at wrapSafe (node:internal/modules/cjs/loader:1288:20)
    at Module._compile (node:internal/modules/cjs/loader:1340:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Object.newLoader (/Developer/test_project/node_modules/esbuild-register/dist/node.js:2262:9)
    at extensions..js (/Developer/test_project/node_modules/esbuild-register/dist/node.js:4838:24)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
    at Module.require (node:internal/modules/cjs/loader:1235:19)
    at require (node:internal/modules/helpers:176:18)
    at loadPreset (/Developer/test_project/node_modules/@storybook/core-common/dist/index.js:15:82)
    at loadPreset (/Developer/test_project/node_modules/@storybook/core-common/dist/index.js:15:82)
    at async Promise.all (index 1)
    at async loadPresets (/Developer/test_project/node_modules/@storybook/core-common/dist/index.js:15:505)
    at async getPresets (/Developer/test_project/node_modules/@storybook/core-common/dist/index.js:15:1525)
    at async buildDevStandalone (/Developer/test_project/node_modules/@storybook/core-server/dist/index.js:119:1599)
    at async withTelemetry (/Developer/test_project/node_modules/@storybook/core-server/dist/index.js:103:3903)
    at async dev (/Developer/test_project/node_modules/@storybook/cli/dist/generate.js:473:401)
    at async Command.<anonymous> (/Developer/test_project/node_modules/@storybook/cli/dist/generate.js:475:225)

WARN Broken build, fix the error above.
WARN You may need to refresh the browser.

WARN   Failed to load preset<EMAIL_ADDRESS>on level 1
/Developer/test_project/node_modules/@storybook/addon-svelte-csf/dist/components/Meta.svelte:1
<script>
^

SyntaxError: Unexpected token '<'
    at internalCompileFunction (node:internal/vm:77:18)
    at wrapSafe (node:internal/modules/cjs/loader:1288:20)
    at Module._compile (node:internal/modules/cjs/loader:1340:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Object.newLoader (/Developer/test_project/node_modules/esbuild-register/dist/node.js:2262:9)
    at extensions..js (/Developer/test_project/node_modules/esbuild-register/dist/node.js:4838:24)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
    at Module.require (node:internal/modules/cjs/loader:1235:19)
    at require (node:internal/modules/helpers:176:18)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Environment

OS: MacOS
Node.js version: v21.1.0
NPM version: 10.2.0
Browser (if applicable): Chrome

Versions
    "@storybook/addon-essentials": "^7.5.3",
    "@storybook/addon-interactions": "^7.5.3",
    "@storybook/addon-links": "^7.5.3",
    "@storybook/addon-svelte-csf": "^4.0.13",
    "@storybook/blocks": "^7.5.3",
    "@storybook/svelte": "^7.5.3",
    "@storybook/svelte-vite": "^7.5.3",
    "@storybook/sveltekit": "^7.5.3",
    "@storybook/testing-library": "^0.2.2",
    "@sveltejs/adapter-auto": "^2.1.0",
    "@sveltejs/adapter-vercel": "^3.0.3",
    "@sveltejs/kit": "^1.23.0",
    "@sveltejs/vite-plugin-svelte": "^3.0.1",
    "eslint-plugin-storybook": "^0.6.15",
    "eslint-plugin-svelte": "^2.33.0",
    "prettier-plugin-svelte": "^3.0.3",
    "storybook": "^7.5.3",
    "svelte": "^4.2.0",

I'd appreciate any help around what else I could try to get this to work!

Same here but using svelte-vite.

Try it here: https://github.com/tomolenet/addon-svelte-csf-160

Any news on this? Can we support? Looks like the compiler can not parse Svelte?
/home/devs/addon-svelte-csf-160/node_modules/@storybook/addon-svelte-csf/dist/components/Meta.svelte:1
<script>
^

SyntaxError: Unexpected token '<'

@tomolenet does the workaround mentioned at https://github.com/storybookjs/builder-vite/issues/321#issuecomment-1872225287 solve your issue?

Yes, it seems to work. I tested it here.
It seems to work now that you just have to remove getAbsolutePath. The workspace can stay.


guidance: A guidance language for controlling large language models

https://github.com/microsoft/guidance

微软官方出品，LangChain的竞争对手


chore: update snapshot for 1.29.2

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.177%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
330

Relevant Lines:
366

💛  - Coveralls


Add Aviate Status

Aviate is rising in popularity and Scratch Connect should join in

I will add this later...
I am really very sorry but I'm little busy now :(
I will make sure to merge this with the next release...

But don't you think, the function name should be "aviate_data"?

But don't you think, the function name should be "aviate_data"?

Ahh yes. 6e7c6f7

lol

Good. This will soon be merged with the next update...


[Bug report]  The czg ai command does not work.

✅ Checklist

[X] I am using the latest version
[X] I have searched FAQ

📄 System Info
System:
    OS: macOS 13.3
    CPU: (12) arm64 Apple M2 Max
    Memory: 956.44 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 19.8.1 - /opt/homebrew/bin/node
    Yarn: 3.5.0 - /opt/homebrew/bin/yarn
    npm: 9.5.1 - /opt/homebrew/bin/npm
  npmGlobalPackages:
    commitizen: 4.3.0

🔎 Description
Concise Description
Using czg CLi in my git repository folder path, the czg ai command does not work.
Expected behavior
I'm pretty sure I still have a balance of about $17 in my account, and I haven't made any calls recently, and api key is rebound.
Steps to reproduce
$> czg ai
Error Message
? Select the type of change that you're committing: feat:     A new feature
ℹ Generating your AI commit subject...
[err]>>>: Fetch OpenAI API message failureThe response HTTP Code: 429
You exceeded your current quota, please check your plan and billing details.

🔗 Reproduction link / repo:
No response

You exceeded your current quota, please check your plan and billing details.

The error is openAI response.
I'm also pretty sure it can work ~ Please check your API key billing details:
https://platform.openai.com/account/usage

I just experienced this issue after setting up a fresh API key with 0 usage.

I just experienced this issue after setting up a fresh API key with 0 usage.

The error message is from OpenAI. please try a mini example by curl command: https://platform.openai.com/docs/quickstart/step-3-sending-your-first-api-request

> Just tested and everything works fine.

Thanks for taking a look @Zhengqbbb; after further investigation this was because I did not have a paid plan and misunderstood the usage limits for a free account.

TL;DR: You need to upgrade to a paid plan. Set up a paid account, add a credit or debit card, and generate a new API key if your old one was generated before the upgrade. It might take 10 minutes or so after you upgrade to a paid plan before the paid account becomes active and the error disappears.

Relevant stackoverflow.
Might be worth noting this in the readme - I'm happy to open a PR if you think this would be useful.


Italian Channels(it/guidatv.sky.it.epg.xml) IT Science Discovery is not mapped.

Good morning Everyone,
It looks like the Italian EPG is having issues once again, this is starting to become a daily venture with this EPG. LOL
Discovery Science(IT) isn't mapped at all, and the guide is only showing about 24 hours of data.
Is this EPG becoming deprecated from lack of support?
I asked yesterday if this is normal and whether or not I should expect this sort of thing on a regular basis and I received NO RESPONSE; I know that we depend on volunteers to do things that can be under-appreciated at times by others, that is NOT my point of view; I'm grateful for everything that's done here, I would just like to know what to expect.
My questions are:
What sort of EGP time-frame can be expected? 14 hours? 24hours? One week?
How often does the EPG go down? Is it daily? bi-weekly? Or weekly?
Are you looking for assistance in maintaining this EPG? I may be able to help or know someone who will.
I'm only asking because I would like to know what to expect and see if I can help as well.
Thank you for your time and patience.
-Pete

The program is loaded daily for 2 days ahead.
According to the logs there were no errors with the loading guide from guidatv.sky.it during the last month. But if you find some let us know and either I or someone else will try to fix it.
As @LaneSh4d0w said, any help is welcome.


Bug Report: hub_network enabled flag doesn't do the job

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Versions

terraform: 1.0.10
azure provider: 2.82.0
module: 1.0
Description
Describe the bug
In setting.connectivity.tf file you have to delete hub_network object, isn't enough to change the enabled value to false.
  hub_networks = [
    ......{
      enabled = **false**
      config = {
        address_space                = ["<IP_ADDRESS>/24"]
        location                     = "westeurope"
        link_to_ddos_protection_plan = false
        dns_servers                  = []
        bgp_community                = ""
        subnets                      = []
        virtual_network_gateway = {
          enabled = false
          config = {
            address_prefix           = ""
            gateway_sku_expressroute = "ErGw2AZ"
            gateway_sku_vpn          = ""
          }
        }

Steps to Reproduce

in the setting.connectivity.tf file leave the hub network object filled, change the enabled value to false.
The VNET is created anyway, only deleting the object works.

@tisigoncalve, try as I might, I don't seem to be able to reproduce this issue.

@tisigoncalve, were you able to resolve this issue? As per my previous message, I was unable to reproduce this behaviour.


Simulator Screenshot Feature

Description
Take a screenshot of the simulator
How to use it?
Click on the camera icon in the simulator toolbar.
If you cannot see that button and you editor supports this experiment, go to About, then click Experiments and Simulator Screenshot. If you cannot see this card, your editor does not support yet this feature.
Feedback
Do you use this feature? Is there something you'd like to change? Did you encounter issues? Please drop a comment on this issue to send us your feedback.

I use this feature. It takes only one microbit's screenshot when I was using the radio module. It should take all of them.


[QUESTION] Are there bitrate limits on recording?

I'm using this to record a stream from an rtmp streaming device that re-encodes the video.
nginx.txt
The question I have is that is there a limit to the bitrate for nginx's recording? I find that if I go over 5Mbps, the resulting video is corrupted; the video length is usually twice as long and it has stutters that lose video.
Thanks.

If there is then I would think it's an issue with ffmpeg rather than this module... Did you ever solve this?


Parse tests out of scripts

I came across your repo when searching for godot typeof examples.  I wasn't sure how else to share this, so sorry for using an issue.  I've created my own unit testing tool as well.  I'm really interested in your approach.  I thought I'd share with you how I parse out the tests from the files.  Here's the code.
#-------------------------------------------------------------------------------
#Parses out the tests based on the _test_prefix.  Fills the _tests array with
#instances of OneTest.
#-------------------------------------------------------------------------------
func _parse_tests(script):
	var file = File.new()
	var line = ""
	var line_count = 0

	file.open(script, 1)
	while(!file.eof_reached()):
		line_count += 1
		line = file.get_line()
		#Add a test
		if(line.begins_with("func " + _test_prefix)):
			var from = line.find(_test_prefix)
			var len = line.find("(") - from
			var new_test = OneTest.new()
			new_test.name = line.substr(from, len)
			new_test.line_number = line_count
			_tests.append(new_test)

	file.close()

You should be able to adapt this, but here's a few notes

The script parameter is the path to the test script (i.e. 'res://unit_tests/test_this_thing.gd')
OneTest is a simple struct class to hold info about each test.  I keep an array of them (_tests) and then loop through them later calling them using call.
test_prefix holds 'test' in it by default.  I just used a variable in case someone wanted to use something else.

I've written 46 test scripts with about 1000 tests and this logic has worked just fine.  Hope it helps.
If you're interested, my testing tool can be found at https://bitbucket.org/bitwes/gut.  I'm working on a 3.0 version now and will be moving it to github when it is done (by the end of the week at the latest).

Thanks for the suggestion.  That's an interesting approach - to actually parse out the script itself.  I never like the idea of needing to explicitly call out the list of test functions, so this would be a big help.
The function parsing would need to be a bit more flexible, because for proper grammar handling it would need to be able to deal with spaces correctly (e.g. "func  test_a  (x)"), but that can easily be dealt with through regular expressions.  I don't think that gdscript has any situations where there can be free-form text with "func" at the start of a line, so this would work.
A further simplification would be to have the base test class call "get_script()" in the _init function, and parse the text from the returned string.  That way the test class could override this behavior if it wanted to (such as to force tests to run in a specific order, or if the user just wants to be contrary and not use the naming convention).

What about simply using get_method_list for get the methods, then parse it instead? :smile:

It's too easy.  That's just what they're expecting us to do.
No, reading the get_method_list and calling the methods that start with test_ is the better option.

Either I didn't know about it or the methods don't come back in the order they are in the file.  That's all speculation though, I wrote that's long time ago.  I do spit out the line number for the test when a test fails though, which is handy when dealing with a test script with a lot of tests.

As a historical note, the Godot 1.x code line didn't provide a get_method_list function, so that would explain why we went through these pains to find the list of tests to run.  With 2.x, that's now solved.

I've updated the unit_test component to how support auto-detection of test methods, as well as some other improvements, such as more matchers, a new check method, more flexibility in the error reporting, and better test case skipping.


Create statistics API

create API to have the ability to log statistics (read/write) to xml.
To be used in test cases (all data is מפוברק )
Time estimation : 10-12 hours

After the new diriction the project took, this issue is no longer relevant.


Add Basque (eu) translation

Hi,
I translated "FreeOTP for Android" to Basque language. The language code is eu.
Best regards

Thank you for the PR.


Zseries Session Start Time Mismatch

I am new to collaborating on a GitHub project so please correct me if this is not the proper procedure.  I created a pull request,  #304, to fix this issue but have not seen any comment on it so I am assuming I need to create an issue that the pull request is fixing.   Again, correct me if this is not what you want me to do.
The issue is for a Zseries session the start time of the session would mismatch what was shown in the graph.  When the session was completed and reviewed in the history or if the session was recovered the start time would match the graph. This mismatch only occurs during the initial session creation.

Pull request #304 fixes this issue.

Thanks for the fix! Sorry, I've been pretty busy lately with a new baby/kid

Congrats!

No problem.  I see the pull request was merged without this ticket so I will not create a separate issue ticket in the future.  I hope to assist more.
Also, congratulations on the new one!
As the pull request has been merged I will close this ticket.

Thanks for your detailed reporting and contributions @wiltdavi . Appreciate it. Also been busy here as well, but with school (kindergarten) started today hopefully a routine sets back in.


[FIX] use useNativeSegwit wallet creation option properly

Only set the useNativeSegwit option for coins that support segwit when creating a new wallet.

Needs rebase

Needs rebase

Done


docs(config) Externals as object note about umd library target

add a note about using object for externals
use javascript for code example blocks to continue general *.md tidying and maintainability
fixes #2668

Thanks!


Update smoke test expectations.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (6c218e7) 92.91% compared to head (4b09cdf) 92.91%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2094   +/-   ##
=======================================
  Coverage   92.91%   92.91%
=======================================
  Files         358      358
  Lines       26571    26571
=======================================
  Hits        24688    24688
  Misses       1883     1883

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Question]: Taskflow 报错

请提出你的问题
Taskflow(
    task="information_extraction",
    model="uie-base",
    precison='fp16',
    device_id=0,
    use_fast=True,
)

RuntimeError: (PreconditionNotMet) op [pd_op.full_with_tensor] kernel output args (0) defs should equal op outputs (1)
[Hint: Expected op_item->num_results() == output_defs.size(), but received op_item->num_results():1 != output_defs.size():0.] (at /paddle/paddle/fluid/pir/transforms/pd_op_to_kernel_pass.cc:2468)
paddle-custom-npu  3.0.0b2
paddlenlp          3.0.0b2
paddlepaddle       3.0.0b2
CANN 8.0.RC1

运行python -c "import paddle; paddle.utils.run_check()"
提示：
/root/.local/lib/python3.10/site-packages/paddle/utils/cpp_extension/extension_utils.py:686: UserWarning: No ccache found. Please be aware that recompiling all source files may be required. You can download and install ccache from: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md
warnings.warn(warning_message)
I1225 10:55:24.539517  4353 init.cc:236] ENV [CUSTOM_DEVICE_ROOT]=/root/.local/lib/python3.10/site-packages/paddle_custom_device
I1225 10:55:24.539584  4353 init.cc:145] Try loading custom device libs from: [/root/.local/lib/python3.10/site-packages/paddle_custom_device]
I1225 10:55:26.426545  4353 custom_device.cc:1099] Succeed in loading custom runtime in lib: /root/.local/lib/python3.10/site-packages/paddle_custom_device/libpaddle-custom-npu.so
I1225 10:55:26.522809  4353 custom_kernel.cc:63] Succeed in loading 357 custom kernel(s) from loaded lib(s), will be used like native ones.
I1225 10:55:26.523063  4353 init.cc:157] Finished in LoadCustomDevice with libs_path: [/root/.local/lib/python3.10/site-packages/paddle_custom_device]
I1225 10:55:26.523133  4353 init.cc:242] CustomDevice: npu, visible devices count: 1
Running verify PaddlePaddle program ...
I1225 10:55:29.212662  4353 pir_interpreter.cc:1480] New Executor is Running ...
I1225 10:55:29.215441  4353 pir_interpreter.cc:1506] pir interpreter is running by multi-thread mode ...
W1225 10:55:33.030699  4643 pir_interpreter.cc:1980] Instruction OP id: 7, Ir OP id: 66, pd_op.sum_grad raises an EnforceNotMet exception common::enforce::EnforceNotMet
Traceback (most recent call last):
File "", line 1, in
File "/root/.local/lib/python3.10/site-packages/paddle/utils/install_check.py", line 273, in run_check
_run_static_single(use_cuda, use_xpu, use_custom, custom_device_name)
File "/root/.local/lib/python3.10/site-packages/paddle/utils/install_check.py", line 153, in _run_static_single
exe.run(
File "/root/.local/lib/python3.10/site-packages/paddle/base/executor.py", line 1896, in run
res = self._run_pir_impl(
File "/root/.local/lib/python3.10/site-packages/paddle/base/executor.py", line 2242, in _run_pir_impl
ret = new_exe.run(list(feed.keys()), return_numpy)
File "/root/.local/lib/python3.10/site-packages/paddle/base/executor.py", line 845, in run
tensors = self._new_exe.run(
OSError: In user code:
ExternalError:  ACL error, the error code is : 500001.  (at /paddle/backends/npu/kernels/funcs/npu_op_runner.cc:445)
[operator < pd_kernel.phi_kernel > error]


ip address not found in geo database

Trying to do the logs to elasticsearch tutorial but get ip address not found in the geo database:

The mmdb is in the resources directory:

Thanks for the explanation but I should've mentioned that while some do not have an error, no data ends up in the elasticsearch index.   I do have it set to create the records even on preview.

Hmm - I wonder why. Does the pipeline validate ok? Do you see data in the ElasticSearch index if you run the pipeline? Do you see any errors when you click on the ElasticSearch destination? Any evidence in /streamsets-datacollector/log/sdc.log?
@kiritbasu Any ideas?

Those would be the places to check. Also is the index mapping setup right?
Which version of SDC and Elastic are you on?


menu bar - overflow: hidden

The current webpage removes page scroll and adds a translucent grey over the page when the menu is displayed. This can be fixed in M5

High priority


icon-test-and-docs

Would be good to include some documentation on a few more things:

Using the color css variables to change Icon color e.g.

<AddDocumentIcon style={{ '--uitkIcon-color': 'var(--uitk-status-info-foreground)' }}/>

How to use the base jsx <Icon /> component if you're creating a custom Icon e.g.

 <Icon
      aria-label="add"
      viewBox="0 0 12 12"
      {...customIconProps}
    >
      <path d="M7 0H5v5H0v2h5v5h2V7h5V5H7V0z" />
    </Icon>


AVLN3000: Can't use resource for Foreground property of TextPresenter

Describe the bug
See the following XAML using a TextPresenter:
<TextPresenter Text="Test" Foreground="{DynamicResource TextPrimaryBrush}"/>

It gives me this error upon compilation:
Error AVLN3000 : Unable to find suitable setter or adder for property Foreground of type Avalonia.Controls:Avalonia.Controls.Presenters.TextPresenter for argument Avalonia.Base:Avalonia.Data.IBinding, available setter parameter lists are: Avalonia.Media.IBrush Line 68, position 97.
However I can still set the brush like this:
<TextPresenter Text="Test">
    <TextPresenter.Foreground>
        <SolidColorBrush Color="{DynamicResource TextPrimaryColor}"/>
    </TextPresenter.Foreground>
</TextPresenter>

The following works too:
<TextPresenter Text="Test" Foreground="Red"/>

I don't think this matters, but this is my brush resource:
<SolidColorBrush x:Key="TextPrimaryBrush" Color="#191a1a"/>

To Reproduce
Self explanatory
Expected behavior
No response
Avalonia version
11.1.0-beta2
OS
Windows
Additional context
I tested it on another project too, with the same result.

You can't bind to TextPresenter properties. This is a presenter control, designed to be used as a building block of more complex controls (like, TextBox).


Terraform 0.12.x

Summary
This pull request introduces compatibility with Terraform 0.12.x, replaces PR: https://github.com/radekg/terraform-provisioner-ansible/pull/126.
Other Information
Is there anything else relevant to your pull request? Please mention it here.
Thank you for contributing!

This will be release before 1st of August 2019.


Create debs and Install (really) the xrdp

Hi Daniel,
I just reworked the Dockerfile. I noticed that in your, we build the xrdp from sources... but we don't install anything from builder to target image.
In this PR I create deb files from xrdp and xorgxrdp sources (using debian dir from 19.04) and copy&install into the target container.
I briefly tested on my system and it seems to work (TM).
ciao
luigi

Hi @comio,
with this change merged my container fails to build with the following error:
# Policy
find debian/xrdp/ -name \*.la -print0 | xargs -0 rm -f --
find debian/xrdp/usr/lib/ -name \*.a -print0 | \
    xargs -0 strip --strip-debug -R .comment --
make[1]: Leaving directory '/tmp/xrdp-0.9.10'
   dh_install
chown: invalid group: 'root:xrdp'
dh_install: debian/xrdp.install (executable config) returned exit code 1
debian/rules:41: recipe for target 'binary' failed
make: *** [binary] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
ERROR: Service 'terminalserver' failed to build: The command '/bin/sh -c dpkg-buildpackage -rfakeroot -uc -b' returned a non-zero code: 2

groups are added in bin/docker-entrypoint. Im not sure if the deb package creates group xrdp

Hi @fbartels ,
I'm sorry but I cannot reproduce.
My steps:
git clone ...
cd ubuntu-xrdp
docker build . --tag mytag

Can you provide your complete log and information about your build environment?
ciao
luigi

Hi @comio,
yes it feels a bit strange. The system where I see this is a Synology Diskstation and here I am simply running docker-compose build. I have since then also tried to run the build on an Ubuntu 16.04 system and there it succeeds as well.
The complete output from the synology system is https://paste.9wd.eu/urafesemap

and docker-compose build --no-cache ???

here with --no-cache: https://paste.9wd.eu/ekecesufum

This is the output from yesterdays commits from @comio on hub.docker.com
Policy
find debian/xrdp/ -name *.la -print0 | xargs -0 rm -f --
find debian/xrdp/usr/lib/ -name *.a -print0 |
xargs -0 strip --strip-debug -R .comment --
make[1]: Leaving directory '/tmp/xrdp-0.9.10'
dh_install
dh_installdocs
debian/rules override_dh_installchangelogs
make[1]: Entering directory '/tmp/xrdp-0.9.10'
dh_installchangelogs -pxrdp -- NEWS.md
dh_installchangelogs --remaining-packages
dh_installchangelogs: No packages to build. Architecture mismatch: amd64, want: any
make[1]: Leaving directory '/tmp/xrdp-0.9.10'
dh_installman
debian/rules override_dh_installinit
make[1]: Entering directory '/tmp/xrdp-0.9.10'
dh_installinit --no-restart-on-upgrade


MAINT: 1.0.x: handle mixed dtype cofficients correctly across inverse transforms

This is a backport of #450 to the 1.0.x branch. There were no conflicts when cherry-picking the commits, so this should be good to go once CI passes.

All green, merging. Thanks @grlee77


analyzer: make string concatenation optional

Meant to fix #21
@jalaziz what do you think of it ?

@catenacyber Is it possible to create a release since this PR has been merged?

yes once #23 is fixed as well

I see. Thanks for your response.

v0.7.0 released cc @myouju