Error

I'm using _VD.ahk. My goal is to create a code when I activate a window with mouse left click, I can just go to the virtual desktop I desire, and mouse middle click on desktop, then it will bring the previously activated window to this new virtual desktop.  But I'm not sure what went wrong, nothing happens when I middle-click on a different virtual desktop.
   #If MouseIsOver("ahk_class WorkerW")

   MButton::
      VD.MoveWindowToCurrentDesktop("A")
   Return()
   #If

   MouseIsOver(WinTitle) {
      MouseGetPos,,, Win
      return WinExist(WinTitle . " ahk_id " . Win)
   }
   Return

I tried the following code to see if other function works, but I got an error message.
F2::
VD.goToDesktopNum(2)
Return

When I run the folloinwg code, it returns empty message box.
#Include %A_LineFile%\..\..\VD.ahk

foundProcesses := ""
; Make sure to get all windows from all virtual desktops
DetectHiddenWindows On
WinGet, id, List
Loop %id%
{
    hwnd := id%A_Index%
    ;VD.getDesktopNumOfWindow will filter out invalid windows
    desktopNum_ := VD.getDesktopNumOfWindow("ahk_id" hwnd)
    If (desktopNum_ > -1) ;-1 for invalid window, 0 for "Show on all desktops", 1 for Desktop 1
    {
        WinGet, exe, ProcessName, % "ahk_id" hwnd
        foundProcesses .= desktopNum_ " " exe "`n"
    }
}

MsgBox % foundProcesses

You need to check that C:\Ahk\Library\VD.ahk file exists first. It probably does not. You need to make sure you put repo in AutoHotkey folder or wherever you keep AutoHotkey scripts. Your code is not relevant yet until you first fix your sourcing issue

copy SetForeGroundWindow.exe into C:\Ahk\Library\, it needs to be in the same folder as VD.ahk

When I run the folloinwg code, it returns empty message box.

what is your windows version ? what is the value of A_OSVersion ? :
MsgBox % Clipboard:=A_OSVersion

My goal is to create a code when I activate a window with mouse left click, I can just go to the virtual desktop I desire

what is the code for LButton ? you've only sent the code for MButton
LButton::
???

MsgBox % Clipboard:=A_OSVersion

I moved SetForeGroundWindow.exe to where VD.ahk is, same issue. I'm actually using _VD.ahk, but I renamed it as VD.ahk, could that be a problem? My version is 10.0.22621. As for LButton, there is no code for it. It's just when you click on an application, it activates that window. So I was thinking once I activated it, I can just go to another virtual desktop, and middle click on the desktop to bring that previously activated window to the new virtual desktop.  Thanks for trying to help.

You need to check that C:\Ahk\Library\VD.ahk file exists first. It probably does not. You need to make sure you put repo in AutoHotkey folder or wherever you keep AutoHotkey scripts. Your code is not relevant yet until you first fix your sourcing issue

VD.ahk does exist in the file, and the scripts I have included previously have been working just fine. So I doubt that was the problem. But just in case, below is how I included my scripts:
#Include C:\Ahk\Library\
#Include Class_NvAPI.ahk
#Include FindText.ahk
#Include desktop_switcher.ahk
#Include RegionWaitChange.ahk
#Include VA.ahk
#Include VD.ahk

I'm actually using _VD.ahk, but I renamed it as VD.ahk

then you need to add 1 line:
VD.init()

so it becomes (please don't rename it, keep it as _VD.ahk):
#Include %A_LineFile%\..\..\_VD.ahk
VD.init()

foundProcesses := ""
; Make sure to get all windows from all virtual desktops
DetectHiddenWindows On
WinGet, id, List
Loop %id%
{
    hwnd := id%A_Index%
    ;VD.getDesktopNumOfWindow will filter out invalid windows
    desktopNum_ := VD.getDesktopNumOfWindow("ahk_id" hwnd)
    If (desktopNum_ > -1) ;-1 for invalid window, 0 for "Show on all desktops", 1 for Desktop 1
    {
        WinGet, exe, ProcessName, % "ahk_id" hwnd
        foundProcesses .= desktopNum_ " " exe "`n"
    }
}

MsgBox % foundProcesses

if you #Include _VD.ahk, you have to call VD.init()
if you #Include VD.ahk, it will #Include _VD.ahk and call VD.init() for you
that's the difference between the 2 files.

I'm actually using _VD.ahk, but I renamed it as VD.ahk

then you need to add 1 line:
VD.init()

so it becomes (please don't rename it, keep it as _VD.ahk):
#Include %A_LineFile%\..\..\_VD.ahk
VD.init()

foundProcesses := ""
; Make sure to get all windows from all virtual desktops
DetectHiddenWindows On
WinGet, id, List
Loop %id%
{
    hwnd := id%A_Index%
    ;VD.getDesktopNumOfWindow will filter out invalid windows
    desktopNum_ := VD.getDesktopNumOfWindow("ahk_id" hwnd)
    If (desktopNum_ > -1) ;-1 for invalid window, 0 for "Show on all desktops", 1 for Desktop 1
    {
        WinGet, exe, ProcessName, % "ahk_id" hwnd
        foundProcesses .= desktopNum_ " " exe "`n"
    }
}

MsgBox % foundProcesses

if you #Include _VD.ahk, you have to call VD.init() if you #Include VD.ahk, it will #Include _VD.ahk and call VD.init() for you that's the difference between the 2 files.

Thank you so much, this fixed it!

So I was thinking once I activated it, I can just go to another virtual desktop, and middle click on the desktop to bring that previously activated window to the new virtual desktop.

VD.MoveWindowToCurrentDesktop("A")

when you go to another virtual desktop, the active window changes to a window on the VD you go to, (the active windows is literally what you are seeing in front of you), so this will bring the current active window to the current desktop, doing nothing
so you will have to save the last active window in another VD somehow, (save the hwnd of that window) then:
VD.MoveWindowToCurrentDesktop("ahk_id " savedHwnd)

@TaroDumpling this works for the simple of cases, I need bug testing (it doesn't always activate, but I need to know the precise steps that make it not activate)
middle click bring other vd active window.ahk:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force
ListLines Off
SetBatchLines -1
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#KeyHistory 0
#WinActivateForce

Process, Priority,, H

#Include %A_LineFile%\..\..\VD.ahk

SetWinDelay -1
SetControlDelay -1

DllCall("RegisterShellHookWindow","Ptr",A_ScriptHwnd)
OnMessage(DllCall("RegisterWindowMessage",Str,"SHELLHOOK"), "ShellMessage")

VD.RegisterDesktopNotifications()
VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged")
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
    global other_VD_hwnd, current_VD_Hwnd
    other_VD_hwnd:=current_VD_Hwnd
    current_VD_Hwnd:=false
}

current_VD_Hwnd:=WinExist("A")

#If MouseIsOver("ahk_class Progman ahk_exe explorer.exe")

MButton::
if (other_VD_hwnd) {
    VD.MoveWindowToCurrentDesktop("ahk_id " other_VD_hwnd)
}
return

#If

MouseIsOver(WinTitle) {
    MouseGetPos,,, Win
    return WinExist(WinTitle) == Win
}

Return

ShellMessage(wParam,lParam) {
    global current_VD_Hwnd
    switch wParam {
        case 2, 4, 32772:
            ; WinGetTitle, title, ahk_id %lParam%
            ; ToolTip WinActivated`n%Title%
            if (lParam) {
                current_VD_Hwnd:=lParam
            }
        ; default:
            ; ToolTip % wParam
    }
}

f3::Exitapp

I figured out an easier and more practical solution. I want to do the same thing using hotkey 1 through 9. Are there ways to make my code shorter instead of write the code for hotkey 1, hotkey 2, hotkey 3, and so forth? Thanks!
;  Move Window to Desktop by Long Pressing number 1 to 9.
      ~1::
         KeyWait, 1, T0.5
         If ErrorLevel = 1
         {
            Soundbeep, 1500
            VD.MoveWindowToDesktopNum("A", 1)
            KeyWait, 1
         }
      Return

      ~2::
         KeyWait, 2, T0.5
         If ErrorLevel = 1
         {
            Soundbeep, 1500
            VD.MoveWindowToDe222sktopNum("A", 2)
            KeyWait, 2
         }
      Return

I can think of 2 ways:
*1::
*2::
*3::
*4::
*5::
*6::
*7::
*8::
*9::
    numeric:=SubStr(A_ThisHotkey,2,1)
    KeyWait % numeric, T0.5
    If ErrorLevel = 1
    {
    Soundbeep, 1500
    VD.MoveWindowToDesktopNum("A", numeric)
    KeyWait % numeric
    }
    Else Send % numeric
Return

*1::foo("1")
*2::foo("2")
*3::foo("3")
*4::foo("4")
*5::foo("5")
*6::foo("6")
*7::foo("7")
*8::foo("8")
*9::foo("9")
foo(numeric) {
    KeyWait % numeric, T0.5
    If ErrorLevel = 1
    {
    Soundbeep, 1500
    VD.MoveWindowToDesktopNum("A", numeric)
    KeyWait % numeric
    }
    Else Send % numeric
}

one downside of my code is that I'm able to notice latency with typing numbers.

numbers are sent on KeyUp, instead of the default: on KeyDown
if any other key is pressed while a number is down(like when typing), you might want to send the number immediately, but I don't immediately know how to code that


Volumemgr support for kubevirt eve

Implements the new volumehandler, csihandler to create kubernetes specific volumes Implements the volumehandler interface functions like CreateVolume, DestroyVolume etc. for PersistentVolumes (Kubernetes based volumes) Though longhorn can support filemode volumes we only create blockmode volumes since eve only deals with block volumes.
CreateVolume() does the following:

A blank volume create request, creates a blockmode PVC
A downloaded volume qcow2 is converted to blockmode PVC
For container images, we follow the same path of extracting rootfs to /persist/vault/volumes/*container directory
once the rootfs is laid out, the files required for runx-initrd are generated and copied into /persist/vault/volumes/*container
The directory content will look like this:
4b6da250-6608-4686-a9fd-89e16f39ded6:/persist/vault/volumes/fe328d99-a380-45a7-99af-612b6264f628#0.container# ls
cmdline            environment        image-config.json  modules            rootfs             ug
This entire directory is first copied to a qcow2 using copy-image-to-qcow.sh script
The qcow2 is copied to PVC, which will be used as bootdisk for the VM.
The qcow2 will be deleted to save space.

Volume snapshots are not supported yet and a corresponding error is returned. Kubenertes naming convention does not support "#", so all PVC are keyed with -pvc- instead of "#" Added docker.io/ prefix to the container images inserted into the containerd repository

The PR does not have any tests.

The PR does not have any tests.

Tests are same as what we already have today for volume creation, EVE API is note changing.

Tests are same as what we already have today for volume creation, EVE API is note changing.

According to https://github.com/lf-edge/eve/pull/3768#issuecomment-1955191138 0% of the code changes are tested.
It doesn't have to bested all the way through the EVE API, other tests count into the coverage statistics as well.

Tests are same as what we already have today for volume creation, EVE API is note changing.

According to #3768 (comment) 0% of the code changes are tested. It doesn't have to be tested all the way through the EVE API, other tests count into the coverage statistics as well.

It doesn't have to be tested all the way through the EVE API, other tests count into the coverage statistics as well.

Correct. that is expected for now. This code will be executed only on kubevirt eve. We do not yet test kubevirt eve for code coverage since we cannot even build kubevirt eve yet from master branch. We are in the process of sending PRs for review. Once we have all PRs merged we can start enabling code coverage testing for kubevirt eve

Tests are same as what we already have today for volume creation, EVE API is note changing.

According to #3768 (comment) 0% of the code changes are tested. It doesn't have to be tested all the way through the EVE API, other tests count into the coverage statistics as well.

It doesn't have to be tested all the way through the EVE API, other tests count into the coverage statistics as well.

Correct. that is expected for now. This code will be executed only on kubevirt eve. We do not yet test kubevirt eve for code coverage since we cannot even build kubevirt eve yet from master branch. We are in the process of sending PRs for review. Once we have all PRs merged we can start enabling code coverage testing for kubevirt eve

You can for example do it like this: https://github.com/christoph-zededa/eve/commit/25be593db3bd3e22acebe30a38e11038d2e42211

Thanks @christoph-zededa can I actually go ahead and use the code you suggested ?

Thanks @christoph-zededa can I actually go ahead and use the code you suggested ?

Sure.

Yes I found that yesterday when I fixed the VolumeKey and Key. Basically now added a new function GetPVCName() which generates the PVC name from status. I am testing the fix with ztest automation since yesterday.

Fixed the bug and updated this PR with a new commit

Oh I see what you are saying. Looks like we are Publishing VolumerefStatus in VolumeStatus. Need to check with @naiming-zededa I believe he added that code long time ago. I will rework that and see if tests pass.

Oh I see what you are saying. Looks like we are Publishing VolumerefStatus in VolumeStatus. Need to check with @naiming-zededa I believe he added that code long time ago. I will rework that and see if tests pass.

Code has added passing the ReferenceID back to zedmanager by adding it to VolumeRefStatus. I assume this is so zedmanager can pass that on to domainmgr/kubevirt. So that is fine. But the implementation has code sprinkled in somewhat random places which makes it hard to understand and maintain.

BTW: you have some conflicts to resolve before the next time we can get the PR to build and run Eden

Cleaned up the unnecessary code and resolved merge conflicts with master. Published new commit

Yes those commits can be independent since I only cleaned up stuff and functionality is still the same.

Yes those commits can be independent since I only cleaned up stuff and functionality is still the same.

You mean you want all 6 to be independent? How will that make sense to somebody else (a reader) a year from now or even a month from now? Please squash.

There is a rebase of master too in one of the commits to fix the merge conflicts. So not sure what will happen if I squash the commits.  I will try and see in worst case I will submit another PR pointing to this PR

If you have a merge commit in your PR you MUST squash it out. There is no problem doing that - git rebase -i upstream/master works for me.

Ok squash worked cleanly. Updated the single squashed commit.


Feat: Logger and config.yaml

What?
Add logging util functions.
Why?
By adding this logger component we can now have the results in json files and tensorboard
How?
Added Logger_tools.py
Extra
This branch is based on feat/tpu_setup we need to close #902 before reviewing this.

This PR will be closed as #906 addresses the same issue and is adaptable to the current ippo implementation.


intercept or halt wizelinks to call ajax when pressing browser back button

I built an index page with posts, when user click on the post, it's content is displayed on a popup and thanks to wizelinks, it works nice ( with page titlte, address url). However, when I press Chrome 's back button, it invokes ajax call again and  renders index page within the popup!
Can you show me how to intercept/ halt wizelinks to call ajax at this point? I just want to close the popup and change back url without invoking wizelinks and load the content.

There is another problem regarding browser back button too, if these 2 be fix, wizelink will be undoubted best history tool around.
First i read a post via ajax request, then F5 to refresh page. browser sends get request to get post content again ( showing full template and layout), then I press back button, it call last page via Ajax, which will render nothing because lack of container div in my posts/show page


Add support for 0.8.x

Merges the 0.8.x development branch into the master branch.

Passed final code review and testing, merging.


fix basePath for prd-prsn.com

http://eps.openclass.com/api/#!/institution/getInstitutions

Sorry for long delay, I wanted to instigation before applying it.
I found out that it could be fixed directly inside api-spec-converter and swagger-converter.
I already made such change and will contribute PR.
I already refresh API spec and commit it as part of  3f44f84


Interspersing indented and code blocks in lists does not work as expected

See this example
In Mistletoe the indentations/codeblocks get mixed up, and the numbering in the list does not continue correctly

I think I know how to fix this one, but it'll take me a bit. Lists are hard to parse, and I'll have to think of a better way.

Sure, makes sense. When you say "a bit" are you thinking days, weeks, months, ...? No pressure - I just want to get an idea of whether I need to consider a workaround or if I can wait.

Almost there. Some whitespace still need fixing.
I also broke backwards compatibility (re: BlockToken.start) and need to write new test cases for the new list implementation, so the next release will be delayed for ~2 days, but hopefully not more than that.

Very cool - thanks for the update and continued responsiveness!

I just released a new version. Output for the original example:

I pulled the new release into my project, and while it does fix the exact example pasted above, it unfortunately doesn't work for this variation (note the extra newline before the codeblock starts):
mistletoe [version 0.6] (interactive)
Type Ctrl-D to complete input, or Ctrl-C to exit.
>>> 1. List item 1
...
...     ```
...     This is code
...     ```
... 1. This is number 2
...

List item 1

`
This is code

This is number 2

>>>

I also noticed that it adds spurious instances of

 when there are lines that only consist of whitespace. Probably not a huge deal for most cases, but it seemed odd to me.
Let me know what you think about the above issue(s)! Thanks!

I pushed a temporary fix, though it has less to do with parsing lists, and more to do with how code fences are currently parsed. I'll open another issue for implementing Commonmark-compliant code fences. Currently the example is working:
>>> 1. List item 1
...
...     ```
...     This is code
...     ```
... 1. This should be numbered as 2
...

List item 1

This is code

This should be numbered as 2

Can you give an example of spurious

?


Update LICENSE

Coverage remained the same at 85.129% when pulling 69a2ed6fda4ee39713db87851a4aaa0c8f16c614 on upgrade-license into<PHONE_NUMBER>0c18f1fc29c8283cde9d8e83a9e184 on master.


compile failed of v0.3.5 in Centos 7.4 with Xeon Platinum 8163

cc -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_AVX512 -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.5\" -DASMNAME=sgemm_kernel -DASMFNAME=sgemm_kernel_ -DNAME=sgemm_kernel_ -DCNAME=sgemm_kernel -DCHAR_NAME=\"sgemm_kernel_\" -DCHAR_CNAME=\"sgemm_kernel\" -DNO_AFFINITY -I.. -UDOUBLE  -UCOMPLEX -c -UDOUBLE -UCOMPLEX ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c -o sgemm_kernel.o cc -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_AVX512 -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.5\" -DASMNAME=sgemm_incopy -DASMFNAME=sgemm_incopy_ -DNAME=sgemm_incopy_ -DCNAME=sgemm_incopy -DCHAR_NAME=\"sgemm_incopy_\" -DCHAR_CNAME=\"sgemm_incopy\" -DNO_AFFINITY -I.. -UDOUBLE  -UCOMPLEX -c -UDOUBLE -UCOMPLEX ../kernel/x86_64/../generic/gemm_ncopy_16.c -o sgemm_incopy.o ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c: In function 'sgemm_kernel': ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:789:4: error: unknown type name '__m512'     __m512 zmm0, zmm1, zmm2, zmm3, row0, zmm5, row1, zmm7, row2, row3, row0b, row1b, row2b, row3b, row0c, row1c, row2c, row3c, row0d, row1d, row2d, row3d;     ^ ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:797:4: warning: implicit declaration of function '_mm512_setzero_ps' [-Wimplicit-function-declaration]     INIT64x4()     ^ ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:801:5: warning: implicit declaration of function '_mm512_loadu_ps' [-Wimplicit-function-declaration]      KERNEL64x4_SUB()      ^ ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:801:5: warning: implicit declaration of function '_mm512_broadcastss_ps' [-Wimplicit-function-declaration] ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:805:4: warning: implicit declaration of function '_mm512_set1_ps' [-Wimplicit-function-declaration]     SAVE64x4(alpha)     ^ ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:805:4: warning: implicit declaration of function '_mm512_storeu_ps' [-Wimplicit-function-declaration] ../kernel/x86_64/sgemm_kernel_16x4_skylakex.c:815:4: error: unknown type name '__m512'     __m512 zmm0, zmm1, zmm2, zmm3, row0, row1, row2, row3, row0b, row1b, row2b, row3b;

Your system compiler does not support AVX-512.
Maneuvers around softwarecollections.org binutils are described in OpenBLAS FAQ.

@brada4  i use gcc version 6.5.0, which should support AVX-512.

Can you try version 0.3.6 (or the current "develop" branch here on github) please ? The problem is probably that your compilation does not pick up one of the *immintrin.h headers for he AVX512 intrinsics. (Though what is strange is that (a) these should be present in 6.5.0, and (b) the build system appears to have detected a problem with AVX512 support already and defined "NO_AVX512" accordingly, yet still tries to compile the SkylakeX codes rather than their non-AVX512 Haswell fallbacks)

i used 0.3.6, it compile succeed. but 0.3.6 seems not support by kaldi(which depends on openblas).

I do not think there should be a reason for them to avoid 0.3.6, perhaps they just did not update the version number in kaldi/tools/Makefile ? Anyway if you want to use 0.3.5, you can add TARGET=HASWELL to their make commandline (last line of kaldi/tools/Makefile) so that it avoids the AVX512 codes completely. (Unfortunately the AVX512 DGEMM in OpenBLAS is currently broken anyway, even in 0.3.6 - if Kaldi only uses single precision, i.e. SGEMM you should be alright with 0.3.6)

I use TARGET=HASWELL to compile 0.3.5, it compile succeed. What's the difference between  TARGET=HASWELL AND TARGET= SkylakeX ？
I change the version number in kaldi/tools/Makefile to 0.3.6，openblas compile succeed，but kaldi build got some errors.
one error is because, in 0.3.6 openblas OpenBLAS/install/include/(build out) dir only got two .h files, lapacke.h、 lapacke_xx.h  is missing.

The key difference between TARGET=HASWELL and TARGET=SKYLAKEX is that SKYLAKEX target will use the new AVX512 instructions (and registers) of the current generation Xeon cpu for SGEMM, DGEMM and related functions like STRMM/DTRMM. (This was contributed by someone who works for Intel - unfortunately none of the more regular contributors to OpenBLAS has AVX512 coding experience or actual hardware)
Not sure why your 0.3.6 build would not install all header files (Some of them are generated in the make install step, so if the kaldi build does its own copying after the build it may miss them - but
I think the same mistake would then have happened with 0.3.5 already)

https://github.com/xianyi/OpenBLAS/wiki/faq#binutils
You need to install binutils from devtools in addition to the compiler.


[Bug]: Not Using SalesLine.GetSalesHeader() in UpdateEntryDescriptionFromSalesLine

Describe the issue
procedure UpdateEntryDescriptionFromSalesLine in codeunit 815 "Sales Post Invoice" is not using SalesLine.GetSalesHeader() to retreive the salesheader.
procedure UpdateEntryDescriptionFromPurchaseLine in codeunit 816 "Purch. Post Invoice" is not using PurchaseLine.GetPurchHeader() to retreive the purchaseheader.
Expected behavior
old:
SalesSetup.Get();
SalesHeader.get(SalesLine."Document Type", SalesLine."Document No.");
new:
SalesSetup.GetRecordOnce();
SalesHeader := SalesLine.GetSalesHeader();
old:
PurchSetup.Get();
PurchaseHeader.get(PurchaseLine."Document Type", PurchaseLine."Document No.");
new:
PurchSetup.GetRecordOnce();
PurchaseHeader := PurchaseLine.GetPurchHeader();
Steps to reproduce
post a sales and purchase document
Additional context
No response
I will provide a fix for a bug

[ ] I will provide a fix for a bug

Sounds like something we've approved before. I'm hence not hesitant to approve this change. However, given this code is in the BaseApp. you'd have to suggest and fix this code in the BaseApp contribution pilot: https://github.com/microsoft/businesscentralapps. For access to the pilot, please fill out the following form: https://forms.office.com/r/E9wyE5a58f.
Would you like me to move this issue?

could you move this issue to the [businesscentralapps] repo?
Then I will add there a fix for this


[CSBindings] Don't generate bindings for defaults

Let's keep defaults separate from direct and transitive bindings,
that would make it easier to handle them in incremental model.
Instead of generating bindings for defaults and adding to the main
set, let's allow producer to choose what to do with them once type
variable has been picked for attempting.

@swift-ci please test source compatibility

@swift-ci please test source compatibility

@shahmishal There is a problem with one of the projects in compat suite:
fatal: unable to access 'https://github.com/andreamazz/AMScrollingNavbar.git/': Could not resolve host: github.com

This might be an account issue because I can access it with mine.

@swift-ci please test source compatibility

@swift-ci please smoke test


CSS highlights the first item in every open tiddler with a list, on hover

Not much to say here, attaching a screen:

I think the issue (have replicated here in Tiddly Desktop and a browser) is that hovering over the first element in the second tiddler's list also highlights the first element in the first tiddler's list. Worse, clicking the first element of the second tiddler actually checks off an element in the first tiddler :(

steps to replicate:

navigate to https://tgrosinger.github.io/tw5-checklist/
create a tiddler "test A" with a two element checklist in the body
whilst keeping tiddler "test A" open, create a tiddler "test B" and add also a two element checklist to the body
hover over the first element of test A's checklist, note that the first element of test B is also highlighted
click the first element of test A's checklist, notice how the first element of test B is marked done

I think this issue is based on the use of match.index, in $:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js, to link the label to its checkbox input element.
More specifically, the id attribute of the input element and the for attribute of the matching label element are both set to match.index; this is based on the position of the pattern in the tiddler text. As a result if two tiddlers have a checkbox pattern at the very start, they will both have their first input id and label for set to 0, which confuses the browser for hover or click event handling.
This happens again on line two if the same number of characters is used leading up to the second checkbox pattern in both tiddlers. More generally, this issue will happen any time two checkbox patterns are a the same position (in their respective tiddler text), for two tiddlers that are shown/rendered simultaneously.
As a result, I think it is imprudent to set the id attribute of the input element and the for attribute of the matching label to a value based on position in text alone. I recommend either using a random value (using Math.random()) or encoding the tiddler title (which is unique) in addition to the position (concatenate) if that information is available from the wikirule parser (unclear with my limited knowledge).
I implemented the former (using Math.random()) and that has solved the issue for me.


 Create publish intent request

When a user schedules content to be published, we need to create a
publish intent in the Publishing API so that Content Store will run down
the TTL and the document's cache will expire as the new content is
published.
Trello:
https://trello.com/c/fXtvPpIO/696-create-publish-intent

Oh - just thought of something. Since this introduces communication with the Publishing API the controller should rescue from API errors.

@kevindew I've added the rescue and a publishing_api_down spec to test this workflow.


ElementHandle.click should raise error if element behinds a modal layer

Steps to reproduce
Tell us about your environment:

Puppeteer version:  v1.0.0
Platform / OS version: OS X 10.3.3
URLs (if applicable):
Node.js version: v8.8.1

What steps will reproduce the problem?
index.html
<!DOCTYPE html>

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>

  <button onclick="alert('hello!');">click me</button>

test.js
const puppeteer = require('puppeteer');
puppeteer.launch({
  executablePath: '/Applications/Chromium.app/Contents/MacOS/Chromium',
  headless: false
}).then(async b => {
  const p = await b.newPage();
  await p.goto('http://<IP_ADDRESS>:8000');
  const btn = await p.$('button');
  await btn.click();
  console.log('clicked.');
  await new Promise(resolve => {
    setTimeout(() => resolve(), 5000);
  });
  await b.close();
});

What is the expected result?
Click button will raises error since there's a modal layer in the front of button element, it is not clickable, just like Selenium does.
What happens instead?
No error raised, the program print "clicked" and exited.

This seems reasonable. It isn't trivial because of pointer-events and scrollbars could obscure an element. But in theory it should be doable.

@JoelEinbinder can we do what chrome driver does? I found this piece of code, not sure it's the right one but looks like what we're after (found it by looking for the error message I know webdriver throws in those cases).

@JoelEinbinder
I try this page with selenium in python:
#! coding:utf-8

from selenium import webdriver
from selenium.webdriver.common.by import By

def creat_webdrive():
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('window-size=1920,1080')
    drive = webdriver.Chrome(chrome_options=chrome_options)
    return drive

def login_tenant():
    drive.get('file:///C:/Users/uyun/Desktop/ant/test/test.html')
    user = drive.find_element_by_css_selector('button')
    user.click()

if __name__ == '__main__':
    drive  = creat_webdrive()
    login_tenant()

I get this:
  File "C:\Program Files (x86)\python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Element <button onclick="alert('hello!');">...</button> is not clickable at point (40, 20). Other element would receive the click:

The rease is I can not click the button because the modal in front of it.

@JoelEinbinder - can I somehow help here?

@JoelEinbinder can we use elementFromPoint to figure if we're clicking the right element?

@aslushnikov, @JoelEinbinder - this feature is important to us (we have teams moving from selenium, and we want to be aligned with similar behavior).
I was thinking of testing that elementFromPoint returns the same element as the desired element, here (not sure if this is the best place)
WDYT?

@JoelEinbinder I verified that elementFromPoint accounts for pointer-events: none.
@yanivefraim this will probably work. So far the only tricky part seems to be shadow dom: element handles might come from-inside shadow trees, but elementFromPoint won't pierce inside.
I'll be happy to review a PR

elementFromPoint also won't pierce iframes. We have a protocol method, DOM.getNodeForLocation, which would be perfect except it operates with nodeIds. It is also not trivial for us to determine if a node is a child of another node when dealing with iframes/shadow dom.

Tested in rod, it works fine even with nested iframes. Here's the clickable demo:
https://github.com/go-rod/rod/blob/0874beb/element_test.go#L27-L42
Here's the nested iframes demo:
https://github.com/go-rod/rod/blob/0874beb/query_test.go#L61-L66
There's one chrome bug we need to watch out:
https://github.com/go-rod/rod/blob/0874beb/page.go#L699-L704
If you don't call DOM.getDocument before using DOM.getNodeForLocation, it will return 0 node id, no matter you enabled Dom.enable or not.


Add SpreadsheetToCql operation

Given an arbitrary spreadsheet, convert it to a Cql expression.

Resolved by #135


Fix ToggleSwitch dragging

What does the pull request do?
Fixes dragging the "knob" of a ToggleSwitch to set its state
What is the current behavior?
When the mouse button is released after dragging, the ToggleSwitch's state is set to the opposite of what it should be set to. This is a regression, which appears to have occurred sometime in 11.x
What is the updated/expected behavior with this PR?
Dragging the "knob" of a ToggleSwitch now correctly sets its state
How was the solution implemented (if it's not obvious)?
It's a two-line fix, lol

cc for backport to stable @maxkatz6


The package networkx-stubs has been archived

What happened?
We are using the package https://github.com/eggplants/networkx-stubs, but this repository has been archived, so type check for networkx might break soon.
What did you expect instead?
nextworkx type check should not break. We should eventually add it to mypy ignore list and monitor https://github.com/networkx/networkx/issues/3988 to see if type hints are eventually added natively in the project to remove it from the mypy ignores.
Affected version(s)
No response
Affected part(s)
Build script, CI, dependencies, etc. (part:tooling)
Extra information
No response

As a drop-in replacement, you could try https://github.com/fmagin/networkx-stubs or downloading the stubs from https://github.com/microsoft/python-type-stubs/tree/main/stubs/networkx
There are efforts that just started to move and merge both of those towards typeshed (https://github.com/fmagin/networkx-stubs/issues/8 / https://github.com/python/typeshed/pull/10544)

We could fork microsoft/python-type-stubs (suggested repo) which holds the stubs currently used in  Pylance and add a configuration script to create a package only for networkx stubs that we can reference from frequenz-SDK project configuration files. @llucax please let me know if you have any other ideas/thoughts about it

If there are alternatives, I don't see why not using the alternatives. But in a talk with @matthias-wende-frequenz we thought maybe we can even remove the dependency in a near future, we are not really using much from networkx, so I wouldn't spend much time maintaining a fork of the stubs even if we didn't have any alternatives.

I've tried https://github.com/fmagin/networkx-stubs and unfortunately got 16 mypy errors (this is a WIP/experimental stub package)
~/projects/frequenz-sdk-python$ nox -s mypy
nox > Running session mypy
nox > Creating virtual environment (virtualenv) using python in .nox/mypy
nox > python -m pip install -e '.[dev-mypy]'
nox > mypy
src/frequenz/sdk/microgrid/_graph.py:318: error: Missing type parameters for generic type "DiGraph"  [type-arg]
src/frequenz/sdk/microgrid/_graph.py:390: error: Incompatible types in assignment (expression has type "filter[tuple[Any, Any]]", variable has type "OutEdgeView[Any]")  [assignment]
src/frequenz/sdk/microgrid/_graph.py:474: error: Need type annotation for "new_graph"  [var-annotated]
src/frequenz/sdk/microgrid/_graph.py:764: error: Call to untyped function "is_tree" in typed context  [no-untyped-call]
src/frequenz/sdk/microgrid/_graph.py:786: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[Component], TypeGuard[bool]]"  [arg-type]
src/frequenz/sdk/microgrid/_graph.py:786: error: Non-overlapping equality check (left operand type: "DiDegreeView[Any]", right operand type: "Literal[0]")  [comparison-overlap]
src/frequenz/sdk/microgrid/_graph.py:802: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[Component], TypeGuard[bool]]"  [arg-type]
src/frequenz/sdk/microgrid/_graph.py:802: error: Non-overlapping equality check (left operand type: "DiDegreeView[Any]", right operand type: "Literal[0]")  [comparison-overlap]
src/frequenz/sdk/microgrid/_graph.py:812: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[bool], TypeGuard[bool]]"  [arg-type]
src/frequenz/sdk/microgrid/_graph.py:812: error: "bool" has no attribute "category"  [attr-defined]
src/frequenz/sdk/microgrid/_graph.py:822: error: Non-overlapping equality check (left operand type: "DiDegreeView[Any]", right operand type: "Literal[0]")  [comparison-overlap]
src/frequenz/sdk/microgrid/_graph.py:822: error: "bool" has no attribute "component_id"  [attr-defined]
src/frequenz/sdk/microgrid/_graph.py:848: error: Unsupported operand types for < ("int" and "DiDegreeView[Any]")  [operator]
src/frequenz/sdk/microgrid/_graph.py:854: error: Non-overlapping equality check (left operand type: "DiDegreeView[Any]", right operand type: "Literal[0]")  [comparison-overlap]
src/frequenz/sdk/microgrid/_graph.py:942: error: Non-overlapping equality check (left operand type: "DiDegreeView[Any]", right operand type: "Literal[0]")  [comparison-overlap]
src/frequenz/sdk/microgrid/_graph.py:943: error: Unsupported operand types for < ("int" and "DiDegreeView[Any]")  [operator]
Warning: unused section(s) in pyproject.toml: module = ['async_solipsism', 'async_solipsism.*', 'grpc.aio.*', 'sybil', 'sybil.*']
Found 16 errors in 1 file (checked 94 source files)
nox > Command mypy  failed with exit code 1
nox > Session mypy failed.

while using the archived https://github.com/eggplants/networkx-stubs we got only 5 errors

$ nox -s mypy
nox > Running session mypy
nox > Creating virtual environment (virtualenv) using python in .nox/mypy
nox > python -m pip install -e '.[dev-mypy]'
nox > mypy
src/frequenz/sdk/microgrid/_graph.py:414: error: Call to untyped function "predecessors" in typed context  [no-untyped-call]
src/frequenz/sdk/microgrid/_graph.py:440: error: Call to untyped function "successors" in typed context  [no-untyped-call]
src/frequenz/sdk/microgrid/_graph.py:758: error: Call to untyped function "number_of_nodes" in typed context  [no-untyped-call]
src/frequenz/sdk/microgrid/_graph.py:764: error: Call to untyped function "is_tree" in typed context  [no-untyped-call]
src/frequenz/sdk/microgrid/_graph.py:941: error: Call to untyped function "has_node" in typed context  [no-untyped-call]
Warning: unused section(s) in pyproject.toml: module = ['async_solipsism', 'async_solipsism.*', 'grpc.aio.*', 'sybil', 'sybil.*']
Found 5 errors in 1 file (checked 94 source files)
nox > Command mypy  failed with exit code 1
nox > Session mypy failed.

we thought maybe we can even remove the dependency in a near future, we are not really using much from networkx, so I wouldn't spend much time maintaining a fork of the stubs even if we didn't have any alternatives.

Then I would just keep ignoring networkx in mypy configuration as the effort to have the stubs working wouldn't be worth it

Alright, can you just create a PR updating the comment in the pyproject.toml file to point to this issue? Then we can close this issue as wontfix.

yes, I've just pushed the PR #685


Add API to convert variable to constant in Keras saved model to improve inference performance

Click to expand!
Issue Type
Performance
Have you reproduced the bug with TF nightly?
Yes
Source
binary
Tensorflow Version
tf 2.11
Custom Code
No
OS Platform and Distribution
No response
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Keras save_model keeps variable status instead of const. It will block some inference opportunities, such as Conv + Batchnormalization folding.
We expect Keras save format can provide similar APIs like convert_variables_to_constants in TF1 pb format.
With variables replaced by constant in inference, more optimization can be done.
Standalone code to reproduce the issue
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# tf.keras.utils.set_random_seed(34)
np.random.seed(34)
tf.random.set_seed(34)

training_data = np.random.normal(0, 1, size=(32, 5, 5, 3)).astype("float32")
test_data = np.random.normal(0, 1, size=(16, 5, 5, 3)).astype("float32")
label_data = np.random.normal(0, 1, size=(32, 5, 5, 3)).astype("float32")

model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(5, 5, 3)))
model.add(tf.keras.layers.Conv2D(filters=3, kernel_size=3, strides=(1, 1), padding="same", data_format="channels_last"))
model.add(tf.keras.layers.BatchNormalization())

model.summary()

# Compile the model
model.compile(optimizer=keras.optimizers.Adam(1e-3), loss=tf.keras.losses.MeanSquaredError())

# Train the model for 1 epoch from Numpy data
batch_size = 1
print("Fit on NumPy data")
history = model.fit(training_data, label_data, batch_size=batch_size, epochs=3)

print(history.history)

predictions = model.predict(training_data, batch_size=2)
print(predictions)
print(predictions.shape)

Relevant log output
We expect the Batchnormalization op is folded in above code.

@retonym,
Usually Keras SavedModel uses tf.saved_model.save to save the model and all trackable objects attached to the model (e.g. layers and variables). The model config, weights, and optimizer are saved in the SavedModel. Additionally, for every Keras layer attached to the model, the SavedModel stores:

the config and metadata -- e.g. name, dtype, trainable status
traced call and loss functions, which are stored as TensorFlow subgraphs.

The traced functions allow the SavedModel format to save and load custom layers without the original class definition.
Also tf.keras.initializers.Constant is the Initializer that generates tensors with constant values and please take a look at this issue for the reference. Thank you!


feat: display selected location on map

This PR solves Issue 5
Features include:-

ability to view selected location on the map
select any location on the map and get the weather details

My bad😅, must have removed something in there while refactoring...I just pushed the fix now

@Young-Einstein10 Please, fix conflicts

@grace-omotoso please take a look

@Young-Einstein10 Please, fix conflicts

On it now

@grace-omotoso Conflicts have been fixed now


ADFS Integration

Hello,
This is a spin off of another ticket I created: #862
I work at a local university in New Jersey, which we have setup Munki. We use Munki extensively on all of our macs, and we are looking to setup MunkiReport-php. Right now, I have setup a PROD and PPRD system for testing, but we need to find a way to use ADFS OR CAS. Either solution would definitely fix our issue, but we would much prefer the CAS solution. As I said in the other ticket, I have CAS kind of working, but not fully.

If you could share what you have, maybe others can assist.
Sent from my iPhone

On 7 Sep 2017, at 17:29, Daniel Anner<EMAIL_ADDRESS>wrote:
Hello,
This is a spin off of another ticket I created: #862
I work at a local university in New Jersey, which we have setup Munki. We use Munki extensively on all of our macs, and we are looking to setup MunkiReport-php. Right now, I have setup a PROD and PPRD system for testing, but we need to find a way to use ADFS OR CAS. Either solution would definitely fix our issue, but we would much prefer the CAS solution. As I said in the other ticket, I have CAS kind of working, but not fully.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm working on SAML support, maybe you could check out https://github.com/munkireport/munkireport-php/tree/saml

Sure, when I get some time ill take a look. SAML might work for us until we figure out the CAS integration. In the end that would be our prefered way to authenticate. Thank you!

SAML authentication branch has been merged with the wip branch. https://github.com/munkireport/munkireport-php/tree/wip

Any idea when WIP will be released to master?


Release/1.71.1

What
Release 1.72.0

✅ Searching for a specific suspended user - not working correctly
Audit fixes/updates

How to review

Sense check
Tests pass
Nothing's there that shouldn't be

Who can review
!me

n.b original branch name was incorrect, tagged as 1.71.1


German time zone and time offset

Setting time zone and time offset in Wikibase is described at Manual:Timezone. In our case with the German time zone setting those variables does not change the time zone in docker-compose logs -f.

I modified  the timenow variable defined in the insert method in dbconnection.py to call utcnow() instead of now() since we are storing everything based off of UTC.  I'm not sure if this addresses this specific issue or not.

Those logs are coming from Wikibase Docker even before any edits by RaiseWikibase... But it's a good idea to use utcnow() instead of now(). Would you like to make a pull request on that?

now() is replaced by utcnow() in commit


Updated GetImageSetsByID spec to match API behavior

added "Count" and "Data" fields to the response of the GetImageSetsByID endpoint to match the way it works now

Codecov Report

Merging #379 (dbafbe4) into main (f6c4a59) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #379   +/-   ##
=======================================
  Coverage   25.97%   25.97%
=======================================
  Files          31       31
  Lines        2922     2922
=======================================
  Hits          759      759
  Misses       2069     2069
  Partials       94       94

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 f6c4a59...dbafbe4. Read the comment docs.

also updated the filters for GetAllThirdPartyRepo and ListAllImageSets to match the OpenAPI 3 specifications


Autolinking isn't working

Hi!
I've just downloaded a plugin to my sublime text 3 via package control. It seems that autolinking isn't correctly  working, looks like a bug, here's what I have generated:
- [a][a]
	- [b][b]
	- [c][c]
		- [d][d]
		- [e][e]

shouldn't it be like [a](#a)? and my custom settings are:
{
  "default_autolink": true,
  "default_depth": 3,
  "default_autoanchor": true
}

Thank you!.

+1
I got this problem too

Try the following setting:
{
  "default_bracket": "round"
}

Sorry for late reply.
Please try @MrLeeh 's setting, or see "Bracket" feature.


Lights show as 0% brightness, while it should be 1%

Describe the bug
The light card is showing 0% brightness, while the lights are set to 1%
To Reproduce
Steps to reproduce the behavior:
The lights where turned on by a Hue scene.
Expected behavior
Obviously, the correct brightness to be shown.
Screenshots

Individual lights:

Group (hue):

Desktop (please complete the following information):

OS: OSX
Browser: Chrome
Version: 98.0.4758.102 (Officiële build) (x86_64)

and

Browser: Companion app
Version: 2022.2 (2022.345)

Smartphone (please complete the following information):

Device: iPhone 13
OS: iOS 15.3.1
Browser: Companion app
Version: 2022.2 (2022.345)

Additional context
Using v1.1.2

The value of brightness is between 0 and 254. The value is rounded for the display. Math.round(1 / 255) => 0. I will look the HA behavior for this value. 🙂

That's not an issue, it's a rounding problem, brightness is between 0 and 254. You have to use brightness_pct to set brightness using percents.

Hi @bemble, I see thats it a rounding issue, but it does look really strange. Don't you agree?

Not for me: (1/255)*100 = 0.39. Rounding works like:
if the_value is lower than 0.5
   then the_rounded_value is zero
   else the_rounded_value is 1

It's the mathematic rules for rounding. We have to check if HA uses round or ceil for these value, or better, directly use brightness_pct instead of recompute that value.

After different checks, HA seams to use round and not ceil. brightness_pct is not given in the state.
Default light card sets brightness_pct and not brightness, the brightness value is never under 3  which is 1% when rounded.
Question is, @piitaya should we set brightness_pct instead of brightness?

@bemble We already use brightness_pct.
Maybe we can display at least 1% with the light is on ? Light can have brightness: 1 with automation for example.

Light can have brightness: 1 with automation for example.

That's indeed what I do with my bed lights :-)


unsupported operand type(s) for -: 'NoneType' and 'NoneType'

Since midnight on January 1 the entire system is unavailable. Checking logs I’m getting the below
This error originated from a custom integration.
Logger: custom_components.alphaess
Source: helpers/update_coordinator.py:300
Integration: Alpha ESS (documentation, issues)
First occurred: 12:00:46 AM (300 occurrences)
Last logged: 4:53:34 AM

Unexpected error fetching alphaess data: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/coordinator.py", line 56, in _async_update_data
    inverterdata.update({"Solar to Load": _pv - _feedin})
                                          ~~~~^~~~~~~~~
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'

I'm getting the same.... I have a feeling (if you not on the beta) it has something to do with the alpha API, as I'm also having some trouble with the app (and logging in).
Have mentioned it in the slack channel, just waiting for a response
If this persists in a few hours I'll see what workaround may be.

Getting the same, will wait a bit and see what comes from it.
They may have changed a few endpoints, but will have to investigate

This error is also appearing, but by the looks of it has been appearing the last few days
This error originated from a custom integration.

Logger: alphaess.alphaess
Source: custom_components/alphaess/coordinator.py:30
Integration: Alpha ESS (documentation, issues)
First occurred: December 31, 2023 at 9:28:18 AM (1267 occurrences)
Last logged: 6:49:22 AM

Unexpected json_response : {'code': 6026, 'msg': 'System error', 'expMsg': "Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001; nested exception is com.mongodb.MongoQueryException: Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001", 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=(removed)&queryDate=2024-01-01
Unexpected None: returned when calling https://openapi.alphaess.com/api/getOneDateEnergyBySn?sysSn=(removed)&queryDate=2024-01-01
Unexpected json_response : {'code': 6026, 'msg': 'System error', 'expMsg': "Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001; nested exception is com.mongodb.MongoQueryException: Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001", 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getSumDataForCustomer?sysSn=(removed)
Unexpected json_response : {'code': 6053, 'msg': 'The maximum number of requests has been reached', 'expMsg': None, 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=(removed)
Unexpected json_response : {'code': 6026, 'msg': 'System error', 'expMsg': "Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001; nested exception is com.mongodb.MongoQueryException: Query failed with error code 202 with name 'NetworkInterfaceExceededTimeLimit' and error message 'Encountered non-retryable error during query :: caused by :: Couldn't get a connection within the time limit' on server <IP_ADDRESS>:22001", 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getSumDataForCustomer?sysSn=(removed)

Ah shit. The intergration won't initialise at all.
 The intergration won't initialise at all.
Will look into it when I get into my laptop

It will sporadically re-initialise but only load the instantaneous entities but eventually the whole integration will fail and then not initialise again

It will sporadically re-initialise but only load the instantaneous entities but eventually the whole integration will fail and then not initialise again

Got any logs?

Got any logs?

These logs are from the two errors that seem to be generating from just now:
`This error originated from a custom integration.

Logger: custom_components.alphaess
Source: helpers/update_coordinator.py:300
Integration: Alpha ESS (documentation, issues)
First occurred: 4:53:15 AM (6 occurrences)
Last logged: 8:20:03 AM

Unexpected error fetching alphaess data: 'NoneType' object is not iterable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/coordinator.py", line 30, in _async_update_data
    jsondata: json = await self.api.getdata()
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 301, in getdata
    for unit in units:
TypeError: 'NoneType' object is not iterable

And this one
This error originated from a custom integration.

Logger: alphaess.alphaess
Source: custom_components/alphaess/coordinator.py:30
Integration: Alpha ESS (documentation, issues)
First occurred: December 31, 2023 at 9:28:18 AM (1330 occurrences)
Last logged: 8:20:03 AM

Error: when calling https://openapi.alphaess.com/api/getChargeConfigInfo?sysSn=AL7002223050974
Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer]
Error: Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer] when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=AL7002223050974
Error: Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer] when calling https://openapi.alphaess.com/api/getEssList
'NoneType' object is not iterable

These logs are from the two errors that seem to be generating from just now:
`This error originated from a custom integration.

Logger: custom_components.alphaess
Source: helpers/update_coordinator.py:300
Integration: Alpha ESS (documentation, issues)
First occurred: 4:53:15 AM (6 occurrences)
Last logged: 8:20:03 AM

Unexpected error fetching alphaess data: 'NoneType' object is not iterable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/coordinator.py", line 30, in _async_update_data
    jsondata: json = await self.api.getdata()
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 301, in getdata
    for unit in units:
TypeError: 'NoneType' object is not iterable

And this one
This error originated from a custom integration.

Logger: alphaess.alphaess
Source: custom_components/alphaess/coordinator.py:30
Integration: Alpha ESS (documentation, issues)
First occurred: December 31, 2023 at 9:28:18 AM (1330 occurrences)
Last logged: 8:20:03 AM

Error: when calling https://openapi.alphaess.com/api/getChargeConfigInfo?sysSn=AL7002223050974
Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer]
Error: Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer] when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=AL7002223050974
Error: Cannot connect to host openapi.alphaess.com:443 ssl:default [Connection reset by peer] when calling https://openapi.alphaess.com/api/getEssList
'NoneType' object is not iterable

And now these

Logger: homeassistant.config_entries
Source: config_entries.py:402
First occurred: 7:25:56 AM (3 occurrences)
Last logged: 8:28:51 AM

Error setting up entry alpha9e44edeb0ceaaf48 for alphaess
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 402, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/__init__.py", line 48, in async_setup_entry
    await coordinator.async_config_entry_first_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in async_config_entry_first_refresh
    await self._async_refresh(
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/coordinator.py", line 30, in _async_update_data
    jsondata: json = await self.api.getdata()
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 304, in getdata
    unit ['SumData'] = await self.getSumDataForCustomer(serial)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 103, in getSumDataForCustomer
    data = await self.__get_data(resource)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 236, in __get_data
    response = await session.get(
               ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 601, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 965, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 622, in read
    await self._waiter
asyncio.exceptions.CancelledError

And now these

Logger: homeassistant.config_entries
Source: config_entries.py:402
First occurred: 7:25:56 AM (3 occurrences)
Last logged: 8:28:51 AM

Error setting up entry alpha9e44edeb0ceaaf48 for alphaess
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 402, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/__init__.py", line 48, in async_setup_entry
    await coordinator.async_config_entry_first_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in async_config_entry_first_refresh
    await self._async_refresh(
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/alphaess/coordinator.py", line 30, in _async_update_data
    jsondata: json = await self.api.getdata()
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 304, in getdata
    unit ['SumData'] = await self.getSumDataForCustomer(serial)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 103, in getSumDataForCustomer
    data = await self.__get_data(resource)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/alphaess/alphaess.py", line 236, in __get_data
    response = await session.get(
               ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 601, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 965, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 622, in read
    await self._waiter
asyncio.exceptions.CancelledError

I can't tell if it's an issue on our end or theirs?
I'm on my way home now, so will investigate it a bit more

I can't tell if it's an issue on our end or theirs?
I'm on my way home now, so will investigate it a bit more

I've tried to reinstall, but I can't even complete the setup now?

I've tried to reinstall, but I can't even complete the setup now?

Right, using my postman collection i've got, nothing is working. (just returning 500 server error and/or a timeout)
Ive sent a message in the dev slack channel, so just gotta wait for a response. don't remove the integration if you already have it linked, it will just intermittently try to reconnect and restart it.
Will update this again when i get some more meaningful update

Right, using my postman collection i've got, nothing is working. (just returning 500 server error and/or a timeout)
Ive sent a message in the dev slack channel, so just gotta wait for a response. don't remove the integration if you already have it linked, it will just intermittently try to reconnect and restart it.
Will update this again when i get some more meaningful update

This is the response, not much we can do....

This is the response, not much we can do....

My Alpha ESS app is working again, it was failing earlier today. Had hoped the integration would then also be up and running again, but it seems that it is still not getting any data :(

My AlphaESS app is currently working but I can not login to the alpha cloud website so there seems to still be some issues.
Also my AlphaESS App was also working when I checked yesterday and I was able to disable the charge from grid, as it was set to charge before the API changes broke the integration.

Yep, no doubt the app using a internal API to gather data, not the same one we have access to.
Ill work on a better implementation of checking if the API isnt responding, so the whole integration doesn't hang in initializing. but in the meantime this whole ordeal is rather disappointing, and the lack of communication for what makes it even worse

Have you guys tried local control with this? https://github.com/dxoverdy/Alpha2MQTT

Have you guys tried local control with this? https://github.com/dxoverdy/Alpha2MQTT

Not personally but I've had messages from someone who has used this and is very happy with it.  I just didn't want to have to bother with the hardware setup if the web approach was reliable.

I was just able to add the integration back into HA and all the sensors have come back online. Potentially Alpha have now resolved their issue?

I am also back online.

Have you guys tried local control with this? https://github.com/dxoverdy/Alpha2MQTT

I was planning to try implementing a version of this using ESPHOME and an ATOM RS-485 KIT and contacted the author.
Unfortunately I currently don't have access to the modbus interface and can't do anything .
can confirm that my system was able to retrieve data again at 18:21:17 UTC+13
2024-01-02 18:21:17.025 INFO (MainThread) [custom_components.alphaess] Fetching alphaess data recovered

no change regarding the getDisChargeConfigInfo
2024-01-02 18:22:19.837 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6053, 'msg': 'The maximum number of requests has been reached', 'expMsg': None, 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=XXXXXXXXXXXX
2024-01-02 18:23:22.165 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6053, 'msg': 'The maximum number of requests has been reached', 'expMsg': None, 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=XXXXXXXXXXXX
2024-01-02 18:24:25.243 ERROR (MainThread) [alphaess.alphaess] Unexpected json_response : {'code': 6053, 'msg': 'The maximum number of requests has been reached', 'expMsg': None, 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getDisChargeConfigInfo?sysSn=XXXXXXXXXXXX

I'm still getting errors connecting to the open api in postman and home assistant, seems they haven't fixed everything yet.
Have tried resetting developer key as that worked before but still not right
Logger: alphaess.alphaess
Source: custom_components/alphaess/config_flow.py:28
Integration: Alpha ESS ([documentation](https://github.com/CharlesGillanders/homeassistant-alphaESS), [issues](https://github.com/CharlesGillanders/homeassistant-alphaESS/issues))
First occurred: 10:47:46 (2 occurrences)
Last logged: 10:47:46

Unexpected json_response : {'code': 6009, 'msg': 'The request timestamp is not within the validity period'} when calling https://openapi.alphaess.com/api/getEssList
'NoneType' object is not iterable

Alpha ess announced yesterday that the limit of 1x every 24 hours will be raised. However, you have expressed yourself somewhat confusingly as to how often you can now set the value for charging / discharging.
https://github.com/alphaess-developer/alphacloud_open_api/issues/54

I'm getting a 404 to https://openapi.alphaess.com/ web page with a browser currently and the api shows the same.
[Thu, 04 Jan 2024 14:05:42] ERROR [alphaess.py.__post_data:290] 404, message='', url=URL('https://openapi.alphaess.com/api/updateChargeConfigInfo')
The Android app and the alpha cloud website are both fine though. Seems like the whole API is down again.

{'code': 6009, 'msg': 'The request timestamp is not within the validity period'} when calling https://openapi.alphaess.com/api/getEssList

did you get any results fixing this

{'code': 6009, 'msg': 'The request timestamp is not within the validity period'} when calling https://openapi.alphaess.com/api/getEssList

did you get any results fixing this

That's not something I can likely fix, it's probably either a problem with Alpha ESS API service or your home assistant device is not synchronised properly to an accurate time source.
Do you get the same error trying to access Alpha ESS via postman or similar?

hi team. still having problems with trying to get the Alpha ESS HAC working.  THe 6009 error resolved itself but now im getting the below. Im only a basic level so struggling through this. any help would be greatly appreciated
Logger: alphaess.alphaess
Source: custom_components/alphaess/config_flow.py:28
integration: Alpha ESS (documentation, issues)
First occurred: 13:29:20 (2 occurrences)
Last logged: 13:29:20
Unexpected json_response : {'code': 6026, 'msg': 'network is busy', 'expMsg': 'For input string: "H0"', 'data': None, 'extra': None} when calling https://openapi.alphaess.com/api/getEssList
'NoneType' object is not iterable


Are all the DLLs etc. which come with the Windows version required?

Coming from node-webkit, I'm guessing the D3D, xinput, ffmpeg and lifEGL ones are optional if you're not using video/WEBGL/GPU-acceleration and pads (xinput?)??
I'm guessing the version and licence files are required only for licensing rather than functionality (e.g. don't have to be present for test builds)???
chromiumcontent and pak files are 'nw.pak' equivalents and required I guess?
I'm guessing the msvc and vccor ones are also necessary?
Also - and a bit tangentially - is there a default appname you can use so that just running atom.exe will start your app without faffing about with a cmd/bat file (if not - that would be a great idea perhaps?)
TiA!

I'd sort-of add to that - are all the contents of locales required too?
I have an application where shipping the fewest files possible is desirable but atom-shell offers benefits, particularly in memory usage, over node-webkit (which is much easier to package at this point?)

By way of trying to guess at an answer (a definitive one would be useful tho!) - I've removed the contents of "locales" and the following files with no obvious ill-effects
WebGL/GPU acceleration related?
d3dcompiler_46.dll
libEGL.dll
libGLESv2.dll
This file is for keyboard/controller mappings!?  Not sure why it's in here??
xinput1_3.dll
This one's for HTML5 video which I don't use so...
ffmpegsumo.dll
There are for licensing I guess?
LICENSE
version
I'm assuming the rest are required as something odd happened when they were removed.
Also - it seems you can replace the content of "default_app" with your app and just run atom.exe - at least on Windows - that seems a decent solution to avoiding the faff around of bat/bash scripts??

You definitely don't need to have the scripts, I think they're just for development

Whilst scripts to do you mean - the code in resources I'd assumed was required, is it just source-code for debugging or???

faff around of bat/bash scripts??

^^^

Unless you install your app in "default_app" (I tried this and it works but I don't know if default_app.asar would??) you have to run the atom executable with a parameter which is the app's name (directory or asar?)
End-users don't type commands - they click icons - so that means providing a cmd/bat/sh file which runs the app for them (which is - if we're honest - a bit of a faff about!)
Ideally there's either a default or a config file which tells it what to run (node-webkit (mis)users a package.json) or something of that ilk?

Only LICENSE and version are safe to remove, all other files may be needed by some features.

Unless you install your app in "default_app" (I tried this and it works but I don't know if default_app.asar would??) you have to run the atom executable with a parameter which is the app's name (directory or asar?)

See https://github.com/atom/atom-shell/blob/master/docs/tutorial/application-distribution.md.


Intermittent backend request failures on large workspace on demo.lynxkite.com

Reported by Peter. When placing boxes and quickly moving them, he often saw errors for setAndGetWorkspace and we saw one for scalarValue now. Let's try to figure out why!

I haven't seen this lately. Maybe upgrading Play fixed it.


[BUG][PICO][3.x] export apk to pico neo3 will be not render! it is black screen

and the Is it true that version 2.x does not allow you to control the game with a joystick?

This sounds like a duplicate of https://github.com/GodotVR/godot_openxr_vendors/issues/201

and the Is it true that version 2.x does not allow you to control the game with a joystick?

No, this plugin shouldn't have any effect on input. Most of OpenXR support is built in to Godot itself - this plugin only provides the Android loader and some vendor extensions to OpenXR.
If the 2.x version of this plugin is working for you on the Pico Neo 3, please let us know in a comment on the other issue! None of the maintainers have that headset, so we have to rely on user testing to let us know what works and what doesn't.


docs/extensibility -- fix typo

@r3m0t : Thanks for your contribution! The author, @gregvanl, has been notified to review your proposed change.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/extensibility/inside-the-editor.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

#sign-off


[FancyZones] Rename ZoneWindowDrawing -> ZonesDrawing

Summary of the Pull Request
What is this about:
A #14274 follow-up.
What is include in the PR:
Renaming ZoneWindowDrawing -> ZonesDrawing.

OK. I renamed everything according to the new name, ZonesOverlay.
@stefansjfw (following this comment) what do you think?

Done.

Very nice! Thanks for contribution!


Roll Flutter Engine from ecaf9442034d to ddb3f1ceb28f (3 revisions)

https://github.com/flutter/engine/compare/ecaf9442034d...ddb3f1ceb28f
2023-11-15<EMAIL_ADDRESS>Roll Skia from d0e4a53f56f5 to 1abce6b0a763 (3 revisions) (flutter/engine#48067)
2023-11-15<EMAIL_ADDRESS>Roll Dart SDK from 849fd6ccc339 to 002e66832465 (1 revision) (flutter/engine#48065)
2023-11-15<EMAIL_ADDRESS>Roll Dart SDK from 65819963fb17 to 849fd6ccc339 (1 revision) (flutter/engine#48060)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jonahwilliams@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Closing to trigger a roll to the Dart SDK revert.

Commit queue failed; closing this roll.


tauon: add libappindicator for tray icon

Description of changes
Add libappindicator for tray icon. It's used at https://github.com/Taiko2k/TauonMusicBox/blob/f2d683228eeb420171cdde2a7ec0dfb50b376997/t_modules/t_dbus.py#L110

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Libappindicator is also listed in the upstream wiki: https://github.com/Taiko2k/TauonMusicBox/wiki/Building


Ionic v7.0.0-beta.2 onRefreshToken gives new notifications instead of new tokens

onRefreshToken is activated with the same events as onNotification. onRefreshToken does not send refresh token events. This is for both iOS and Android.

You are correct, thank you very much. Fix released 7.0.0-beta.3.


React Native upgrade

Hi, I've upgraded your app to React Native 0.14+
I think modals / parallax isn't visually working as it should be but that's the smallest thing...
Refs #17

@romansklenar thanks for creating this PR :star2: . There are multiple issues with it but is good as a starting point. I'll merge it and start working on a different issue.

:+1: let me know if I can help


CRT's sscanf() implementation always included and hides system library

From os_stub/cryptlib_openssl/sys_call/crt_wrapper_host.cos_stub/cryptlib_openssl/sys_call/crt_wrapper_host.c:
/* Read formatted data from a string */
int sscanf(const char *buffer, const char *format, ...)
{

    /* Null sscanf() function implementation to satisfy the linker, since
     * no direct functionality logic dependency in present cases.*/

    return 0;
}

This file is always included, even for platforms where the C run-time library is fully available, causing applications that use sscanf() to fail.

This was inherited from edk2 : https://github.com/tianocore/edk2/blob/f36e1ec1f0a5fd3be84913e09181d7813444b620/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c#L178-L191
@jyao1 what do you do when you want to use sscanf?

It is cryptlib_openssl/sys_call/crt_wrapper_host.c. So it may be used by openssl in no-std env.

It is cryptlib_openssl/sys_call/crt_wrapper_host.c. So it may be used by openssl in no-std env.

Folks in a standard environment may want to use sscanf and libcryptlib_openssl should not inhibit that.


Fix config flow

cc @bjw-s
Fix config flow after upstream lib was migrated to aiohttp
fixes #24

Oh snap, completely missed the config flow as I already had it configured 😅 LGTM!


Improved development setup

Change notes

Improved development setup procedure and updated README to be even more meaningful. From now on there is no need to alter application-dev.yml by changing datasource.url. The property can be set from gradle or docker command line. In this way there is no risk that one can accidentally commit altered application-dev.yml.
Updated gradle wrapper to the latest version (which is 2.11 at the moment of writing this).
Updated .gitignore to prevent tracking build artifacts and IDE specific files. The file was generated using https://www.gitignore.io.

All looks good, Readme updates look even better, but I have some doubts about this sophisticated .gitignore file. 90% of those rules will never be needed :)

I'll try to explain my motivation behind that. It's a standard .gitignore I use across every Git repo.The file was generated using https://www.gitignore.io/api/intellij,eclipse,java,gradle,emacs,windows,osx.
It includes (or rather excludes from version tracking):

intellij and eclipse IDE project files  as different devs can use different IDEs
windows and osx specific files as different devs can use different OSes
gradle - this one is obvious
java - although most of the files from java are covered by gradle (*.jar, *.war, etc.) it also excludes hs_err_pid* (VM crash logs) that are caused sometimes during long debug sessions under Eclpse
emacs - this one is my favourite because it's related to my everyday multi-purpose editor (I'm using it to grep through logs but also for editing XML, properties, and gradle related files. In other words I'm using it to edit files that my IDE cannot handle or does it poorly).

I can agree with you that, from a single dev perspective, about 10% of the entries may have no effect but if we take into consideration and sum up that several devs using distinct IDEs on distinct OSes may contribute to the project then the number increases to almost 90%. Remaining 10% is mine because IMHO nobody uses EMACS and the reason behind that is nobody knows how awesome it is :)
If, after my explanation, you still have doubts I can agree to remove windows and osx filters to meet your expectations.

Ok, after rethinking this today again I think that using some standarized gitignore file which is auto-generated is better than crafting it and tuning it every time when someone with different setup wants to join the project :)


Higher wpm limit?

I'm a fast reader, and I took the wpm test linked on the settings page. It came out as 738, and I tried copying that into the settings, but when I reloaded the page to check it'd saved (because I didn't see a save button), it had reset to 400, the end of the slider. I was wondering if it'd be possible to increase the wpm limit? I know it's an edge case, but it'd still be nice.

Fixed in v0.5.
See https://github.com/jsmnbom/ao3-enhancements/releases/tag/v0.5.4.


Make the search bar for filters case insensitive

Is your feature request related to a problem? Please describe.
It would be convenient if the search bar was case-insensitive on the Explore page when setting up filters.
On the recording from the screen, I gave examples proving case sensitivity.

Describe the solution you'd like
The output of the results for the input "Entity" and "entity" should be the same. For all types of filters on the Explore page.
Thus, users will be able to search for the necessary entries for the filter without fear of making a mistake in the register.

closing in favor of https://github.com/open-metadata/OpenMetadata/issues/13922


Unresolved dependency in spray when building locally

I've been trying to build the community build locally for some time with
$ ./community-2.11.x.sh -l

as I was advised in #64. I could never get it working (with various revisions of the master branch), due to an unresolved dependency during the extraction of spray. All other projects extract fine, but the build is still stuck because extraction as a whole failed.
I get this log for the spray part:
[spray] --== Extracting dependencies for spray ==--
[spray] Fetching https://github.com/spray/spray.git
[spray] into /localhome/doeraene/projects/community-builds/target-0.9.1/clones/b21fb93a57f49c1ce50294e594fdf7ccc44cf04e
[spray] Took: 00h 00m 02.0s
[spray] Cloning /localhome/doeraene/projects/community-builds/target-0.9.1/clones/b21fb93a57f49c1ce50294e594fdf7ccc44cf04e
[spray] to /localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693
[spray] Took: 00h 00m 00.0s
[spray] Fetching /localhome/doeraene/projects/community-builds/target-0.9.1/clones/b21fb93a57f49c1ce50294e594fdf7ccc44cf04e
[spray] into /localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693
[spray] Took: 00h 00m 00.2s
[spray] Extracting dependencies for: spray
[spray] Using Scala 2.11.2 during extraction.
[spray] Using sbt version: 0.13.5
[spray] [info] Loading project definition from /localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693/project/project
[spray] [info] Updating {file:/localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693/project/project/}b25cc2edc52bfb154641e6458db0d6982db45693-build-build...
[spray] [info] Done updating.
[spray] [info] Loading project definition from /localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693/project
[spray] [info] Resetting onLoad... in one scope
[spray] [info] Loading project definition from /localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693/project
[spray] [info] Dependencies among subprojects:
[spray] [info] default-sbt-project ->
[spray] [info] Aggregates of subprojects:
[spray] [info] default-sbt-project ->
[spray] [info] Building graph...
[spray] [info] sorting...
[spray] [info] These subprojects will be built: default-sbt-project
[spray] [info] Updating {file:/localhome/doeraene/projects/community-builds/target-0.9.1/extraction/0d4f8866a9919fb3fe53ee2783b05700b261171c/projects/b25cc2edc52bfb154641e6458db0d6982db45693/project/}b25cc2edc52bfb154641e6458db0d6982db45693-build...
[spray] [warn]  module not found: com.decodified#scala-ssh_2.10;0.6.4
[spray] [warn] ==== local: tried
[spray] [warn]   /home/doeraene/.ivy2/local/com.decodified/scala-ssh_2.10/0.6.4/ivys/ivy.xml
[spray] [warn] ==== public: tried
[spray] [warn]   http://repo1.maven.org/maven2/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== sonatype-snapshots: tried
[spray] [warn]   https://oss.sonatype.org/content/repositories/snapshots/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== sonatype-releases: tried
[spray] [warn]   https://oss.sonatype.org/content/repositories/releases/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== java-annoying-cla-shtuff: tried
[spray] [warn]   http://download.java.net/maven/2/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== typesafe-releases: tried
[spray] [warn]   http://typesafe.artifactoryonline.com/typesafe/releases/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== typesafe-ivy-releases: tried
[spray] [warn]   http://typesafe.artifactoryonline.com/typesafe/ivy-releases/com.decodified/scala-ssh_2.10/0.6.4/ivys/ivy.xml
[spray] [warn] ==== dbuild-snapshots: tried
[spray] [warn]   http://typesafe.artifactoryonline.com/typesafe/temp-distributed-build-snapshots/com.decodified/scala-ssh_2.10/0.6.4/ivys/ivy.xml
[spray] [warn] ==== sbt-plugin-releases: tried
[spray] [warn]   http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/com.decodified/scala-ssh_2.10/0.6.4/ivys/ivy.xml
[spray] [warn] ==== jgit-repo: tried
[spray] [warn]   http://download.eclipse.org/jgit/maven/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn] ==== scala-fresh-2.10.x: tried
[spray] [warn]   http://typesafe.artifactoryonline.com/typesafe/scala-fresh-2.10.x/com/decodified/scala-ssh_2.10/0.6.4/scala-ssh_2.10-0.6.4.pom
[spray] [warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[spray] [warn]  ::          UNRESOLVED DEPENDENCIES         ::
[spray] [warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[spray] [warn]  :: com.decodified#scala-ssh_2.10;0.6.4: not found
[spray] [warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[spray] sbt.ResolveException: unresolved dependency: com.decodified#scala-ssh_2.10;0.6.4: not found
[spray]         at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:217)
[spray]         at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:126)
[spray]         at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:125)
[spray]         at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115)
[spray]         at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115)
[spray]         at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:103)
[spray]         at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:48)
[spray]         at sbt.IvySbt$$anon$3.call(Ivy.scala:57)
[spray]         at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:98)
[spray]         at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:81)
[spray]         at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:102)
[spray]         at xsbt.boot.Using$.withResource(Using.scala:11)
[spray]         at xsbt.boot.Using$.apply(Using.scala:10)
[spray]         at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:62)
[spray]         at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:52)
[spray]         at xsbt.boot.Locks$.apply0(Locks.scala:31)
[spray]         at xsbt.boot.Locks$.apply(Locks.scala:28)
[spray]         at sbt.IvySbt.withDefaultLogger(Ivy.scala:57)
[spray]         at sbt.IvySbt.withIvy(Ivy.scala:98)
[spray]         at sbt.IvySbt.withIvy(Ivy.scala:94)
[spray]         at sbt.IvySbt$Module.withModule(Ivy.scala:115)
[spray]         at sbt.IvyActions$.update(IvyActions.scala:125)
[spray]         at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1223)
[spray]         at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1221)
[spray]         at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1244)
[spray]         at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1242)
[spray]         at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)
[spray]         at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1246)
[spray]         at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1241)
[spray]         at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)
[spray]         at sbt.Classpaths$.cachedUpdate(Defaults.scala:1249)
[spray]         at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1214)
[spray]         at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1192)
[spray]         at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
[spray]         at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
[spray]         at sbt.std.Transform$$anon$4.work(System.scala:64)
[spray]         at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
[spray]         at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
[spray]         at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
[spray]         at sbt.Execute.work(Execute.scala:244)
[spray]         at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
[spray]         at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
[spray]         at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
[spray]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
[spray]         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
[spray]         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
[spray]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
[spray]         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
[spray]         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
[spray]         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
[spray]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
[spray]         at java.lang.Thread.run(Thread.java:662)
[spray] [error] (*:update) sbt.ResolveException: unresolved dependency: com.decodified#scala-ssh_2.10;0.6.4: not found
[spray] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
[spray:error] java.lang.RuntimeException:
[spray:error]   at scala.sys.package$.error(package.scala:27)
[spray:error]   at distributed.support.sbt.SbtRunner.distributed$support$sbt$SbtRunner$$processCommand(SbtRunner.scala:93)
[spray:error]   at distributed.support.sbt.SbtRunner$$anonfun$run$1$$anonfun$apply$2$$anonfun$apply$3.apply(SbtRunner.scala:74)
[spray:error]   at distributed.support.sbt.SbtRunner$$anonfun$run$1$$anonfun$apply$2$$anonfun$apply$3.apply(SbtRunner.scala:74)
[spray:error]   at distributed.support.sbt.SbtRunner$$anonfun$run$1.apply(SbtRunner.scala:74)
[spray:error]   at distributed.support.sbt.SbtRunner$$anonfun$run$1.apply(SbtRunner.scala:64)
[spray:error]   at sbt.IO$.withTemporaryFile(IO.scala:311)
[spray:error]   at distributed.support.sbt.SbtRunner.run(SbtRunner.scala:64)
[spray:error]   at distributed.support.sbt.SbtExtractor$.extractMetaData(DependencyExtractor.scala:99)
[spray:error]   at distributed.support.sbt.SbtBuildSystem.extractDependencies(SbtBuildSystem.scala:58)
[spray:error]   at distributed.support.sbt.SbtBuildSystem.extractDependencies(SbtBuildSystem.scala:18)
[spray] --== End Extracting dependencies for spray ==--

Do I have to something special to solve this?

closing on the assumption that lots has changed since the initial report. we can reopen if it rears its head again.
running the full community build locally is generally not recommended since it takes forever because you won't benefit from the caching the real Jenkins jobs on scala-ci have. if you have a branch with changes to the community build config you want to test, let us know, we can run them on Jenkins for you.


feat: Flatten icons

Related to #1687.
What is the purpose of this pull request?

[ ] New Icon
[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other:

Description
This PR modify the package build scripts to flatten the exported SVG icons.
While source icons are made up of several shapes (<line>, <rect>, <circle>, etc), all the shapes now get converted to <path> and merged together in a single <path> element during the build.
As mentioned in #1687, this has two benefits:

Overlaps are no longer visible when using semi-transparent colors.
The size of the build output is decreased by ~13%.

Implementation
We use the Convert Shape to Path and Merge Paths SVGO plugins to convert shapes to paths and merge the paths together. Currently SVGO cannot optimize rectangles with rounded corners (svg/svgo#1963), so this PR includes a custom plugin to do that.
Impact on icon size
In most cases, converting shapes to <path> reduce the icon's size, especially for icons made up of many shapes (e.g. sliders-horizontal.svg). In some cases, we observe a small increase of the size (e.g. layout-grid.svg), because circles and rounded rectangles are more compact than paths. Overall the output size is reduced by ~13%.
Impact on the build time
One would assume that processing each icon for every build target would be bad for the build time. However, I haven't observed any significant increase of the average build time on my machine (it actually went slightly down).
Impact on icon appearance
Icons should appear the same. However there are two noticeable differences.

When using a semi-transparent stroke color, the icon now has a consistent appearance instead of showing overlaps.

Edges are a little bit smoother in places where several shapes converge. This isn't visible to the naked eye.

Before Submitting

[x] I've read the Contribution Guidelines.
[x] I've checked if there was an existing PR that solves the same issue.

This is pretty breaking changish.

Any chance this one will be merged/published before 1.0?

@wellguimaraes: Not sure if we should do this before v1.0, as @jguddas has stated this could potentially break a lot of apps that currently rely on the unflattened paths (e.g. to animate or fill only certain parts of icons). 🤔

Don't close.

Idea
Merge all the paths that are overlapping into a single element, keep everything else that is not connected separate.
That way we solve the transparency issue, but the user can still color/fill different sections of an icon.

We also have to be careful that we don't break people by changing how we fill icons.

If we were to keep the plus and circle separate and sort the segments by bounding box big -> small it would continue to work.

While detecting and merging overlapping shapes would be a nice compromise, I have two objections.
How doable is it?
Detecting overlapping shapes is non trivial. SVGO won't do it for us, so that would require quite a bit of work. If someone is motived to work on the feature, that's great. But I have neither the time, the inclination, nor the competences to do it myself.
Does it serve a real purpose?
Yes, exposing the SVG icon as a list of distinct shapes may allow users do implement custom behaviors such as applying different colors. But are there people currently doing that? I'd be interested to hear from them.
IHMO, trying to treat certain parts of icons differently is already taking the risk to experience a breaking change anytime you update the package, regardless of the build process.
In order to apply specific colors to specific shapes, you need to know the order of the shapes in the SVG, which is not guaranteed to remain the same. In fact, of the 22 icons that have been modified in the past three weeks:

9 have reordered shapes (calendar-minus, calendar-search, eye-off, image-plus, map-pin-off, replace, replace-all, square-check-big, view)
4 have merged paths together or moved lines/arcs from one path to another (cloud-download, dog, ribbon, skull).

Anytime an icon is updated, it may break any assumption one may have about it other than "it should still look mostly the same (assuming there wasn't an issue in the original icon that we had to fix)". So, as long as updating the build doesn't significantly alter an icon's appearance, I don't think it is more of a breaking change than any other update. The scope may be larger but the impact on individual icons is the same.

How doable is it?

I can whip something up for that, we already have custom sorting and optimization logic.

Does it serve a real purpose?

I need some idiomatic way to sort things for my custom optimization code to work properly i.e. we already have and need sorting.
The current code is less than perfect (see #1938).

Anytime an icon is updated, it may break…

I really want to actually support this.
My proposal would be to merge touching paths and sort from smallest to biggest bounding box.

I think I was a little bit too pessimistic and spoke too fast.

I can whip something up for that, we already have custom sorting and optimization logic.

I had a quick look at paper and path-intersection and it seems like it shouldn't be too complicated to use either package to detect path intersections. I initially thought we'd have to convert stroke paths to shapes. However, if we can assume that two paths either touch/intersect or are far enough to not overlap regardless of the stroke width (as per the design principles), we can simply treat paths as width-less.

My proposal would be to merge touching paths and sort from smallest to biggest bounding box.

I probably need to reconsider how the optimizations are run, then.
My idea was to run the optimizations during the build process, because it removes the need to update individual icon files, and icon designer would remain free to organize their shapes however they want.
However, I understand that you want to enforce a canonical order in the pre-commit optimizations, in order to keep the icon structure stable, prevent filling larger shapes from hiding smaller ones, and allow users to make some assumptions about the icons.
Merging shapes after they've been sorted may go against some of those goals. Maybe I should keep the optimizations out of the build process and put the optimization pass in the pre-commit optimizations.
Suggestion
Revert all the changes (in particular the change to run optimizations during the build process) and add the optimization pass that you suggested: For each shape, test whether it intersects any other shape. If it does, convert both to <path> (if needed) and merge them together. If it doesn't, keep the shape as it is (no conversion to <path>).
Cons:

The icon files have to be updated.
The icon files get harder to read for humans.
More constraints for the icon designer.

Pros:

Solves #2136 while modifying icons as little as possible.
Easier to implement specific treatment for specific cases if needed.
Canonical order is preserved.
No surprise. What you see is what you get.

Running into this issue now, why was this closed?