Error while trying to install from cargo

Describe the bug
Error while trying to install from cargo or install script. Both give the same error.
To Reproduce
Just run the required installation code.
Expected behavior
To install it.
Screenshots
$ cargo install navi
    Updating crates.io index
  Installing navi v2.17.0
   Compiling libc v0.2.100
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.28
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.75
   Compiling version_check v0.9.3
   Compiling memchr v2.4.1
   Compiling log v0.4.14
   Compiling autocfg v1.0.1
   Compiling ppv-lite86 v0.2.10
   Compiling signal-hook v0.3.9
   Compiling serde_derive v1.0.128
   Compiling scopeguard v1.1.0
   Compiling serde v1.0.128
   Compiling smallvec v1.6.1
   Compiling unicode-segmentation v1.8.0
   Compiling hashbrown v0.11.2
   Compiling bitflags v1.3.2
   Compiling utf8parse v0.1.1
   Compiling regex-syntax v0.6.25
   Compiling lazy_static v1.4.0
   Compiling anyhow v1.0.43
   Compiling either v1.6.1
   Compiling linked-hash-map v0.5.4
   Compiling remove_dir_all v0.5.3
   Compiling unicode-width v0.1.8
   Compiling termcolor v1.1.2
   Compiling same-file v1.0.6
   Compiling dtoa v0.4.8
   Compiling os_str_bytes v3.1.0
   Compiling vec_map v0.8.2
   Compiling strsim v0.10.0
   Compiling instant v0.1.10
   Compiling lock_api v0.4.4
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling vte v0.3.3
   Compiling indexmap v1.7.0
   Compiling textwrap v0.14.2
   Compiling yaml-rust v0.4.5
   Compiling walkdir v2.3.2
   Compiling heck v0.3.3
   Compiling strip-ansi-escapes v0.1.0
   Compiling aho-corasick v0.7.18
   Compiling quote v1.0.9
   Compiling getrandom v0.2.3
   Compiling signal-hook-registry v1.4.0
   Compiling mio v0.7.13
   Compiling parking_lot_core v0.8.3
   Compiling atty v0.2.14
   Compiling which v4.2.2
   Compiling dirs-sys-next v0.1.2
   Compiling remove_dir_all v0.7.0
   Compiling rand_core v0.6.3
   Compiling parking_lot v0.11.1
   Compiling regex v1.5.4
   Compiling directories-next v2.0.0
   Compiling rand_chacha v0.3.1
   Compiling signal-hook-mio v0.2.1
   Compiling shellwords v1.1.0
   Compiling rand v0.8.4
   Compiling crossterm v0.20.0
   Compiling tempfile v3.2.0
   Compiling edit v0.1.3
   Compiling thiserror-impl v1.0.26
   Compiling clap_derive v3.0.0-beta.4
   Compiling thiserror v1.0.26
   Compiling clap v3.0.0-beta.4
error[E0658]: arbitrary expressions in key-value attributes are unstable
 --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/lib.rs:8:10
  |
8 | #![doc = include_str!("../README.md")]
  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #78835 <https://github.com/rust-lang/rust/issues/78835> for more information

error[E0658]: use of unstable library feature 'osstring_ascii'
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/parse/matches/matched_arg.rs:130:19
    |
130 |                 v.eq_ignore_ascii_case(val)
    |                   ^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #70516 <https://github.com/rust-lang/rust/issues/70516> for more information

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0658`.
error: could not compile `clap`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `navi v2.17.0`, intermediate artifacts can be found at `/tmp/cargo-installph3cZ6`

Caused by:
  build failed

Versions:

OS: Ubuntu 21.04
Shell Version: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
Cargo Version: 1.51.0

Additional context
Installed cargo via apt-get. Successfully installed other stuff via cargo.

README.md
My bad. I'll fix it.

unstable feature
Apparently, you need Rust stable 1.53+ to use this feature, or older Rust unstable versions.
I guess I'll downgrade clap to make this requirement looser.

I guess I'll downgrade clap to fix these issues.

Does it work now?
https://crates.io/crates/navi/2.17.1

Still throwing error:
$ cargo install navi
    Updating crates.io index
  Downloaded navi v2.17.1
  Downloaded 1 crate (57.6 KB) in 2.19s
  Installing navi v2.17.1
   Compiling libc v0.2.100
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.28
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.75
   Compiling version_check v0.9.3
   Compiling autocfg v1.0.1
   Compiling memchr v2.4.1
   Compiling log v0.4.14
   Compiling serde_derive v1.0.128
   Compiling signal-hook v0.3.9
   Compiling ppv-lite86 v0.2.10
   Compiling hashbrown v0.11.2
   Compiling serde v1.0.128
   Compiling unicode-segmentation v1.8.0
   Compiling scopeguard v1.1.0
   Compiling smallvec v1.6.1
   Compiling either v1.6.1
   Compiling linked-hash-map v0.5.4
   Compiling bitflags v1.3.2
   Compiling anyhow v1.0.43
   Compiling unicode-width v0.1.8
   Compiling utf8parse v0.1.1
   Compiling regex-syntax v0.6.25
   Compiling remove_dir_all v0.5.3
   Compiling lazy_static v1.4.0
   Compiling dtoa v0.4.8
   Compiling strsim v0.10.0
   Compiling termcolor v1.1.2
   Compiling same-file v1.0.6
   Compiling vec_map v0.8.2
   Compiling os_str_bytes v3.1.0
   Compiling instant v0.1.10
   Compiling lock_api v0.4.4
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling indexmap v1.7.0
   Compiling yaml-rust v0.4.5
   Compiling textwrap v0.14.2
   Compiling vte v0.3.3
   Compiling walkdir v2.3.2
   Compiling heck v0.3.3
   Compiling strip-ansi-escapes v0.1.0
   Compiling aho-corasick v0.7.18
   Compiling quote v1.0.9
   Compiling getrandom v0.2.3
   Compiling signal-hook-registry v1.4.0
   Compiling parking_lot_core v0.8.3
   Compiling mio v0.7.13
   Compiling which v4.2.2
   Compiling dirs-sys-next v0.1.2
   Compiling atty v0.2.14
   Compiling remove_dir_all v0.7.0
   Compiling rand_core v0.6.3
   Compiling parking_lot v0.11.1
   Compiling directories-next v2.0.0
   Compiling regex v1.5.4
   Compiling rand_chacha v0.3.1
   Compiling signal-hook-mio v0.2.1
   Compiling rand v0.8.4
   Compiling shellwords v1.1.0
   Compiling crossterm v0.20.0
   Compiling tempfile v3.2.0
   Compiling edit v0.1.3
   Compiling clap_derive v3.0.0-beta.4
   Compiling thiserror-impl v1.0.26
   Compiling thiserror v1.0.26
   Compiling clap v3.0.0-beta.4
error[E0658]: arbitrary expressions in key-value attributes are unstable
 --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/lib.rs:8:10
  |
8 | #![doc = include_str!("../README.md")]
  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #78835 <https://github.com/rust-lang/rust/issues/78835> for more information

error[E0658]: use of unstable library feature 'osstring_ascii'
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/parse/matches/matched_arg.rs:130:19
    |
130 |                 v.eq_ignore_ascii_case(val)
    |                   ^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #70516 <https://github.com/rust-lang/rust/issues/70516> for more information

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0658`.
error: could not compile `clap`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `navi v2.17.1`, intermediate artifacts can be found at `/tmp/cargo-installKHBwO3`

Caused by:
  build failed

README.md

I guess this is an error on clap's end.

unstable feature

Apparently, you need Rust stable 1.53+ to use this feature, or older Rust unstable versions.

Apparently yes, just tried in another machine to update rust and install navi, and it worked fine.
My machine:

OS: Ubuntu 21.04
Shell Version: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
Cargo Version: 1.51.0

Working machine:

OS: Ubuntu 20.04.2 LTS
Shell Version: GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
Cargo Version: 1.54.0

Since I installed cargo from apt-get, then I must uninstall it, and reinstall from rustup right?

It's odd that in your last logs I still see clap beta4, even thought I downgraded it to beta2 in the 2.17.1 version 🤔
Maybe I forgot to update master before releasing the new version 🤔

I haven't updated my cargo version in my machine yet, so if you want to I can verify again if the instalation works.

Would you mind cloning the repo and trying to run cargo build on it?
If it works then edit Cargo.toml and bump clap back to beta4 and trying building it again, just to confirm if it fails again.
Thanks!

Would you mind cloning the repo and trying to run cargo build on it?
If it works then edit Cargo.toml and bump clap back to beta4 and trying building it again, just to confirm if it fails again.
Thanks!

Building with clap = "3.0.0-beta.2" works and but breaks with clap = "3.0.0-beta.4"

@denisidoro here the build works with clap = "3.0.0-beta.2", but fails with "3.0.0-beta.4". Surprisingly though, when I change it to "3.0.0-beta.3" or "3.0.0-beta.2" it still shows "3.0.0-beta.4" during build, even though I did cargo clean before calling cargo build again.

Just checked that the Cargo.lock file is always being generated with "3.0.0-beta.4" even if I delete it. Tried to do cargo update -p clap and cargo update, still the build tries to use clap v3.0.0-beta.4.

Thank you for troubleshooting it!
I was able to reproduce the problem.
I've just learned that in Cargo.toml, "3.0.0-beta.2" = "^3.0.0-beta.2", which explains what you're saying.
The bad news is that I'm trying a lot of different configurations (such as "<=3.0.0-beta.2") but I'm always getting the errors when trying to compile project.

I've just learned that in Cargo.toml "3.0.0-beta.2" = "^3.0.0-beta.2", which explains what you're seeing.

This is actually bad. There should be some way to specify down to the smallest version detail available. Maybe it is the case to open a feature request for cargo?
But the thing is, I downloaded the clean repo, changed to 3.0.0-beta.2 and compiled it successfully. Later tried with 3.0.0-beta.4, and since them all compilations try to use 3.0.0-beta.4. It is like some "temporary" build info get stuck somewhere, and only a clean repo will do it right.

Here to report that, in my case, it's not building under both beta.2 and beta.4 of clap 3.0.0.
using rustc 1.51.0, cargo 1.51.0 ofc

Tried again in a new fresh install of updated OS
Versions:

OS: Ubuntu 21.10
Shell Version: GNU bash, version 5.1.8(1)-release (x86_64-pc-linux-gnu)
Cargo Version: 1.53.0

Additional context
Installed cargo via apt-get.
Output:
$ cargo install navi
    Updating crates.io index
  Downloaded navi v2.18.0
error: failed to parse manifest at `/home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/Cargo.toml`

Caused by:
  feature `edition2021` is required

  consider adding `cargo-features = ["edition2021"]` to the manifest

After adding cargo-features = ["edition2021"] to the manifest, it threw error with clap again
   Compiling regex v1.5.4
   Compiling clap v3.0.0-rc.7
error[E0658]: arbitrary expressions in key-value attributes are unstable
 --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-rc.7/src/lib.rs:8:39
  |
8 | #![cfg_attr(feature = "derive", doc = include_str!("../README.md"))]
  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #78835 <https://github.com/rust-lang/rust/issues/78835> for more information

   Compiling parking_lot v0.11.2
error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `clap`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `navi v2.18.0`, intermediate artifacts can be found at `/tmp/cargo-installgQNDij`

Caused by:
  build failed

Any thoughts?

Ok, so I changed cargo installation from apt to rustup (curl https://sh.rustup.rs -sSf | sh as recommended here), which gave me cargo 1.57.0 (b2e52d7ca 2021-10-21). Tried to install navi again and
$ cargo install navi
    Updating crates.io index
  Installing navi v2.18.0
   Compiling libc v0.2.112
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.34
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.82
   Compiling memchr v2.4.1
   Compiling log v0.4.14
   Compiling autocfg v1.0.1
   Compiling signal-hook v0.3.13
   Compiling ppv-lite86 v0.2.15
   Compiling parking_lot_core v0.8.5
   Compiling serde_derive v1.0.132
   Compiling smallvec v1.7.0
   Compiling scopeguard v1.1.0
   Compiling serde v1.0.132
   Compiling hashbrown v0.11.2
   Compiling either v1.6.1
   Compiling linked-hash-map v0.5.4
   Compiling anyhow v1.0.51
   Compiling remove_dir_all v0.5.3
   Compiling arrayvec v0.5.2
   Compiling bitflags v1.3.2
   Compiling regex-syntax v0.6.25
   Compiling utf8parse v0.2.0
   Compiling strsim v0.10.0
   Compiling lazy_static v1.4.0
   Compiling termcolor v1.1.2
   Compiling same-file v1.0.6
   Compiling textwrap v0.14.2
   Compiling ryu v1.0.9
   Compiling instant v0.1.12
   Compiling lock_api v0.4.5
   Compiling indexmap v1.7.0
   Compiling yaml-rust v0.4.5
   Compiling walkdir v2.3.2
   Compiling aho-corasick v0.7.18
   Compiling os_str_bytes v6.0.0
   Compiling quote v1.0.10
   Compiling getrandom v0.2.3
   Compiling signal-hook-registry v1.4.0
   Compiling mio v0.7.14
   Compiling dirs-sys-next v0.1.2
   Compiling which v4.2.2
   Compiling atty v0.2.14
   Compiling remove_dir_all v0.7.0
   Compiling regex v1.5.4
   Compiling rand_core v0.6.3
   Compiling vte_generate_state_changes v0.1.1
   Compiling directories-next v2.0.0
   Compiling parking_lot v0.11.2
   Compiling clap v3.0.0-rc.7
   Compiling rand_chacha v0.3.1
   Compiling signal-hook-mio v0.2.1
   Compiling shellwords v1.1.0
   Compiling vte v0.10.1
   Compiling rand v0.8.4
   Compiling crossterm v0.22.1
   Compiling strip-ansi-escapes v0.1.1
   Compiling tempfile v3.2.0
   Compiling thiserror-impl v1.0.30
   Compiling edit v0.1.3
   Compiling thiserror v1.0.30
   Compiling serde_yaml v0.8.23
   Compiling navi v2.18.0
error[E0432]: unresolved import `clap::crate_version`
 --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:7:12
  |
7 | use clap::{crate_version, AppSettings, Parser, Subcommand};
  |            ^^^^^^^^^^^^^ no `crate_version` in the root

error: cannot find derive macro `Parser` in this scope
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:58:17
   |
58 | #[derive(Debug, Parser)]
   |                 ^^^^^^
   |
note: `Parser` is imported here, but it is only a trait, without a derive macro
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:7:40
   |
7  | use clap::{crate_version, AppSettings, Parser, Subcommand};
   |                                        ^^^^^^

error: cannot find attribute `clap` in this scope
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:59:3
   |
59 | #[clap(after_help = "\x1b[0;33mMORE INFO:\x1b[0;0m
   |   ^^^^
   |
   = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:92:3
   |
92 | #[clap(setting = AppSettings::AllowLeadingHyphen)]
   |   ^^^^
   |
   = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:93:3
   |
93 | #[clap(version = crate_version!())]
   |   ^^^^
   |
   = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
  --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:96:7
   |
96 |     #[clap(short, long, env = env_var::PATH)]
   |       ^^^^
   |
   = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:100:7
    |
100 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:104:7
    |
104 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:108:7
    |
108 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:112:7
    |
112 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:116:7
    |
116 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:120:7
    |
120 |     #[clap(short, long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:124:7
    |
124 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:128:7
    |
128 |     #[clap(long)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:132:7
    |
132 |     #[clap(long, possible_values = FINDER_POSSIBLE_VALUES, case_insensitive = true)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:135:7
    |
135 |     #[clap(subcommand)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find derive macro `Parser` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:145:17
    |
145 | #[derive(Debug, Parser)]
    |                 ^^^^^^
    |
note: `Parser` is imported here, but it is only a trait, without a derive macro
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:7:40
    |
7   | use clap::{crate_version, AppSettings, Parser, Subcommand};
    |                                        ^^^^^^

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:150:11
    |
150 |         #[clap(possible_values = FUNC_POSSIBLE_VALUES, case_insensitive = true)]
    |           ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:157:11
    |
157 |         #[clap(subcommand)]
    |           ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:161:7
    |
161 |     #[clap(setting = AppSettings::Hidden)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:167:7
    |
167 |     #[clap(setting = AppSettings::Hidden)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:177:7
    |
177 |     #[clap(setting = AppSettings::Hidden)]
    |       ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:181:11
    |
181 |         #[clap(possible_values = WIDGET_POSSIBLE_VALUES, case_insensitive = true, default_value = "bash")]
    |           ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find attribute `clap` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:186:11
    |
186 |         #[clap(possible_values = INFO_POSSIBLE_VALUES, case_insensitive = true)]
    |           ^^^^
    |
    = note: `clap` is in scope, but it is a crate, not an attribute

error: cannot find derive macro `Subcommand` in this scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:191:17
    |
191 | #[derive(Debug, Subcommand)]
    |                 ^^^^^^^^^^
    |
note: `Subcommand` is imported here, but it is only a trait, without a derive macro
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:7:48
    |
7   | use clap::{crate_version, AppSettings, Parser, Subcommand};
    |                                                ^^^^^^^^^^

error[E0599]: no function or associated item named `parse` found for struct `cli::ClapConfig` in the current scope
   --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/navi-2.18.0/src/config/cli.rs:141:15
    |
94  | pub(super) struct ClapConfig {
    | ---------------------------- function or associated item `parse` not found for this
...
141 |         Self::parse()
    |               ^^^^^ function or associated item not found in `cli::ClapConfig`
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `parse`, perhaps you need to implement it:
            candidate #1: `Parser`

Some errors have detailed explanations: E0432, E0599.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `navi` due to 26 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `navi v2.18.0`, intermediate artifacts can be found at `/tmp/cargo-installiHnOQe`

Caused by:
  build failed

Duplicate of #650
Try running this instead:
cargo install --locked navi

Hi there. Got the same problem. Is it possible to put this information to readme.


missing required settings

Hello! thank you so much for the new plugin.
But I have some problems installing the new plugin whether through BRAT or manually.
Through BRAT
It can be registered by BRAT, but just after the BRAT's message says that the new plugin has been registered successfully, there's another message says "Visual Crossing Weather plugin is missing required settings. Please configure the plugins settings."

I just do the steps as you said:

copy the link
use the command "Add a plugin for testing", and paste the link
click "Add Plugin"
then there are two message boxes that I mentioned above

Manual
I download the two files in the latest release 0.2.1, but that doesn't work.
Actually, I'm not able to see what's in the plugin setting page, because there's nothing.
I wonder if there are some conflicts with other plugins or I just missed some necessary steps.
I appreciate your upcoming reply!

You need to go into the plugins settings and add your API key and set your primary location. Also you will need to add an exclude folder as well (will use your template folder if it is detected). Until these are filled in the plugin can not work. The warning message at first startup is shown to everyone when first installed as the plugin needs that information in order to function.
You say you can not see the settings? That should never happen? What OS are you using and which version of Obsidian? It has been tested under Windows and Linux but not Mac. It currently is not supported for mobile yet but even if you managed to install it on mobile you should still be able to see the settings page. The only way you would not see the settings page is if it did not fully install. Try looking in the plugins settings folder and verify that the files main.js and manifest.json are there. You can find this folder in (path to your vault)/.obsidian/plugins/visual-crossing-weather. The .obsidian sub-folder is a hidden folder so you will need to turn on 'show hidden folders' in your file manager. The fact that you are getting the missing settings warning tells me that at least the main.js file installed correctly but it may not have installed the manifest.json file. Both are required.
Let me know what you see in that folder, William.

Just uploaded a new version 0.2.2
Update is not related to your issue (still not sure what is happening there), but see if Brat actually updates it successfully or not.
Thanks, William.

Thanks for your reply!
I use Win11 23H2，and the obsidian version is v1.6.7.
After I install vc-weather through BRAT I can find the two files main.js and manifest.json under the folder (path to the vault)/.obsidian/plugins/visual-crossing-weather.
I tried to install vc-weather in a virtual machine using Win10 22H2(which has not installed obsidian before)，but the settings page is still blank. And I asked my friend(Win11 23H2, v1.6.7) to try it, and he got the same result.

I just tested it on Windows 10 (I use Linux) and it works fine for me. From the settings menu does the plugin appear in the list of plugins when you select Community plugins on the left (at the bottom of options section)? Does the plugin name appear at all in the list on the left under the Community plugins section?
Can you do me a favor and test it on a new empty vault? Brat is not required for this method and it will eliminate any possible conflicts with other plugins.
Create an empty folder anywhere you like and in Obsidian click on the vault name in the bottom left, then select manage vaults from the menu, then from the popup window select the second option Open folder as vault and select the empty folder you just created. Now exit Obsidian and run your file manager and copy the folder visual-crossing-weather from the vault you currently have the plugin installed to and paste it into (path to the new empty vault)/.obsidian/plugins. You will likely have to create the folders .obsidian and the sub-folder in .obsidian plugins first as they probably will not exist.
Now open Obsidian again with the new empty vault selected and enable the plugin in Obsidians settings. If you can access the plugins settings now then the issue is caused by something else and I can help you track it down.
Please let me know if this works for you. Thanks, William.

It just occured to me that you can just create the data.json file yourself. In notepad paste in the following and put in your API key where it says to and change the location_one key, Edmonton to the name of your city. If you created the empty vault as suggested above you will also need to create a folder inside the vault named Templates or change the key excludeFolder from "Templates" to your Templates folder in your original vault. After doing this restart Obsidian and see if the plugin loaded or not. If successful you should see the the weather information in the statusbar.
{
  "apikey": "YOUR API KEY HERE",
  "location_one": "Edmonton",
  "location_two": "",
  "location_three": "",
  "location_four": "",
  "location_five": "",
  "units": "metric",
  "excludeFolder": "Templates",
  "excludeFolder2": "",
  "updateFrequency": "15",
  "statusbarActive": true,
  "statusbarCycle": true,
  "weatherTemplate1SB": "🔸%address%: %dow2-now% %month3-now% %date1-now%🔸High: %tempmax-today%° Low: %tempmin-today%°🔸Currently: %conditions% Temp: %temp%° Feels Like: %feelslike%°🔸",
  "weatherTemplate2SB": "🔸%address%: %dow2-in1day% %month3-in1day% %date1-in1day%🔸High: %tempmax-in1day%° Low: %tempmin-in1day%°🔸Clouds: %cloudcover-in1day% Probabilty of precipitation: %precipprob-in1day% (%preciptype-in1day%)🔸",
  "weatherTemplate1": "Short one liner\n%conditions% • Current Temp: %temp%° • Feels Like: %feelslike%°\n",
  "weatherTemplate2": "More detailed\n%address%: %dow2-now% %month4-now% %date1-now% - %hours12-now%:%mins-now% %ampm2-now%\nProbability of precipitation: %precipprob% • (%preciptype%)\nCurrent Temp: %temp%°C • Feels Like: %feelslike%°C\nWind: %windspeed-today% km/h from the %winddirstr-today% with gusts up to %windgust-today% km/h\nSunrise: %sunrise-today% • Sunset: %sunset-today%\n",
  "weatherTemplate3": "Historical DIV\n %month4-now% %date1-now% %year1-now% • %hours12-now%:%mins-now% %ampm2-now% • %conditions%\n Recorded Temp: %temp% • Felt like: %feelslike%\n Wind: %windspeed-today% km/h from the %winddirstr-today% with gusts up to %windgust-today% km/h\n Sunrise: %sunrise-today% • Sunset: %sunset-today%",
  "weatherTemplate4": "Current DIV\n %month4-now% %date1-now% %year1-now% • %hours12-now%:%mins-now% %ampm2-now% • %conditions%\n Current Temp: %temp% • Feels like: %feelslike%\n Wind: %windspeed-today% km/h from the %winddirstr-today% with gusts up to %windgust-today% km/h\n Sunrise: %sunrise-today% • Sunset: %sunset-today%",
  "weatherTemplate5": "Current DIV Text\n%month4-now% %date1-now% %year1-now% • %hours12-now%:%mins-now% %ampm2-now% • %conditions%\nCurrent Temp: %temp% • Feels like: %feelslike%\nWind: %windspeed-today% km/h from the %winddirstr-today% with gusts up to %windgust-today% km/h\nSunrise: %sunrise-today% • Sunset: %sunset-today%",
  "weatherTemplate6": "",
  "weatherTemplate7": "",
  "weatherTemplate8": "Today with next 3 days in a table\n|         |  Today
%month3-today% %date1-today%   |  %dow1-in1day%
%month3-in1day% %date1-in1day%  |  %dow1-in2days%
%month3-in2days% %date1-in2days%  |  %dow1-in3days%
%month3-in3days% %date1-in3days%  |\n| ------- | :---------------: | :---------------: | :---------------: | :---------------: |\n| High    | **%tempmax-today%°C**          | **%tempmax-in1day%°C**          | **%tempmax-in2days%°C**          | **%tempmax-in3days%°C**          |\n| Low     | **%tempmin-today%°C**          | **%tempmin-in1day%°C**          | **%tempmin-in2days%°C**          | **%tempmin-in3days%°C**          |\n| Skies   | %conditions-today%             | %conditions-in1day% | %conditions-in2days%           | %conditions-in3days%           |\n| PoP     | %precipprob-today%                | %precipprob-in1day%               | %precipprob-in2days%               | %precipprob-in2days%               |\n"
}

community plugin
The plugin can be seen in the settings menu (I do this in a new vault):

new vault
I created a new vault, and created a folder named plugins under ./obsidian, then I copied the folder visual-crossing-weather into the new vault's plugins folder from the former vault, but the page is still blank as the picture pasted above.
create data.json myself
I created the file data.json and fill in my api-key and the city name, then it work! Now I can see the weather information in the statusbar :

and "select template to insert" function also works perfectly.
So it seems that the only problem is that the settings page cannot come out.🤔

I was finally able to reproduce this. On the left under Core plugins in the Templates core plugin, if a Template folder, or Date format, or Time format is not defined then the settings page is blank. When any of those settings are defined, Obsidian creates a file templates.json in the .obsidian folder. My plugin uses this file to get the users template folder to auto fill the excludeFolder key in the plugins settings. You can expect a fix for this very soon.
In the meantime open the settings for the Core plugin Templates and define any setting. This will generate the Templates.json file in the .obsidian folder. In the screenshot I set the folder to Templates. The folder does not actually have to exist in the vault, it is just there to create the settings template.json file.
Core plugins - Templates screenshot...

You can ignore the work around in my previous post. This should be fixed in v0.2.3 which I just uploaded. Thanks for bringing this to my attention. Never would have found this otherwise. Let me know if the issue is fixed for you.
Thanks, William.

Thanks for fixing the problem! Now the settings page is shown fully, and all functions work perfectly!
And thank you for bringing the great plugin! Good luck with your job🌹

Thanks for the feedback. If you have any other issues, just let me know


types or models subpackage

Use in both the webapi and the application
https://pydantic-docs.helpmanual.io/usage/validators/

https://json-schema.org/implementations.html#validator-python


The example query-builder.js not completing

When running all the examples at once, as described in the README, or when running query-builder.js alone, execution dies near the end of query-builder.js:
mwooldri$ node examples/query-builder.js
Query documents with the Query Builder
Mayotte at /countries/mf.json
Seychelles at /countries/se.json
Morocco at /countries/mo.json
Burkina Faso at /countries/uv.json
Algeria at /countries/ag.json
Djibouti at /countries/dj.json
Cote d'Ivoire at /countries/iv.json
Mauritania at /countries/mr.json
Guinea at /countries/gv.json
Mali at /countries/ml.json
mwooldri$

It should end like this:
...
Mali at /countries/ml.json
Niger at /countries/ng.json
done
mwooldri$

All other examples complete successfully when run by themselves.
When query-builder.js is edited to use a promise instead of a stream (similar to how query-by-example.js uses a promise), the script completes successfully. So it appears to be an issue with streams in query-builder.js.
I'm running Node.js v6.5.0 and npm v3.10.3.

@ayuwono, with this fix we've refactored how we check if a multipart object stream is finished. Can you add the following test to check that this works with all cases?
Get results that have two documents with metadata only (no content) as an object stream. (This will test the situation when metadata is the last part in the multipart queue.)
Thanks to @ehennum for his help on this!

Hi @wooldridge,
Is this fixed? I tried to run the example query-builder.js and it's still not completing
[ayuwono@ayuwono-z620 node-client-api]$ node examples/query-builder.js
Query documents with the Query Builder
Mayotte at /countries/mf.json
Seychelles at /countries/se.json
Morocco at /countries/mo.json
Burkina Faso at /countries/uv.json
Algeria at /countries/ag.json
Djibouti at /countries/dj.json
Cote d'Ivoire at /countries/iv.json
Mauritania at /countries/mr.json
Guinea at /countries/gv.json
Mali at /countries/ml.json
[ayuwono@ayuwono-z620 node-client-api]$

Update, the query-builder.js example should run like this, returning the first 10 results, so ending at "Mali at /countries/ml.json" followed by "done":
MacPro-3170:node-client-api-examples mwooldri$ node examples/query-builder.js
Query documents with the Query Builder
Mayotte at /countries/mf.json
Seychelles at /countries/se.json
Morocco at /countries/mo.json
Burkina Faso at /countries/uv.json
Algeria at /countries/ag.json
Djibouti at /countries/dj.json
Cote d'Ivoire at /countries/iv.json
Mauritania at /countries/mr.json
Guinea at /countries/gv.json
Mali at /countries/ml.json
done
MacPro-3170:node-client-api-examples mwooldri$

@wooldridge This is targeted for 9.0-2. Would you be able to take care of this?

@gvaidees Thanks for the reminder. This was targeted for 9.0-2 but @ayuwono and I were having trouble seeing the fix resolve on Linux. So I am going to push it out to 9.0-3.

Should be fixed by #422. @ayuwono, needs QA.


[DOCS] Fixed broken links

Notes for Reviewers
This PR fixes #9951
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit 548e36d03144582f74a91595ef2689dfcf643b09 at: https://65a6ada4db773710aeacb5ee--meshery-docs-preview.netlify.app

🚀 Preview for commit b41b791e37d754fd4ea0e9ea32986af707a117e8 at: https://65a6b159c7028710af919999--meshery-docs-preview.netlify.app


Directory API refactoring

This branch includes a series of changes to cleanup the Directory API.
Fixes #1294

I find it a little hard to review, it would be nice to split into smaller PRs for review. The following I think are uncontroversial and can easily be merged in a first batch:

storage: Rename VirtualDirectoryError -> DirectoryError
storage/directory.py: Remove _mark_changed() internal API.
storage/directory.py: Removed mark_unmodified/list_modified_paths
storage/directory.py: Make set_deterministic_user() an internal function
storage/directory.py: Added full mypy annotations to API surface
storage/directory.py: Added declaration for abstract internal method _get_underlying_directory()
storage: Raise only DirectoryError from Directory backends
storage/directory.py: Remove "report_written" from Directory.import_files()
storage/_casbaseddirectory.py: Stop importing FileBasedDirectory
storage/directory.py: Make get_size() an internal method

I have a couple of comments on these:

storage/directory.py: Remove can_link parameter from Directory.import_files()
Even though it is currently unused, there is potential to have a similar option that uses  the move_files hint  (by passing --capture-allow-file-moves to buildbox-casd). Can be done later though.
storage/directory.py: Make Directory.export_files() an internal function
If we want to go for https://github.com/apache/buildstream/pull/1607#issuecomment-1059019265, we'll need to keep this public. Again, this can be made public later if needed (even if it's not at 2.0).

[...]

I have a couple of comments on these:
* storage/directory.py: Remove `can_link` parameter from Directory.import_files()
  Even though it is currently unused, there is potential to have a similar option that uses  the `move_files` hint  (by passing `--capture-allow-file-moves` to `buildbox-casd`). Can be done later though.

Sure I'll consider this unrelated, in any case it's highly unlikely that we would want to expose the abstract plugin API to such low level implementation details, given that the public API can never again be changed.

* storage/directory.py: Make Directory.export_files() an internal function
  If we want to go for [source.py: Split up staging functions into separate codepaths. #1607 (comment)](https://github.com/apache/buildstream/pull/1607#issuecomment-1059019265), we'll need to keep this public. Again, this can be made public later if needed (even if it's not at 2.0).

Why ? Directory.export_files() is only ever used by the core when exporting files in a virtual directory to the local filesystem, when e.g. checking out artifacts or sources, etc. Directory.import_files() of course needs to stay public.


Merge original languages category into Bible category

Closing and refusing to change this. Bible and Original Languages are distinct categories with distinct audiences, although they likely do have significant overlap. I believe it is helpful to keep them separate. For example,

Someone looking for English Bible projects may have no interest in original languages projects.
Someone looking for original languages projects may have no interest in English Bible projects.
Projects dealing with the writings of Greek/Latin church fathers would be original languages but not Bible.


Update app MQTT page

I found 1 error in the code (escaping the $SYS topic) and then I proposed some style changes for better understanding.

I change several files because I don't know how content is generated, and which files depend on which... Anyway feel free to correct me!

:+1:


Revert "Revert "Replace work serializer with a mutex in c-ares resolver" #28324"

Reverts https://github.com/grpc/grpc/pull/28324, after adding what I believe is the fix (in the second commit here):
Access to the ares_request field of grpc_resolve_address_ares_request used to be synchronized by the work serializer, but was made unsynchronized by #27858
It needs to be synchronized because, for example, when calling r->ares_requset = grpc_dns_lookup_ares(...), I/O for the request can be picked up by another thread and cause that thread to schedule on_done (where we delete r->ares_request), all before writing the return value to r->ares_request.

Looks great!

artifact/distrib failures are ruby CBF tracked in b/209603283


WIP: Close on overlay click

Fixes #1 .
When I add it to the div with themodal-backdrop class, it doesn't work as expected.

That sounds good. I've dropped the formatting changes. :)

Also, I moved it to the modal-backdrop and with some decent CSS, it's working as expected.


Create a Product data type

Dual of Coproduct. Would allow the manipulation of two (or more if nested) higher kinded types w/ typeclasses. Will make working with typeclasses easier (giving - Active, Nested, Coproduct & Product for working with HKT types).
Use cases
Use case 1
Manipulate data currently in memory aswell as data that is being recieved or loaded asynchonously in the same manner via the same data structure
Product<maybe,future,User> currentAndFuture;
Product<list,reactiveSeq,Integer> currentAndFutureSeq;

Product<maybe,future,ValdidatedUsers> users = currentAndFuture.map(this::handleUserData);

Use case 2
Manipulate data (which may be present or arriving asynchonously) and capture the core algorithm being executed on that data (via the Reader Monad). This would allow the process to be replayed with alternative values for any values that failed a later validation stage.

Product<maybe,higher<reader,Integer>,Integer> dataAndAlgo;
Product<maybe,higher<reader,User>,User> usersAndAlgo = currentAndFuture.map(this::loadUserData);

Released in 2.1.0


breadcrumbs_on_rails v4 incompatibility

Version 4 was just released. With the new version installed, the line below raises an error accessing the main admin page because @breadcrumbs is nil.
https://github.com/owen2345/camaleon-cms/blob/504cebf20a29439ae1a7338c2973ed564ea805ad/app/helpers/camaleon_cms/admin/breadcrumb_helper.rb#L5

I think the issue is here:
https://github.com/weppos/breadcrumbs_on_rails/commit/1ded703f1008702b31724023184f868ffa9c22c6#diff-5b322a7817767c51400e5b49df281b4aL31


Error: Invalid data: Missing delimiter ":" [0x3a]

Hardware: Raspberry Pi 2
Operating System: Ubuntu 16.04 LTS
Nodejs: v6.9.2
WebTorrent: v1.0.5
Aplication: MEAN stack
Source Code: https://github.com/ibocon/project-Myblog
I am trying to download video by using Web-Torrent.
My code is working perfectly on Windows 7.
However, my code does not working when I run on Ubuntu.
This is error stack,
/home/gun/project-Myblog/animation/src/update.js:168
        if(err) throw err;
                ^

Error: Invalid data: Missing delimiter ":" [0x3a]
    at Function.decode.find (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:61:9)
    at Function.decode.buffer (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:106:20)
    at Function.decode.dictionary (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:74:17)
    at Function.decode.next (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:41:21)
    at Function.decode.dictionary (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:74:36)
    at Function.decode.next (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:41:21)
    at Object.decode (/home/gun/project-Myblog/animation/node_modules/bencode/lib/decode.js:30:17)
    at decodeTorrentFile (/home/gun/project-Myblog/animation/node_modules/parse-torrent-file/index.js:17:23)
    at parseTorrent (/home/gun/project-Myblog/animation/node_modules/parse-torrent/index.js:32:12)
    at parseOrThrow (/home/gun/project-Myblog/animation/node_modules/parse-torrent/index.js:89:23)
    at /home/gun/project-Myblog/animation/node_modules/parse-torrent/index.js:79:7
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)

I guess my code does not matter. Because it works on Windows 7.
Thus, I have no idea why it does not working on Ubuntu.

I'm closing this issue because it's been a while without a response from the issue opener. It's not possible to debug this issue without additional information. If this is still an issue, please leave a comment or open a new issue.

Just ran into this issue.. I'm not on an ARM CPU, and am running the latest version of node.


Use Nix to manage all dependencies in CI

Converts our CI environment to utilize the Nix devShell environment for running everything.
The only wrinkle that I have locally at the moment is that when I attempt to spin up my devShell, I get:
error: builder for '/nix/store/lq7mg8cziypsydsygx3j83ip83kqns9f-playwright-browsers-1.40.0.drv' failed with exit code 1;
       last 10 log lines:
       >     at TLSSocket._finishInit (node:_tls_wrap:1017:8)
       >     at ssl.onhandshakedone (node:_tls_wrap:803:12) {
       >   code: 'SELF_SIGNED_CERT_IN_CHAIN'
       > }
       > Failed to install browsers
       > Error: Failed to download Chromium 120.0.6099.28 (playwright build v1091), caused by
       > Error: Download failure, code=1
       >     at ChildProcess.<anonymous> (/nix/store/awkhn463308xl3vdp6h754ffk67fpmww-playwright-driver-1.40.0/package/lib/server/registry/browserFetcher.js:91:16)
       >     at ChildProcess.emit (node:events:517:28)
       >     at ChildProcess._handle.onexit (node:internal/child_process:292:12)
       For full logs, run 'nix log /nix/store/lq7mg8cziypsydsygx3j83ip83kqns9f-playwright-browsers-1.40.0.drv'.

Can one of you folks check and see if you get the same error locally?

Can one of you folks check and see if you get the same error locally?

Works here:

@fubhy - great! That means it's probably just an issue with my local Nix configuration, which I suspected anyways. Thank you for double checking!
@fubhy @mikearnaldi - once you folks give the 👍 to this, I think we can merge it.

Unfortunately it is broken on mine. Same error as Max.
michaelarnaldi@MAC-8938DF effect %
direnv: loading ~/repositories/effect/.envrc
direnv: using flake
error (ignored): error: SQLite database '/Users/michaelarnaldi/.cache/nix/eval-cache-v5/2b753f9a50cd615e963d357a851fd1d3cc720bd524c1c7adc99714deee82e95b.sqlite' is busy
[1/0/1 copied (0.0/146.9 MiB), 0.0/23.8 MiB DL] fetching source from https://cache.nixos.orgdirenv: ([/Users/michaelarnaldi/.nix-profile/bin/direnv export zsh]) is taking a while to execute. Use CTRL-C to give up.
error: builder for '/nix/store/lq7mg8cziypsydsygx3j83ip83kqns9f-playwright-browsers-1.40.0.drv' failed with exit code 1;
       last 10 log lines:
       >     at TLSSocket._finishInit (node:_tls_wrap:1017:8)
       >     at ssl.onhandshakedone (node:_tls_wrap:803:12) {
       >   code: 'SELF_SIGNED_CERT_IN_CHAIN'
       > }
       > Failed to install browsers
       > Error: Failed to download Chromium 120.0.6099.28 (playwright build v1091), caused by
       > Error: Download failure, code=1
       >     at ChildProcess.<anonymous> (/nix/store/awkhn463308xl3vdp6h754ffk67fpmww-playwright-driver-1.40.0/package/lib/server/registry/browserFetcher.js:91:16)
       >     at ChildProcess.emit (node:events:517:28)
       >     at ChildProcess._handle.onexit (node:internal/child_process:292:12)
       For full logs, run 'nix log /nix/store/lq7mg8cziypsydsygx3j83ip83kqns9f-playwright-browsers-1.40.0.drv'.
error: 1 dependencies of derivation '/nix/store/9ls3jr4dr8npz5z6va7idzlrqks94434-nix-shell-env.drv' failed to build
direnv: export ~XPC_SERVICE_NAME

@IMax153 Let me know if you want to debug together to figure out why it works on mine and not on yours.

@mikearnaldi @fubhy - do you folks use nix-darwin to manage your machines?


Did not see a link to your discord

Is there a link to your discord on your xtts apps anywhere? I apologize if I just happened to pass over it

This project is not big enough to have a discord, if you want you can discuss in the official Coque group in discord.
https://discord.gg/uzPMEpM7Gv

This project is not big enough to have a discord, if you want you can discuss in the official Coqui AI ( XTTS creators ) group in discord. https://discord.gg/uzPMEpM7Gv

Okay do you have screen name on that server? I've been working with the API/DiceWords (an original program by yours truly,) and I've since decided to choose a single voice for the read outs and want to fine tune it, but have been having trouble getting a fine tune model to load up outside of collab. It trains/loads on collab, and trains but simply will not load up locally. I figured if there's someone to review things with as I head into this portion of the program, it'd be you, and obviously I'd name and link you and you will get the additional credit as the project transitions from prompts only to a larger note-lab (portable sudo-write, is the vision).


permanently adding vscode to command path on OSX

So there is an SO question related to this issue: https://stackoverflow.com/questions/29971053/how-to-open-visual-studio-code-from-the-command-line-on-osx

VSCode Version: 1.21.0
OS Version: 10.12.6

Steps to Reproduce:

Install VSCode on OSX
Follow instructions at https://code.visualstudio.com/docs/setup/mac

To manually add VS Code to your path:

cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF

then reboot computer and discover that the above does not work

Does this issue occur when all extensions are disabled?: Yes/No
I think that's not related.  Currently on OSX, the path specified does not exist.  There is a path for VSCode on OSX which is:
/Applications/Visual\ Studio.app/Contents/Resources/

but app and bin are not in there.  Running the Command Pallette install code command sets up the path like this:
/usr/local/bin/code -> /private/var/folders/2z/kh7rq7jn5l3gpbldyfg1tb4c0000gn/T/AppTranslocation/E7F7AA38-E6B4-464B-9FA3-16F7331DF248/d/Visual Studio Code.app/Contents/Resources/app/bin/code
It's frustrating to have to re-run the command pallette short cut to get code working on the command line every time the computer restarts.  Even if impossible the documentation should be updated not to give misleading information that it can be done.

Did you rename Visual Studio Code.app to Visual Studio.app?

@joaomoreno not myself

Where did you download Code from?

@joaomoreno from https://code.visualstudio.com/docs?dv=osx

If you download it again, what's the name of the app?

What do you mean? I just downloaded that exact ZIP, extracted it and inside is an application called Visual Studio Code.app. How about for you?


Update README.md

The imports were incorrect

Yo, good catch, thanks!
I'm going to fix that on my side to avoid messing with the branches.


Outsource data in its own block

Make the html file more readable.
Therefore, outsource the data in its on block

Released with version 0.93.02


Remove Beacon Files from Project and Remove Resigning of FirstResponder for GREYKeyboard to turn off AutoCorrection.

For https://github.com/google/EarlGrey/issues/56.

There are some keyboard tests that are failing on Travis which are related to this PR:
https://travis-ci.org/google/EarlGrey/jobs/119667558
https://travis-ci.org/google/EarlGrey/jobs/119667559

fyi, this breaks some keyboard tests and is on hold.

The Keyboard tests seem to be fixed in the latest CI run.


Eliminate (node) warning: possible EventEmitter memory leak detecte

Whoops, haven't been monitoring my Github account in a while. I'll take a look.


Suggesting Tray Menus

Would be an enhancement, if MUI could have a tray menu (also called system tray menu) option for desktops.  Note- could possibly be simplified as buttons inside a frame.  This is when a user right clicks the icon, there will be selectable options of what they can do.  In addition: 1) Setting for starting the main window from the icon or not (left click). 2) Have setting for tooltip or not (cursor on icon).

It's really good idea. However in Linux, there are no unity for tray icons. So it could be hard to implement for Linux.

Since we have a tray library for V, there are no requirement another tray library in V (if it's compatible with MUI). So i'm closing this issue with adding a reference this library to Readme file for see everyone who wants use tray library.


Doc URLs in README not reachable

The weblinks to the pysonDB documentation like this and this are not working: This site can't be reached.
Would be nice if they could be updated soon.

The URL's were not updated when we changed repo from my personal account to this org
You can visit this link: https://pysondb.github.io/pysonDB/
and the other routes can be accecsed by https://pysondb.github.io/pysonDB/get and https://pysondb.github.io/pysonDB/add etc
I will try to update this ASAP.

Resolved in #91


[v2] code-server crashes if the system doesn't have ifconfig or ip available

code-server version: v2

Description
If ifconfig or ip isn't on the computer/container, code-server will crash unless --disable-telemetry is set.
Steps to Reproduce

Ensure ifconfig and ip don't exist on the system
Run code-server without --disable-telemetry: it crashes
Run code-server --disable-telemetry: no crash

Possible solution
Disable telemetry with a warning if the command fails.

I tried disabling the telemetry, but it's not working properly.
When I run
code-server --disable-telemetry

I get this output
INFO  Server listening on http://localhost:8080
INFO    - No authentication
INFO    - Not serving HTTPS

And when I reach localhost:8080 from a browser, I get a blank page, and the code-server logo on the web tab. But nothing is happening.

@eVanasse This seems like an unrelated issue. If this was related code-server should've crashed before the "Server listening" log line.
Please open a new issue with the [v2] tag in the name with the full log output from code-server and the browser console logs.


Store UUID in an optimized way for InnoDB

From Karthik Appigatla on the Percona blog ("Store UUID in an optimized way"):

UUID has 36 characters which makes it bulky.
InnoDB stores data in the PRIMARY KEY order and all the secondary keys also contain PRIMARY KEY. So having UUID as PRIMARY KEY makes the index bigger which can not be fit into the memory
Inserts are random and the data is scattered.

He goes on to "explain how to store UUID in an efficient way by re-arranging timestamp part of UUID."
While, ramsey/uuid provides COMB sequential UUIDs, these do not rearrange the timestamp part of the UUID to optimize for storage in InnoDB. I'd like to consider the addition of a codec that would help optimize UUIDs as primary keys for the InnoDB engine. Perhaps other database engines require similar optimization techniques, so we should thing about those, as well.
The problem with rearranging the timestamp part of a UUID is that the version number is lost, since it is shuffled around, and there would be no way to determine the original state of the UUID. Whether or not this is important is up for debate.

The problem with rearranging the timestamp part of a UUID is that the version number is lost, since it is shuffled around, and there would be no way to determine the original state of the UUID.

But you rearrange in a fixed way, and keep the version number, right? So if your just rearranging in a fixed way, you can still convert back to the original?
This php lib also does this I think: https://github.com/vend/mysql-uuid

In the Percona blog post, the version number (1) gets rearranged so that it appears first, and now "a" appears in the version number spot of the UUID. If reading it later, there's no indication of how this UUID was created. It no longer conforms to RFC 4122, and since it doesn't tell us it's variant or version, we don't know that it was rearranged specifically for MySQL.
However, from an optimization standpoint, this may not be of concern to anyone.

BTW, thanks for the link to vend/mysql-uuid. I'll take a look at their approach, but since it's licensed under GPL3, I won't be able to require it or link against it from ramsey/uuid.

Okay I was under the impression that you wanted it more like a encoder/decoder, for just the bytes. A rearranged string version isn't really useful, right? If you want to optimize like this, you're going to use the binary version anyways.
Regular UUID v1 -> getBytes() -> Rearranged binary for storage
Rearranged binary -> fromBytes() -> original UUID v1
So you would only change the encodeBinary/decodeBytes, to rearrange the fields. Not the actual UUID itself. And your application would just generate (en perhaps decode) original v1 UUIDs, and the string version is the same.
But maybe I'm misunderstanding the point and thinking to simple about this.

We're using ordered variation of uuid1 (as in Percona blog) for few months. One thing I need to say is that I don't see any reason why we would like to determine version of uuid which is used. IMO you shouldn't care about it :)
Generating ordered uuid should be optional.
Btw - we've done a simple wrapper around this package to generate ordered uuids (https://github.com/DeSmart/support/blob/master/src/Uuid.php#L22).

I agree that you shouldn't really care about whether the optimized version is RFC compliant, because this optimized version should not be exposed.
Ideally, you'd use the optimized codec to read/write the value in MySQL, but as soon as you try to convert to/from string outside of the data layer, you should use the regular string codec to stay compliant with the RFC.
This is probably a different issue, but it could be a nice feature for v4.0 to ease use of different codecs based on the context where the conversion is done. It's currently possible, but not clearly documented, and not facilitated by the global design.

@radmen You generate the string, but you're still storing as BINARY(16) right?
I've made an example PR to optimize the binary output in a new codec, but keep the strings the same. No data is lost (so version number is kept) and converting betweens optimized <-> original uuid string is possible. Let me know if that is what you were thinking about and fits your use-cases!

@barryvdh Postgresql has dedicated uuid field type so we're just using it. In case of MySQL we were storing this as.. string.
Your PR looks legit, although I'm not the author of uuid package :)

Moved this out of the 4.0.0 milestone. There's no reason this codec can't go out in an earlier release.
@aztech-dev, I agree about the need for a better design for using codecs in v4.0.


Fix tp_canvas_item typo in _draw_rect_region

Fixes a typo in _draw_rect_region of Texture2D

Well spotted, thank you! 🎉


140 dev chain of asyn derivation

This PR further expends the asynchronous part of the derivation framework by enabling a cascade of asynchronous derivations, a minimum working example is provided in https://github.com/cambridge-cares/TheWorldAvatar/pull/92.

I can see that you are still keeping the little queries, i.e.
line 591: List inputsAndDerived = this.sparqlClient.getInputsAndDerived(instance);
line 621: List inputs = this.sparqlClient.getInputs(instance);
line 624: if (isDerivedAsynchronous(instance))
line 626: if (isOutOfDate(instance, inputs))
I think hasStatus and markAsPendingUpdate can be combined into a single query. The rule of thumb is to make as little connection to the triple-store as possible.
Is it not possible to query all these in a single query before you start traversing the graph?
Also you need to remember to revert the base lib version number.

The same applies to checkAtPendingUpdate, I believe you can query all the information you need in a single query, including the inputs, status and timestamps. Looping through each derivation and querying the information for each derivation separately in a loop will slow down really quickly as you have more derivations.
In cleanUpFinishedDerivationUpdate, I think it is possible to replace getNewDerivedIRI and getDerivedEntitiesAndUpstreamDerivation with a single query.

I can see that you are still keeping the little queries, i.e. line 591: List inputsAndDerived = this.sparqlClient.getInputsAndDerived(instance); line 621: List inputs = this.sparqlClient.getInputs(instance); line 624: if (isDerivedAsynchronous(instance)) line 626: if (isOutOfDate(instance, inputs))
I think hasStatus and markAsPendingUpdate can be combined into a single query. The rule of thumb is to make as little connection to the triple-store as possible.
Is it not possible to query all these in a single query before you start traversing the graph?
Also you need to remember to revert the base lib version number.

The small queries got kept as we need to retrieve the most up-to-date information from the knowledge graph under the asynchronous operation mode - this is particularly important as there are more than one agent that is able to modify the status of the derivation: the agent who requested the update (updateDerivationAsyn), and the agent who monitors the derivation (monitorDerivation). Caching the whole graph before starting traversing has the risk of making decisions based on outdated information, i.e. the agent monitoring the derivation updated the knowledge graph right after the caching and before the traversing start. Also, the performance issue is less of a concern in asynchronous operation mode as the updateDerivationAsyn method is only marking status but not firing HTTP requests - the job is done automatically by the agent who monitors the derivation.
hasStatus is kept separate from markAsPendingUpdate as hasStatus is also used within deleteStatus method.
Thanks for the reminder about the base lib version number, I will change that once the PR is approved and before merge it back to develop.

The same applies to checkAtPendingUpdate, I believe you can query all the information you need in a single query, including the inputs, status and timestamps. Looping through each derivation and querying the information for each derivation separately in a loop will slow down really quickly as you have more derivations.
In cleanUpFinishedDerivationUpdate, I think it is possible to replace getNewDerivedIRI and getDerivedEntitiesAndUpstreamDerivation with a single query.

The small queries in checkAtPendingUpdate were kept due to the same reason - to ensure the decision is made based on the most updated information in the knowledge graph. As the asynchronous operation mode is designed for long jobs, the number of derivations in the chain is not considered to be a lot in this round of development. Also for long jobs, the time spent querying the knowledge graph is less of an issue - the time interval between issuing an update request and completing the job is long. However, the job can be completed at any time, so it's important to keep the latest information while making decisions.
You are right, I agree it's possible to combine the getNewDerivedIRI and getDerivedEntitiesAndUpstreamDerivation into one single query. Only one agent has access to status IRI at this point in the lifecycle, so storing some information locally is helpful in reducing the operating time. In fact, this is already done partially as getDerivedEntitiesAndUpstreamDerivation stores its query results in a List of Entity instances.

I can see that you are still keeping the little queries, i.e. line 591: List inputsAndDerived = this.sparqlClient.getInputsAndDerived(instance); line 621: List inputs = this.sparqlClient.getInputs(instance); line 624: if (isDerivedAsynchronous(instance)) line 626: if (isOutOfDate(instance, inputs))
I think hasStatus and markAsPendingUpdate can be combined into a single query. The rule of thumb is to make as little connection to the triple-store as possible.
Is it not possible to query all these in a single query before you start traversing the graph?
Also you need to remember to revert the base lib version number.

The small queries got kept as we need to retrieve the most up-to-date information from the knowledge graph under the asynchronous operation mode - this is particularly important as there are more than one agent that is able to modify the status of the derivation: the agent who requested the update (updateDerivationAsyn), and the agent who monitors the derivation (monitorDerivation). Caching the whole graph before starting traversing has the risk of making decisions based on outdated information, i.e. the agent monitoring the derivation updated the knowledge graph right after the caching and before the traversing start. Also, the performance issue is less of a concern in asynchronous operation mode as the updateDerivationAsyn method is only marking status but not firing HTTP requests - the job is done automatically by the agent who monitors the derivation.
hasStatus is kept separate from markAsPendingUpdate as hasStatus is also used within deleteStatus method.
Thanks for the reminder about the base lib version number, I will change that once the PR is approved and before merge it back to develop.

It really depends on which process is quicker (monitoring / updating). Is the monitoring agent so fast that the graph gets updated halfway through a update process? Traversing the graph in memory is super quick (after the query), I'd just execute the update process again if we are worried that something is out-of-date. In our experience firing the HTTP requests is not the bit that is slowing down, it is the bit that queries for the timestamps and inputs each time we traverse down the graph.

I can see that you are still keeping the little queries, i.e. line 591: List inputsAndDerived = this.sparqlClient.getInputsAndDerived(instance); line 621: List inputs = this.sparqlClient.getInputs(instance); line 624: if (isDerivedAsynchronous(instance)) line 626: if (isOutOfDate(instance, inputs))
I think hasStatus and markAsPendingUpdate can be combined into a single query. The rule of thumb is to make as little connection to the triple-store as possible.
Is it not possible to query all these in a single query before you start traversing the graph?
Also you need to remember to revert the base lib version number.

The small queries got kept as we need to retrieve the most up-to-date information from the knowledge graph under the asynchronous operation mode - this is particularly important as there are more than one agent that is able to modify the status of the derivation: the agent who requested the update (updateDerivationAsyn), and the agent who monitors the derivation (monitorDerivation). Caching the whole graph before starting traversing has the risk of making decisions based on outdated information, i.e. the agent monitoring the derivation updated the knowledge graph right after the caching and before the traversing start. Also, the performance issue is less of a concern in asynchronous operation mode as the updateDerivationAsyn method is only marking status but not firing HTTP requests - the job is done automatically by the agent who monitors the derivation.
hasStatus is kept separate from markAsPendingUpdate as hasStatus is also used within deleteStatus method.
Thanks for the reminder about the base lib version number, I will change that once the PR is approved and before merge it back to develop.

It really depends on which process is quicker (monitoring / updating). Is the monitoring agent so fast that the graph gets updated halfway through a update process? Traversing the graph in memory is super quick (after the query), I'd just execute the update process again if we are worried that something is out-of-date. In our experience firing the HTTP requests is not the bit that is slowing down, it is the bit that queries for the timestamps and inputs each time we traverse down the graph.

The monitorDerivation process and subsequently executing a job is (much) slower by design, but the thing is that the job can be done at any point in time. As it's not designed for the agent requesting the update (updateDerivationAsyn) to get the information it accessed immediately, the same agent will need to run updateDerivationAsyn multiple times (maybe periodically) before the information it requested is updated and can be used for other purposes. So it's possible that the knowledge graph got updated during the agent running the updateDerivationAsyn - if we cache the information in one query, there is a risk of the agent messing up the status of the derivation with outdated information, which will be difficult to resolve.

In DerivationClient.java, method updateDerivationAsyn, you have removed some code and put instead a statement "if isDerivedAsynchronous" with no else clause... This makes me wonder, does this code still work for synchronous derivations? Remember, we need to get to a point where we can use derivations both in synchronous and asynchronous mode. Please make sure we have sufficient unit/regression/integration test coverage so that we can be sure the code works in both modes...

Is there a difference between an "upstream" and a "previous" derivation? I'm not sure there is. If there is, then I think this should be clarified (at least in a comment, preferably in clearer variable names). If not, I'd prefer these to be consistently named "upstream" everywhere. Otherwise it's just confusing...

In DerivationClient.java, method updateDerivationAsyn, you have removed some code and put instead a statement "if isDerivedAsynchronous" with no else clause... This makes me wonder, does this code still work for synchronous derivations? Remember, we need to get to a point where we can use derivations both in synchronous and asynchronous mode. Please make sure we have sufficient unit/regression/integration test coverage so that we can be sure the code works in both modes...

Perhaps I should clarify: We need to get the code to a stage where it not only works in both modes, but ideally in a way that hides (from the calling code) whether a derivation is synchronous or asynchronous. It would be undesirable to have two sets of methods (one that should be called for synchronous operation, and a separate one for asynchronous operation). In either mode, the calling code should be calling the same methods (so that if one changes one's mind, one doesn't need to rewrite the calling code).

Perhaps I should clarify: We need to get the code to a stage where it not only works in both modes, but ideally in a way that hides (from the calling code) whether a derivation is synchronous or asynchronous. It would be undesirable to have two sets of methods (one that should be called for synchronous operation, and a separate one for asynchronous operation). In either mode, the calling code should be calling the same methods (so that if one changes one's mind, one doesn't need to rewrite the calling code).

I appreciate that the above may be a bigger task, which may not make sense to be addressed as part of this pull request. The minimum requirement for merging this branch is that the changes don't break synchronous operation. If that is the case, then I would say go ahead.

Perhaps I should clarify: We need to get the code to a stage where it not only works in both modes, but ideally in a way that hides (from the calling code) whether a derivation is synchronous or asynchronous. It would be undesirable to have two sets of methods (one that should be called for synchronous operation, and a separate one for asynchronous operation). In either mode, the calling code should be calling the same methods (so that if one changes one's mind, one doesn't need to rewrite the calling code).

I appreciate that the above may be a bigger task, which may not make sense to be addressed as part of this pull request. The minimum requirement for merging this branch is that the changes don't break synchronous operation. If that is the case, then I would say go ahead.

The current pull request as it is at the moment supports both synchronous and asynchronous operations (it doesn't break anything). I agree that the current framework is not ideal, as you pointed out, it requests developers to use different methods (updateDerivationAsyn and updateDerivations), it also misses a method that is able to deal with a chain of mixed types derivations - all of which I agree should be addressed. Given the naming of this pull request ("140-dev-chain-of-asyn-derivation"), it would be really appreciated if we could merge this PR and I am happy to open a new one addressing the above issues.

@kokfoongcmcl The small queries in the method monitorDerivations were replaced with one single query with an enum to determine the type of status. The IntegrationTest was also updated correspondingly in https://github.com/cambridge-cares/TheWorldAvatar/pull/92 and passed on my machine.

@kokfoongcmcl The small queries in the method monitorDerivations were replaced with one single query with an enum to determine the type of status. The IntegrationTest was also updated correspondingly in #92 and passed on my machine.

You are still sending queries in loops in different places,
I believe the first query you need is:
select ?derivation ?statusType
where{
?derivation a AsyncDerivation. // not really necessary in my view
?derivation hasStatus/rdf:type ?statusType
?derivation isDerivedUsing }
Here you can get all your derivations along with its status type.
Queries such as isDerivedAsynchronous and hasStatus should be scraped, you can just specify the triples in your queries.
I believe the query you need for checkAtPendingUpdate is
insert{ hasStatus ;  a Requested}
where{
 isDerivedFrom/belongsTo ?upstreamDerivation
?upstreamDerivation hasStatus ?status.
?upstreamDerivation hasTime/inTimePosition/numericPosition ?upstreamDerivationTimestamp
optional{?upstreamDerivation isDerivedFrom/hasTime/inTimePosition/numericPosition ?pureInputTimestamp}
optional{?upstreamDerivation isDerivedFrom/belongsTo/hasTime/inTimePosition/numericPosition ?inputsBelongingToDerivationTimestamp}
filter{?upstreamDerivationTimestamp > ?pureInputTimestamp || ?upstreamDerivationTimestamp > ?inputsBelongingToDerivationTimestamp}

}
instead of checking the inputs and timestamps of your upstream derivation one by one. If this does not work, I think it can be done in 2 queries.
You can easily combine markAsFinished and addNewDerivedIRIToFinishedStatus, since they are just adding triples.
I hope you get the idea.
If you are generating the IRIs using UUIDs, the chances of getting the same string is near zero, you don't need to check that it exists.

@kokfoongcmcl The small queries in the method monitorDerivations were replaced with one single query with an enum to determine the type of status. The IntegrationTest was also updated correspondingly in #92 and passed on my machine.

You are still sending queries in loops in different places, I believe the first query you need is: select ?derivation ?statusType where{ ?derivation a AsyncDerivation. // not really necessary in my view ?derivation hasStatus/rdf:type ?statusType ?derivation isDerivedUsing agent}
Here you can get all your derivations along with its status type.

Thanks for the suggestion, I have treaked the SPARQL you suggested a bit and replaced the queries in commit https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/1c43086548f149900d862b23f7e216690f0cee13.

Queries such as isDerivedAsynchronous and hasStatus should be scraped, you can just specify the triples in your queries.

Usage of isDerivedAsynchronous at method monitorDerivations is now removed, however, the one used in updateDerivationAsyn is kept as it is necessary to ensure the type of derivation before entering the if clause - this is due to the fact that method updateDerivationAsyn doesn't support synchronous operation in this PR but will be addressed in the future.
Usage of hasStatus in method deleteStatus is now removed, the public method hasStatus is also removed in DerivationClient - these are done in commit https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/bedd3be3ad83dcbabc72b1d2b31d5b93394349a8. The usage of hasStatus in method updateDerivationAsyn is kept to separate the logic between checking if there exists status and marking it as PendingUpdate.

I believe the query you need for checkAtPendingUpdate is insert{derivation hasStatus status; status a Requested} where{ derivation isDerivedFrom/belongsTo ?upstreamDerivation ?upstreamDerivation hasStatus ?status. ?upstreamDerivation hasTime/inTimePosition/numericPosition ?upstreamDerivationTimestamp optional{?upstreamDerivation isDerivedFrom/hasTime/inTimePosition/numericPosition ?pureInputTimestamp} optional{?upstreamDerivation isDerivedFrom/belongsTo/hasTime/inTimePosition/numericPosition ?inputsBelongingToDerivationTimestamp}
filter{?upstreamDerivationTimestamp > ?pureInputTimestamp || ?upstreamDerivationTimestamp > ?inputsBelongingToDerivationTimestamp}

}
instead of checking the inputs and timestamps of your upstream derivation one by one. If this does not work, I think it can be done in 2 queries.

I agree the loop of checking each upstream derivation in the method checkAtPendingUpdate can be replaced with one single query, but I don't think the insert should be done within the same query. The query suggested is really helpful and I treaked it a bit, you can see it in commit https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/81db2e8799bd0af702ea350fc9428908db4eb123 and https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/818b1c9597b5255f53ca22536ad49178bcd3f31e.

You can easily combine markAsFinished and addNewDerivedIRIToFinishedStatus, since they are just adding triples.

Thanks for the suggestion, this is now updated in commit https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/fb2c9f5ad6693828f7882618e3275b75ab0b606e.

I hope you get the idea.
If you are generating the IRIs using UUIDs, the chances of getting the same string is near zero, you don't need to check that it exists.

This checking is removed throughout DerivationSparql as in commit https://github.com/cambridge-cares/TheWorldAvatar/pull/91/commits/df5aeef528eff8748c1b8a2372ec5e8ae29ca5a3. The method checkInstanceExists is also marked as deprecated.

Usage of isDerivedAsynchronous at method monitorDerivations is now removed, however, the one used in updateDerivationAsyn is kept as it is necessary to ensure the type of derivation before entering the if clause - this is due to the fact that method updateDerivationAsyn doesn't support synchronous operation in this PR but will be addressed in the future.

You don't have to do it in this PR but you should query everything you need regarding the derivation including its rdf:type with a single query at each stage of the recursive call if you cannot query everything. So that function is not necessary.

Usage of isDerivedAsynchronous at method monitorDerivations is now removed, however, the one used in updateDerivationAsyn is kept as it is necessary to ensure the type of derivation before entering the if clause - this is due to the fact that method updateDerivationAsyn doesn't support synchronous operation in this PR but will be addressed in the future.

You don't have to do it in this PR but you should query everything you need regarding the derivation including its rdf:type with a single query at each stage of the recursive call if you cannot query everything. So that function is not necessary.

That makes sense, we can also move away from calling isOutOfDate. I shall modify the codes in the next round of development.


fix(nvidia): do not ship nohang in nvidia-arm builds

Even if nohang is a welcome addition, first it's better to not use testing repo - second nohang is optional as it is not really a requirement for things to be functional
#2428

I don't think any of the workflows run nvidia on PR, created a ticket https://github.com/kairos-io/kairos/issues/2434


Assigning non-constant to: const int ERROR:

Error turning on GPU plugin
2020-02-06 18:01:35 [Client] ERROR n.r.client.plugins.gpu.GpuPlugin - Error starting GPU plugin
net.runelite.client.plugins.gpu.ShaderException: Compute shader failed to compile with the following errors:
ERROR: 0:491: error(#206) Assigning non-constant to: const int
ERROR: 0:492: error(#206) Assigning non-constant to: const int
ERROR: error(#273) 2 compilation errors.  No code generated
at net.runelite.client.plugins.gpu.GLUtil.compileAndAttach(GLUtil.java:193)
at net.runelite.client.plugins.gpu.GLUtil.loadComputeShader(GLUtil.java:162)
at net.runelite.client.plugins.gpu.GpuPlugin.initProgram(GpuPlugin.java:485)
at net.runelite.client.plugins.gpu.GpuPlugin.lambda$startUp$0(GpuPlugin.java:306)
at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:99)
at net.runelite.client.callback.Hooks.clientMainLoop(Hooks.java:193)
at eh.ta(eh.java:5814)
at client.ac(client.java)
at bf.hv(bf.java:373)
at bf.run(bf.java:327)
at java.base/java.lang.Thread.run(Unknown Source)

amd radeon hd 8670m windows 8.1

This is from the usage of const on priority_render.glsl:247 and 248, which appears valid on GLSL 4.2+:
GLSL versions before 4.20 required that all non-parameter const-qualified variables be initialized with Constant Expressions. 4.20 permits such variables to be initialized with non-constant expressions, but the variable in that case will not be a constant expression.
The compute shaders themselves require GLSL 4.3+ so I am not sure how you could be getting this error. Does it work with the const removed?

Hey Adam-,
Sorry for the delay I didn't have any development tools on the laptop in question. I have installed InelliJ and made the changes. The GPU plugin is now saying HW_Unsupported.
[Client] ERROR n.r.client.plugins.gpu.GpuPlugin - Error starting GPU plugin
net.runelite.client.plugins.gpu.ShaderException: Compute shader(s) failed to link.
Compute link error: HW_UNSUPPORTED.
Compute shader not supported by hardware
at net.runelite.client.plugins.gpu.GLUtil.loadComputeShader(GLUtil.java:169)
at net.runelite.client.plugins.gpu.GpuPlugin.initProgram(GpuPlugin.java:485)
at net.runelite.client.plugins.gpu.GpuPlugin.lambda$startUp$0(GpuPlugin.java:306)
at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:99)
at net.runelite.client.callback.Hooks.clientMainLoop(Hooks.java:193)
at client.ou(client.java:22614)
at client.ac(client.java)
at bf.du(bf.java:373)
at bf.run(bf.java:327)
at java.base/java.lang.Thread.run(Thread.java:834)
I don't understand it worked on Windows 10? Perhaps drivers?

Probably. It seems like either your hardware and/or drivers don't support compute shaders though, so there's nothing to fix here. If it did work on 10 with the same hardware then obviously it would be something driver related.


Added WorkloadIdentityCredential

API change check
API changes are not detected in this pull request.

did the SDK support Workload Identity in some other form before this PR was merged? I'm using 1.12 on an AKS cluster with Workload Identity enabled and it seems to be working....  but now I see that the code for it apparently does not even exist in a released version?

@petergaultney Yes.  :)


Map stops working after an hour. Relogging fixes.

The map sometimes stops working after an hour or so of use. Kind of troublesome when the PC back home is scanning for me, and i am out catching them. Since i would have to teamviewer in on a shitty connection to hit refresh.

Also, i suspect this is due to some sort of timeout/countermeasure of the developer. They receive too many requests in a short time period and cut me off? Not sure.

I can concur, it's exactly an hour.  Is this because I do not move, do not try to catch anything?
I think once we have the phone browser pass location back to the main application it may not be a problem since we'll be moving on the phone.

You can refresh the map. At the top left under "Tools" there is a menu button for it. The Keyboard shortcut ist CTRL-r. Unfortunately I can't get it to automatically refresh with Autoit or pyautogui. The map doesn't accept any mouse or keyboard events from those two programs, I wonder why that is...

This needs to be looked into, killed my session last night, I only caught 1 rare pokemon. Well worth it tho, never would have found it.
the next 4 hours were walking grind to reach level 20.....  103K dust, and have not evolved anything using candies or powerup since level 15... so I should be able to just to 21-1/4 easily with an egg or two.

This is tied to Issue #38, they were worded differently but in essence the same issue.

An ugly workaround:
main.html
	//Force logout every 45min 	window.setTimeout(function(){ 		console.log('Logging out (force refresh)'); 		logout(); 	}, 27000);
and in login.html inside document.ready (at the end)
doPTCLogin();

@robertftw does that work? Does it maintain the same mobile URL?

this is being worked on or already has in a new commit.
This may be consolidated and closed as resolved shortly.

@HuXu77 It does work but new mobile url and you have to change the code to auto toggle mobile in document.ready


Stray node processes using 100% CPU

Summary
Within last month I've noticed stray node processes using 100% of CPU. Happens from both - cli and Illuminated Cloud.
Steps To Reproduce:
Unclear, but most likely from source push.
Additional information
See screenshot for the example.

Node version in the path v10.15.3. Node global version v10.13.0.
Sfdx version sfdx-cli/7.53.0-839fc82926 darwin-x64 node-v10.15.3
Macos catalina 10.15.4 (19E266)

All open files:
open files 2

cwd
/Users/heyoo/workspace/DND/sfdx
txt
/Users/heyoo/.local/share/sfdx/client/7.53.0-839fc82926/bin/node
txt
/Library/Preferences/Logging/.plist-cache.ARV17fxz
txt
/usr/lib/dyld
0
/dev/null
1
/dev/null
2
/dev/null
3
count=0, state=0xa
4
->0x7442b8cc4b98fc74
5
->0x8932d87497f6c71f
6
->0x51da44eddc63ee08
7
->0x8feff2bb16f681d0
8
->0xd6240756496724f2
9
->0x8302bf8524a25230
10
count=0, state=0
11
->0x5f729b67aacd5b7e
12
->0x95a33a073dfc536c
13
->0x1af8b3d3cdcc6b73
14
->0xc833379fa5b5610b
15
count=0, state=0xa
16
->0xeba2cf09ffa5d490
17
->0x1c32187ba77528cf
18
->0x8e3b08deb3432707
19
->0x887b55ce89a3c499
20
/private/var/folders/bd/gmf8bv6s2qgd_nbz53fp1l300000gn/T/sfdx-analytics/analytics-1c429bc9e35c3a040c12e9006b7f2b3b2cdb366b.log
21
/Users/heyoo/.sfdx/sfdx.log
22
23
/dev/null
25
->0x54ab126eaa4f456f
26
[ctl com.apple.netsrc id 7 unit 62]
28
[ctl com.apple.netsrc id 7 unit 60]

Log from sfdx.log for the pid:
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"level":60,"msg":"","time":"2020-04-22T03:44:37.619Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"TelemetryReporter","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"AppInsights","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"Org","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"AuthInfo","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"crypto","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}
{"name":"sfdx","hostname":"cyborg-geesling.local","pid":14470,"log":"keyChain","level":60,"msg":"","time":"2020-04-22T03:44:37.620Z","v":0}

the /private/var/folders/bd/gmf8bv6s2qgd_nbz53fp1l300000gn/T/sfdx-analytics/analytics-1c429bc9e35c3a040c12e9006b7f2b3b2cdb366b.log doesnt seem to exist.

I'm scratching my head at what could be causing this. I can't get the process to hang on the same versions you are running on.
From your logs, it seems like it is most likely telemetry. I don't see anything obvious in the code that would cause a high CPU zombie. How consistent if this for you? I bet setting SFDX_DISABLE_TELEMETRY would prevent it. I would like to find the root cause but we would either need a repo or do a video call to debug it.

I'm scratching my head at what could be causing this. I can't get the process to hang on the same versions you are running on.
From your logs, it seems like it is most likely telemetry. I don't see anything obvious in the code that would cause a high CPU zombie. How consistent if this for you? I bet setting SFDX_DISABLE_TELEMETRY would prevent it. I would like to find the root cause but we would either need a repo or do a video call to debug it.

That seemed to work. Thanks. Not sure if I want to help fixing telemetry :D
I guess I could call you when it happens again, but I don't have a good repro - thats the main problem.

Well glad that solved it for you. Now that I know disabling telemetry solved it for you we could probably add another setting to add some local logging to help solve it. I totally get you not feeling inclined to help solve telemetry though.

telemetry has been substantially updated.  I'm closing this issue (please reopen, or do a new one if it happens again)


I have multiple cameras, how to implement different cameras rtsp transmission

I try to use multithreading to start, but only one camera can achieve rtsp transmission

@tchy videoSource is already threaded underneath as it's actually implemented in C++ and through GStreamer.   Does multiple RTSP work without multithreading?


[runtime] support read fst using mmap

Background
the fst file
➜  lm git:(standalone) ll lm.fst
-rw-r--r-- 1 mackong mackong 12G Aug  3 10:09 lm.fst

disk
➜  ~ lspci | grep SSD
04:00.0 Non-Volatile memory controller: SK hynix Gold P31 SSD

READ mode
when use READ mode, we got the following performance
I0831 22:01:58.278613 14004 decoder_main.cc:180] Total: decoded 9550158ms audio taken 3076034ms.
I0831 22:01:58.278636 14004 decoder_main.cc:182] RTF: 0.3221

and the resource usage is

MMAP mode
when use MMAP mode, we got the following performance
I0831 20:42:52.785739  8840 decoder_main.cc:180] Total: decoded 9550158ms audio taken 2995321ms.
I0831 20:42:52.785763  8840 decoder_main.cc:182] RTF: 0.3136

and the resource usage is

Any performance benchmark?

Any performance benchmark?

Updated a rough benchmark.

There is no gain in our evaluation with smaller FST, I think it's better if we use ConstFst directly, please see https://groups.google.com/g/kaldi-help/c/4Sqw6vKu9CI

Yes, for small FST, no need to use mmap for memory save.


Remove session[:base_miq]

There are only setters in the code and no getters.
$ git grep base_miq
app/controllers/application_controller.rb:      session[:base_miq] = ""

@Fryguy @dclarizio @h-kataria @martinpovolny Please review

looks good.


[Question] 请问下您使用GPU训练可以指定某块GPU么

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.
You can post pictures, but if specific text or code is required to reproduce the issue, please provide the text in a plain text format for easy copy/paste.

[x] I have searched in existing issues but did not find the same one.
[x] I have read the documents

Environment

OS [e.g. Mac OS, Linux]: windows10
Python Version: 3.6.3
requirements.txt:kashgari，tensorflow，pandas，etc...

[Paste requirements.txt file here]

Question
单gpu训练时一般使用GPU 0 和cpu 0，占用GPU 0 过多时，出现以下bug:
tensorflow.python.framework.errors_impl.InternalError: 2 root error(s) found.
(0) Internal: Blas GEMM launch failed : a.shape=(5632, 768), b.shape=(768, 768), m=5632, n=768, k=768
[[{{node Encoder-1-MultiHeadSelfAttention/MatMul_2}}]]
[[loss/mul/_1709]]
(1) Internal: Blas GEMM launch failed : a.shape=(5632, 768), b.shape=(768, 768), m=5632, n=768, k=768
[[{{node Encoder-1-MultiHeadSelfAttention/MatMul_2}}]]
请您帮助我一下，谢谢您
[A clear and concise description of what you want to know.]

在你跑代码之前，先设定，更多见 https://stackoverflow.com/questions/40069883/how-to-set-specific-gpu-in-tensorflow
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  # Restrict TensorFlow to only use the first GPU
  try:
    tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
  except RuntimeError as e:
    # Visible devices must be set at program startup
    print(e)
``

在你跑代码之前，先设定，更多见 https://stackoverflow.com/questions/40069883/how-to-set-specific-gpu-in-tensorflow
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  # Restrict TensorFlow to only use the first GPU
  try:
    tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
  except RuntimeError as e:
    # Visible devices must be set at program startup
    print(e)
``

谢谢


Generator for AngularJS

Can you implement generator for AngularJS with GulpJS https://github.com/Swiip/generator-gulp-angular with a helper generator for generator-gulp-angular to create sub tasks: https://github.com/doronsever/generator-gulp-angular-subtask

Well I already have a yeoman generator for laravel 5 which also has an option for AngularJS
https://github.com/jadjoubran/laravel5-generator
Take a look and if you still can't find what you want, let's discuss it there. Open a new issue on the generator's repository
Thanks!


Make it possible to replace the TraceID/SpanID generation algorithms

To support special formats as required by some backends (XRay) we should make the TraceID/SpanID algorithms pluggable.
See: https://github.com/census-instrumentation/opencensus-specs/issues/64

Am not sure what @bogdandrutu will think of this change but the last time I spoke with him, there was a reservation towards allowing this.

I think his concern was with replacing the algorithm entirely (which was my original suggestion). This is a more gradual change that users can opt in to.

We briefly chatted about this issue to depend on NewSpanWithRemoteParent with custom ID generation. Btw, Bogdan's concern was not to introduce a new generator.


Facebook video playback is broken under Chrome

Tried with: Chromium, Chrome, Opera
OS: Linux
I visited: https://www.mediaelementjs.com/
and on the test video I selected Facebook as a source. The video poster is displayed the play button appears but if I click on any play buttons the video does not start.
I see no error on the dev. console.
A colleague of mine tried it out with MacOS:

Chrome: the same result
Safari: kind of worked but with heavy cookie-warning popups.

I tried to load an FB video within my own code using the window.MediaElementPlayer class, but I got the same results.

Does not work on Firefox also

I've observed the same thing, the play() function doesn't work most of the time in most browsers. I get these results in my own implementation, and the same thing on the MediaElement demo page.
It works reliably in Firefox and IE11, mostly but not always in Safari and Chromium Edge, and almost never in Chrome.

Has there been any further feedback on when the bug for playing FB videos on Chrome will be resolved?

FYI this isn't something that MediaElement can readily fix, the problem is in the Facebook API.

OK thanks. Didn't realize it was on Facebook's side. Do you know of any media players where FB might work, or is it across the board?

Any media player that uses the Facebook API is gonna have this problem. Unless someone's come up with a hack or workaround, but I'm not aware of any.

I found the below code which allows you to play a video in Chrome. Uses the embedded video class from FB

My Website

My Video Player


Notification: Adds toast variant with a duration example

All component props should be added to the stories, for better
documenting and reviewing. This commit adds the duration based toast
variant of Notification to the examples.
Fixes #1889
Additional description

CONTRIBUTOR checklist (do not remove)
Please complete for every pull request

[x] First-time contributors should sign the Contributor License Agreement.  If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
[x] npm run lint:fix has been run and linting passes.
[x] Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[x] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[x] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

Required only if there are markup / UX changes

[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

I'm sorry to share again that Notification is a deprecated component. I will be closing this pull request and issue.