zigbee2mqtt wont start - MQTT error: connect ECONNREFUSED

Description of the issue
After core update this week zignbee2mqtt wont start:
Zigbee2MQTT:error 2023-11-11 12:15:25: MQTT error: connect ECONNREFUSED <IP_ADDRESS>:1883
Zigbee2MQTT:error 2023-11-11 12:15:25: MQTT failed to connect, exiting...
I have not changed any settings and also looked for a solution, to no avail. Passwords etc are correct.
This is what I have done so far:
Rebooted
Turn RPi4 on/off
Unplugged the Sonoff stick CC2531, and also the extension cable, swapped USB ports, swapped cables....
Confirmed LED is on.
Any suggestions and help much appreciated. Thanks folks.
Addon version
System Information  version | core-2023.6.3 -- | -- installation_type | Home Assistant OS dev | false hassio | true docker | true user | root virtualenv | false python_version | 3.11.4 os_name | Linux os_version | 6.1.21-v8 arch | aarch64 timezone | Europe/London config_dir | /config  Home Assistant Community Store  GitHub API | ok -- | -- GitHub Content | ok GitHub Web | ok GitHub API Calls Remaining | 5000 Installed Version | 1.32.1 Stage | running Available Repositories | 1343 Downloaded Repositories | 51 HACS Data | failed to load: unreachable   Home Assistant Cloud  logged_in | true -- | -- subscription_expiration | December 9, 2023 at 12:00 AM relayer_connected | true relayer_region | us-east-1 remote_enabled | true remote_connected | true alexa_enabled | true google_enabled | true remote_server | us-east-1-7.ui.nabu.casa certificate_status | ready can_reach_cert_server | failed to load: unreachable can_reach_cloud_auth | failed to lo
Platform
Core 2023.11.2
Supervisor 2023.11.0
Operating System 11.1
Frontend 20231030.2
Logs of the issue (if applicable)
[12:15:06] INFO: Preparing to start...
[12:15:07] INFO: Socat not enabled
[12:15:12] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:error 2023-11-11 12:15:25: MQTT error: connect ECONNREFUSED <IP_ADDRESS>:1883
Zigbee2MQTT:error 2023-11-11 12:15:25: MQTT failed to connect, exiting...
MQTT:
2023-11-11 12:20:13: Warning: Mosquitto should not be run as root/administrator.
mosquitto: persist_read.c:550: persist__restore_sub: Assertion `client_id' failed.
[12:20:15] INFO: Successfully send discovery information to Home Assistant.
[12:20:15] INFO: Service restart after closing
[12:20:16] INFO: Successfully send service information to the Supervisor.
[12:20:17] INFO: Starting mosquitto MQTT broker...
Which I believe is AOK.

Sussed it - FYI for anyone else who has this issue.
It was down to a corrupt MQTT database. To fix this I copied the YAMA config, and then uninstalled, reinstalled and put the original YAML back. Fixed!

Thanks.
I fixed with:

stopped the containers (eclipse-mosquitto and koenkk/zigbee2mqtt)
moved the database mv database.db database.db.old (path is defined in the Dockerfile yaml services:.zigbee2mqtt.volumes:)
started the containers
visited Zigbee2Mqtt and it loaded but with no devices
stopped the containers
deleted the new database and moved the old database back rm database.db; mv database.db.old database.db
started the containers

I'm not sure why that worked, but it did! I had stopped and started them a couple of times already, and updated to the latest version.
I should probably back everything up.


Update 'Automation' Sub-Section in 'README.md' File

Main Issue
The docs in 'Automation' Sub-Section are all good, until reaching point No. 6 with its command example, this example, doesn't want to work due to several reasons, mainly because passing Arguments to downloaded script is somewhat a pain in PowerShell, but nonetheless. Updating the docs with a better/functional example is recommended.
Why not change it?
The example currently shown is pretty nice, because it's easy to remember and pretty straight forward, that is, if it works properly.
The solution I've found is a bit longer to type/remember, so I've made this issue to discuss if there's a better solution to this issue, Like trying to make the command even shorter, somehow, or try another approach.
The Solution I've Found
The following is something I've found to be working just fine, source is from this Stack Overflow Answer:
# Run WinUtil with '-Debug' Parameter
powershell { iex "& { $(irm christitus.com/win) } -Debug" }
# Run WinUtil with '-Config [path-to-your-config] -Run' Paramter
powershell { iex "& { $(irm christitus.com/win) } -Config [path-to-your-config] -Run" }

Other Issues related to this one
Oldest Issue, which has the detailed explanation on how to fix it, is Issue #1702 .
Other newer Issues are Issue #1728 & #1729 .

I like the solution but if I'm correct, you can simplify the commands even more by removing the enclosing powershell { [...] } call.
# Run WinUtil with '-Debug' Parameter
iex "& { $(irm christitus.com/win) } -Debug"
# Run WinUtil with '-Config [path-to-your-config] -Run' Paramter
iex "& { $(irm christitus.com/win) } -Config [path-to-your-config] -Run"

Regarding the complexity of the statements, I wouldn't worry too much, because the layman would still use the "normal" way of calling winutil and this solution at least provides the user with the possibility to run the script with arguments without having to download it first which is a plus in my book :)


Adds authentication to POST widgets/:id

To resolve #6, POST widgets/:id now supports token based
authentication. It can be configured through Mix with:
config :kitto, auth_token: "mysecrettoken"

Setting the auth_token key will enforce authentication to POST widgets/:id using the Authentication HTTP header:
Authorization: Token mysecrettoken

Coverage increased (+0.5%) to 81.935% when pulling b88749cbe8857f85c8c035edab4fa12237f20059 on authorize-widgets into 9ef2f9d459d46ac6805c9567d511fc1b9ce12c68 on master.

Coverage decreased (-1.5%) to 80.0% when pulling dcd87b292049fd1c64e8a1a275fb4ddd85db1fb4 on authorize-widgets into 9ef2f9d459d46ac6805c9567d511fc1b9ce12c68 on master.

@Zorbash if all looks good so far, can you merge? In the future, I'm going to yank the authentication code out so it can be reused for other functionality like if we implement a reload feature similar to Dashing's for reloading dashboards remotely.

:+1:  Looks good, merging it. As far as the dashboard reloading feature you're mentioning, better create an issue about this, so that it gets in the roadmap.

Coverage increased (+0.8%) to 80.0% when pulling 58c8be1e44b2a3ae9aa259912e1bb0f7bc1580c3 on authorize-widgets into 96a8551e992ea15f9ae346a637b0a043715f9879 on master.


ssh-agent plugin not working after update

Eversince oh-my-zsh prompted me to upgrade and pressing y I've been receiving this error. I'm currently using Windows 10's WSL on Ubuntu 18.04
The error I get
/home/frank/.oh-my-zsh/lib/misc.zsh:41: parse error near `\n'
/home/frank/.oh-my-zsh/plugins/git/git.plugin.zsh:2: not an identifier: _omz_git_git_cmd^M
/home/frank/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh:typeset:1: not valid in this context: _ssh_env_cache^M

.zshrc
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load. See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="ys"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
plugins=(
  git
  ssh-agent
  colored-man-pages
)

source $ZSH/oh-my-zsh.sh

# Aliases
alias dkr="docker-compose"
alias dc="docker-compose"
alias reload="source .zshrc"

Any idea what's going on? Is it line endings?

See the comment by @Roguyt for issue #7542

Thanks @respencer. I had to install dos2unix and run it against the problematic files
sudo apt install dos2unix -y

dos2unix /home/frank/.oh-my-zsh/lib/misc.zsh
dos2unix  /home/frank/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh
ddos2unix /home/frank/.oh-my-zsh/plugins/git/git.plugin.zsh

It's strange though, I don't have my core.autocrlf changed because I have my dotfiles under source control and symlinked.
I'm suspecting my setting of core.autocrlf=true might be the culprit.

@respencer, can be be closed. Thanks again.

This is due to the git-config's core.autocrlf setting. See https://github.com/robbyrussell/oh-my-zsh/issues/4069#issue-89607351

@mcornella thanks for confirming.


🚧 WIP: V2

This is draft PR for a complete overhaul of react-native-health library. This code is a work in progress and is subject to change at any moment. You are welcome to test it but this is not stable or production ready.

hey folks, I was just wondering if this is the current progress? https://github.com/agencyenterprise/react-native-health/projects/2

Is V2 abandoned? I see a number of recent PRs for v1 haven't been merged. I'm curious as to the status of this project as a whole.

For everyone curious about the v2, it's not abandoned, but I do not have so much band to work in that lately.
The last status is that I tested this branch and it was broken in the last versions of React Native due to the RN new architecture, so we have to finish the refactoring for the bridge between React and the native code. Hopefully, we'll have this launched by the end of this year.

I appreciate the update, @ruan-azevedo! I apologize—I didn't hope for that to sound accusatory. We've all got day-jobs and life away from the keyboard. I appreciate the efforts you're putting in!

Hey guys, I just want to let you know that I'm not working at AE Studio anymore and I'm not planning to continue working on this project.
If you want some feature, PR merged, or want to ask for someone to take this PR, please reach out to AE Studio guys on LinkedIn. I would suggest to reach out to Melanie or Felipe Taboada.

First of all, thanks for this library! I appreciate a lot all the time and work you guys have put into it <3
How is the V2 going? I was really hoping to start the migration to the new RN Arch early next year, but this library is preventing me from doing that.
Do you guys have an ETA? Is this still being developed?
I think we would rather get the (bad?) news asap so we can plan a migration to another library :c
Thanks again for your work 🙏


Refactor JSON types

Motivation
Separate out the contribution.rs file.

Solution

PR Checklist

[ ] Added Tests
[ ] Added Documentation
[ ] Updated the changelog

Codecov Report

Merging #23 (b86a037) into master (f3e36d8) will decrease coverage by 0.06%.
The diff coverage is 1.62%.

Additional details and impacted files

@@            Coverage Diff             @@
##           master      #23      +/-   ##
==========================================
- Coverage   22.77%   22.71%   -0.07%
==========================================
  Files          20       24       +4
  Lines        5422     5438      +16
==========================================
  Hits         1235     1235
- Misses       4187     4203      +16

Flag
Coverage Δ

test
22.71% <1.62%> (-0.07%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

crypto/src/crypto.rs
0.00% <0.00%> (ø)

crypto/src/types/contribution.rs
0.00% <ø> (ø)

crypto/src/types/error.rs
0.00% <0.00%> (ø)

crypto/src/types/mod.rs
0.00% <ø> (ø)

crypto/src/types/transcript.rs
0.00% <0.00%> (ø)

crypto/src/types/utils.rs
0.00% <0.00%> (ø)

crypto/src/zcash_format.rs
0.00% <0.00%> (ø)

src/jwt.rs
44.00% <ø> (ø)

src/main.rs
31.30% <0.00%> (ø)

crypto/src/lib.rs
19.70% <16.66%> (ø)

... and 2 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f3e36d8...b86a037. Read the comment docs.


kit doesn't start on windows

the new bash line to check for node_modules, in package.json, doesn't work on windows and outputs:
-d was unexpected at this time

windows workaround for now:
run npm install to get node_modules
run ./node_modules/.bin/gulp to run the kit

fixed by #301 #305


Turns the standard AST JNumber into a safe constructor

@sirthias @Ichoran @ktoso @fommil This PR disallows JNumber to be called directly via the constructor as a String (there is a fromString method which returns an Option[JNumber] with the regex check).
The regex check has also been removed from all constructors which are guaranteed to be a number, and since JNumber is a final class, all of the boilerplate methods to make it treated as a case class has been defined (unapply/canEqual/productArity/productElement ).
Note that this was only done to the standard AST and not the unsafe one (not sure if it should also be done for unsafe). Note that when combined with https://github.com/mdedetrich/scalajson/issues/17#issuecomment-312140277 its possible to do some include a bit flag field within JNumber which can track if it gets created as a long/int/double/float so we can make efficient .to converters for different number types.
Let me know if this is looking good, and I can merge/release to M4. I think the only contentious point would be whether these changes make sense in the unsafe AST

Codecov Report

Merging #30 into master will decrease coverage by 0.43%.
The diff coverage is 47.61%.

@@            Coverage Diff             @@
##           master      #30      +/-   ##
==========================================
- Coverage   44.56%   44.12%   -0.44%
==========================================
  Files           5        5
  Lines         662      698      +36
  Branches      128      148      +20
==========================================
+ Hits          295      308      +13
- Misses        367      390      +23

Impacted Files
Coverage Δ

...s/src/main/scala/scalajson/ast/unsafe/JValue.scala
0% <0%> (ø)
:arrow_up:

js/src/main/scala/scalajson/ast/JValue.scala
0% <0%> (ø)
:arrow_up:

...m/src/main/scala/scalajson/ast/unsafe/JValue.scala
60.62% <66.66%> (+0.88%)
:arrow_up:

jvm/src/main/scala/scalajson/ast/JValue.scala
68.64% <82.35%> (-4.36%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0c444bf...9e32346. Read the comment docs.

Why do you prefer the "manual" case class over the actual case class, which is now possible (since 2.11.11 and 2.12.2)?

@sirthias The reason why I used a manual class is because of Scale 2.10.x support. Also there isn't any real difference for the user and we don't have to rely on flags (safer route)

@sirthias The reason why I used a manual class is because of Scale 2.10.x support. Also there isn't any real difference for the user and we don't have to rely on compiler flags (safer route)

Ok, so it comes down to either supporting Scala 2.10 or going for the standard case class.
Let's understand a bit the pros/cons of either choice:

Dropping Scala 2.10 support would be bad because all projects that are still on Scala 2.10 could not depend on ScalaJSON. In order to understand the impact of this it'd be important to understand which projects this are. Do you know of any?

Going for the "manual" case class has a number of (IMHO) important drawbacks:
a) Asymmetry with all the other model classes. It seems weird that everything is a case class except for JNumber.
b) Forgoing internal optimizations. AFAIK the compiler treats (final) case classes specially in certain cases (e.g. in pattern matches) and applies a number of internal optimizations, e.g. by removing superfluous allocations (see also the discussion around unapply). The "manual" case class will not be able to benefit from these.
c) Risks with regard to meta support. Certain tools like shapeless generics or other macros might require an ADT to be modelled from actual cases classes to work as expected. I am quite sure that going down the manual route will hurt us here in some way or another at some point in the future!
d) Less future proof. Coming developments (e.g. around TASTY) might add even more significance to case classes in unforeseen ways. The asymmetry in the ScalaJSON ADT is not a good thing here either.
e) We have quite a few more lines of code in ScalaJSON, which makes the code harder to read and maintain. For example, we have the risk that the compiler changes the default desugaring of case classes in subtle ways (between versions) that we won't (immediately) see and follow.
f) People reading the code will always and automatically look at the code and try to spot the difference to what they think the default desugaring of case classes is, which is hard, because many people will not know the details to well. Overall it's much more confusing that a standard case class.

So, overall I think we need to have very good reasons to not go for the standard case class.
In my eyes, it comes down to fully understanding how important Scala 2.10 support really is.
My guess is that it is of no significance whatsoever, but I might be wrong.

@sirthias

Dropping Scala 2.10 support would be bad because all projects that are still on Scala 2.10 could not depend on ScalaJSON. In order to understand the impact of this it'd be important to understand which projects this are. Do you know of any?

http4s, apparently they are going to be stuck on 2.10 for a while. Also circe (due to http4s)

Asymmetry with all the other model classes. It seems weird that everything is a case class except for JNumber.

Afaik, the asymmetry is only in the source and not how end users end up using the JNumber class (the only difference at this point is the new keyword, which end-users don't even use because they can't construct the JNumber directly with a string anyways)

Forgoing internal optimizations. AFAIK the compiler treats (final) case classes specially in certain cases (e.g. in pattern matches) and applies a number of internal optimizations, e.g. by removing superfluous allocations (see also the discussion around unapply). The "manual" case class will not be able to benefit from these.

This is probably the most convincing argument, but I am not completely aware of these optimizations. Also I think you can simulate the changes for unapply in a manual class

Risks with regard to meta support. Certain tools like shapeless generics or other macros might require an ADT to be modelled from actual cases classes to work as expected. I am quite sure that going down the manual route will hurt us here in some way or another at some point in the future!

Less future proof. Coming developments (e.g. around TASTY) might add even more significance to case classes in unforeseen ways. The asymmetry in the ScalaJSON ADT is not a good thing here either.

This is true

People reading the code will always and automatically look at the code and try to spot the difference to what they think the default desugaring of case classes is, which is hard, because many people will not know the details to well. Overall it's much more confusing that a standard case class.

This is a documentation issue

So, overall I think we need to have very good reasons to not go for the standard case class.
In my eyes, it comes down to fully understanding how important Scala 2.10 support really is.
My guess is that it is of no significance whatsoever, but I might be wrong.

Unfortunately its very significant (http4s/circe), but there are alternatives

Provide the current implementation just for scala 2.10.x. Means more code to maintain (although not a real issue with a library that is meant to rarely change) and use the case class for 2.12.x/2.12.x
Just use a case class for the entire codebase and present the Scala 2.10 users with a big warning label that they can access the constructor themselves

Also with these compiler flags that are needed for Scala 2.11.x, I assume its ScalaJSON that only needs to use these flags for compilation (i.e. end users don't need to add these special flags?)

Unfortunately its very significant (http4s/circe), but there are alternatives

Provide the current implementation just for scala 2.10.x. Means more code to maintain (although >not a real issue with a library that is meant to rarely change) and use the case class for 2.11.x/2.12.x
Just use a case class for the entire codebase and present the Scala 2.10 users with a big > warning label that they can access the constructor themselves

To be honest, even though not great, I'd prefer the first of your listed alternatives over the manual case class way. Paying forever into the future with the drawbacks just for Scala 2.10 support now doesn't appear like a good tradeoff to me.
So how about splitting out a scala210 branch with a manual case class solution for JNumber and a proper case class for JNumber for everyone else?

Also with these compiler flags that are needed for Scala 2.11.x, I assume its ScalaJSON that only needs to use these flags for compilation (i.e. end users don't need to add these special flags?)

Yes, that is also my understanding. This flag only affects the compiler frontend.

@sirthias Sounds like a separate branch for 2.10.x support is the way, will work on it tonight

@sirthias @ktoso @Ichoran New PR is up. Lot of stuff has changed, have removed underlying (its now pointless) and there is a build that is specific only for Scala 2.10.
@sirthias I have provided an apply for JNumber("1"): Option[JNumber]  but it only works for JVM Scala 2.11.x and Scala 2.12.x (doesn't work for Scala.js, nor does it work for Scala 2.10.x). For this reason, there is a JNumber.fromString method that works on all platforms and all Scala versions

@dwijnand @eed3si9n @ktoso @sirthias @Ichoran @gmethvin I am going to release 1.0.0-M4 now and merge this into master.
@sirthias I have created an issue at https://github.com/mdedetrich/scalajson/issues/36 for your concern regarding numericStringEquals if you want to talk about it there.


Implement Connection::get_ref to retrieve a reference to the socket

This lets users of Connection immutably access the socket they provided.

Hello,
We don't need to use these traits on the internal connection, but we need to directly access attributes that cannot be put behind a synchronization primitive for performance reasons.
Now that I'm re-reading this, maybe the implementations of get_ref should be in different impl blocs without the trait bounds?

We don't need to use these traits on the internal connection, but we need to directly access attributes that cannot be put behind a synchronization primitive for performance reasons.

But how do you access those attributes if you are returning a T?
Can you disclose which attributes are?

The precise use case is for metrics: the AsyncRead and AsyncWrite methods on our socket type increment u64s stored in the structure.
let socket = Socket { metric: 0, ... };
let connection = yamux::Connection::new(socket, ...)
// calls to `poll_new_outbound`, `poll_next_inbound`...
let metric = connection.get_ref().unwrap().metric;

thanks for elaborating, but if you are calling AsyncRead and AsyncWrite on the inner connection you are messing the internal behaviour, can you explain what metrics would you like to record? I think it's better to just do as we do in rust-libp2p and offer explicit API's for that

We never call AsyncRead nor AsyncWrite on the inner connection, but I see how the proposed patch allows this undesirable behavior.
The metrics are two simple counters for the total written and read bytes on the connection. Can you show point me to the explicit APIs in rust-libp2p you mentioned?

The metrics are two simple counters for the total written and read bytes on the connection. Can you link me to the explicit APIs you mentioned in rust-libp2p?

rust-libp2p has its whole metrics crate, which we don't need in this case, we can just expose methods that return the total bytes read and written on Connection which you can then record metrics, wdyt?

Yes that would work.
Let's close this PR and I'll submit another with the changes you suggest (except if you'd prefer to take care of it!).

no no, go ahead!
Thanks :rocket:


Loading multiple zpub master keys?

i tried adding two zpub keys to my config file, but eps doesn't seem to like it when I add multiple zpub keys. If i have a mix of xpubs/ypubs/zpubs added to my config, it will display and import the xpub/ypub normally, but will only import the first zpub added. Any master key added after the first zpub is omitted regardless if format is xpub ypub or zpub.

Thanks for the bug report, I'll try to reproduce this.

I wasn't able to reproduce this. It also doesn't really make sense from the code.
Closing the issue now but if you see this can you paste here your config.ini with the private information like master public keys removed.


Question:  How to properly do validations/maintain small ui state?

Sorry if this question has already been asked and answered!  If so, would love a link to answer.
My team and I are a little confused as to how to best do things like form validations or maintain small ui state.  Seems like overkill to create actions and update the store for something as simple as a form validation.  Is it acceptable to use setState for small ui based state of components?  It seems like that goes against the whole idea of Redux which is why we're reluctant to do something like that.
Seemed like there was some discussion here about what the future of state management might look like for React but I'd love to know the "Reduxy" way of doing it.

Seems like overkill to create actions and update the store for something as simple as a form validation.

It depends. Usually as app grows forms want to know about other forms, and you'll be glad this state is available. See also redux-form.

Is it acceptable to use setState for small ui based state of components?

It's fine if the state is truly local. There is no ready rule of thumb here. If you're sure this state won't be needed elsewhere, make it part of React state; otherwise, make it part of Redux state.
For example, a form, even if it's state is not used elsewhere, actually corresponds to a ton of state if you want to make it user friendly. You want to track dirty and pristine fields and whether submit was attempted to know whether to show validation errors; you want to track validation errors themselves as they occur and come back to server; etc. It becomes a mess so I'd suggest using Redux state + redux-form for this.
On the other hand, if it's a simple form without validation which is not central to app's purpose (e.g. "Send Feedback" form) using React component state is just fine.

Awesome.  Thanks @gaearon for the quick response!  Definitely have a better idea of how to approach this now.

@SpencerCDixon I had the same demand for my project, and finally I've made a simpler version of react-form-ex with support of form validation, idavollen@github


When building offline, nativefier should not hang, and should provide advice on electron files needed to build offline

My org is interested to create desktop app using Nativefier. But doesn't like the dependence on internet connection. Is there a way to do it?
In the referring step, what items are needed to download from Electron? I setup my own local icon, but it didn't help.
Thanks!
Command:  ./node_modules/.bin/nativefier  -n "GXP_Platform_Client" localhost  --icon "D:\Temporary\JavaScripts\node_modules\nativefier\app\GXP_Platform_Client.ico" --show-menu-bar

@GitGeoCoder thanks for the feedback. Yup, as you said you just need a few Electron files (named something like electron-v1.6.6-win32-x64.zip and SHASUMS256.txt-1.6.6) cached to build Nativefier apps without internet (I just checked, it works).
On my Linux machine, these files live at ~/.cache/electron, on your Windows machine they should be somewhere around C:\Users\youruser\AppData\Local(maybeLocalLow?)\electron (but maybe I'm wrong, in that case look for them –I recommend Everything for fast NTFS search–, and look for electron-v).
So: build from a machine with internet access, note the electron cache path, copy the files, and dump them to your offline build machine. Should work. I'm renaming this ticket to suggest implementing something that detects lack of connectivity, exits rather than hangs, and mentions the electron cache path. Thanks for the suggestion 👍.

@ronjouch Thanks for the quick response. Problem solved.
BTW, which version of Electron should be downloaded? Latest or depend on the version of Nativefier?

@GitGeoCoder

Thanks for the quick response. Problem solved.

👍, thanks too for confirming.

BTW, which version of Electron should be downloaded? Latest or depend on the version of Nativefier?

For my apps (feedly, gmail) I always roll with the latest/beta Electron release. I feel that upgrades become tricky for developers building big apps on top of the Electron platform (e.g. VS Code, Atom, Slack, Skype). But nativefier apps are much more modest, we're just packaging a web view and don't use a ton of platform APIs, which means small breakage potential.
So, we default to a stable Electron (currently 1.6.6, which we should upgrade to the latest 1.6.x one of these days), but it shouldn't be dangerous for you to try 1.7.x or even 1.8.x to get the latest fixes and Chrome engine. If you do and see broken stuff, please report it!

@GitGeoCoder

Thanks for the quick response. Problem solved.

👍, thanks too for confirming. Hey by the way, what was the path for Electron cached files in Windows?

BTW, which version of Electron should be downloaded? Latest or depend on the version of Nativefier?

For my apps (feedly, gmail) I always roll with the latest/beta Electron release. I feel that upgrades become tricky for developers building big apps on top of the Electron platform (e.g. VS Code, Atom, Slack, Skype). But nativefier apps are much more modest, we're just packaging a web view and don't use a ton of platform APIs, which means small breakage potential.
So, we default to a stable Electron (currently 1.6.6, which we should upgrade to the latest 1.6.x one of these days), but it shouldn't be dangerous for you to try 1.7.x or even 1.8.x to get the latest fixes and Chrome engine. If you do and see broken stuff, please report it!

@ronjouch  Is there is configuration for nativefier to download/use a specific version of electron?
I tried to download and put the electron-v1.6.13-win32-x64.zip into the cache dir
C:\Users\myname\AppData\Local\electron\Cache
OS: WINDOWS10
But the electron-v1.6.6-win32-x64.zip is downloaded instead.

Is there is configuration for nativefier to download/use a specific version of electron?

@GitGeoCoder you're looking for flag --electron-version. Without it, nativefier defaults to a hardcoded known-to-work stable version (currently, as you said, 1.6.6). Check nativefier --help for the full list of supported flags.

@ronjouch works!

hello sir
you had just told to copy all files from cache folder and put them into local machine
But i can't understand this reply
I need to load my local files into nativefier but without the use of internet connection
Could you please help me

export ELECTRON_GET_USE_PROXY=1 # 值为1或true
export GLOBAL_AGENT_HTTP_PROXY=http://proxy.example.com:1080
export GLOBAL_AGENT_HTTPS_PROXY=https://proxy.example.com:1080


DNS issues

Description
We seem to periodically get issues resolving web sites on some run runs.  This appears completely random on different operating systems, though it appears to be almost constant on macOS and less often on Ubuntu and very infrequently on Windows.
Platforms affected

[ ] Azure DevOps
[X] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] Ubuntu 24.04
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[X] macOS 14 Arm64
[ ] macOS 15
[ ] macOS 15 Arm64
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
On Ubuntu 22.04, last encountered: 20241015.1.0 (https://github.com/SpiNNakerManchester/sPyNNaker/actions/runs/11700388899/job/32584448086)
On Windows Server 2022, last encountered: 20241021.1.0 (https://github.com/SpiNNakerManchester/sPyNNaker/actions/runs/11660030018/job/32462691344)
On MacOS 14 Arm64, last encountered (note this run is disabled now as it happens so often):  20240818.4 (https://github.com/SpiNNakerManchester/sPyNNaker/actions/runs/10593826135/job/29357835356)
Is it regression?
Not obvious - possibly not
Expected behavior
DNS lookup succeeds on every run!
Actual behavior
DNS lookup fails randomly.
Repro steps
Run actions; could probably re-run some of our actions as linked above, but it is random...

Hi @rowleya ,
It seems to be that the issue you’re experiencing might be related to the DNS configuration for the domain spinnaker.cs.man.ac.uk, rather than an issue with the macOS latest environment itself. Sometimes, DNS misconfigurations or issues on the DNS server side can cause the problems. Could you please check on your end to ensure there are no DNS related issues? We’re also looking into it from our side to confirm there are no additional factors involved.

Hi @rowleya,
Since there is no further action pending from our end we are closing this issue for now. Please feel free to reach out if you’ve any further questions. Thanks.


How To: Create a custom handlebars template with the latest release

Hello,
I am reading through the docs and I couldn't find enough info on how to provide our own handlebars template to generate custom stuff?
Thanks
Bilal

Hi @bhaidar !
We changed the way the templates are being written, and now you are not forced to use Handlebars.
You can read the docs here: https://graphql-code-generator.com/docs/custom-codegen/write-your-plugin
And there is a section that explains how to use Handlebars if you wish to: https://graphql-code-generator.com/docs/custom-codegen/using-handlebars


[Relay] Make deferring of module content data work.

We want to be able to show the modules (rails) asap (type, title). The actual content of those modules may be loaded afterwards and in a staggered fashion.

This is a doner 👍


A blank line when Ctrl+P

📝 Environment

fish_ai_bug_report
Environment
Running on Fedora Linux 42 (Workstation Edition Prerelease)
Keyboard and key bindings
bind \cp _fish_ai_codify_or_explain
bind -k nul _fish_ai_autocomplete_or_fix
WARNING: Running setxkbmap against an Xwayland server
Keyboard layout: us
Dependencies
Python 3.13.0rc3
fish, version 3.7.0
fisher, version 4.4.5
git version 2.46.2
Package                      Version

annotated-types              0.7.0
anyio                        4.6.0
azure-ai-inference           1.0.0b4
azure-core                   1.31.0
binaryornot                  0.4.4
cachetools                   5.5.0
certifi                      2024.8.30
chardet                      5.2.0
charset-normalizer           3.3.2
distro                       1.9.0
fish_ai                      0.10.0
google-ai-generativelanguage 0.6.10
google-api-core              2.20.0
google-api-python-client     2.148.0
google-auth                  2.35.0
google-auth-httplib2         0.2.0
google-generativeai          0.8.2
googleapis-common-protos     1.65.0
grpcio                       1.66.2
grpcio-status                1.66.2
h11                          0.14.0
httpcore                     1.0.6
httplib2                     0.22.0
httpx                        0.27.2
hugchat                      0.4.11
idna                         3.10
isodate                      0.7.0
iterfzf                      <IP_ADDRESS>.3
jiter                        0.6.1
jsonpath-python              1.0.6
mistralai                    1.0.2
mypy-extensions              1.0.0
openai                       1.50.2
pip                          24.2
proto-plus                   1.24.0
protobuf                     5.28.2
pyasn1                       0.6.1
pyasn1_modules               0.4.1
pydantic                     2.8.2
pydantic_core                2.20.1
pyparsing                    3.1.4
python-dateutil              2.9.0.post0
requests                     2.32.3
requests-toolbelt            1.0.0
rsa                          4.9
simple-term-menu             1.6.4
six                          1.16.0
sniffio                      1.3.1
tqdm                         4.66.5
typing_extensions            4.12.2
typing-inspect               0.9.0
uritemplate                  4.1.1
urllib3                      2.2.3
Fish plugins
jorgebucaran/fisher
realiserad/fish-ai
Configuration
[fish-ai]
configuration = openai
debug = True
log = ~/log.txt
[openai]
provider = openai
model = gpt-4o-mini
organization = Personal
Functionality tests
🔥 Running functionality tests...
codify 'print the current date' -> '' (in 1 seconds)
explain 'date' -> '' (in 0 seconds)

🙉 To reproduce
Adding a comment, pressing Ctrl+P, and I just get an empty line (the comment is deleted); also, it doesn't create the log.txt file, and it doesn't make any request to OpenAI

actually there is an issue with OpenAI (error 429 on the API even if there are credits); I'm trying to sort it out, but i keep the bug open since there isn't a log file created to see the error;

Thank you for the bug report.
It may be that this commit swallows some error message.
Can you try to roll back to an older version and try again?
fisher remove (fisher list fish-ai)
fisher install realiserad/fish-ai@d68f68e563ab47581955e602dae8fa4b73c8b4ab

it still doesn't create the log file, but there is an error output! so i typed "hello" and pressed Ctrl+P
helloTraceback (most recent call last):
  File "/home/me/.fish-ai/bin/explain", line 5, in <module>
    from fish_ai.explain import explain
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/fish_ai/explain.py", line 3, in <module>
    from fish_ai import engine
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/fish_ai/engine.py", line 5, in <module>
    import google.generativeai as genai
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/generativeai/__init__.py", line 45, in <module>
    from google.generativeai import protos
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/generativeai/protos.py", line 74, in <module>
    from google.ai.generativelanguage_v1beta.types import *
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/__init__.py", line 21, in <module>
    from .services.cache_service import CacheServiceAsyncClient, CacheServiceClient
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/services/cache_service/__init__.py", line 16, in <module>
    from .async_client import CacheServiceAsyncClient
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/services/cache_service/async_client.py", line 51, in <module>
    from google.ai.generativelanguage_v1beta.services.cache_service import pagers
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/services/cache_service/pagers.py", line 27, in <module>
    from google.ai.generativelanguage_v1beta.types import cache_service, cached_content
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/types/__init__.py", line 45, in <module>
    from .discuss_service import (
    ...<7 lines>...
    )
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/types/discuss_service.py", line 22, in <module>
    from google.ai.generativelanguage_v1beta.types import citation, safety
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/google/ai/generativelanguage_v1beta/types/safety.py", line 222, in <module>
    class SafetySetting(proto.Message):
    ...<45 lines>...
        )
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/proto/message.py", line 279, in __new__
    file_info.generate_file_pb(new_class=cls, fallback_salt=full_name)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/me/.fish-ai/lib64/python3.13/site-packages/proto/_file_info.py", line 104, in generate_file_pb
    pool.Add(self.descriptor)
    ~~~~~~~~^^^^^^^^^^^^^^^^^

I can reproduce the problem. It happens on Python 3.13. If you use Python 3.10 it will work.
Looks like the dependency google-generativeai is involved. I'll look into it.

Looks like Python 3.13 is not supported by google-generativeai yet.
I'll keep an eye on it and update the dependency as soon as a new version is available.

i replaced python3 to python3.10 on ~/.config/fish/conf.d/fish-ai.fish but i still get the same error with python3.13; is there any way to fast try it without clone and build the repo?

@alex285
Remove the existing version and then install from the branch I just created with this commit.
fisher remove (fisher list fish-ai)
fisher install realiserad/fish-ai@test/supported-python-versions

doesnt output an error, but it doesn't run either, however it creates the log file:
Codifying commandline: hello
load_ssl_context verify=True cert=None trust_env=True http2=False
load_verify_locations cafile='/home/me/.fish-ai/lib64/python3.10/site-packages/certifi/cacert.pem'
Request options: {'method': 'post', 'url': '/chat/completions', 'files': None, 'json_data': {'messages': [{'role': 'system', 'content': 'You are a shell scripting assistant working inside a fish shell.\nThe operating system is Fedora Linux 42 (Workstation Edition Prerelease)"\n. Your output must to be shell runnable.\nYou may consult Stack Overflow and the official Fish shell\ndocumentation for answers. If you are unable to fulfill the request,\nrespond with a short message starting with "error: ".\n'}, {'role': 'system', 'content': "Respond with a fish shell command which carries out the user's\ntask. Do not explain. Only respond with a single line."}, {'role': 'user', 'content': 'List all disks on the system'}, {'role': 'assistant', 'content': 'df -h'}, {'role': 'user', 'content': 'Pull the Alpine 3 container from DockerHub'}, {'role': 'assistant', 'content': 'docker pull alpine:3'}, {'role': 'user', 'content': 'Substitute all occurrences of the string "foo" with the string "bar" in the file "docker-compose.yml"'}, {'role': 'assistant', 'content': 'sed -i "s/foo/bar/g" docker-compose.yml'}, {'role': 'user', 'content': 'hello '}], 'model': 'gpt-4o-mini', 'max_tokens': 1024, 'n': 1, 'stream': False, 'temperature': 0.2}}
Sending HTTP Request: POST https://api.openai.com/v1/chat/completions
connect_tcp.started host='api.openai.com' port=443 local_address=None timeout=5.0 socket_options=None
connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x7f1d68fe3760>
start_tls.started ssl_context=<ssl.SSLContext object at 0x7f1d68f27d40> server_hostname='api.openai.com' timeout=5.0
start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x7f1d68fe34c0>
send_request_headers.started request=<Request [b'POST']>
send_request_headers.complete
send_request_body.started request=<Request [b'POST']>
send_request_body.complete
receive_response_headers.started request=<Request [b'POST']>
receive_response_headers.complete return_value=(b'HTTP/1.1', 401, b'Unauthorized', [(b'Date', b'Wed, 09 Oct 2024 13:30:52 GMT'), (b'Content-Type', b'application/json; charset=utf-8'), (b'Content-Length', b'218'), (b'Connection', b'keep-alive'), (b'vary', b'Origin'), (b'x-request-id', b'req_b0c9ca6b2c8a5588fb67b47e36f8f54a'), (b'strict-transport-security', b'max-age=31536000; includeSubDomains; preload'), (b'CF-Cache-Status', b'DYNAMIC'), (b'Set-Cookie', b'__cf_bm=02ti73H8dpDmjKLB_shQQVnIQXzCIs4nXFmVeHkqg_E-1728480652-<IP_ADDRESS>-3YsHipK.PhdZ7UrJxtO7ZVrDRpLwJWepxzMdVHww32SEcc7jg0NwREDajiwdFLYB.mHdo2Ilg.n8FbNGtIpQ6A; path=/; expires=Wed, 09-Oct-24 14:00:52 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'X-Content-Type-Options', b'nosniff'), (b'Set-Cookie', b'_cfuvid=NYK3ZtkvejA2ck0T3.0KjVfY7NX1R7Pp9sgmT.CGp7Q-1728480652266-<IP_ADDRESS>-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), (b'Server', b'cloudflare'), (b'CF-RAY', b'8cfeba4b7f27d0d4-SOF'), (b'alt-svc', b'h3=":443"; ma=86400')])
HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 401 Unauthorized"
receive_response_body.started request=<Request [b'POST']>
receive_response_body.complete
response_closed.started
response_closed.complete
HTTP Response: POST https://api.openai.com/v1/chat/completions "401 Unauthorized" Headers([('date', 'Wed, 09 Oct 2024 13:30:52 GMT'), ('content-type', 'application/json; charset=utf-8'), ('content-length', '218'), ('connection', 'keep-alive'), ('vary', 'Origin'), ('x-request-id', 'req_b0c9ca6b2c8a5588fb67b47e36f8f54a'), ('strict-transport-security', 'max-age=31536000; includeSubDomains; preload'), ('cf-cache-status', 'DYNAMIC'), ('set-cookie', '__cf_bm=02ti73H8dpDmjKLB_shQQVnIQXzCIs4nXFmVeHkqg_E-1728480652-<IP_ADDRESS>-3YsHipK.PhdZ7UrJxtO7ZVrDRpLwJWepxzMdVHww32SEcc7jg0NwREDajiwdFLYB.mHdo2Ilg.n8FbNGtIpQ6A; path=/; expires=Wed, 09-Oct-24 14:00:52 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('x-content-type-options', 'nosniff'), ('set-cookie', '_cfuvid=NYK3ZtkvejA2ck0T3.0KjVfY7NX1R7Pp9sgmT.CGp7Q-1728480652266-<IP_ADDRESS>-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'), ('server', 'cloudflare'), ('cf-ray', '8cfeba4b7f27d0d4-SOF'), ('alt-svc', 'h3=":443"; ma=86400')])
request_id: req_b0c9ca6b2c8a5588fb67b47e36f8f54a
Encountered httpx.HTTPStatusError
Traceback (most recent call last):
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 1030, in _request
    response.raise_for_status()
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/httpx/_models.py", line 763, in raise_for_status
    raise HTTPStatusError(message, request=request, response=self)
httpx.HTTPStatusError: Client error '401 Unauthorized' for url 'https://api.openai.com/v1/chat/completions'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401
Not retrying
Re-raising status error
Error code: 401 - {'error': {'message': 'OpenAI-Organization header should match organization for API key', 'type': 'invalid_request_error', 'param': None, 'code': 'mismatched_organization'}}
Traceback (most recent call last):
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/fish_ai/codify.py", line 92, in codify
    response = engine.get_response(messages=get_messages(commandline))
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/fish_ai/engine.py", line 268, in get_response
    completions = get_openai_client().chat.completions.create(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_utils/_utils.py", line 274, in wrapper
    return func(*args, **kwargs)
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/resources/chat/completions.py", line 704, in create
    return self._post(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 1270, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 947, in request
    return self._request(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 1051, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'OpenAI-Organization header should match organization for API key', 'type': 'invalid_request_error', 'param': None, 'code': 'mismatched_organization'}}
Error code: 401 - {'error': {'message': 'OpenAI-Organization header should match organization for API key', 'type': 'invalid_request_error', 'param': None, 'code': 'mismatched_organization'}}
Traceback (most recent call last):
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/fish_ai/codify.py", line 92, in codify
    response = engine.get_response(messages=get_messages(commandline))
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/fish_ai/engine.py", line 268, in get_response
    completions = get_openai_client().chat.completions.create(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_utils/_utils.py", line 274, in wrapper
    return func(*args, **kwargs)
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/resources/chat/completions.py", line 704, in create
    return self._post(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 1270, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 947, in request
    return self._request(
  File "/home/me/.fish-ai/lib64/python3.10/site-packages/openai/_base_client.py", line 1051, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'OpenAI-Organization header should match organization for API key', 'type': 'invalid_request_error', 'param': None, 'code': 'mismatched_organization'}}
close.started
close.started
close.complete
close.complete

The error is:
401 Unauthorized
OpenAI-Organization header should match organization for API key

Does this post help?

Does this post help?

im not sure how? it says that you dont need to add an organization, but on fish-ai.ini it asks for organization

You can try to remove that line in the configuration. It's possible that the example in the README is not accurate. I would test it myself, but I do not have access to OpenAI anymore.

You can try to remove that line in the configuration. It's possible that the example in the README is not accurate. I would test it myself, but I do not have access to OpenAI anymore.

tried already, same issue unfortunately 😟

I have made the plugin more aware of what version of Python is being used to run it. I'm now running pytest on a set of supported versions of Python, and if the plugin is installed with a different version, it will warn the user and provide instructions for how to install on a supported version.
@alex285 Please remove fish-ai once more, and install the latest one with e.g. Python 3.12 (the latest version that seems to work). Here are the commands:
fisher remove (fisher list | grep fish-ai)
set -g FISH_AI_PYTHON_VERSION 3.12
fisher install realiserad/fish-ai

If you still have issues with OpenAI, and believe that this is a problem with the plugin, feel free to open a new issue. 🙂


No status codes on simple operations

The rocksdb cpp library returns a Status object for each operation. Unfortunately, operations such as Put or Delete don't seem to return anything when the operation fails. For example, if I do the following:
import rocksdb
# Create an entirely new database
db = rocksdb.DB("/tmp/foo", rocksdb.Options(create_if_missing=True))
result = db.delete("blah")
print(result)

result is None. No exceptions are raised.
This makes it hard to build an API that responds to failures or unexpected events. For example, I may want to take a different path if I try to delete an object which does not exist. Of course, I could try to get it first, and if that fails, then error out, but that's not very efficient.
Would it be possible to extend the API somehow to allow this?

So looked at all the operations we check the status.   The underlying Rocksdb doesn't consider a delete for a non-existent key to be an error so the status is OK

Okay. If it exposes any errors that do occur, I'm fine with it. :) That said, I can't quite figure out how I as a user would use them... How does cython translate them? Is it in the generated .cpp  that seems to have been installed alongside the package? Maybe I can figure it out for myself.

Ah, I see.
For example, this function is called if the error is not "not found" for get():
https://github.com/twmht/python-rocksdb/blob/98910c2dce41c02aaa1745ae09e9d5fcdde34bdd/rocksdb/_rocksdb.pyx#L67
And it raises one of the errors there. I guess it's unclear how the state of the DB maps to those. That said, the actual rocksdb documentation doesn't seem to make that clear either. :(
Should we update this issue to ask for a docs update? Or should I just open a new one?

Please see the branch pybind11. Now every transaction returns the status. And more information are going to update in the document.


Fix another typo

Fix another typo (StorageServiceKeyOperationContext only has the Primary property)

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


Allow using the back camera on phones

you can patch web/src/detection/camera_reader.js to include:
'video': { facingMode: 'environment' }
(instead of simply 'video': true)

Thanks @hananbeer !
implemented.


GH-2009 - updated OperationTests to properly use getTestObject and getRequiredFields

Note I have also removed some duplicated code in the Operation class

Codecov Report

Merging #2010 into develop will decrease coverage by <.01%.
The diff coverage is 69.23%.

@@              Coverage Diff              @@
##             develop    #2010      +/-   ##
=============================================
- Coverage         66%   65.99%   -0.01%
+ Complexity      2205     2200       -5
=============================================
  Files            888      888
  Lines          29061    29058       -3
  Branches        3627     3626       -1
=============================================
- Hits           19182    19178       -4
- Misses          8393     8398       +5
+ Partials        1486     1482       -4

Impacted Files
Coverage Δ
Complexity Δ

.../operation/graphframe/GetGraphFrameOfElements.java
96.55% <100%> (ø)
14 <0> (+1)
:arrow_up:

...in/java/uk/gov/gchq/gaffer/operation/impl/Map.java
75.67% <100%> (-10.44%)
9 <0> (-2)

...eratedstore/operation/FederatedOperationChain.java
50% <50%> (+1.85%)
0 <0> (ø)
:arrow_down:

...n/java/uk/gov/gchq/gaffer/operation/Operation.java
71.69% <66.66%> (+8.54%)
13 <2> (+1)
:arrow_up:

...uk/gov/gchq/gaffer/operation/util/Conditional.java
38.23% <0%> (-11.77%)
7% <0%> (-2%)

...java/uk/gov/gchq/gaffer/operation/impl/Reduce.java
81.25% <0%> (-9.38%)
10% <0%> (-1%)

...gchq/gaffer/named/operation/AddNamedOperation.java
84.21% <0%> (-7.9%)
20% <0%> (-3%)

.../uk/gov/gchq/gaffer/operation/io/GenericInput.java
71.25% <0%> (+1.25%)
15% <0%> (ø)
:arrow_down:

...onutil/iterable/LimitedInMemorySortedIterable.java
50% <0%> (+2.77%)
16% <0%> (+1%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 887d669...dad4e8b. Read the comment docs.

Hi @benj-fletch, thanks for this.  Sorry I forgot to mention any method that overrides a test, does not also need the test annotation again.  For example in AddNamedOperationTest the shouldJsonSerialiseAndDeserialise method has the Override and Test annotation.  This is however not necessary as the parent method already has the Test annotation.  This can cause issues if we ever start loading the tests in via Reflection, as we do with the ITs currently.  The tests will then be run twice.  Can these be updated to reflect this.

@m55624 ah I was not aware that was the behaviour! I have had a look for places that both override and have the test annotation and removed the extra @Test annotation


Rotating quad faces of a cube

Hi. I have a cube entity that draws faces of a cube, similar to what's mentioned in https://github.com/phoboslab/TwoPointFive/issues/7#issuecomment-514568338. I've managed to hack something together to manually rotate each face in tandem to simulate rotation of a cube but it's janky at best. Any advice of on how to do this properly?
I can see the loader rotates the camera around a cube, but in my case I need to rotate the actual cube itself, not the camera.

In case it's helpful to anyone, while looking into a solution for the above, I added support for changing the pivot for quad rotations by modifying this._recalcPositions in quad.js:
	this.pivot = vec3.create();

        mat4.translate(m, m, this.position);

	if(piv[0] || piv[1] || piv[2]) {
		mat4.translate(m, m, [-this.pivot[0], -this.pivot[1], -this.pivot[2]]);
	}

	if( rot[0] ) { mat4.rotateX(m, m, rot[0]); }
	if( rot[1] ) { mat4.rotateY(m, m, rot[1]); }
	if( rot[2] ) { mat4.rotateZ(m, m, rot[2]); }

	if(piv[0] || piv[1] || piv[2]) {
		mat4.translate(m, m, [this.pivot[0], this.pivot[1], this.pivot[2]]);
	}

Then adjust the pivot with:
	this.tile.quad.setPivot( x, y, z)


expose cycleSpeed for color changing lights

Lights that have mode COLOR_WHEEL also have a speed
{   'color': {'blue': 0, 'green': 0, 'red': 0, 'white': 0},
    'cycleSpeed': 3,
    'exterior': False,
    'intensity': 60,
    'irt': None,
    'mode': 'COLOR_WHEEL',
    'zone': 1}

Interesting, is there a way to set it, or is it just informational?


I'm now a contributor

To be on the contribution list you actually have to contribute with something :)
Closing this but you can make a new pull request when you contributed.


"Value does not fall within expected range" if set ReuseAddress to TRUE

Information about bug or feature
var net = new NetworkManager(this);
net.ReuseAddress = true;
net.Start();

Library version: de15ad9a7cc757ca9a47e6684defa56a653f7590
Framework: Unity .net 4.x
OS: Windows
throw at this line: https://github.com/RevenantX/LiteNetLib/blob/master/LiteNetLib/NetSocket.cs#L154
naughty quick fix: https://github.com/quabug/LiteNetLib/blob/master/LiteNetLib/NetSocket.cs#L151

Thanks for report!


Short solution needed: "PCA" (python-scikit-learn)

Please help us write most modern and shortest code solution for this issue:
PCA (technology: python-scikit-learn)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

PCA example


Mutable consuming self argument

I want to generate a trait impl like this:
impl Trait for Struct {
    fn something(mut self) -> Self {
        self.field = // mutate something
        self
    }
}

FnBuilder currently has no intentional way to specify a consuming self argument as mutable; with_self_arg(FnSelfArg::TakeSelf) maps to self. As a workaround, a self argument can be specified as a normal argument instead:
fn generate(gen: &mut Generator) {
    gen.impl_for("Trait")
       .generate_fn("something")
       .with_arg("mut self", "Self")
       // ...
}

// generates...
impl Trait for Struct {
    fn something(mut self: Self) -> Self {
        // ...
    }
}

Should be easy enough to implement, just add the variant here: https://github.com/bincode-org/virtue/blob/trunk/src/generate/generate_item.rs#L441, and then fix the compile issues


[Android] You must register a PurchasingListener before invoking this operation

react-native Version: 0.72.6
react-native-iap Version: 12.2.2
Platform: Android
Hello, I have a problem trying to implement react-native-iap inside a component.
I followed the starting guide and the examples provided and when I try to enter the component with the pruchases the program stucks and the emulator shows me that:

It seems to be related with RNIapAmazonModule. I am trying to implement just Google Play Subscriptions.
I don´t know if I missed something or is a problem between versions, I tried with older versions and still the same problem.
Thank you for your attention.

I got mine working by implementing this https://react-native-iap.dooboolab.com/docs/guides/amazon-iap, even tho I am not using it


Update Lizard to IDF 5.3.1

This contains a full upgrade to idf 5.3.1, including the components (no owl update)

[x] Change how idf modules are loaded
[x] update all Lizard modules
[x] update lizard components
[x] change esp-serial-flasher to newer esp32-serial-flasher from espressif
[x] update the stepper motor module to work with IDF 5.3.1

Some testing might still be necessary, especially for the modules with bigger changes. OWL and the i2c driver are not updated yet.

The StepperMotor module is now working with the legacy driver. I also tested with the newer pulse_cnt, but it did not work, fully since it did not want to report any positioning.
With the fix, all Modules should be functional.

With this approved, also the idf 5.2.1 update branch can be archived

This should now be ready @falkoschindler


Remove old code unneeded for Cronet

Envoy was a full browser conversion at some point, this removes all the code not needed for cronet builds (this code was getting pretty out of date anyway)
Removing this code will make the patches easier to update and understand.
I build cronet and envoy with these patches disabled, and everything seems to work fine

this looks ok to me.


show loading when more data is coming

after refreshing the page, the loading icon disappears and i see the main page as if i have no protoected amounts.
(while i have several open positions and should not see this screen)

https://www.figma.com/file/3yED7o7TgoLwoEjV2EkRLL/Bancor-V2?node-id=582%3A0

duplicated issue #296


[Bug] There is no password requirements for registration, you can register with 1 symbol

Describe the bug
There is no password requirements for registration, you can register with 1 symbol
To Reproduce
Steps to reproduce the behavior:

Go to 'podkrepi.bg/register'
Fill up all the fields and on Password set 1 symbol

You can register with just 1 symbol

@rkgeorgiev The requirement should be tested at


Global Illumination to WebGPU

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15411/merge
Test environment:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15411/merge/index.html
To test a playground add it to the URL, for example:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15411/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15411/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15411/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15411/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15411/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15411/merge#BCU1XR#0

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15411/merge/testResults/webgpuplaywright/index.html

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15411/merge/testResults/webgl2playwright/index.html


Inconsistent print from graphql

Describe the bug
Given this document:
{
  kind: 'Document',
  definitions: [
    {
      kind: 'OperationDefinition',
      operation: 'query',
      name: undefined,
      selectionSet: {
        kind: 'SelectionSet',
        selections: [
          {
            kind: 'Field',
            name: { kind: 'Name', value: 'id' },
            alias: undefined,
            arguments: [],
            directives: [],
            selectionSet: { kind: 'SelectionSet', selections: [] }
          }
        ]
      },
      variableDefinitions: []
    }
  ]
}

The result is:
{
  id {

  }
}

But when using print from the<EMAIL_ADDRESS>package it is:
{
  id
}

Reproduction
See above
Package version
1.0.11
Validations

[X] I can confirm that this is a bug report, and not a feature request, RFC, question, or discussion, for which GitHub Discussions should be used
[X] Follow our Code of Conduct

This is fixed and released in 1.0.12! Thanks for the report


NVSHAS-8539 proxy password lost

NVSHAS-8539 proxy password lost
Problem
Controller doesn't check if password is null or not before overwriting the existing value.
Solution
This commit provides an API update for UI to
resolve this issue.
Tests performed
Slack integration with tinyproxy.

looks good to me.

@williamlin-suse @jeffhuang4704 The implementation has been updated per our discussion.  Please help to re-review.  Thanks!


Missing postgres 12.2+ (alpine)

Looking at the published images, (or in json form), we see that starting PostgreSQL 12.2+, there are no more builds for the alpine variant. The latest one seems to be 12.1.
I couldn't find any information stating whether this is deliberate, so I'm leaving this message here. Hope to be able to get some CircleCI flavored builds for 12.4 (alpine-ram) so that we our CircleCI workflows can again match production.
Thanks!

Yes this was intentional. They were dropped 9 months ago: https://github.com/circleci/circleci-images/pull/463
If you really need Alpine, some people have gotten the upstream, non-CircleCI image working. Otherwise, if you are using this as a service image (non-primary image with the Docker executor) than theoretically the images should all behave the same way.
I hope that helps.


O 365 Activity class file added to the project even if credentials are not given .

OS - Windows
Plugin Version - 0.1.197
IDE - Intellij Idea Ultimate 14.1.2 , JRE 1.8
Authentication - Publish Settings file
Steps -
Create an application.
Add a new O 365 activity to the app .
When asked for credentials to Sign in to Microsoft Account .
Don't provide any credentials and just Click the Close button of the wizard .

It is still adding the "O 365 Activity.java "  file to the project .

Let's focus on not having the activity file for now. I will open a new issue for the gradle dependencies.

Without giving O365 credentials plugin not allowing to add O365 activity.


Hubot behind a proxy

I'm behind a proxy, and while hubot ping works just fine, math me 2+2 doesn't work. In fact, any step that uses a get() in the script just doesn't work at all. How do I either:

Tell Hubot to use a proxy when doing a .get()?
Get some additional debugging out of Hubot so that I can diagnose why things aren't working?

Thanks!

+1 for this feature if you guys implement it

Hey all,
I've created a gist with a quick fix, we use it for our company's hubot.  Depending on the corporate proxy configuration, this might result in 404 requests if requesting internal sites through that proxy.
Since we use Docker to deploy our hubot(s), we just simply overwrite this file after any npm install or yo hubot:
...
# Run yeoman
RUN su $HUBOT_USER -c "yo hubot --owner=\"$HUBOT_OWNER\" --name=\"$HUBOT_NAME\" --description=\"$HUBOT_DESCRIPTION\" --adapter=\"$HUBOT_ADAPTER\" --defaults"

# Add proxy hack for hubot
ADD hacks/node_modules/hubot/node_modules/scoped-http-client/src/index.js node_modules/hubot/node_modules/scoped-http-client/src/index.js
...

Hope that helps some people locked behind firewalls. Cheers

For those following along, @michaelansel started work on a solution to this over in https://github.com/github/hubot/issues/884 and https://github.com/technoweenie/node-scoped-http-client/issues/31

@michaelansel Where is it you load in your proxy work around?

@jlbates504 You just create a script with no listeners. It will get executed during startup and be ready for all your listeners to use afterwards.
https://hubot.github.com/docs/patterns/#forwarding-all-http-requests-through-a-proxy

Hi all,
I wrote an external script that loads proxy setting from environment variables
to make it easier. I hope this helps.
https://www.npmjs.com/package/hubot-proxy-loader

@notok - thanks, this worked like a champ :+1:


Why only one GPU is getting used in the kaggle kernel

Bug description

i initialized my trainer
trainer = L.Trainer(max_epochs=5,
                    devices=2,
                    strategy='ddp_notebook',
                    num_sanity_val_steps=0,
                    profiler='simple',
                    default_root_dir="/kaggle/working",
                    callbacks=[DeviceStatsMonitor(),
                               StochasticWeightAveraging(swa_lrs=1e-2),
                               #EarlyStopping(monitor='train_Loss', min_delta=0.001, patience=100, verbose=False, mode='min'),
                              ],
                    enable_progress_bar=True,
                    enable_model_summary=True,
                   )

distributed is initialized for both the GPUs but only one is getting hit.
Also for validation loop the GPU are not in usage

How can I resolve the situation to use 2 GPUs and fasten my training.
What version are you seeing the problem on?
v2.4
How to reproduce the bug
No response
Error messages and logs
# Error messages and logs here please

Environment

Current environment
#- PyTorch Lightning Version (e.g., 2.4.0):
#- PyTorch Version (e.g., 2.4):
#- Python version (e.g., 3.12):
#- OS (e.g., Linux):
#- CUDA/cuDNN version:
#- GPU models and configuration:
#- How you installed Lightning(`conda`, `pip`, source):

More info
No response

It actually looks like both GPUs are being used.
The issue with the two utilization indicators may be that one process is CPU bound (e.g. rank 0 doing logging) while the other isn't. The model seems really small and essentially CPU operations dominate.
I suggest you increase the size of the model, or the size of the batch, to bring the actual utilization up.
You can also verify this by passing barebones=True to the Trainer: this should minimize non-model related operations  and the two GPUs will probably look more similar.


IMPLEMENT GET SET  similar c#  "NOT DUPLICATE"

class Car{
public  name {get; set; }
public marca {get; set;}
}
var c = new Car();
c.name = "fusca"; //SET
console.log(c.name); //GET
In case the compiler only needs to remove the
{get; set;} and set a common variable what do they think?

Hey, thanks for filing, but this seems to be a duplicate of #10911
In the future using the issue tracker's search functionality can make it easier for us to triage issues. Thanks!

That applies to decorators who yes is a useless implementation does not make sense even by how decorator the expression is simple
"public name {get; set;}"
example is decorators
"@get public name"

#7628

Where in the typescrypt compiler is the class counter in the typescrypt core so I can commit it and you see it's simple
#typescrypt.
class Car {

   public name {get; set;}
}
javascript example
var Car = function (...) {
Car.prototype.name = null;
}

public  name {get; set;}   not is function !!!
default ->>
get : any
set:  any

or
public name {get:string;set:any}

already discussed in #7628 mate..

One reason for this design tenet is that TS wants to stay compatible with future JS standards.
What if in the future JS chooses a different syntax for simplified properties? This happened in the past with modules and it was a little messy to recover from. Worse: what if JS introduces a new syntax that is plain incompatible with your proposed syntax?!
As kitsonk said, you probably should raise your voice at TC39 first so that the idea can trickle down from JS to TS.

the nearest that even got votes from the contributors is this #2763 where it considered its translation, compatibility and benefit towards .JS.

I'm just sorry

Automatically closing this issue for housekeeping purposes. The issue labels indicate that it is unactionable at the moment or has already been addressed.


Developer guidelines

Describe release procedure (update DESCRIPTION and NEWS.md - only header ideally..)
Add template for PR to add line to NEWS.md
Are new contributors also authors? both DESCRIPTION and CITATION.cff file should be updated  (right now they are already not synced!)

See usethis helper functions for developer guidelines: https://usethis.r-lib.org/reference/tidyverse.html

Describe release procedure (update DESCRIPTION and NEWS.md - only header ideally..)
Are new contributors also authors? both DESCRIPTION and CITATION.cff file should be updated  (right now they are already not synced!)
These are guidelines for the maintainer. Where are these usually written down?

I would still include them in the developers guide, maybe as a separate section.
See e.g. the developers guide for a big Python project (Iris): https://scitools-iris.readthedocs.io/en/latest/developers_guide/contributing_getting_involved.html


Add dynamic threshold and SNR approach to thresholds

I had some issues with the fixed threshold value in the Mic class, so I've tried to make it more dynamic and also use a signal to noise ratio to trigger.
I've also added maximum time outs to listen in case of noise suddenly being higher than threshold.
Examples of issue I had with fixed threshold: if the environment started quite, and then I put some music on, then the mic would continue in the "recoding" phase for keyword detection and therefore never trigger. ALso, although less of an issue, is in a noisy environment which went quite, I'd have to shout above the norm to get mic to trigger.

Thank you, it looks promising. I'll test this tomorrow. Just a small nit: I'd prefer:
import math
y = math.log(x)

Instead of:
from math import log
y = log(x) # could be mistaken for some logging call

Coverage remained the same at 45.44% when pulling ef7efb9e330834909039899de52e32eb1fe3b8ea on kwirk:dynamic-threshold into 54a5153edfaa1c60f1ed85b9687f402543d1504a on jasperproject:jasper-dev.

Finally found the time to do a proper review and merge this.


Add publication_ancillary assay to ontology

Related to PR https://github.com/hubmapconsortium/search-api/pull/661#event-9049435456

Added to SimpleKnowledge spreadsheet:

HUBMAP C012700 through HUBMAP C012703 for assay
HUBMAP C004021 for new vitessce hint (json)

Changes will be in the production ontology after next update.

Validated in dev instance of ubkg.


font

Issue
Describe your issue, steps to reproduce, additional information…
Screenshot
Provide a screenshot that show your issue

Environment
Operating system: <macOS/Windows/Linux>
Terminal emulator: <iTerm/Hyper/Terminator/etc>
ZSH version:
Relevant .zshrc
# your configuration here

@bskade can't see your screenshot

Also, if this is an issue with your icons, make sure to use a powerline-patched font  (see docs, ctrl-f for "font")

Closing this issue since there's no specific issue information provided and no activity for the last 30 days.
Feel free to reopen the issue with more information @bskade.


livecoding.tv plugin?

+1

+1
I'll dump some more information as I might create the plugin later:
livecoding.tv currently only features jwplayer/rtmp streams.
mobile streams might be supported later according to their roadmap (http://roadmap.livecoding.tv/)
channels are located at livecoding.tv/<username>. rtmp-streams can be found on these pages by looking for
var stream_url = "rtmp://(.*).livecoding.tv:1935/livecodingtv/cannap?t=(.*)";
there is only one quality setting so far (no transcoding done on server side)

#978


Add feature to collect function/statement/branch coverage to test command

This PR implements a new feature to collect test coverage data while running tests with -c / --coverage option enabled and report them in the output (either in human-friendly way or in JSON).
Approach
There are roughly two ways to implement coverage measurement: 1) collecting coverage in the interpreter side (like V8 JavaScript code coverage), and 2) collecting coverage in the VCL side (like Istanbul test coverage)
For option 1, adding support for code coverage to our interpreter may result in tight coupling between the interpreter and coverage measurement, which I think would not a great idea especially when considering a fact that falco uses the interpreter not only in tester but also in simulator and console features.
For option 2, since we already have a special function to mutate an existing table in tester mode, testing.table_set, tables can be used to store coverage data.
This PR adds a new process called "intstrumentation" to the preparation phase of testing: traversing an AST tree to find subroutines, statements, and branches to initialise coverage tables, and injecting testing.table_set statements to record executions of each subroutine, statement, or branch.
These injected statements will be evaluated along with original VCL code and produce coverage information for each test case.
After running all tests, each coverage information will be merged so that falco can calculate overall coverage percentages.
Screenshot

Related Issues

https://github.com/ysugimoto/falco/issues/314

@ysugimoto
I'm sorry for the PR being relatively large, but I look forward to hearing your impressions. Thank you!


Match Mozilla Necko's DNS cache

Match Firefox's DNS cache of 400 entries for up to 2 minutes. Mozilla experimented in 2018 with doubling their DNS cache from 400 to 800, but saw negligible improvements in cache hit ratios.
12 hours is much too long. Serving stale content for up to half a day isn’t a great user experience. Browsers cache TTL naïvely for 15 sec to 2 min. (See my DNS TTL client survey for details.)
Note that Windows DNS Cache, macOS’ mDNSResponder, and so on may cache DNS responses for up to their TTL so this change shouldn’t be a massive performance reduction. Negative DNS responses (websites without DNSLink) mybe a different story, however as caching is usually limited to just a few seconds to a minute.
Optimization potential:

Cache negative DNS responses (no DNSLink found) for longer than positive responses. Reduces unnecessary lookups for websites without IPFS.
Implement DNS TTL-aware caching.
Implement IPNS TTL-aware caching.
Implement "IPNS lifetime - now()" aware caching.

Thank you for suggesting this change, the insight from Mozilla is quite interesting!
There are more moving pieces than it seems, and we may not see the same benefits as Firefox  had with raw DNS. Some quick notes why:

We have to deal with an overhead of DNS over HTTP API: there is no WebExtension API to do DNS TXT queries[1], so we use DNSLink lookup API[2] exposed by go-ipfs or the public gateway.
This means two things:

request to previously unknown domain triggers HTTP GET to API
we have no access to DNS TTL value as /api/v0/dns only includes Path   (adding TTL is tracked in https://github.com/ipfs/go-ipfs/issues/5884)

The way things work right now, the actual DNSLink value is effectively ignored at ipfs-companion level – an entry in the cache acts as a boolean flag only to tell if TXT record exists or not.
Browser extension uses the presence of DNSLink in its cache as a hint that it should redirect request to /ipns/<fqdn> at the local gateway, and it is go-ipfs that takes care of actually resolving IPNS to the latest revision. This means even if old value is in cache, the latest version will be fetched by go-ipfs.
The current default DNSLink strategy[3] is "best-effort": DNSLink redirect is enabled and happens before HTTP request if DNSLink is already in cache. If not in cache, DNS TXT lookup is executed and cached in the background without blocking the page load. Due to this we want to maximize the time the DNSLink result is cached for and that is one of reasons  12 hour lifetime was picked.

That being said, in the future we may start using the actual DNSLink Path and TTL value at the browser extension level (eg. if native protocol handler API lands), and at that point it will be  worth revisiting the cache expiration times.
For now, "Optimization potential" lays mostly in go-ipfs, so I am thinking about parking this PR at least until we get insight into DNSLink's TTL. When https://github.com/ipfs/go-ipfs/issues/5884 lands we could switch DNSLink cache to real TTL value + set higher cache for negative DNS responses just like you suggested.

[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1449171
[2]: https://docs.ipfs.io/reference/api/http/#api-v0-dns
[3]: https://github.com/ipfs-shipyard/ipfs-companion/blob/v2.6.3/docs/dnslink.md


Ability to rotate pods when marked with an annotation

Would there happen to be a way for the rollout-operator to enact on pods when a given pod label or annotation is applied to it?
The Kubernetes cluster that our Mimir statefulsets run on have a 15-day node cycling enforcement. Due to the PDB only allowing 1 maxDisruption for the entire fleet of a statefulset (for example, ingesters in zones 1, 2, and 3), cycling all nodes in a kubernetes cluster can take up to a week.
This means that the system is left exposed to any upstream failures that the cloud provider may experience while the node cycling is occurring.
The cycling mechanism can either utilize a PDB or apply an annotation to the Mimir statefulset pods to have another system cycle the pods onto a new node.
The question I have is whether the rollout-operator can enact on these annotations in order to safely delete the pods at a quicker rate (due to more than 1 pod in a zone can be deleted if all other zones are still up) than 1-by-1 with the current PDB enforcement.

apply an annotation to the Mimir statefulset pods to have another system cycle the pods onto a new node

As a workaround, have you considered modifying a pod spec annotation (in the StatefulSet) to trigger a rollout?

As a workaround, have you considered modifying a pod spec annotation (in the StatefulSet) to trigger a rollout?

This is not a bad idea. I suspect this is akin to just doing a deployment of the statefulset itself (a change to the STS for the rollout operator to enact).
I'd like to not need to update all pods, if I can get away with it. It's unnecessary churn for the ingester pods and they may end up getting rescheduled on a K8s node that's set to expire soon thereafter.
Is there appetite for this feature? I've seen this in other rollout operators such as this, where an annotation can be added and the rollout operator can enact on the pod, if all conditions are right.


Protect the kafka-profision setting behind a mutex

Which problem is this PR solving?

Continuation of #2278 to fix #1983

Short description of the changes

Protect the Kafka Operator integration with a mutex.

 I didn't sign off one empty commit.


Helm components should always use version information

Signed-off-by: Sebastian Malton<EMAIL_ADDRESS>fixes #853
Helm seems to either want --devel or a --version to be set when listing items. Since we are already using version information in some places I felt it would be better to use it in all places.
This PR also refactors HelmChartDetails so that the promises are not called in non async functions and then not awaited. This was done to prevent the two occurrences of UnhandledPromiseRejections.

fixes #905


Experiment on making relayer components async-generic

More details at https://github.com/informalsystems/cgp/pull/1
This PR experiments on using async_generic_trait from cgp-async to implement the components in the ibc-relayer-components trait.

Superceeded by #56.


ipad/iphone issue after rotation

Hi,
I'm building web application with animated canvas (requestAnimationFrame) created with pixi . When I open my app on iPad (model A1701) in safari/chrome everything works fine till I will rotate device. My App is starting blinking and is unusable. Behaviour like this is not always replicable - I have to rotate my device few times to break it. The same behaviour is visible on other mobile ios devices (tested on iphone 6). On desktop browsers it's working fine and on android devices as well. I had ios 11.4 installed and I did an update to v12 - issue is still visible.
I was debugging my app by plugging device to macbook and inspecting in safari - no errors/warings in console, timelines tool shows performance around 60fps - even when it's blinking. Solution to fix that is only reload the app/page.
Also I've checked device console output (from xcode) and I see there errors when screen is starting blinking - a lot of the same errors. I've attached a screenshot from console output. I was trying to find a solution for that for last 2 weeks - It's a big blocker for me because I have to support mobile ios devices.
Thanks for any help ..

Environment

pixi.js version: 4.8.2 (and also tested on 4.6.2)
Browser: Safari / Chrome
Device: iPad / iPhone

Thank you for posting your findings, they'll be helpful for other devs having similar issues :)


Have you compiled whip-go for windows?

I got whip-go working on linux and mac. Any pointers to getting it to compile in windows, preferably as a statically linked binary?

I installed mingw 64-bit gcc compiler for cgo and added it to my path and golang version 1.17.3
export PATH=$PATH:'/drives/c/Program Files/Go/bin:/drives/c/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin'
git clone https://github.com/ggarber/whip-go
cd whip-go
go build
go: downloading github.com/pion/mediadevices v0.2.0
go: downloading github.com/pion/webrtc/v3 v3.0.20
go: downloading github.com/pion/datachannel v1.4.21
go: downloading github.com/pion/dtls/v2 v2.0.8
go: downloading github.com/pion/ice/v2 v2.0.16
go: downloading github.com/pion/interceptor v0.0.12
go: downloading github.com/pion/logging v0.2.2
go: downloading github.com/pion/randutil v0.1.0
go: downloading github.com/pion/rtcp v1.2.6
go: downloading github.com/pion/rtp v1.6.2
go: downloading github.com/pion/sctp v1.7.12
go: downloading github.com/pion/sdp/v3 v3.0.4
go: downloading github.com/pion/srtp/v2 v2.0.2
go: downloading github.com/pion/transport v0.12.3
go: downloading golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/kbinani/screenshot v0.0.0-20191211154542-3a185f1ce18f
go: downloading github.com/google/uuid v1.2.0
go: downloading github.com/pion/mdns v0.0.5
go: downloading github.com/pion/stun v0.3.5
go: downloading github.com/pion/turn/v2 v2.0.5
go: downloading github.com/pion/udp v0.1.0
go: downloading golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: downloading golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb
go: downloading github.com/satori/go.uuid v1.2.0
go: downloading github.com/lxn/win v0.0.0-20201111105847-2a20daff6a55
go: downloading golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad
go: downloading golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005
github.com/pion/mediadevices/pkg/frame
cc1: sorry, unimplemented: 64-bit mode not compiled in
gcc --version
gcc (GCC) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I tried both gcc 64-bit and 32-bit and got the same error "cc1: sorry, unimplemented: 64-bit mode not compiled in"
go version
go version go1.17.3 windows/amd64
what am i missing?


Revisit and design metrics gathering

Currently, AsyncWorker support metrics acquisition with Consumer<WorkerMeta<T>> workerStatsGetherer interface. That might be good for someone wanting to build custom metrics reporting around it. But is it not good enough for ranger-runner and configuration based execution. Some implementations need to be built around it. Features to support:

95th percentile
99th percentile
99.9 percentile
... have it maybe configurable
if packets are dropped, percent of dropped packets
Wait time, service time, response time
Report it every second or so
Maybe have metrics interface to collect and calculate metrics and send it to some reporter

Moved to berserker repository


chore(master): release 2.1.34

:robot: I have created a release beep boop
2.1.34 (2024-03-15)
Bug Fixes

deps: update dependency laravel/framework to v10.48.3 (c9a32d1)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-stripe-webhooks/releases/tag/v2.1.34 :sunflower:


feat(CalloutData): new experimental pattern created

Related Ticket(s)
#2823
Description
The CalloutData pattern was created and added to the blocks folder.

@RaphaelAmadeu jest snapshots are also out of date.

@RaphaelAmadeu circleci is complaining about an import for the feature flag, can you take a look?

@RaphaelAmadeu snapshots are outdated now, can you update?


Convert remaining float asserts to approx

Closes #21.
Converted assert_eq! to assert_relative_eq! for float comparisons not involving serialization in examples and tests.
Removed redundant extern crate palette; from example tests.

I'll stop commenting on individual changes, but anything that is related to (de)serializing should probably still be assert_eq, since they should preserve the original value. The issue for this is old and didn't take that into account.

Ok, that makes sense. I reverted those changes.

Great! I'll put this in the queue. Thank you!
bors r+


⚠ Bofrost.lu has degraded performance

In 77cf6bd, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1807 ms

Resolved: Bofrost.lu performance has improved in 5af6e71 after 6 minutes.


Cannot get content profile from item because fast query id format is not fully supported

Recently I tried to test my service that CRUD profile cards on items. But my service cannot get the profiles from any item in unit tests. So I decompiled into Sitecore and found out that Sitecore is using a fast query to get the content profile from items. Here is the call trace:

(entry point, initializing tracking field)
Sitecore.Analytics.Data.TrackingField.TrackingField(Field innerField)
Sitecore.Analytics.Data.TrackingField.Initialize()
Sitecore.Analytics.Data.TrackingField.InitializeProfiles()
Sitecore.Analytics.Data.ContentProfile.Parse(XElement node, Item item, AnalyticsItems analytics)
Sitecore.Analytics.Data.Items.Profiles
Sitecore.Analytics.Data.Items.ItemRecords.FindByName(string name)
(found error, cannot find profile by name)

Basically this is the query Sitecore uses to get profile by name:
fast://*[@@id = "12bd7e35-437b-449c-b931-23cfa12c03d8"]//*[@@name = "myprofilename"]
Then I did some fast query experiments in FakeDB:

fast://[@@id = "12bd7e35-437b-449c-b931-23cfa12c03d8"]//[@@name = "myprofilename"] - FAILED
fast://[@@id = "{12bd7e35-437b-449c-b931-23cfa12c03d8}"]//[@@name = "myprofilename"] - FAILED
fast://[@@id = "12BD7E35-437B-449C-B931-23CFA12C03D8"]//[@@name = "myprofilename"] - FAILED
fast://[@@id = "{12BD7E35-437B-449C-B931-23CFA12C03D8}"]//[@@name = "myprofilename"] - SUCCESS

So it seems that FakeDb does not support fast search when the id is lowercased and/or without '{}', yet Sitecore uses an id that is lowercased without '{}' in a fast query when it parses profile from tracking field. I wonder if there is a way to work around this situation?

In Sitecore, there is a SqlDataProvider which translates the FastQuery syntax into SQL script. FakeDb does not use SQL data provider  to avoid database connection. This also means that all the real fast query logic is unavailable. Actually, it simply behaves as regular Sitecore query.
Enabling such a limited FQ support probably was a doubtful decision. It allowed to write unit tests for some very simple scenarios, but integration tests were always required to check everything works fine on a real instance.

I wonder if there is a way to work around this situation?

I'd help if I knew more about you scenario. A sample test is highly appreciated.
I also often recommend to look into new abstaractions introduced in Sitecore 8.2. Some scenarios might be mocked without FakeDb now.

Thanks! Here is the function I want to test:
public IEnumerable<ProfileCardItem> GetItemProfileCards(Item item)
{
    var trackingField = new TrackingField(item.Fields[AnalyticsIds.TrackingField]);
    var cards = trackingField.Profiles
        .Select(p => p.Presets.Keys.Select(k => p.GetPreset(k)))
        .SelectMany(p => p);
    return cards;
}

And here is the test I wrote for it:
[Theory]
[AutoDbData]
//HasAnalytics and DBContentProfile are custom code
//that inject profile items and templates into FakeDB
public void GetItemProfileCards_ShouldGetCards(
    [HasAnalytics]Db db,
    [Content]DbContentProfile dbProfile,
    [Content]DbItem dbItem)
{
    var profileCard = new ProfileCardItem(db.GetItem(dbProfile.ProfileCardItems[0].ID));
    //TrackingData is a custom object to make assigning value to tracking field easier
    var serializer = new XmlSerializer(typeof(TrackingData));
    using (TextReader reader = new StringReader(profileCard.ProfileCardValue))
    {
        var tracking = (TrackingData)serializer.Deserialize(reader);
        tracking.Profiles.First().Presets =
        new List<Preset>() { new Preset() { Name = profileCard.Name, Percent = 100 } };
        using(var writer = new StringWriter())
        {
            serializer.Serialize(writer, tracking);
            dbItem.Add(AnalyticsIds.TrackingField, writer.ToString());
        }
    }
    var item = db.GetItem(dbItem.ID);

    var sut = new MyService();
    var cards = sut.GetItemProfileCards(item);

    cards.Should().BeNullOrEmpty("Get item profile cards should never return null");
    cards.Count().Should().Be(1);
    cards.First().Name.Should().Be(profileCard.Name);
}

Closing this issue since there is nothing I can do about it. Feel free to reopen if new ideas appear.


[CORE-VCORE]: API call returns: 14 (failed to connect to all addresses)

除非特殊情况，请完整填写所有问题。不按模板发的 issue 将直接被关闭。
如果你遇到的问题不是 V2Ray 的 bug，比如你不清楚要如何配置，请使用Discussion进行讨论。

你正在使用哪个版本的 V2Ray？（如果服务器和客户端使用了不同版本，请注明）
2.6.3:5840
你的使用场景是什么？比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。
服务端使用trojan-go，客户端配置trojan-go插件，Chrome通过SwitchOmega访问www.google.com
你看到的不正常的现象是什么？（请描述具体现象，比如访问超时，TLS 证书错误等）
程序运行正常，看起来没有问题，但是v2ray没起作用，浏览器无法访问www.google.com，日志中出现很多[CORE-VCORE]: API call returns: 14 (failed to connect to all addresses)
你期待看到的正确表现是怎样的？
能使用Chrome访问www.google.com
请附上你的配置（提交 Issue 前请隐藏服务器端IP地址）。
{
"outbounds": [
{
"QV2RAY_USE_GLOBAL_FORWARD_PROXY": false,
"mux": {
"concurrency": 1,
"enabled": false
},
"protocol": "trojan-go",
"sendThrough": "<IP_ADDRESS>",
"settings": {
"encryption": "",
"host": "",
"mux": false,
"password": "d753bb523913c80b3ef7169281661a8f",
"path": "",
"plugin": "",
"port": 433,
"server": "xxx.xxx.xxx.xxx",
"sni": "xxx.xxx.xxx",
"type": 0
},
"streamSettings": {
},
"tag": "xxx"
}
]
}
服务器端配置:

    // 在这里附上服务器端配置文件
{
    "run_type": "server",
    "local_addr": "<IP_ADDRESS>",
    "local_port": 443,
    "remote_addr": "<IP_ADDRESS>",
    "remote_port": 8888,
    "password": [
        "d753bb523913c80b3ef7169281661a8f"
    ],
    "ssl": {
        "cert": "/etc/trojan-go/xxx.crt",
        "key": "/etc/trojan-go/xxx.key",
        "sni": "xxx.xxx.xxx"
    }
}

客户端配置:
    // 在这里附上客户端配置

请附上出错时软件输出的错误日志。在 Linux 中，日志通常在 /var/log/v2ray/error.log 文件中。

服务器端错误日志:
    // 在这里附上服务器端日志

客户端错误日志:
    // 在这里附上客户端日志

[BASE-MESSAGING]: Emitting signal: UPDATE_COLORSCHEME
[CORE-CONNECTION]: Stopping plugin kernel: trojan-go
[CORE-CONNECTION]: Inserting default values to simple config
[QV2RAY-CORE]: Cannot disconnect when there's nothing connected.
[CORE-CONNECTION]: Creating kernel plugin instance for protocoltrojan-go
[CORE-VCORE]: V2RayIntegration: 15000 = trojan-go
[CORE-CONNECTION]: Sending connection settings to kernel.
[CORE-CONNECTION]: Outbound protocol freedom is not a registered plugin outbound.
[CORE-CONNECTION]: Outbound protocol blackhole is not a registered plugin outbound.
[CORE-CONNECTION]: Applying new outbound settings.
[CORE-VCORE]: Starting kernels with V2RayIntegration.
[CORE-CONNECTION]: Starting kernel for protocol: trojan-go
[CORE-VCORE]: Core ABI: Windows PE 可执行文件
[CORE-VCORE]: Host ABI: Windows PE 可执行文件
[CORE-VCORE]: Host is compatible with core
[CORE-VCORE]: V2Ray output: V2Ray 4.32.1 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.15.4 windows/amd64);A unified platform for anti-censorship.
[CORE-UI]: Setting current item.

[CORE-VCORE]: Core ABI: Windows PE 可执行文件
[CORE-VCORE]: Host ABI: Windows PE 可执行文件
[CORE-VCORE]: Host is compatible with core
[CORE-VCORE]: V2Ray output: V2Ray 4.32.1 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.15.4 windows/amd64);A unified platform for anti-censorship.

[BASE-MESSAGING]: Emitting signal: UPDATE_COLORSCHEME

[CORE-UI]: Begin loading Json Model
[COMMON-FILEIO]: Some comments have been removed from the json.

[COMMON-FILEIO]: Some comments have been removed from the json.

请附上访问日志。在 Linux 中，日志通常在 /var/log/v2ray/access.log 文件中。

    // 在这里附上服务器端日志

其它相关的配置文件（如 Nginx）和相关日志。

如果 V2Ray 无法启动，请附上 --test 输出。

通常的命令为 /usr/bin/v2ray/v2ray --test --config /etc/v2ray/config.json。请按实际情况修改。

如果 V2Ray 服务运行不正常，请附上 journal 日志。

通常的命令为 journalctl -u v2ray。
请预览一下你填的内容再提交。

与 core 无关


Use prompts

We should consider using
https://github.com/terkelg/promptsw

@bcomnes
I'm not clear on this. Did you mean that specific feature "togglemessage-initial-active-inactive"?
Or change the package from Inquirer.js to Prompts 😀?

The hash was a mistake, I made this as a note to consider using prompts instead of inquirer.

Closing as stale. The link in the issue results in 404


Help text for Create Image modal/wizard in title

Help text that is provided for a modal or modal wizard should be provided in a popover that's available from a help icon in the title (per recent discussions with PF and Cockpit designers). Currently, in the Create Image modal, there is help text that is in the top right corner of the body. Let's move this to the title, just to the left of the close button.
Here is a codesandbox example that illustrates how to do this, including css needed for positioning and sizing the help icon relative to the close icon.
https://codesandbox.io/s/pf-wizard-w-help-k0f5s?file=/index.js

cc @jkozol


[Bug]: don't work hiddent number +888

telegram_media_downloader version or commit
2.2.3
What OS are you seeing the problem on?
Mac
Python Version
3.12.0
What happened?
The account has a hidden number telegram (+888). But pyrogram does not know how to handle this number.
Expected Behavior
Accounts with the number +888 work.
Current Behavior
Now ValueError.
ValueError: <class 'pyrogram.raw.types.auth.code_type_fragment_sms.CodeTypeFragmentSms'> is not a valid NextCodeType
next_type=enums.NextCodeType(type(sent_code.next_type)) if sent_code.next_type else None,               │     │                 │         │              │         └ <member 'next_type' of 'SentCode' objects>               │     │                 │         │              └ pyrogram.raw.types.auth.SentCode(type=pyrogram.raw.types.auth.SentCodeTypeApp(length=5), phone_code_hash='80000000a00f00bafa'...               │     │                 │         └ <member 'next_type' of 'SentCode' objects>               │     │                 └ pyrogram.raw.types.auth.SentCode(type=pyrogram.raw.types.auth.SentCodeTypeApp(length=5), phone_code_hash='80000000a00f00bafa''...               │     └ <enum 'NextCodeType'>               └ <module 'pyrogram.enums' from '.../telegram_media_downloader/env/lib/python3.12/site-...
Possible Solution
No response
Steps to Reproduce
No response
Relevant log output
No response

the problem can be solved by upgrading pyrogram to or above 2.0.106.

@GitBib hi,try this version.
pip3 install https://github.com/tangyoha/pyrogram/archive/refs/heads/master.zip

@tangyoha It didn't work for me with this version.

@GitBib hi，this is above v2.1.106