RunEvents Callback

RunEvents Callback
Adds callback to log timestamp when model data is downloaded and initialized and testing.

I think it's fine to log to one or all logger destinations -- the others just won't really care since and the UX is clean on most of them. I've done one offs like this using the logger API and not had issues.
I'm not sure this belongs in Composer though. The callbacks in Composer should be foundational callbacks which are broadly applicable. This feels like a callback for a bespoke use case which probably better belongs in whatever repo is leveraging it? @jjanezhang feel free to start a conversation in the composer channel if you feel it's appropriate

@jjanezhang  will review when tests pass :)


Custom abort behaviour

Currently, when Ctrl+C is pressed, a Click program "aborts" (printing "Aborted!") and immediately exits. I would like to be able to customise this behaviour, principally for the purpose of executing "teardown" code before the app exits, but it might also be nice to be able to customise the message to conform with a particular message style.
As far as I'm aware, there is no other way to solve this without turning off exception handling entirely, which is far from ideal.

This really caught me for a surprise.  I'm using Typer for a CLI app and "Aborted!" message showed up on keyboard interrupt.  No easy way to change or silence it appears.

@roblight Yeah, it's confusing. I originally thought the program had crashed with some memory issue (SIGABRT). I ended up doing exception handling manually in my case, in order to override this.

It sounds like what you both are asking for is just to not print the "Aborted" message, not to be able to customize it. As to teardown, you should use the standard atexit module to accomplish that, it's not specific to Click.

@davidism I'm not sure if existing signal handlers can be removed using atexit, but that seems a bit hacky in any case.

Using the atexit module to do something at exit is not a hack, it's the intended use case of a built in module.
Perhaps you're looking for context managers? https://click.palletsprojects.com/en/8.0.x/advanced/#managing-resources

Would I be able to remove the default exit handle in that case? The one that click provides.


Evaluate customization of public plan content

@sjDCC would like to include questions for DMPonline public plan download. Evaluate possibility of customizing the default public plan content to include questions for a given instance.
Notes from related issue #1165
Looking at download settings, we perhaps need to separate out options so you can have section heading without question text

Happy for this to be addressed post-MVP. We can live with partial download in meantime as they are no public DMPs!
DMPTool funder templates also have minimal section headings. The valuable content for public plans are the answers, and this is all that researchers submit with their grant proposals anyway (especially for DMPs with page limits).

make download settings customizable for different installations - default checkboxes and potentially also public dmps default

Reviewing this again, I'm less concerned about the public DMPs displaying questions. The section headings is sufficient.
Currently DMPonline (and DMPTool / DMPRoadmap core code?) exports question text as well as headings on standard export. I'm happy for this to be configurable by installation to suit each community needs so perhaps we should rework this ticket in that vein?
Public plan export / download looks good as it is currently

since we're both happy with public plan export i'll close this for now. and just create a new issue to make the default download settings for individual plans configurable since we've had requests for that.


Fixes/tweaks (wip)

Fantastic.
I really appreciate the work you've done and continued to have done :heart: .
I will have to apologize if I have not been able to be as active in contributing these last 3 weeks. We are rushing towards a rather large release at work which core pillar revolves a lot around me. It means working a lot to get it done, as well as wrapping myself up in a lot of simultaneous desynchronous open source projects for tooling and rust libraries.
Hopefully it will all be wrapping up, and my open PRs will land which means I'll have more energy remaining for Neogit.
Thank you :blush:

Hey, no worries at all :) This is a side project, after all. I just have a kid and live out in the country, so... after 20:00 most days there's fuck-all else to do besides mess around here.
I will say, it feel super cool how some of the moving parts are coming together, especially the "pass the commit(s) currently selected into the popup" bit. Really like the popups.open() API you made!
Just remember: this is supposed to be fun, so make sure that it always is ;)


strip badges?

Badge blocks look sort of weird in man pages, mayhaps we should strip 'em?

Agreed. Know of a list of badge URLs? I mean, there’s shields.io, but every other provider also has a custom URL...

P.S. Part of the problem you see is an error in mdast, which didn't support reference images inside reference links. A fix is almost ready!

Boom! Looks so much better indeed!

:tada: :fireworks: :raised_hands:


System is not ready...Please wait.

After starting the App, it minimizes in the Systemtray and stays there.
When i click on it, it opens a window saying: "System is not ready...Please wait."
No change after 30min.

Programm was installed with admin rights.
NET Core 5.0.2 installed
Windows 10 Pro
Version: 10.0.19042

Most likely similar issue to the previous registered one.
I'll try to add in some sort of logging support during the weekend and deploy a new version to try figure out the cause of this.
Thanks for reporting

No problem, thank you for this great piece of software you're working on, really appreciate it.

Same issue for me

Sorry for the delay, are you able to try this and let me know what type of "exception" window shows up?
https://github.com/iXyles/UtilityBox/releases/tag/v<IP_ADDRESS>

Uninstalled and installed the newest version.
I am receiving an "Unable to configure HHTPS endpoint. No server certificate was specified."

Thank you!
Could you try to start CMD as admin and type this
dotnet dev-certs https --clean dotnet dev-certs https -t

Yep all seems to work fine now, thanks!

Alright, then I know what is causing the issue and to resolve it.
I'll have to re-think how I do some things then, thanks for letting me know :)


[stable/datadog] add stat system call to system-probe seccomp profile

Is this a new chart
No.
What this PR does / why we need it:
On EKS clusters that are using docker://18.6.1 as containerRuntimeVersion, the system call stat and stat64 are needed to make system-probe work.
Which issue this PR fixes
The chart experiences permission issues when running without these system calls:
    State:          Waiting
      Reason:       RunContainerError
    Last State:     Terminated
      Reason:       ContainerCannotRun
      Message:      OCI runtime create failed: container_linux.go:348: starting container process caused "operation not permitted": unknown

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[ ] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test

/lgtm


apply red/green/blue color to lines, depending on rating score

Is your feature request related to a problem? Please describe.
the color of the lines should represented the level of respectfulness of the given dialogue.
Describe the solution you'd like
If I click on "finish dialogue" I am presented with three scales to rate.
The scales are titled "How well did the other listen to you?", "How much did the other trust you?" and "How much common ground with you did the other see?"
I can chose a value from 0 to 100 for each scale.
The values of both ratings are added up. If the total is 0 - 350, the line is colored red. If the total is 351 - 450, the line is colored blue. If the total is 450+, the line is green.

The 1hr estimation was for the original description (green + red = blue), with the existing rating mechanism. A new, points based mechanism will take about 5 hrs.

yes. lets go with the extra hours.

Is your feature request related to a problem? Please describe.
the color of the lines should represented the level of respectfulness of the given dialogue.
Describe the solution you'd like
If I click on "finish dialogue" I am presented with three scales to rate.
The scales are titled:

How well did we explore our own perspectives?
How well did we explore other perspectives?
How well did we back our claims?

I can chose a value from 0 to 100 for each scale.
The values of both ratings are added up. If the total is 0 - 350, the line is colored red. If the total is 351 - 450, the line is colored blue. If the total is 450+, the line is green.

Just asking for clarification - a dialog may receive a rating between 0 and 300 from each participant, so it's final score would be 0 - 600. Am I getting it right?

Just asking for clarification - a dialog may receive a rating between 0 and 300 from each participant, so its final score would be on a scale from 0 to 600. Am I getting this right?
yes, 0 to 600 in total.

After starting to work on this issue, I understand that we're going to have a compatibility issue:
Existing dialogs have a rating between 0..1 from each participant, and so all of them are going to be painted red. I wanted to discuss that with you, and decide on a course of action.

If the existing data in the demo+corona instances doesn't matter, we can reset their DBs and that's all it takes.
If the data in those instances is important, then we should probably use the following rating mechanism:

Mean value calculation from the 3 sliders for each participant (which will result in 0..1).
Color the lines based on a second mean value, of the final rating from each participant: 0..0.58=red (350/600=0.58); 0.58..2/3=blue; 2/3..1=green

Implemented using the existing scale (-1..1), in order to implement without harming the corona instance.

Done, uploaded to the demo instance

Reopening to fix small screens issue

Quick fix in 3688673 (not 100% bulletproof but I think that it would do for now).
Closing for now, @Iwan-Ittermann feel free to check demo.dpt.world and reopen this issue if needed.


Go/nogo for release 0.43.0

Changelog: https://github.com/CenterForOpenScience/osf.io/blob/develop/CHANGELOG#L5
ping @JeffSpies  @GaryKriebel @lbanner @nicipfeiffer @caileyfitz

Current status: @caneruguz @samanehsan and @caseyrollins are looking through the remaining Trello bugs cards, deferring as appropriate.

Our Travis builds are failing on both develop and master for some unknown reason--there haven't been any changes to our Travis config, and our builds were passing yesterday. AFAIK, there should not have been breaking changes that would have been merged into both branches. I've contacted Travis CI's support about the issue.
I'd hesitate to give a "go" before we see a successful build.

I'm good with resolving the build tests before proceeding with a release.

The Travis builds are now passing, and the remaining bug cards seem to be minor UI inconsistencies-- @samanehsan and @Johnetordoff are looking at those now.
With those fixed and QA's "go", I am a "go".

:+1: Same ... "Go"

Same here -- I'm a "Go" once those UI fixes are merged and go through QA

If QA is happy, I'm happy.
On Wed, Jul 22, 2015 at 3:28 PM, Saman Ehsan<EMAIL_ADDRESS>wrote:

Same here -- I'm a "Go" once those UI fixes are merged and go through QA
—
Reply to this email directly or view it on GitHub
https://github.com/CenterForOpenScience/osf.io/issues/3736#issuecomment-123835832
.

With three bugs in draft/pending awaiting merge, and zero in bugs found....I am a GO when those are merged and tested.

If Jeff is happy that QA is happy then .....
Yes, Go Flight after final UI fixes

QA is happy! Gopher it...

👍🏻


midpoint rounding for needies

roundtoint is flawed in that it always uses MidpointRounding.ToEven, even if AwayFromZero makes sense, so replace with System.Math.Round, requiring manual cast.
I've cast the float to a decimal rather than an implicit conversion to a double to somewhat mitigate potential rounding errors when coverting between a single and a double

I appreciate the PR but there are other places where we round to an int that this didn't cover also I'm pretty sure it's safe to cast to a double as that's what Mathf.RoundToInt does. Closed by cb9bf9d6a9a177fbdc9bfbe2d3584cb8a51c5868


[duplicati] migrate to common

Signed-off-by: Nicholas Wilde<EMAIL_ADDRESS>Description of the change
Benefits
Possible drawbacks
Applicable issues
Additional information
Checklist

[x] Chart version bumped in Chart.yaml according to semver.
[x] Title of the PR starts with chart name (e.g. [home-assistant])
[x] Variables are documented in the README.md (this can be done with using our helm-docs wrapper ./hack/gen-helm-docs.sh stable <chart>)

Should I add influxdb as a dependency?

Should I add influxdb as a dependency?

Nope, it should not be needed.


Add warning delete

Related Issue
Closes #22
Type of Change
Put x inside the square bracket to specify what type of change your PR is:
[x] New Feature
Bug Fix
Code Refactor
Documentation Update
Other (please specify):
Description of Change
Ask for confirmation before deleting a password
Implementation Details
Take input the name of the site and again prompt asking for confirmation. If the input is Y or y then password is deleted, other wise a message is shown "No changes made!"
Demo
if Yes

if No

@asutosh29 please resolve merge conflicts and commit, the changes look good to me, I'll merge it once conflicts are resolved

I am away from home, will fix it in 2 hours


weird const_missing exceptions in mrblib code (mruby 3.1.0 and above)

I've been trying to use mruby-require with the recent versions of mruby (see https://github.com/iij/mruby-require/pull/29) and have noticed one behavior that seems like an issue with mruby 3.1.0 and above.
When I run mruby-require of the PR linked above with mruby 3.0.0, everything works fine. But when I run it using mruby 3.1.0, a const_missing error is raised complaining that File.exist? cannot be found.
Steps to reproduce:

Checkout https://github.com/iij/mruby-require/pull/29.
Build mruby with the following configuration:

MRuby::Build.new do |conf|
  conf.toolchain :gcc
  conf.gembox "default"
  conf.gem "mruby-require"
end

Run the following script using mruby being built:

print "#{File.file?("/")}\n"
require "/nonexistent"

When I run this script using mruby 3.0.0 being built, the first line emits "false" (because / is a directory), then complains that /nonexistent cannot be loaded. Fine.
But when I run this script using mruby 3.1.0 being built, it raises a const_missing exception here.
Why I think this is a bug of mruby:
While this error is related to mruby-require, I'm reporting it here because I suspect this is a problem of mruby, due to the following reasons:

the version of mruby-require being used does not have external dependency outside of mrbgems bundled by mruby
the "gem_init" function of mruby-require just calls mrb_define_method and does nothing else, the problem that we see seems to happen before any logic of mruby-require written in C is being invoked

Therefore, I'm suspecting if there's an issue with the ruby code found in mrbgems having issues with accessing constants defined in other mrbgems.

Did a bisect, it seems that this is a regression caused by #5272.

@matz Of course. Thank you for looking into the issue.
When I run the ruby script above, I get:
% build/host/bin/mruby ~/tmp/defect.rb
false
trace (most recent call last):
	[5] /Users/kazuho/tmp/defect.rb:2
	[4] /Users/kazuho/mydev/3p/mruby-require/mrblib/require.rb:40:in require
	[3] /Users/kazuho/mydev/3p/mruby/mrblib/enum.rb:78:in find
	[2] /Users/kazuho/mydev/3p/mruby/mrblib/array.rb:17:in each
	[1] /Users/kazuho/mydev/3p/mruby/mrblib/enum.rb:79:in detect
/Users/kazuho/mydev/3p/mruby-require/mrblib/require.rb:41:in require: undefined method 'const_missing' (NoMethodError)

And in fact, I've just found out that if I override const_missing and return the correct object,
module Kernel
  def const_missing(id)
    File
  end
end
print "#{File.file?("/")}\n"
require "/nonexistent"

then things work as expected:
% build/host/bin/mruby ~/tmp/defect.rb
false
trace (most recent call last):
	[1] /Users/kazuho/tmp/defect.rb:7
/Users/kazuho/mydev/3p/mruby-require/mrblib/require.rb:54:in require: cannot load such file -- /nonexistent (LoadError)

Therefore I think it could be the case that the script being loaded from mrblib is somehow not accessing the correct File object.

Than you very much for the quick response! I'm afraid that the problem is still not fully fixed.
92be161 indeed is an improvement, I believe it fixes a TypeError that was raised at https://github.com/iij/mruby-require/blob/master/mrblib/require.rb#L6. FWIW, IIRC we started seeing this TypeError in mruby 3.0.0. I actually had a workaround for this, which simply removed the code for simplicity (https://github.com/iij/mruby-require/pull/29/commits/03fe79f044c3529ffc47646d0080f33e2d84d225).
However, that is not the only problem. Even with 92be161, I am still seeing a const_missing exception being raised at https://github.com/iij/mruby-require/blob/master/mrblib/require.rb#L51, i.e.:
    if ['/', '.'].include? path[0]
      path0 = filenames.find do |fname|
        File.file?(fname)    <--- HERE
      end

When doing git bisect, I know that 2d8f4fa introduced this problem. I anticipate that this problem could also be related to Proc, because we invoke File.extname just before entering this if and do block without having a problem (see https://github.com/iij/mruby-require/blob/master/mrblib/require.rb#L40).
I would appreciate it if you could take a look.

The problem with #const_missing no longer exists after applying either of the following patches.

diff --git a/include/mruby/proc.h b/include/mruby/proc.h
index 9d197f48a..4f55c6ee6 100644
--- a/include/mruby/proc.h
+++ b/include/mruby/proc.h
@@ -70,7 +70,7 @@ struct RProc {
 #define MRB_PROC_ENVSET 1024
 #define MRB_PROC_ENV_P(p) (((p)->flags & MRB_PROC_ENVSET) != 0)
 #define MRB_PROC_ENV(p) (MRB_PROC_ENV_P(p) ? (p)->e.env : NULL)
-#define MRB_PROC_TARGET_CLASS(p) (MRB_PROC_ENV_P(p) ? (p)->e.env->c : (p)->e.target_class)
+#define MRB_PROC_TARGET_CLASS(p) (MRB_PROC_ENV_P(p) ? (p)->e.env->c : (p)->e.target_class ? (p)->e.target_class : mrb->object_class)
 #define MRB_PROC_SET_TARGET_CLASS(p,tc) do {\
   if (MRB_PROC_ENV_P(p)) {\
     (p)->e.env->c = (tc);\

diff --git a/src/variable.c b/src/variable.c
index 68d3a388d..38d35f636 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -828,6 +828,7 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
   proc = proc->upper;
   while (proc) {
     c2 = MRB_PROC_TARGET_CLASS(proc);
+    if (!c2) c2 = mrb->object_class;
     if (c2 && iv_get(mrb, c2->iv, sym, &v)) {
       return v;
     }

I am currently checking to see which is preferred or if there are other good methods.

I don't think this is very desirable, but for reference.
Disabling presym with MRuby::Build#disable_presym in build_config seems to work on mruby-3.1.0.

Thank you for the fix! Confirmed as of dc8da16 that the issue no longer exists.


Create send wrapper functions in bindings

Description
We should have wrapper functions for all prepare... functions, so that one can just use send...
Motivation
We have the same functionality in Rust and it should be available in the bindings too.
Are you planning to do it yourself in a pull request?
No

This is not breaking change so we may add it in the future, maybe 1.1.


Added/Fixed some monster part breaks

Added comments to some "unknown" removable parts.
Added some "unknown" removable parts according to Library Of Babel. Can't see what they really are or how to damage them.
Added "Removable Charge" to Zinogre and Stygian Zinogre.
Added "Fire Throat" and "Charged Throat" to Anjanath, Fulgur Anjanath, Glavenus.
Added "Full Mouth" and "Inflated Tail" to Coral Pukei-Pukei.
Added "Purple Glowing Head" and "Purple Glowing Tail" to Seething Bazelgeuse.
Added "Get out of snow (head, body and tail)" to Beotodus. Can't think of a better name to represent what they do when HP = 0.
Added "Special Flinch" to Gold Rathian and Silver Rathalos.
Added "Flinch/Counterattack" to Savage Deviljho.
Fixed Nergigante parts (issue with black & white spikes still present).
Fixed Glavenus "Fin".
Fixed Shara Ishvalda parts and thresholds.
Fixed Leshen and Ancient Leshen parts and thresholds.

Thanks!


Update frame-builder.js

If the frame_id is 0xff next frame id should be 1.

Good catch! Did this actually cause you trouble?

Yes because for each ZIGBEE_TRANSMIT_REQUESTframe sent I save it in an object with the id as key.
When I receive a response ZIGBEE_TRANSMIT_STATUS I remove it from the object and I can know if each frame is really received.
But with this issue, I send a frame with an id 256 and never receive response with this id.


Session driver array

Laravel Version: 7.3.0
PHP Version: 7.4.0

Description:
We have set the session driver to array to prevent the Set-Cookie header from being added to the response to properly cache content. This worked during Laravel 6.x but this change broke everything:

The array session driver data is now persistent for the current request. Previously, data stored in the array session could not be retrieved even during the current request.

The documentation has also not been updated here:
https://laravel.com/docs/master/session#configuration
There, it still says that the session is NOT persistent.

sessions are stored in a PHP array and will not be persisted.

The question now is, how do we stop Laravel from adding the Set-Cookie: laravel_session... header? Setting the driver to array seems to not work anymore.

For those having the same issue, I have temporarily fixed it by changing the StartSession Middleware function sessionIsPersistent to:
return ! in_array($config['driver'], [null, 'array']);

I can't reproduce this. The session isn't persistent for me when using the array driver.
Can you first please try one of the support channels below? If you can actually identify this as a bug, feel free to report back and I'll gladly help you out and re-open this issue.

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

Thanks!

@driesvints

Use latest Laravel 7.4.0
Set the session driver to array
Disable the CSRF Middleware
Do a request to your Laravel site. The "laravel_session" cookie will get set making the session persistent.

Any ideas, how fix it? Because we also have this in Laravel 7


[Bug] language:markdown italic error

Reproducible in vscode.dev or in VS Code Desktop?

[X] Not reproducible in vscode.dev or VS Code Desktop

Reproducible in the monaco editor playground?

[X] Not reproducible in the monaco editor playground

Monaco Editor Playground Link

Monaco Editor Playground Code
Language:markdown

_italic_
$a_{1}$:expect normal but italic$b_{1}$
$a_{1}$:normal$b$
*italic*

Reproduction Steps
No response
Actual (Problematic) Behavior
No response
Expected Behavior
No response
Additional Context
No response

In what way should I fix it quickly


Fixed typo in setting path

Thank you. Gratefully accepted.

No problem. I blindly copied from the docs into my settings, thats how I noticed it. Figured, I wouldn't be the only person doing this.

I was also wondering today why it was not working. 🤦🏾♂New version is live now.


ca 0.3 second lag upon closing FzfLua buffer window by hitting <c-[> or <esc>

Is there anything one can do to remove the minimal lag, which occurs except only when closing by hitting <c-c>?
The lag is not prominent but it sometimes just doesn't quit when you want to quickly type something right after closing the window: for example if you want to type something right after leaving FzfLua files buffer by hitting <c-[> or <esc>, it would not quit but accept the input.
Though there is no lag at all when closing the window via <c-c>.
I've tested with the minimal_config and it's the same. Does it maybe have to do with vim's event? Because afaik the only difference between <esc> and <c-c> is that i_ctrl-c would not trigger insertleave event.

https://user-images.githubusercontent.com/43778097/152159739-ddb69aba-c4c2-4bea-826c-b337cbc79cdd.mp4
Here is a video to show how it is sometimes still accepting input after hitting either <esc> or <c-[> because of the minimal lag.

Do you have the same difference in exiting from INSERT mode to NORMAL mode between Esc and C-c?
What terminal are you using?
Are you running neovim inside tmux?
Read more about how to eliminate escape delay in neovim here and let me know if this solves your issue?

No it doesn't have the same lag when swtiching between every mode in nvim and <c-c> and <esc> and <c-[> behaves all identically. And the ttimeoutlen in my config is already set to 0 and timeoutlen is normally set to 1 sec.
Terminal is alacritty and the shell is zsh and I do not use tmux, just plain terminal. I use vi mode on zsh and it does not have any lag going from insert to normal because of this line in my zshrc: bindkey -rpM viins '\e', I suppose it removes every keymap starting with the escape keycode. I've also tried to set KEYTIMEOUT=1 and it did not work either.
And also I use floaterm and toggling it is as snappy as hitting <c-c> for FzfLua buffers & escaping to normal from insert. Floaterm also uses the terminal buffer, which is why I assumed that this is not an individual issue because it seems like I did not misconfigure nvim for it to lag.

I just realized is swallows the first character after hitting <esc>, is there maybe an internal tmap that causes the lag as I've tried with the minimal init.lua and it still behaves like this.

I just realized is swallows the first character after hitting <esc>, is there maybe an internal tmap that causes the lag as I've tried with the minimal init.lua and it still behaves like this.

There's a tmap for both <esc> and <C-c> that does the same thing, it attempts to save the typed query so that it can resume the typed query with :FzfLua resume.
Can you adding global_resume_query = false to your setup function?
Also I know you said it's not happening between normal to insert mode but it would still be worth a try to add this to your .zshrc:
export KEYTIMEOUT=1

Just tried both options and it still lags compared with escaping through <C-c> and thus swallows the first character after escape. Been trying to shoot a demo video but the frame rate is low enough so that the lag isn't actually visible on video at all.
https://user-images.githubusercontent.com/43778097/152256220-f2ab923f-36da-47ae-8d7d-e01407b02e82.mp4
I just wanted to know if this is an individual specific issue which only occurs on my machine and not on anybody else's. There wasn't any previously opened issue related to this at all.

I just wanted to know if this is an individual specific issue which only occurs on my machine and not on anybody else's. There wasn't any previously opened issue related to this at all.

Not sure if this is only you but this is the only issue opened about this so far.
Can you press <c-\><c-n>:tmap<cr> while on the Fzf window and see if the <Esc> tmap is gone after setting global_resume_query=false?

Yes after setting global_resume_query=false & hitting <c-\><c\n> and querying maps using :tmap, there is no map associated with <esc> anymore.

I tried again but this time removed all the other plugins(PackerCleaned) beside FzfLua, set both timeoutlen and ttimeoutlen to 0, added global_resume = false, global_resume_query=false to minimal init.lua config function, sourced it and restarted nvim, hit <c-p> open fzflua and it still waits for the next character even though if there is a map for <esc>.

No lag for <C-c> as always, only <esc>, <C-[>.
But now I found out that if I input a right after hitting <esc>, is toggles and (de)selects all the items, so it seems there is somehow a map for toggling_all.
https://user-images.githubusercontent.com/43778097/152335489-225189d9-ea8e-4a8f-8e46-5041a4d37ec9.mp4

Good finds @zijian-x, is it possible you have a default mapping inherited from the shell in your $FZF_DEFAULT_OPTS?
An easy way to see if that’s the case is to open a new terminal inside neovim (or even in the shell) with :new | term and running an arbitrary command, for example ls | fzf and seeing if you experience the same behavior without fzf-lua?

My goodness yes it has the exact same minuscule lag as in fzf-lua, even on a bare terminal and not inside neovim it swallows the first character after hitting escape, and I never noticed it myself while using fzf all the time!
Which is to say that this is not an fzf-lua issue at all, it just reflects how fzf behaves. But the only difference is that, in fzf it does not toggle select all items when giving an a straight after escape when using ls | fzf -m, it only swallows any one character that is given along with the escape keycode after a little bit of testing so far.
And yes I do have the following fzf environment variables set in the shell profile:
export FZF_DEFAULT_OPTS='--layout=reverse --height=50%'
export FZF_DEFAULT_COMMAND='fd -uu -L -E ".git" -E ".cache" -E ".backup"'

But I've just tried to remove these entries and after re-login it is still no avail.

What fzf version are you using?
I'm on 0.29 (devel).

installed from the official repo and should be the newest version.

What if you try to explicitly bind esc?
ls | fzf --bind=esc:abort

Still the same. I also tried cleaning up all my fzf shell mappings and not sourcing /usr/share/fzf/key-bindings.zsh, tried ls | fzf --bind=esc:abort and no avail...

<C-c> quitting works as smooth as butter as always...

From https://github.com/junegunn/fzf/issues/2052

You can set $ESCDELAY environment variable to a smaller value than the default 100.

My god never would I have thought that it's intentionally set. That solves it man and you are the best!


more random effects?

Hello! I just discovered your wonderful package. Do you have any plans to add the capability of including more than 1 random effect? I have a total of 3 that I need to include in model selection. Thanks!

I can see that mhglm_ml allows multiple random effects but only if they are nested; mine are separate,
i.e. y ~x + (1|a)+(1|b) + (1|c)


Disable proactive intervention when using OVH

This was noticed while running elevate on some dedicated servers hosted at OVH.
OVH provides a proactive monitoring option which is going to detect issues during boot.
During the elevate process one of the boot would trigger that monitoring mode and as as result the server could boot in rescue mode.... leading the server in a not responding state.
We should mention(/detect?) to disable the "Proactive intervention" monitoring option from OVH

to avoid elevate issues
Request user to disable "Proactive Intervention"
URL: https://support.us.ovhcloud.com/hc/en-us/articles/115001821044-Overview-of-OVHcloud-Monitoring-on-Dedicated-Servers

not sure if we can detect this is an OVH server, but at minimum let's mention it in the FAQ

Idea to detect the OVH range: either use the maxmind db with the ISP or less efficient hardcode the IP range...
we could then use a blocker and ask the user to touch a file like: I_ve_disable_the_monitoring_and_know_what_i_m_doing

Here is a range of IP owned by "OVH SAS" we could use to display the blocker
<IP_ADDRESS>/17
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/21
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/21
<IP_ADDRESS>/21
<IP_ADDRESS>/21
<IP_ADDRESS>/23
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/19
<IP_ADDRESS>/16
<IP_ADDRESS>/20
<IP_ADDRESS>/16
<IP_ADDRESS>/22
<IP_ADDRESS>/16
<IP_ADDRESS>/20
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/15
<IP_ADDRESS>/14
<IP_ADDRESS>/17
<IP_ADDRESS>/18
<IP_ADDRESS>/24
<IP_ADDRESS>/17
<IP_ADDRESS>/17
<IP_ADDRESS>/17
<IP_ADDRESS>/21
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/19
<IP_ADDRESS>/16
<IP_ADDRESS>/22
<IP_ADDRESS>/18
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/15
<IP_ADDRESS>/19
<IP_ADDRESS>/17
<IP_ADDRESS>/19
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/18
<IP_ADDRESS>/17
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/17
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/16
<IP_ADDRESS>/24
<IP_ADDRESS>/16
<IP_ADDRESS>/15
<IP_ADDRESS>/23
<IP_ADDRESS>/22
<IP_ADDRESS>/22
<IP_ADDRESS>/22
<IP_ADDRESS>/16
<IP_ADDRESS>/18
<IP_ADDRESS>/16
<IP_ADDRESS>/21
<IP_ADDRESS>/24
<IP_ADDRESS>/24
<IP_ADDRESS>/17
<IP_ADDRESS>/23
<IP_ADDRESS>/23
<IP_ADDRESS>/18
<IP_ADDRESS>/17
<IP_ADDRESS>/20
<IP_ADDRESS>/17
<IP_ADDRESS>/20
<IP_ADDRESS>/24
<IP_ADDRESS>/17
<IP_ADDRESS>/19
<IP_ADDRESS>/18
<IP_ADDRESS>/16

could also check if there is a file /root/.ovhrc


Expand diagnostics and tracing in Networking Stack

In order to provide the detailed diagnostics proxy users will want, we need to expand the diagnostics and tracing support throughout the networking stack.
This includes both counters (using EventCounters) and tracing (using EventSource). It covers the low-level sockets API, as well as higher level APIs like HttpClient.
Another aspect to consider here is dimensions. We believe it is important for users to be able to specify the "scope" of a particular network operation and include custom dimensions like Route identifiers, backend names, etc. For v1 we believe it is sufficient to express these in the EventSource events, and keep the counters high-level.

@davidsh does this cover the work you're doing on diagnostics? Feel free to edit/update as desired so that it matches what you're doing. We can create new issues for other pieces if you aren't currently working on them.

Whoops, #61 already basically covered this.


Failed to register: Timeout was reached

Describe the bug
Ironbar does not start
To Reproduce
Steps to reproduce the behavior:

Run ironbar
Observe it not starting

Expected behavior
ironbar starts
System information:

Distro: Arch Linux
Compositor: Hyprland
Ironbar version: v0.12.0.r36.ge036ff0-1

Configuration

Share your bar configuration and stylesheet as applicable:

Config
let {

}
in {

}

Additional context
This started happening today. Ironbar has not been updated since yesterday when it was running fine.
Logs
[apm@apg ~]$ ironbar
2023-05-28T11:27:14.209791Z  INFO ironbar: 49: Ironbar version 0.12.1
2023-05-28T11:27:14.209804Z  INFO ironbar: 50: Starting application
Failed to register: Timeout was reached
2023-05-28T11:27:39.233424Z  INFO ironbar: 120: Shutting down

aaaand it's gone after a reboot. Not closing this yet in case the issue returns.

From a google it looks like this might be a rare GTK thing caused by another running instance. Doing pkill ironbar before restarting it, or rebooting, should consistently fix this.

Going to close this assuming it hasn't happened since. If you run into it again, let me know and I'll re-open.

I think I've had this before too, but it disappeared after a reboot

Interesting, good to know.
I'll keep this closed for now since it still seems to point more to a weird rare GTK/compositor issue than anything else and there's a known fix.


App does not always reconnect if camera reboots

I've noticed that if the camera goes away for an extended period of time (e.g. a reboot), this app doesn't always reconnect to it.  I think this is because the IP address changes, and the cameras include the IP address as part of the name.
This app automatically recognizes when the IP address doesn't match and connects to it anyway, but it makes no attempt to connect to a second camera if it reappears with a second IP address.  This code should keep the scanner going, and retry whenever that occurs (and redo the VISCA scan, etc.).

In progress.  So far, refactored out the main NDI loop, give or take.  Need to rework how that integrates into the polling loop.

I've done some major refactoring to make this work.  I haven't thoroughly tested the reconnect behavior yet, but the initial connection attempt seems to work at least as well as it did before, so I'm going to go ahead and check in the changes.  Will test more over the next week or two.

Again, haven't seen any problems in a year and a half, so I'm going to call this working.  😂


steal focus only when a child window is focused

When debugging a GUI app, particularly one that hides the mouse cursor, it is convenient to have vscode take focus when a breakpoint is hit, i.e. issue #118493
This can even be disabled by changing debug.focusWindowOnBreak.
However, focus stealing can also be problematic when interacting with other windows, as described well in #115226
Can this be solved by only taking focus when the window of a child application is in focus, i.e. one being debugged?
One caveat is when attaching to a running process, it would not be a child.

I'm not aware of a cross-platform API to find out whether a child application is in focus.


cmake ..  make a error

why does it lack of a package configuration file named pybind11Config.cmake or pybind11-config.cmake when I run "cmake .. ". the github introduction doesn't have a demostration on this.
`(visualize3D) E:\3D可视化\pangolin\build>cmake ..
-- Selecting Windows SDK version  to target Windows 10.0.14393.
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
CMake Warning (dev) in CMakeModules/FindMediaFoundation.cmake:
A logical block opening on the line
E:/3D可视化/pangolin/CMakeModules/FindMediaFoundation.cmake:13 (IF)

closes on the line
E:/3D可视化/pangolin/CMakeModules/FindMediaFoundation.cmake:15 (ENDIF)

with mis-matching arguments.
Call Stack (most recent call first):
src/CMakeLists.txt:427 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.
-- MediaFoundation Found and Enabled
-- libpng Found and Enabled
-- libjpeg Found and Enabled
-- libtiff Found and Enabled
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at python/CMakeLists.txt:3 (find_package):
By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "pybind11",
but CMake did not find one.
Could not find a package configuration file provided by "pybind11" with any
of the following names:
pybind11Config.cmake
pybind11-config.cmake

Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
"pybind11_DIR" to a directory containing one of the above files.  If
"pybind11" provides a separate development package or SDK, be sure it has
been installed.
CMake Error at external/pybind11/tools/FindPythonLibsNew.cmake:122 (message):
Python config failure: Python is 64-bit, chosen compiler is 32-bit
Call Stack (most recent call first):
external/pybind11/tools/pybind11Tools.cmake:16 (find_package)
python/CMakeLists.txt:9 (include)
-- Configuring incomplete, errors occurred!
See also "E:/3D可视化/pangolin/build/CMakeFiles/CMakeOutput.log".
See also "E:/3D可视化/pangolin/build/CMakeFiles/CMakeError.log".`

I have a similar issue

I finally worked around this. I installed pybind11 in base anaconda and added the path in pangolin/python/CMakeLists.txt

I use pip install pybind11 and add the line
list(APPEND CMAKE_PREFIX_PATH "C:/Users/{your_user_name_here}/AppData/Local/Programs/Python/Python39/Lib/site-packages/pybind11/share/cmake/")
in pangolin/python/CMakeLists.txt before the line find_package(pybind11)


Set up and share environment

Figure out as a team how to get our dev environment set up for productive coding:

[x] Decide if we’re going to use Electron (👍)
[x] Complete #13 (TypeScript usage)
[ ] Set up Webpack, Babel (if needed)
[x] Decide on linting and formatting guidelines (slightly extended Airbnb styles, no separate formatter)
[ ] Set up basic file structure and initialize React app

Heads up—I modified the sub-task list to reflect decisions we’ve made so far and to add the task of setting up our directory structure and React app.


add relay, radar and some aura components in the list

Please resubmit this as separate PRs.

@josegonzalez Would love to hear what is the good thing with separate PR's ?

I can better classify them, reject individual ones, and have more notifications in my email.

Doesn't comments on commit work? So people don't need to spend more time on individual PR?

Anyway don't worry, I don't have enough time or energy to send PR for the current time.

It's just easier for me to review each pr for each individual contribution and open/close/comment as necessary if it's one thing to review at a time. In this case, I need to:

look at the provided thing
see if it overlaps with/duplicates another link
see what it should replace
tell the user to fix/unfix something
close a pr

Easier for me as a maintainer to do it on a single-package basis, as I maybe only have time to look at 5 at a time. I'd rather prioritize looking at a specific section to get those sections down to zero than spend my time on all the contributions by one person in a single pr. If that seems heavy-handed, sorry.
Anyhow, a few of these were already merged/fixed in other PRs, so feel free to submit the other's as one-off as you feel necessary.


Toolbar containing "Next Image", "Open Dir" etc. has disappeared.

Hello,
The toolbar has disappeared, see below image:

Thanks in advance for your help.
K

Hi @kylehounslow,
Move your cursor to Box Labels and click the right button using your mouse, then enable 'Tools' option.


V1 Access tokens created but V2 endpoints specified

I’m still trying to get Oauth2 working against MSFT’s V2 authorization and token endpoints and Graph V1 using the thephpleague oauth2-client in PHPMailer and both the (outdated) stevenmaguire/oauth2-microsoft provider and your current one.
The problem is always ‘535 5.7.3 Authentication unsuccessful’
When I de-JWT the access token just before it is used by PHPMailer, it is clearly a V1 token (has an acr, an amr, an Appid (but no azp), an Appidacr (but no azpacr) and … ver: "1.0".
To check further back, I ran a simple Authorization Code Flow job (per Readme.md) with the following added:
$provider->defaultEndPointVersion = TheNetworg\OAuth2\Client\Provider\Azure::ENDPOINT_VERSION_2_0;
and the following appended:
$token = $provider->getAccessToken('authorization_code', [         'code' => $_GET['code'],         'scope' => $provider->scope,     ]); echo ("Access token is " . $token);
The access token thus displayed is also V1
Since this is trivial to replicate and check, perhaps you could be so kind to do so – and tell me I’m talking nonsense!
Versions
PHP 7.4, PHPMailer 6.1, your TheNetworg/oauth2-azure at 2.0.0 with the source taken from the latest release to pre-empt my getting the V2.0.0 development branch by accident

After trawling MSFT documentation, it appears that this is expected behaviour!
Graph currently supports V1 tokens only (!). Since both the V1 and V2 token endpoints issue access tokens that are compatible with the API of the resource (V1) or scopes (V2) specified and not necessarily by version of the AUTHZ endpoint called, any Graph resource (V1) or scope (V2) specified will force the access token to be V1.

Hi, I think this behavior was covered in one of the recent 425Show episodes, but I can't find it...

Tnx. It seems bizarre that MSFT would push developers to the V2 identity platform (with MSAL use preferred) while at the same time ‘super-strategic’ Graph only accepts tokens compatible with those issued from the deprecated V1 AAD developers platform (with ADAL).
In addition, I could presumably get a V1 access token and a V2 ID token from the same V2 endpoint!


[DPTOOLS-2680] fix false alarm in UI

This PR is aiming to solve the false alarm below:

We restart scheduler after 10 runs https://github.com/lyft/airflowinfra/blob/7ad87df746ea462e6e752e0bc1895c6c15023f65/ops/config/pillar/airflowinfrascheduler.sls#L4, which means there is a short period (~ 5 seconds, check the db query below) with no scheduler job alive. In our situation, we should not consider the scheduler to be done for the period.
airflowinfra=> select * from job where job_type = 'SchedulerJob' order by latest_heartbeat desc limit 2;
   id    | dag_id |  state  |   job_type   |          start_date           |           end_date            |       latest_heartbeat        | executor_class |  hostname   | unixname
---------+--------+---------+--------------+-------------------------------+-------------------------------+-------------------------------+----------------+-------------+----------
 1868021 |        | success | SchedulerJob | 2020-02-25 08:11:49.883763+00 | 2020-02-25 08:13:29.082672+00 | 2020-02-25 08:13:26.09628+00  | NoneType       | <IP_ADDRESS> | root
 1868015 |        | success | SchedulerJob | 2020-02-25 08:10:04.751189+00 | 2020-02-25 08:11:44.164813+00 | 2020-02-25 08:11:41.052322+00 | NoneType       | <IP_ADDRESS> | root

airflowinfra=> select * from job where job_type = 'SchedulerJob' order by latest_heartbeat desc limit 2;
   id    | dag_id |  state  |   job_type   |          start_date           |           end_date            |       latest_heartbeat        | executor_class |  hostname   | unixname
---------+--------+---------+--------------+-------------------------------+-------------------------------+-------------------------------+----------------+-------------+----------
 1868024 |        | running | SchedulerJob | 2020-02-25 08:13:34.822287+00 |                               | 2020-02-25 08:13:59.015748+00 | NoneType       | <IP_ADDRESS> | root
 1868021 |        | success | SchedulerJob | 2020-02-25 08:11:49.883763+00 | 2020-02-25 08:13:29.082672+00 | 2020-02-25 08:13:26.09628+00  | NoneType       | <IP_ADDRESS> | root

@astahlman @sherryzhao1006 Please take a look
Just to verify my thoughts, I see that we give ---num_runs 10 option to airflow scheduler command, so actually scheduler dies after 10 runs, but since we are using supervisord to manage workers, so it will keeps bring scheduler back. It also means that, if I run airflow scheduler on my local environment with airflow scheduler --num_runs 10, the process will complete soon and scheduler is gone.
Please correct me if I am wrong

Ahhh, good fine - this makes sense now. Would be great to upstream this! I'd imagine we're not the only ones.

Codecov Report

Merging #172 into airflowinfra will decrease coverage by 53.79%.
The diff coverage is 33.33%.

@@               Coverage Diff                @@
##           airflowinfra     #172      +/-   ##
================================================
- Coverage         81.64%   27.84%   -53.8%
================================================
  Files               529      528       -1
  Lines             36554    36547       -7
================================================
- Hits              29844    10177   -19667
- Misses             6710    26370   +19660

Impacted Files
Coverage Δ

airflow/jobs/scheduler_job.py
12.14% <33.33%> (-77.96%)
:arrow_down:

...flow/contrib/example_dags/example_qubole_sensor.py
0% <0%> (-100%)
:arrow_down:

...ample_dags/example_emr_job_flow_automatic_steps.py
0% <0%> (-100%)
:arrow_down:

...contrib/example_dags/example_papermill_operator.py
0% <0%> (-100%)
:arrow_down:

airflow/operators/postgres_operator.py
0% <0%> (-100%)
:arrow_down:

...irflow/contrib/example_dags/example_gcp_spanner.py
0% <0%> (-100%)
:arrow_down:

...irflow/contrib/example_dags/example_twitter_dag.py
0% <0%> (-100%)
:arrow_down:

...xample_dags/example_gcp_dataproc_create_cluster.py
0% <0%> (-100%)
:arrow_down:

airflow/operators/mysql_operator.py
0% <0%> (-100%)
:arrow_down:

airflow/api/common/experimental/get_task.py
0% <0%> (-100%)
:arrow_down:

... and 422 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 f584093...8d54281. Read the comment docs.


Fix the HTML export template

This PR fixes the HTML export template, addressing the issue raised in #3021
In doing so there's also an update to the pre-commit configuration (without it I wasn't able to commit the change -- the update is stolen from the same config file in Textual).

Codecov Report
Patch and project coverage have no change.

Comparison is base (31c1fb6) 98.31% compared to head (7297ac9) 98.31%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3043   +/-   ##
=======================================
  Coverage   98.31%   98.31%
=======================================
  Files          74       74
  Lines        8016     8016
=======================================
  Hits         7881     7881
  Misses        135      135

Flag
Coverage Δ

unittests
98.31% <ø> (ø)

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

Impacted Files
Coverage Δ

rich/_export_format.py
100.00% <ø> (ø)

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


Disabling / changing the animation of tabview

Is it possible to disable or change the animation of tabview?

No. You can describe the use-case so we can think about better API for it if needed

I just think the animation itself is too slow. If you decide to hide the bottom bar too, the feedback for selected tab title getting highlighted gets delayed for the invisible bottom bar animation duration.

@Cloudef we could think about having and api to solve this, so let's keep it open for tracking


Support for multiple dash-uploader components on same app

In the future, it might be useful to have a possibility to add multiple du.Upload components on the same app. This has some implications

First, there should be one flask route configured per each Upload component.
The uploads should not clash with each another; Even if user has three components uploading my_big_data.csv (same filename), all the chunks should be perfectly independent from each other.
Configuring callbacks must take this into account

The synchronization problem mentioned in this issue may require modifications for the BaseHttpRequestHandler. Each time we write the chunk file or check the existence of the chunk file, we need to add a lock to protect the writing thread.

I think there are some kind of locks already in use, if I remember correctly. What I was thinking is that if there are two du.Upload components, and both of them are uploading my_giga_data.csv at the same time, and both JS components send my_giga_data chunk with some resumableChunkNumber  (and perhaps some resumableIdentifier), the chunks should be written in such way that they cannot override each other. So perhaps:

my_giga_data.csv_part_001_unique_id_from_upload_component
my_giga_data.csv_part_001_second_unique_id_from_upload_component

etc. Then, when the upload is done, then there is decision to

first my_giga_data.csv gets created by upload component 1
then my_giga_data.csv gets created again (overridden!) by component 2, or my_giga_data (2).csv is saved (as in Windows, for example).

maybe there are some other options, too?

Related incoming changes in this PR: https://github.com/np-8/dash-uploader/pull/36

Thank you for your explanation. I think there are two cases in the current implementation.

If upload_id is used, the files would be separated by subfolders. The chunk file would be saved as <root>/<upload_id>/<resumableIdentifier>-<file_name>/<file_name>_part_<number>. The finally uploaded file would be saved as <root>/<upload_id>/<file_name>. So I think there would be no conflicts between different uploaders.
If upload_id is not used, all files would be saved in the same folder, so the conflict may happen. The chunk file would be saved as <root>/<resumableIdentifier>-<file_name>/<file_name>_part_<number>, and the uploaded file would be saved as <root>/<file_name>. It seems that the resumableIdentifier would be always the same for the same file. So both the conflicts between chunks and the conflicts between saved files may happen. If your lock work, the conflicts between chunks may be handled.

I have reviewed your codes about the lock. It seems that the lock is implemented by a file. It is not a typical threading.Lock. I did not know that the lock could be implemented like your way before. After I finish the pull request for supporting flask and cross-domain, I would start some tests about multi-uploader and check how it works.
In my expectation, if your upload_id is not set, the files would be uploaded to the same location. In this case, using two uploaders for uploading the same file seems to be very strange, because they should share the same progress and updating the same file chunks. It will be tricky after the uploading, because the user-implemented callbacks may also cause conflicts. I wonder why we need this feature. If we just want to accelerate uploading, we should focus on simultaneousUploads.
Thank you!

Oh yeah the locking is implemented by a file. I don't know why (it was there when I forked this), and as it works I have not needed to touch it.
I have been thinking if someone would like to have an app with two upload components. Something like this:

That is exactly what I want to test. I think I could write some codes for checking the performance in this case if I could finish the other on-progress PRs.

Yeah this definitely needs very detailed automated testing as adding two upload components makes things a lot more complicated.  I think this will proceed very nicely after there is some sort of test setup.


Adding GitHub workflow action and updating badges and removing travis.

Have not tested the deploy.
badges references in README needs to be updated to ihme-mcsa instead of my fork.

Thanks @ramittal !


Fixed mismatch in documentation and ansible scripts

After the changes to the inventory and playbooks, hetzner documentation was outdated. This changes fix this.

LGTM. I will re-test it post merge @jacobdotcosta


pre_bump_release: optionally set a release environment variable

Fixes osbs-7244
Add code in pre_bump_release that checks if set_release_env is set in the container.yml, and if it is, adds an ENV variable of the same name with the value of the release to the Dockerfile.
documentation PR: https://github.com/containerbuildsystem/osbs-docs/pull/117
Signed-off-by: Mark Langsdorf<EMAIL_ADDRESS>Maintainers will complete the following section:

[x] Commit messages are descriptive enough
[x] "Signed-off-by:" line is present in each commit
[x] Code coverage from testing does not decrease and new code is covered
[x] JSON/YAML configuration changes are updated in the relevant schema
[x] Changes to metadata also update the documentation for the metadata
[x] Pull request includes link to an osbs-docs PR for user documentation updates
[x] New feature can be disabled from a configuration file

Thanks!
Needs re-base.

Merged manually without the merge commit.

Added to RN under Improvements:

support set_releave_env value in container.yml that sets the build release as an environment variable inside the container

Oh, knew I forgot something. Sorry!


Passing Vec to script causes random values inside script

What version of fuels-ts are you using?
Latest
Steps to Reproduce
The script
script;

struct SomeStruct {
    some_number: u64,
    some_vec: Vec<u64>
}

fn main(
    some_contract: ContractId,
    some_struct: SomeStruct,
) {
    log(some_struct.some_number);
    log(some_struct.some_vec.get(0).unwrap());
    require(some_struct.some_vec.get(0).unwrap() == 1, "wtf is going on");
}

The script call
async function simpleScript(
    someContract: Contract,
    wallet: WalletUnlocked
) {
    const scriptBin = readFileSync(
        join(__dirname, "../../../scripts/simple-script/out/debug/simple-script.bin")
    );

    const scriptInstance = new Script<[ContractIdInput, Number[]], any>(
        scriptBin,
        simpleScriptAbi,
        wallet
    );

   const someStruct = {
        some_number: 1,
        some_vec: [1],
    };

    const request = await scriptInstance.functions
        .main({ value: someContract.id.toHexString() }, someStruct)
        .addContracts([someContract])
        .txParams({ gasPrice: 1 })
        .call();
}

Expected Behavior
Log should return 1 or BN: 0x1 for BOTH the some_number and some_vec.
Actual Behavior
Log returns 1 for some_number and different, random values for some_vec on each script call.

Some further test revealed that I can reproduce this without a struct, just passing a vec results in a completely unpredictable value inside the script. Here is the script and script call:
The script
script;

fn main(
    some_vec: Vec<u64>
) {
    log(some_vec.get(0).unwrap());
    require(some_vec.get(0).unwrap() == 1, "wtf is going on");
}

The script call
async function simpleScript(wallet: WalletUnlocked) {
    const scriptBin = readFileSync(
        join(__dirname, '../../../scripts/simple-script/out/debug/simple-script.bin')
    );

    const scriptInstance = new Script<Number[][], any>(scriptBin, simpleScriptAbi, wallet);

    const vec: Number[] = [1];

    const request = await scriptInstance.functions.main(vec).txParams({ gasPrice: 1 }).call();

    console.log(request);
}

@mauricewbr Thank you for the concise reproduction.
I believe the full support for Vectors is ongoing via:

https://github.com/FuelLabs/fuels-ts/issues/933

Although the issue above is about Vector output, these may be intertwined.
@camsjams Could you kindly confirm if that's the case?

Hey @arboleya, Thank you for your swift comment.
Usually, when we discover that something is not yet supported, we search and find workarounds to go ahead with our DEX. This time however, I'm afraid that we will not be able to move forward without our scripts. Would you be able to estimate when these features are shipped? Thank you very much.

Any updates on this? @arboleya @camsjams


Components with children should accept and render children

Discussed in https://github.com/MetroStar/comet/discussions/75

Originally posted by jpandersen87 September  7, 2023
Either in addition to, or replacement of existing render logic, components should accept and render children. For example, the accordion component currently only accepts a javascript array of items to render instead of allowing the items to be passed manually as children (ex: <Accordion><AccordionItem>...</AccordionItem></Accordion>).

Suggest updating all applicable components to allow either children and a list.


[Event Request] Report 2 General Journal - Test: OnBeforeWarningIfNegativeAmt

Function: WarningIfNegativeAmt
Publisher: OnBeforeWarningIfNegativeAmt

The new publisher was implemented in BC 14 CU 01, with subsequent code change as shown:


The value of the SNI extension is ASCII encoded but Netty uses UTF-8

The value of the SNI extension is ASCII encoded but Netty's SNI code tries to decode the byte[] as UTF-8.
The was flagged by @fenik17 in this https://github.com/netty/netty/pull/6623#discussion_r111070719
https://github.com/netty/netty/blob/4.1/handler/src/main/java/io/netty/handler/ssl/AbstractSniHandler.java#L188
https://tools.ietf.org/html/rfc6066#page-6

"HostName" contains the fully qualified DNS hostname of the server,
as understood by the client.  The hostname is represented as a byte
string using ASCII encoding without a trailing dot.  This allows the
support of internationalized domain names through the use of A-labels
defined in [RFC5890].  DNS hostnames are case-insensitive.  The
algorithm to compare hostnames is described in [RFC5890], Section
<IP_ADDRESS>.

Expected behavior
Do as the RFC says?
Actual behavior
Not doing as the RFC says!
Steps to reproduce
Minimal yet complete reproducer code (or URL to code)
Netty version
JVM version (e.g. java -version)
OS version (e.g. uname -a)

@rkapsi sounds good (do it as the RFC). You want to do a PR or should I put it on my back burner ?

Sounds good, inbound PR shortly

<3


Architecture for updated site

:wave: Hey all. Now that GitHub Universe is over and I have some breathing room, I'd like to pick up the site redesign work I began earlier this year.
I've spoken to a few people over the past few months about this project and one thing that comes up frequently is our use of Rails. I know there have been various discussions over the years about making the site static and hosting it on GitHub Pages and elsewhere.
For those interested, I'd like to get your thoughts on a direction here since, as is, the redesign work is going to require some refactoring in the Rails stack. The immediate options that come to mind are:

Continue to use Rails, but update the stack and best practices
Make the site entirely static and figure out how to include the docs and Pro Git book content (GitHub Actions? 😮).
Use something like Next.js w/ server-side rendering (same docs & book questions as above).
Something else?

/cc @peff @pedrorijo91 @tarebyte @pmarsceill

I'm more inclined into keeping rails for now. first changing the UI, and then thinking about removing rails. just because it seems a smaller step. Unless you/we find Rails a big obstacle (which shouldn't)

I find Rails complicates things, but we mostly have it under control these days. I'm not sure which Rails refactoring you'll need to do, but I'd think most of it should be pretty mundane, and much less work than switching to a static build.
I do think in the long run I'd prefer a static build driven by local scripts/makefiles.  And yeah, doing that from GitHub Actions would be amazing, but I don't expect that on day one.
So I guess my answer is: it probably makes sense to stick with Rails and get the visual refresh shipped without adding complications that might delay or derail it. But keep in mind that ultimately we'd like something static, so try to be aware of that as you work and not dig the hole any deeper.


Add BibTex entry to citation instructions

The instructions for citing gUFO could include the BibTex entry as well, for example:
@misc{almeida2019gufo,
  title={{gUFO}: A lightweight implementation of the {Unified Foundational Ontology} ({UFO})},
  author={Almeida, Jo{\~a}o Paulo A. and Guizzardi, Giancarlo and Falbo, Ricardo Almeida and Sales, Tiago Prince},
  year={2019},
  howpublished={\url{http://purl.org/nemo/gufo}}
}

As far as I know, adding URLs nicely requires additional packages, so my example uses howpublished. The example also includes the publication year of gUFO, which is missing in the current citation instructions.
Just one additional observation: the deployed website and the latest commit do not match.

Thanks, I added the year to the citation. However, the documentation is generated from comments in the ontology, so, I'd rather not add a BibTeX fragment to the ontology. It would require careful escaping and the rendering in different tools (including the generated html) might be problematic.
I checked the commit and the deployed website and did not find any differences. (In fact, http://purl.org/nemo/doc/gufo redirects to http://nemo-ufes.github.io/gufo/ which is served directly from the master.)

I understand now the reason for the confusion, you are using the actual ontology to generate the documentation.


fix(typo): fix a typo 'CONF=CONF=k230_canmv_defconfig'

发现文档错误
无关联issue

thank you very much for your PR


[Question] Do Ember Seeds count as 200 Rupees?

Been wondering this since the changelog says it now counts Rupees available before making you purchase anything at the shop, but it only mentions Rupees placed in chests. However, Ember Seeds in any fashion (Sling or Satchel) allow you to get the two 100-rupee secrets in Horon and North Horon without any extra requirements (aside from a way to farm more seeds if you use them poorly).
tl;dr Ember Seeds open up 200 Rupees which purchases all 3 Shop items (Bombs, Shield, Unique)

Yes, but the changelog doesn't say anything about rupee counting being restricted to chests. Old men who give rupees are counted if you can reach them, old men who take rupees are counted against your total if you can reach them, and the rupee rooms in D2 and D6 are counted as well.


"Library" button is not showing fully

In ukrainian localization of steam "Library" button is not showing fully. I don't know is it bug or not.

Your client seems to use wrong fonts, that's probably the same issue as #45. Make sure you have non-variable Cantarell fonts installed.
It should fit with a correct font:


Golden tests should output the number of mismatched pixels

Use case
When golden tests fail, they output the percentage difference between the golden image and the current image. Sometimes a percentage is a useful metric. However, when trying to quickly identify likely flakes, especially for large golden images, it's much more helpful to know the number of mismatched pixels.
I often run into golden failures that have a 0.00% difference. Those failures have represented actual failures that needed attention, as well as flakes that didn't really mean anything of significance.
Proposal
While there is no sure fire way to differentiate between a real failure and a flaky failure, it would be helpful to know the pixel difference along with the percentage difference. For example, a 0.00%, 10px difference is almost certainly a flake, whereas a 0.00%, 150px difference may very well be a legitimate failure.
Additionally, I have my own implementation of a golden matcher that lets me pass a specific number of pixels that are allowed to mismatch. I use this matcher when I have a golden test that I can't seem to get to pass normally, but doesn't seem to be a legitimate failure. I need to know how many pixels to pass in for that allowance. Because Flutter doesn't report the pixel mismatch, this process first requires that I fail the test with my custom matcher to figure out the pixel difference and then apply it. It would be nice to cut one of the steps out of that process.

@Piinks this might be of relevance to you


audiobookshelf added

audiobookshelf service added

Thank you for the PR 💜. I will test it and fix it if necessary.


How to build an OTA file that abide to Zigbee Standard OTA file format? (TZ-398)

Question
Hi,
Do you have a tool that can generate a standard Zigbee OTA file giving it as input the .bin generated by the IDF?
By "standard" I mean a format that is compliant with the Zigbee OTA format as described in §11 "OVER-THE-AIR UPGRADE" of Zigbee Alliance ZCL spec (I have the version 07-5123 Revision 8 of this spec)?
 A list of manufacturers and devices can be found here: https://github.com/Koenkk/zigbee-OTA/tree/master/images
Thank you.
Additional context.
No response

It's possible to do this using zigpy.ota.image.OTAImage, although the API isn't great because it expects you to provide size details for zigpy.ota.image.OTAImageHeader that you don't know without generating the header first.
You will need to handle the 6 byte sub-element header in your OTA client because the whole image content (after the header) is sent to the device: https://github.com/nomis/candle-dribbler/blob/0.5.2/src/zigbee.cpp#L186-L255.
I'm able to create zlib-compressed OTA images, send them using Home Assistant and then decompress them on the device.

Hi @nomis
I wanted to create OTA file with your scripts (create-ota.py and esp32-app-set-desc.py), but cannot understand how to use them.
Can you please explain a little bit how to use them once the .bin has been generated by ESP-IDF?
The OTA file I managed to create with some assumption about the script usage triggers the following error when used with Z2M node scripts/add.js command (which works with other manufacturer OTA files…):
RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
Thank you.

I don't use Z2M but I added an image to https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/test/stub/otaImages.js and it was able to parse it successfully.
You'd need to provide the full stack trace and version of Z2M that you're using to debug it further but your image file is probably truncated. All of the parameters are validated by zigpy so it shouldn't be possible to create an invalid image.
Could you attach your OTA file?

Hi,
Before going ahead and providing more details, can you please give me some instructions on how to use create-ota.py and esp32-app-set-desc.py after I have compiled and the binary is available into the build directory?
Because I'm afraid I misused those tools, and this could explain why it's not working.

Usage: create-ota.py -m 123 -i 456 -v 789 firmware.bin > firmware.ota
You'll have to come up with your own Zigbee manufacturer ID (allocated by the CSA), file ID (allocated by you - identifies which device a firmware upgrade is for, so it needs to be different for incompatible revisions of the device or when you're building for different ESP32 models) and file version (allocated by you - increment for each new version - must match what's in the firmware or it's going to upgrade repeatedly).
The "header string" is optional. The Makefile in my project gets these values out of the sdkconfig.h file because I made them configurable.
(You don't need to use esp32-app-set-desc.py. It modifies the ESP32 app descriptor in the binary. I don't like the date/time format that Espressif use and it's more complex to parse when generating the Zigbee date code automatically.)

Hi @nomis
Initially, I did what you wrote: create-ota.py -m 100 -i 200 -v 1 firmware.bin > firmware.ota
But I was confused with the other script esp32-app-set-desc.py, and thought I had to use it on the firmware to do some kind of preparation.
I used an arbitrary manufacturerCode for this first test.
Nevertheless, the OTA file just build is not working with the Z2M script "add.js" to prepare its usage.
I just redo it right now and got:
node:internal/errors:497
    ErrorCaptureStackTrace(err);
    ^

RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
    at new NodeError (node:internal/errors:406:5)
    at boundsError (node:internal/buffer:86:11)
    at Buffer.readUInt16LE (node:internal/buffer:245:5)
    at Object.parseImage (E:\Devel\ZigBee\OTA_FileManagement\zigbee-OTA\lib\ota.js:17:34)
    at main (E:\Devel\ZigBee\OTA_FileManagement\zigbee-OTA\scripts\add.js:94:28)
    at Object.<anonymous> (E:\Devel\ZigBee\OTA_FileManagement\zigbee-OTA\scripts\add.js:166:1)
    at Module._compile (node:internal/modules/cjs/loader:1241:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12) {
  code: 'ERR_BUFFER_OUT_OF_BOUNDS'
}

Node.js v20.9.0

For nodejs tools, I use the last version of https://github.com/Koenkk/zigbee-OTA

Your file is being truncated to the first zero byte because stdout on Windows is opened in text mode. I've updated create-ota.py so that it will work on Windows.
The output filename is now an additional parameter instead of a redirect:
create-ota.py -m 100 -i 200 -v 1 firmware.bin firmware.ota

Bingo, your script is now working!
I first got
Error: 100 not in manufacturerNameLookup (please add it)
And then, using a code that is in the lookup table and which I'm sure I'll never use, it worked:
python create-ota.py -m 4420 -i 200 -v 1 flood_projector.bin flood_projector.ota
node scripts/add.js ..\OTA-build\make_ota\flood_projector.ota
Added new entry (bellow is the formatted result)
{
    "fileVersion": 1,
    "fileSize": 352373,
    "manufacturerCode": 4420,
    "imageType": 200,
    "sha512": "bd9fbd0160a2bbba00df8d876dd179ea203995a2cc9a7f769a021f074f6e590b2655f0605f2511f14eae11de0042f8f221105404473f51bf9236193616e945c6",
    "url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Lutron/flood_projector.ota",
    "path": "images/Lutron/flood_projector.ota"
}

I just have now to adapt the other stuff to have a local url as explained here https://www.zigbee2mqtt.io/guide/usage/ota_updates.html#local-ota-index-and-firmware-files
And probably discover new problems :) ...
Thank you for your support.
I'll update this issue when I'll make new headways.

Hi,
I finally managed to upload the firmware on the ESP using Zigbee2MQTT after having formatted the .bin file to a valid OTA file using the script from Simon.
Unfortunately, after everything has been received and written into flash, I get a validation error upon call of esp_ota_end().
The error message is:
Failed to end OTA partition, status: ESP_ERR_OTA_VALIDATE_FAILED

And just before returning from esp_ota_end(), the following message is logged:
E (00:33:42.183) esp_image: Segment 0 load address 0x42018020, doesn't match data 0x00120020
0x42018020: zb_buf_copy_func at ??:?

Anyone have an idea of what can be the issue?

Did you handle writing only the sub-image content and not its header which gets transmitted to the device too?
Did you decompress the content? (You could modify the script to not use zlib but it'll be about double the size.)
It shouldn't be possible to get this far without doing those steps because the first byte won't be E9 and it'll fail an earlier check.
I suggest logging the first and last few bytes written to the OTA partition to check those match the original file.

Yes, I'm writing only the sub-image data without its header (I did get the error with the E9 magic byte on first try and fixed it).
Currently, I simplified your script to not use compression to have thing simpler (but 2 times slower!).
I will dump the end of the file to check (I already dumped the beginning to discover various issues…).
Up to now, downloaded bytes through OTA match .ota file size (minus the two headers).

Some news on the error "esp_image: Segment 0 load address 0x42018020, doesn't match data 0x00120020".
This was due to a difference between the Flash Partitions definition of the current firmware and the one downloaded. Normally, they are the same, but as OTA is so long, I took another firmware to test the process (which had different partitions).
After changing partition table of the other firmware, OTA worked fine.
Then I also tested compression, and I was able to make it working.
Thanks again to nomis for its help and the python script.
Perhaps this is now time that Espressif Zigbee SDK team take care of providing such a tool and document it?

Just to leave a working code for the future... this allow receiveing OTA updates from zigbee2mqtt (ota image created using https://raw.githubusercontent.com/nomis/candle-dribbler/0.5.2/bin/create-ota.py), modified to NOT compress the image:
Still...it takes about 2 hours to complete the update so not really feasible for battery powered devices...
static const esp_partition_t *s_ota_partition = NULL;
static esp_ota_handle_t s_ota_handle = 0;
size_t ota_data_len_;
size_t ota_header_len_;
bool ota_upgrade_subelement_;
uint8_t ota_header_[6];

static esp_err_t zb_ota_upgrade_status_handler(esp_zb_zcl_ota_upgrade_value_message_t message)
{
    static uint32_t total_size = 0;
    static uint32_t offset = 0;
    static int64_t start_time = 0;
    esp_err_t ret = ESP_OK;
    if (message.info.status == ESP_ZB_ZCL_STATUS_SUCCESS) {
        switch (message.upgrade_status) {
        case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_START:
            ESP_LOGI(TAG, "-- OTA upgrade start");
			ota_upgrade_subelement_ = false;
			ota_data_len_ = 0;
            ota_header_len_ = 0;
            start_time = esp_timer_get_time();
            s_ota_partition = esp_ota_get_next_update_partition(NULL);
            assert(s_ota_partition);
            ret = esp_ota_begin(s_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &s_ota_handle);
            ESP_RETURN_ON_ERROR(ret, TAG, "Failed to begin OTA partition, status: %s", esp_err_to_name(ret));
            break;
        case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_RECEIVE:
        	size_t payload_size = message.payload_size;
            const uint8_t *payload = message.payload;

            total_size = message.ota_header.image_size;
            offset += payload_size;

            ESP_LOGI(TAG, "-- OTA Client receives data: progress [%ld/%ld]", offset, total_size);

            /* Read and process the first sub-element, ignoring everything else */
			while (ota_header_len_ < 6 && payload_size > 0) {
                ota_header_[ota_header_len_] = payload[0];
                ota_header_len_++;
				payload++;
				payload_size--;
			}

			if (!ota_upgrade_subelement_ && ota_header_len_ == 6) {
				if (ota_header_[0] == 0 && ota_header_[1] == 0) {
					ota_upgrade_subelement_ = true;
					ota_data_len_ =
						  (((int)ota_header_[5] & 0xFF) << 24)
						| (((int)ota_header_[4] & 0xFF) << 16)
						| (((int)ota_header_[3] & 0xFF) << 8 )
						|  ((int)ota_header_[2] & 0xFF);
					ESP_LOGD(TAG, "OTA sub-element size %zu", ota_data_len_);
				} else {
					ESP_LOGE(TAG, "OTA sub-element type %02x%02x not supported", ota_header_[0], ota_header_[1]);
					return ESP_FAIL;
				}
			}

            if (ota_data_len_) {
                payload_size = min(ota_data_len_, payload_size);
				ota_data_len_ -= payload_size;

                if (message.payload_size && message.payload) {
                    ret = esp_ota_write(s_ota_handle, payload, payload_size);
                    ESP_RETURN_ON_ERROR(ret, TAG, "Failed to write OTA data to partition, status: %s", esp_err_to_name(ret));
                }
            }
            break;
        case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_APPLY:
            ESP_LOGI(TAG, "-- OTA upgrade apply");
            break;
        case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_CHECK:
            ret = offset == total_size ? ESP_OK : ESP_FAIL;
            ESP_LOGI(TAG, "-- OTA upgrade check status: %s", esp_err_to_name(ret));
            break;
        case ESP_ZB_ZCL_OTA_UPGRADE_STATUS_FINISH:
            ESP_LOGI(TAG, "-- OTA Finish");
            ESP_LOGI(TAG,
                     "-- OTA Information: version: 0x%lx, manufactor code: 0x%x, image type: 0x%x, total size: %ld bytes, cost time: %lld ms,",
                     message.ota_header.file_version, message.ota_header.manufacturer_code, message.ota_header.image_type,
                     message.ota_header.image_size, (esp_timer_get_time() - start_time) / 1000);
            ret = esp_ota_end(s_ota_handle);
            ESP_RETURN_ON_ERROR(ret, TAG, "Failed to end OTA partition, status: %s", esp_err_to_name(ret));
            ret = esp_ota_set_boot_partition(s_ota_partition);
            ESP_RETURN_ON_ERROR(ret, TAG, "Failed to set OTA boot partition, status: %s", esp_err_to_name(ret));
            ESP_LOGW(TAG, "Prepare to restart system");
            esp_restart();
            break;
        default:
            ESP_LOGI(TAG, "OTA status: %d", message.upgrade_status);
            break;
        }
    }
    return ret;
}

static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id, const void *message)
{
    esp_err_t ret = ESP_OK;
    switch (callback_id) {
    case ESP_ZB_CORE_OTA_UPGRADE_VALUE_CB_ID:
        ret = zb_ota_upgrade_status_handler(*(esp_zb_zcl_ota_upgrade_value_message_t *)message);
        break;
    default:
        ESP_LOGW(TAG, "Receive Zigbee action(0x%x) callback", callback_id);
        break;
    }
    return ret;
}

static void esp_zb_task(void *pvParameters)
{
.....
    /* ota cluster */
    esp_zb_ota_cluster_cfg_t ota_cluster_cfg = {
        .ota_upgrade_file_version = OTA_UPGRADE_RUNNING_FILE_VERSION,
        .ota_upgrade_downloaded_file_ver = OTA_UPGRADE_DOWNLOADED_FILE_VERSION,
        .ota_upgrade_manufacturer = OTA_UPGRADE_MANUFACTURER,
        .ota_upgrade_image_type = OTA_UPGRADE_IMAGE_TYPE,
    };
    esp_zb_attribute_list_t *ota_client_attr_list = esp_zb_ota_cluster_create(&ota_cluster_cfg);
    /** add client parameters to ota client cluster */
    esp_zb_zcl_ota_upgrade_client_variable_t variable_config = {
        .timer_query = ESP_ZB_ZCL_OTA_UPGRADE_QUERY_TIMER_COUNT_DEF,
        .hw_version = OTA_UPGRADE_HW_VERSION,
        .max_data_size = OTA_UPGRADE_MAX_DATA_SIZE,
    };
    esp_zb_ota_cluster_add_attr(ota_client_attr_list, ESP_ZB_ZCL_ATTR_OTA_UPGRADE_CLIENT_DATA_ID, (void *)&variable_config);

    /* create cluster lists for this endpoint */
    esp_zb_cluster_list_t *esp_zb_cluster_list = esp_zb_zcl_cluster_list_create();
    esp_zb_cluster_list_add_ota_cluster(esp_zb_cluster_list, ota_client_attr_list, ESP_ZB_ZCL_CLUSTER_CLIENT_ROLE);
...
}

Tip is that can/should also check/verify and test OTA files with zigpy-cli ( command line tool by/from the zigpy project):
https://github.com/zigpy/zigpy-cli
https://github.com/zigpy/zigpy-cli/blob/dev/README.md#ota
https://github.com/zigpy/zigpy/wiki/OTA-Information-for-Manufacturers
Note that the zigpy-cli is used by the zigpy project (and the ZHA integration in Home Assistant) but can also be used stand-alone.
https://github.com/zigpy/zigpy/wiki/OTA-Device-Firmware-Updates
https://github.com/zigpy/zigpy
https://www.home-assistant.io/integrations/zha


Esky differential patches not working

I'm trying to auto update using Esky differential patches, but I haven't been able to get the app to update using only those differential patches. It seems like a full version is always needed for a correct update.
So, if I have version 0.1 and patches plus full file versions up to 0.3 in the updates server, the client app will fetch both the patches AND the full latest version file:
updatesServer/
  App-0.1.win32.zip (client version running)
  App-0.2.win32.zip (this isn't fetched)
  App-0.2.win32.from-0.1.patch (this is fetched first)
  App-0.3.win32.zip (this is fetched third)
  App-0.3.win32.from-0.2.patch (this is fetched second)

Also, if the latest version weren't to be available (App-0.3.win32.zip in this case), the update would fail.
The behavior I would expect is for Esky to get the patch file and update while ignoring the other full file version available so the update is blazing fast. Is there a way to achieve this?
Environment info: the freezer I'm using is cx_freeze and my Python version is 3.4.
Update-routine code:
from esky import *
from esky.util import appexe_from_executable

def restart_this_app():
    appexe = appexe_from_executable(sys.executable)
    os.execv(appexe,[appexe] + sys.argv[1:])

if hasattr(sys, "frozen"):
    app = esky.Esky(sys.executable, UPDATES_URL)
    print("You are running version "+app.active_version)
    print("Looking for updates...")
    if app.find_update() is None:
        print("No updates have been found.")
    else:
        print("Updates available. Updating...")
        try:
            app.auto_update()
        except Exception as e:
            print("Error while updating:", e)
        else:
            print("Update complete.")
            print("Restarting app...")
            time.sleep(3)
            restart_this_app()

Ok, first, we will need more information about why esky fails to update with patches. Can you provide the 'e' string please (in your exception) ?
Also, I use a recipe of my own to handle exceptions (you will have to import the traceback module):
except Exception as e:
            log(traceback.format_exc()) # Or:
            print(traceback.format_exc())

So I can log the complete stacktrace. It would be helpful to have yours.

Ok since nobody is posting his file, I'm posting mine:
  File "C:\Users\djipey\Desktop\ChemBrows_freeze\updater.py", line 61, in run
    self.app.auto_update()
  File "C:\Python34\lib\site-packages\esky\__init__.py", line 626, in auto_update
    self._do_auto_update(version, callback)
  File "C:\Python34\lib\site-packages\esky\__init__.py", line 674, in _do_auto_update
    self.fetch_version(version, callback)
  File "C:\Python34\lib\site-packages\esky\__init__.py", line 716, in fetch_version
    loc = self.version_finder.fetch_version(self, version, callback)
  File "C:\Python34\lib\site-packages\esky\finder.py", line 79, in fetch_version
    for status in self.fetch_version_iter(app,version):
  File "C:\Python34\lib\site-packages\esky\finder.py", line 235, in fetch_version_iter
    self._prepare_version(app,version,local_path)
  File "C:\Python34\lib\site-packages\esky\finder.py", line 337, in _prepare_version
    apply_patch(uppath,f)
  File "C:\Python34\lib\site-packages\esky\patch.py", line 299, in apply_patch
    Patcher(target,stream,**kwds).patch()
  File "C:\Python34\lib\site-packages\esky\patch.py", line 628, in patch
    getattr(self,"_do_" + _COMMANDS[cmd])()
  File "C:\Python34\lib\site-packages\esky\patch.py", line 648, in _do_END
    self._context_stack.pop()()
  File "C:\Python34\lib\site-packages\esky\patch.py", line 878, in end_contents
    create_zipfile(t_temp,z_temp,members=zfmeta[0].infolist())
  File "C:\Python34\lib\site-packages\esky\util.py", line 415, in create_zipfile
    zf.writestr(zinfo,f.read())
  File "C:\Python34\lib\zipfile.py", line 1442, in writestr
    self._writecheck(zinfo)
  File "C:\Python34\lib\zipfile.py", line 1300, in _writecheck
    warnings.warn('Duplicate name: %r' % zinfo.filename, stacklevel=3)
  File "c:\python\32-bit\3.4\lib\warnings.py", line 15, in showwarning
AttributeError: 'NoneType' object has no attribute 'write'

My update with a patch crashes like that. The issue seems to come from the file c:\python\32-bit\3.4\lib\warnings.py, but this file does not exist. Look at the path, it's a lower c:.
Any idea ?

In windows and with python 2.7 and esky 0.9.9 and py2exe 0.6.9,
when i use complete zip file it works and update, but by patch file not work.
when i trace 'download' and 'unpack' folders, all is OK and i see the patch file in 'download' and new updated version folder in 'unpack' folder. but after few seconds all of them were cleaned. and out of 'updates' folder don't change any things and not updated.
Even wen i stop the program before it delete inner 'unpack' folder, and then run 'unpack' folder exe file of program, it work. but i don't understand why it is deleted  by esky after unpacked.

@Hadi58 @JPFrancoia @julianx Check out PyUpdater, which is being actively developed. It may provided the functionality that you are looking for. Please note that PyUpdater doesn't support the sudo functionality that esky has. It's also only compatible with pyinstaller one file mode.

It shows this error:
Traceback (most recent call last):
File "main.py", line 841, in
File "main.py", line 333, in bootstrap
File "main.py", line 360, in chainload
File "main.py", line 837, in chainload
File "Media.py", line 40, in
File "Media.py", line 36, in main
File "Media.py", line 26, in run_main
File "MainApp.pyc", line 127, in init
File "esky_init.pyc", line 673, in do_auto_update
File "esky_init.pyc", line 715, in fetch_version
File "esky\finder.pyc", line 80, in fetch_version
File "esky\finder.pyc", line 221, in fetch_version_iter
esky.errors.EskyVersionError: 2.1.6

Thanks for reaching out.  Unfortunately this project is no longer actively maintained, so I'm going to move it into archive mode:
https://rfk.id.au/blog/entry/archiving-open-source-projects/


Handle string literals in merge conflict regions

Check for undefined, like the other code paths in the same function.

@RyanCavanaugh 3.7?

@typescript-bot cherry pick this to release-3.7


How to get a "Draft" watermark?

I often uses something like
#set page(
   background: rotate(
      -35deg,
   text(10em, fill: rgb("E0E0E0"))[Draft, #datetime.today()]
)

How would I get this into the letter/template?
I ie I call it from the
#{
  defaults.form = "B" // can also be form 'B'
…
  defaults.defaults.draft = [Draft, #datetime.today()]
}

to watermark the Draft and Date and like so to do nothing:
#{
  defaults.form = "B" // can also be form 'B'
…
  defaults.defaults.draft = []
}

In the new version 0.1.0 a background and a foreground styling option are added. Take a look at the example, how one might want to add a watermark.


Switch to more inclusive language

Could you please take some time in the next few days to make changes to some terminology in your repos and content as much as is possible:

Whitelist/blacklist to Allowed List and Blocked List (or Approve List/Deny List - some software uses this instead) respectively. Google and many developers are formalizing allowlist and blocklist. You might want to lobby for those terms to be used in the UI.
Master/Slave to master and replica (or subordinate, if that makes more sense) respectively.

If you cannot remove the term because the writing for example reflects the UI or the code, please make a note and send me an email to<EMAIL_ADDRESS>so we can bring it that team’s attention. Thanks for your efforts in this matter.

Done - Please check and let me know if you find anything I missed.

@ittaibaratz thanks for fixing it so quickly!


FireSageJS

Link to project (GitHub): https://github.com/tylim88/FireSageJS
Describe the project in 2-3 sentences: Extreme Type Safe For Realtime Database Web, Write RTDB Code That Stand The Test Of Time
Why would Firebase developers be interested in this project?: the same reason as https://github.com/firebase/firebaseopensource.com/issues/258 but for RTDB
it is also possibly the only RTDB type-safe wrapper in existence
Have you added a .opensource/project.json file to your site: Yes

@tylim88 Happy to add it to the site.
Btw, don't forget to submit it to DevLibrary as well, I see you already have some submissions there.
We are currently evaluating wether it's worth keeping firebaseopensource.com now that DevLibrary exists.


error unhandledRejection: Error [TypeError]: text.replace is not a function

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain.js documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain.js rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
import {
RunnableSequence,
RunnablePassthrough,
} from "@langchain/core/runnables";
import { StringOutputParser } from "@langchain/core/output_parsers";
import { Configuration, OpenAIApi } from 'openai-edge'
import { Pinecone } from "@pinecone-database/pinecone";
import { PineconeStore } from '@langchain/pinecone'
import { OpenAIEmbeddings, ChatOpenAI } from "@langchain/openai";
import { formatDocumentsAsString } from "langchain/util/document";
import { PromptTemplate } from '@langchain/core/prompts'
import { QA_PROMPT } from '../../config/prompts'
const pinecone = new Pinecone({
apiKey: PINECONE_API_KEY,
})
// Set Pinecone index name
const pineconeIndex = pinecone.Index(PINECONE_INDEX_NAME)
// Get the vectorstore
const vectorStore = await PineconeStore.fromExistingIndex(
new OpenAIEmbeddings(),
{
pineconeIndex: pineconeIndex,
textKey: 'text',
namespace: PINECONE_NAME_SPACE,
}
)
const retreiver = vectorStore.asRetriever()
const prompt = PromptTemplate.fromTemplate(QA_PROMPT)
const llm = new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0 });
    const ragChain = RunnableSequence.from([
          {
            context: retreiver.pipe(formatDocumentsAsString),
            question: new RunnablePassthrough(),
          },
          prompt,
          llm,
          new StringOutputParser(),
        ]);

    const response = ragChain.invoke({question})

Error Message and Stack Trace (if applicable)

error unhandledRejection: Error [TypeError]: text.replace is not a function
at OpenAIEmbeddings.embedQuery (file:///workspaces/flow-chatbot/node_modules/@langchain/openai/dist/embeddings.js:203:46)
at PineconeStore.similaritySearch (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/vectorstores.js:104:90)
at VectorStoreRetriever._getRelevantDocuments (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/vectorstores.js:68:33)
at VectorStoreRetriever.getRelevantDocuments (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/retrievers.js:67:40)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async RunnableSequence.invoke (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/runnables/base.js:1016:33)
at async file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/runnables/base.js:1195:31
at async Promise.all (index 0)
at async RunnableMap.invoke (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/runnables/base.js:1194:13)
at async RunnableSequence.invoke (file:///workspaces/flow-chatbot/node_modules/@langchain/core/dist/runnables/base.js:1016:33) {
digest: undefined
}

Description
I'm trying to do RAG using LCEL but keep running into this error using all the code examples from the docs. My goal is to also return the source documents and stream.
System Info
version: '0.1.27',
type: 'module',
engines: {
node: '>=18'
},
main: './index.js',
types: './index.d.ts',
\

The input to ragChain in your case there will be passed directly to retreiver.pipe(formatDocumentsAsString) and new RunnablePassthrough(). Retrievers take string input. Thus, you should invoke your chain like this:
    const ragChain = RunnableSequence.from([
          {
            context: retreiver.pipe(formatDocumentsAsString),
            question: new RunnablePassthrough(),
          },
          prompt,
          llm,
          new StringOutputParser(),
        ]);

  // No brackets around question
    const response = ragChain.invoke(question);

Alternatively, you could update your chain to look like this:
    const ragChain = RunnableSequence.from([
          {
            context: RunnableLambda.from((input) => input.question).pipe(retreiver.pipe(formatDocumentsAsString)),
            question: new RunnablePassthrough(),
          },
          prompt,
          llm,
          new StringOutputParser(),
        ]);

  // No brackets around question
    const response = ragChain.invoke(question);

The input to ragChain in your case there will be passed directly to retreiver.pipe(formatDocumentsAsString) and new RunnablePassthrough(). Retrievers take string input. Thus, you should invoke your chain like this:
    const ragChain = RunnableSequence.from([
          {
            context: retreiver.pipe(formatDocumentsAsString),
            question: new RunnablePassthrough(),
          },
          prompt,
          llm,
          new StringOutputParser(),
        ]);

  // No brackets around question
    const response = ragChain.invoke(question);

Alternatively, you could update your chain to look like this:
    const ragChain = RunnableSequence.from([
          RunnableLambda.from((input) => input.question),
          {
            context: retreiver.pipe(formatDocumentsAsString),
            question: new RunnablePassthrough(),
          },
          prompt,
          llm,
          new StringOutputParser(),
        ]);

  // Now you can put it in an object
    const response = ragChain.invoke({ question });

How to add chat_history memory? Thanks.

hi
Someone can help me how to add chat history with postgres
Here my code:
const retriever = vectorstore.asRetriever();

      const chain = RunnableSequence.from([
        RunnableLambda.from((input) => input.question),
          {
            context: retriever.pipe((docs) => docs[0].pageContent),
            question: new RunnablePassthrough(),
            chat_history: new RunnablePassthrough(),
          },
          promptTemplate2,
          llm,
          new StringOutputParser(),
      ]);

      const chainWithMessageHistory = new RunnableWithMessageHistory({
        runnable: chain,
        getMessageHistory: async (sessionId) => {
          const chatHistory = new PostgresChatMessageHistory({
            sessionId,
            pool,
          });
          return chatHistory;
        },
        inputMessagesKey: "question",
        historyMessagesKey: "chat_history"
      });

      const chainResult = await chainWithMessageHistory.invoke({
        question: question,
      },
      { configurable: { sessionId: "langchain-test-1" } }
      );

But the chat_history doesn't work.

@dosubot Thanks, to anyone who is having the "text.replace is not a function" error, kindly convert the message payload to string(e.g., messageVariable.toString())


vzstorage-pd: set vstorage attributes before creating ploop

A part of attributes can't be changed for existing files.
Signed-off-by: Andrei Vagin<EMAIL_ADDRESS>

@sanyu Your are right. I'm going to create a pull request for virtuozzo/goploop-cli.


*byId methods don't work with custom IDs

I always get Argument passed in must be a single String of 12 bytes or a string of 24 hex characters error when trying to use *byId methods of mongo-models with custom IDs (for example: D1, D4).

Did you set the _idClass property with your constructor?
Docs:
https://github.com/jedireza/mongo-models/blob/master/API.md#_idclass
Example using String instead of MongoDB.ObjectID:
https://github.com/jedireza/frame/blob/b59761b1ea73a4eac257a676c06b4909547c99db/server/models/status.js#L33


ZabbixAPI maintenance.delete causes error

We have built our custom Grafana panels where we utilize Zabbix datasource heavily. We call ZabbixAPI directly through your datasource.
Now after recent update when we call:
zabbix.zabbixAPI.request('maintenance.delete', [maintenanceID])
That causes error:
json: cannot unmarshal array into Go struct field ZabbixAPIResourceRequest.params of type map[string]interface {}
That's because maintenance.delete call takes only an array while most ZabbixAPI-calls take normal json object and in the models.go file the type of ZabbixAPIResourceRequest is defined to be map[string]interface{}
** Screenshot **

Software versions

Grafana
Zabbix
Grafana-Zabbix Plugin

7.3.1
5.0.5
4.0.2

Yes, in that case ZabbixAPIResourceRequest.Params should be more general, like interface{}. I think I anyway need this in future, so I'll change this.


Problem with output when rendering the chart in SVG or PDF

When rendering the charts to PDF or SVG, the x-axis shifts, so the y-values are not plotted over the x-values. The output via swing is correct.
I use Maven. The version is 3.5.2.
The VectorGraphics2D library has version 0.13.
Thank you for support!

Thanks for letting me know.

@timmolter
Now verify that there is no such problem, has it been resolved?

Can you test it please? If it's fixed, I can close this issue.

display chart:

save as SVG:

save as PDF:

No problem as @andri-anski said.

@timmolter
This bug cannot be reproduced.
Save the PDF file, the same as the original image, and the implementation method is different from the previous.
Saving SVG files may sometimes be slightly different from the original image, but it is not a problem.