Add CMake build files

Original pull request by Markus Rickert (Bitbucket: rickertm, GitHub: rickertm).

This patch adds CMake support for simage, including a config file with simage::simage target and a CPack definition for packages.

Original comment by Roy Walmsley (Bitbucket: walroy, GitHub: walroy).

Hi Markus,
Thanks for this great contribution. I'll review it and get back to you.
Roy

Original comment by Volker Enderlein (Bitbucket: VolkerEnderlein, GitHub: VolkerEnderlein).

Hi Markus,
in the CPack part of the CMakeLists.txt file you use erroneously the SOQT_(MAJOR|MINOR|MICRO)VERSION variables. These should be SIMAGE(MAJOR|MINOR|MICRO)_VERSION.
Otherwise the CMake file works like a charm :)
Cheers Volker

Original comment by Markus Rickert (Bitbucket: rickertm, GitHub: rickertm).

Hi Volker,
thank you for pointing out this issue, should be fixed now. I'm glad to hear the build script works for you.
Markus

Original comment by Mario Koerner (Bitbucket: Renreok, GitHub: Renreok).

Hi Markus,
thank you very much for providing CMake Support for a lot of Coin3D libraries.
I'm currently trying to use your pull requests to compile the libraries with Visual Studio 2013. However, I have problems with the find_package, find_path and find_library directives you are using. E.g. for the simage library, CMake does not find the include file and library for gdiplus:
#!c++
Could NOT find GdiPlus (missing:  GDIPLUS_INCLUDE_DIRS GDIPLUS_LIBRARIES)

I can make it work by using variables like CMAKE_INCLUDE_PATH, but I would expect that it works out-of-the-box on a Standard Windows setup.
Am I missing something in my local setup?
Mario

Original comment by Markus Rickert (Bitbucket: rickertm, GitHub: rickertm).

Hi Mario,
I typically build from a Visual Studio developer command prompt on Windows which seems to set some environment variables so CMake can find the Windows SDKs and Kits.
I added the registry keys for the SDKs and Kits to the FIND_PATH queries for GdiPlus and Vfw which seems to fix this for me outside of a developer command prompt.
Please let me know if this also fixes your issue.
Markus

Original comment by Mario Koerner (Bitbucket: Renreok, GitHub: Renreok).

Hi Markus,
thank you very much for this hint.
I should have known that running cmake from the VS command shell might solve the problem.
Of course, cmake finds gdiplus when I do so, probably because the INCLUDE and LIB variables are set and point to the SDK directories.
I also tried your latest fix, and cmake now also finds the library outside of the VS command prompt.
When I ran cmake for the first time, I had another problem with the Qt configuration. I have Qt 5.7.1 installed at my system, but cmake outputs the following message:
#!c++
Found unsuitable Qt version "5.7.1" from C:/Qt/5.7.1/5.7/msvc2013_64/bin/qmake.exe
Qt QTCORE library not found.

The reason is, that cmake comes with a find module for Qt4, but not for Qt5. That's why the find module for Qt4 prints this confusing message. Maybe you have an idea, how this situation can be detected easily to help people like me with an appropriate error message.
Setting CMAKE_PREFIX_PATH solved the problem for me.
In general your fixes helped me very much to compile simage, coin and SoQt with VS2013 and to link my project with Qt5. Thank you very much for providing these pull requests.
@walroy, to me it really makes sense to merge Markus' pull requests, because they are essential to get Coin running with newer build tools and library versions. What do you think?
Mario

Original comment by Roy Walmsley (Bitbucket: walroy, GitHub: walroy).

I've been following your recent discussions. Since you now seem content I will merge. I'll let you know when complete.

Original comment by Roy Walmsley (Bitbucket: walroy, GitHub: walroy).

OK. It's merged.

Original comment by Markus Rickert (Bitbucket: rickertm, GitHub: rickertm).

Hi Mario,
I'm glad to hear the GdiPlus issue is fixed for you.
Regarding Qt: Setting CMAKE_PREFIX_PATH is the recommended way according to the Qt5 documentation as they now include config files for CMake rather than the find module of Qt4. By default with the USE_QT5 option set to ON it will first look for those before falling back to Qt4 find modules. So far I haven't found a better way to handle both Qt4 and Qt5 support at the same time.
@walroy: thank you for merging.
Markus


VS Code extension gets confused by --allow-eval

If I put--allow-eval in a .ghcid file and run the VS Code extension (with the "Run Ghcid" command), it will report all of the evaluated output as problems in the file "/".

It's not a major issue, I could just run ghcid --allow-eval in a normal terminal inside vs-code instead.

I don't really use the plugin much anymore (I've mostly moved on to Ghcide - https://github.com/digital-asset/ghcide), and I've never used --allow-eval. Happy to take a patch - it's probably a matter of adjusting a regex in the Javascript code - but unlikely to tackle it myself.


submit AD and Privacy leak domains

AD sites:
cdn.moji.com
show-g.mediav.com
show.g.mediav.com
360.mediav.com
material.mediav.com
cm.mediav.com
max-l.mediav.com
s1.shucaixiaoshuo.com
Privacy leak sites:
android.bugly.qq.com
mxvp-feature-toggle-prod-1.zenmxapps.com
mxase.clmbtech.com
settings.crashlytics.com
androidapi.mxplay.com
androidc.mxplay.com
evt.mxplay.com
mxvp-feature-toggle-prod-1.zenmxapps.com

Hi @Justsoos  – thanks for this input.  And sorry for the delay replying.
We're mostly an aggregator of hosts files from active and reputable curators of hosts files, and we package these amalgamated hosts files in various ways.
Please submit this request to one of our curated sources.
Closing.


Any plan to add this library on CDN?

I like this library, but it would be great if there is a CDN link provided. :)

Unpkg is a popular CDN for everything on npm. Since this project is on npm, its also on unpkg<EMAIL_ADDRESS>

JS Deliver is another example of a CDN that stores everything available on npm.
<EMAIL_ADDRESS>


runtime: continuing TestSegv/SegvInCgo failures with "unknown pc"

--- FAIL: TestSegv (0.00s)
    --- FAIL: TestSegv/SegvInCgo (0.15s)
        testenv.go:361: [/var/gobuilder/buildlet/tmp/go-build403866584/testprogcgo.exe SegvInCgo] exit status: exit status 2
        crash_cgo_test.go:596: SIGSEGV: segmentation violation
            PC=0x6e267e74 m=2 sigcode=0

            goroutine 0 [idle]:
            runtime: unknown pc 0x6e267e74
            stack: frame={sp:0x5d9cddd8, fp:0x0} stack=[0x5d5ce388,0x5d9cdf88)
            0x5d9cdd58:  0x00122318  0x5d9cddf4  0x5d9cdd84  0x5d9cdd70
            0x5d9cdd68:  0x6e2eb950  0x6e2e8380  0x6dec0000  0x00000000
            0x5d9cdd78:  0x5d9cdda4  0x5d9cdd88  0x6e2eba88  0x6e2e90a8
            0x5d9cdd88:  0x000f4240 <net.(*resolverConfig).tryUpdate+0x00000264>  0x5d9cddec  0x01406f40  0x6df6a000
            0x5d9cdd98:  0x5d9cdde4  0x5d9cdda8  0x001222a0  0x6e2eba20
            0x5d9cdda8:  0x5d9cdddc  0x5d9cddb8  0x6e1b3088  0x6e1f7b30
            0x5d9cddb8:  0x00000001  0x5d9cddf4  0x5d9cde10  0x6df6a000
            0x5d9cddc8:  0x0021da48  0x0042e240  0x000000f0  0x004025a0
            0x5d9cddd8: <0x5d9cde3c  0x5d9cdde8  0x00122470  0x6e2e9838
            0x5d9cdde8:  0x000000f0  0x6dec0000  0x00400000  0x22220002
            0x5d9cddf8:  0x00000000  0x00000000  0xffffffff  0xffffffff
            0x5d9cde08:  0xffffffff  0xffffffff  0x00000000  0x00000000
            0x5d9cde18:  0x00000000  0x00000000  0x00000000  0x5d9e621e
            0x5d9cde28:  0x00000040  0x00000000  0x0021dbd8  0x5d9cde40
            0x5d9cde38:  0x0007b888 <runtime.asmcgocall+0x000000ac>  0x001223e8  0x00245974  0x00000000
            0x5d9cde48:  0x00000001  0x00423901  0x5d9cde5c  0x00000000
            runtime: unknown pc 0x6e267e74
            stack: frame={sp:0x5d9cddd8, fp:0x0} stack=[0x5d5ce388,0x5d9cdf88)
            0x5d9cdd58:  0x00122318  0x5d9cddf4  0x5d9cdd84  0x5d9cdd70
            0x5d9cdd68:  0x6e2eb950  0x6e2e8380  0x6dec0000  0x00000000
            0x5d9cdd78:  0x5d9cdda4  0x5d9cdd88  0x6e2eba88  0x6e2e90a8
            0x5d9cdd88:  0x000f4240 <net.(*resolverConfig).tryUpdate+0x00000264>  0x5d9cddec  0x01406f40  0x6df6a000
            0x5d9cdd98:  0x5d9cdde4  0x5d9cdda8  0x001222a0  0x6e2eba20
            0x5d9cdda8:  0x5d9cdddc  0x5d9cddb8  0x6e1b3088  0x6e1f7b30
            0x5d9cddb8:  0x00000001  0x5d9cddf4  0x5d9cde10  0x6df6a000
            0x5d9cddc8:  0x0021da48  0x0042e240  0x000000f0  0x004025a0
            0x5d9cddd8: <0x5d9cde3c  0x5d9cdde8  0x00122470  0x6e2e9838
            0x5d9cdde8:  0x000000f0  0x6dec0000  0x00400000  0x22220002
            0x5d9cddf8:  0x00000000  0x00000000  0xffffffff  0xffffffff
            0x5d9cde08:  0xffffffff  0xffffffff  0x00000000  0x00000000
            0x5d9cde18:  0x00000000  0x00000000  0x00000000  0x5d9e621e
            0x5d9cde28:  0x00000040  0x00000000  0x0021dbd8  0x5d9cde40
            0x5d9cde38:  0x0007b888 <runtime.asmcgocall+0x000000ac>  0x001223e8  0x00245974  0x00000000
            0x5d9cde48:  0x00000001  0x00423901  0x5d9cde5c  0x00000000

            goroutine 1 [sleep]:
            time.Sleep(0x3b9aca00)
            	/var/gobuilder/buildlet/go/src/runtime/time.go:194 +0x170
            main.SegvInCgo()
            	/var/gobuilder/buildlet/go/src/runtime/testdata/testprogcgo/segv.go:56 +0xcc
            main.main()
            	/var/gobuilder/buildlet/go/src/runtime/testdata/testprogcgo/main.go:34 +0x158

            goroutine 6 [runnable]:
            main._Cfunc_nop()
            	_cgo_gotypes.go:364 +0x38
            main.SegvInCgo.func1()
            	/var/gobuilder/buildlet/go/src/runtime/testdata/testprogcgo/segv.go:47 +0x20
            created by main.SegvInCgo
            	/var/gobuilder/buildlet/go/src/runtime/testdata/testprogcgo/segv.go:44 +0x74

            trap    0x0
            error   0x0
            oldmask 0x0
            r0      0x0
            r1      0x0
            r2      0x0
            r3      0x0
            r4      0x0
            r5      0x5d9cde10
            r6      0x6df6a000
            r7      0x21da48
            r8      0x42e240
            r9      0xf0
            r10     0x4025a0
            fp      0x5d9cdde4
            ip      0x6e300674
            sp      0x5d9cddd8
            lr      0x6e2e983c
            pc      0x6e267e74
            cpsr    0x400d0010
            fault   0x0

        crash_cgo_test.go:622: unexpectedly saw "runtime: " in output
FAIL
FAIL	runtime	155.487s

greplogs --dashboard -md -l -e '\Anetbsd-.*(?:\n.*)*FAIL: TestSegv/SegvInCgo .*(?:\n    .*)*unknown pc' --since=2022-01-07
2022-02-01T16:10:04-93fe469/netbsd-arm-bsiegert
It is not obvious to me whether this has the same underlying cause as #50605.
(See previously #49182; CC @prattmic @cherrymui.)

greplogs --dashboard -md -l -e 'FAIL: TestSegv/SegvInCgo .*(?:\n .*)*runtime: unknown pc' --since=2022-02-07
2022-02-10T15:23:05-452f24a/linux-riscv64-unmatched

Four flakes in a month during the testing-lull that is the code freeze makes me think this test is too noisy to leave enabled in the runtime package.
If we aren't going to be able to fix it ahead of the 1.18 release, I think it at least needs a skip.

This failure mode is now skipped, so this is no longer a 1.18 release-blocker. (I'll leave it up to @cherrymui and @prattmic to decide whether to prioritize a fix or move it to the Backlog.)

@prattmic, it looks like the change in the throw print in CL 390034 cause the skip for this test to no longer take effect. Could you update the skip?
greplogs --dashboard -md -l -e 'FAIL: TestSegv/SegvInCgo .*(?:\n .*)*unknown pc' --since=2022-03-01
2022-03-08T21:16:53-c3c7477/linux-mips64le-mengzhuo
2022-03-07T16:24:54-cc9d3f5/linux-mips64le-mengzhuo

Apologies, I thought I checked for these references, but didn't do a good job.

ping -- what's the status of this issue?

The failures here should be skipped, but we'd still like to investigate. Not a release blocker, though.

Rolling forward to 1.20.  Please comment if you disagree.  Thanks.

@golang/runtime, this failure mode should either be fixed or skipped, and there is an open CL (https://go.dev/cl/430375) that does the latter.
Marking as release-blocker pending a decision to either investigate and fix or merge the skip. Please don't leave flaky tests running if they aren't actively being worked on.

Hmm.... Actually, looking a that CL it is for TestSegv/Segv, not TestSegv/SegvInCgo. 🤔

Looking at recent failures, I think this continues to not be a release blocker, but it has flaked a bunch of times on some ports:
2022-11-21T17:11:59-d685946/openbsd-amd64-68
2022-11-17T19:55:28-81c9b1d/openbsd-arm-jsing
2022-11-08T08:14:37-0b7aa9f/openbsd-386-70
2022-11-07T10:42:25-a9767ea/openbsd-386-70
2022-11-04T12:56:08-d65c059/openbsd-386-70
2022-10-18T20:45:51-54ad7f3/openbsd-arm64-jsing
2022-10-17T18:22:06-3e100a2/openbsd-arm64-jsing
2022-09-21T15:30:20-e246cf6/linux-ppc64le-power9osu

For the openbsd failures
    --- FAIL: TestSegv/Segv (0.09s)
        crash_test.go:58: /tmp/workdir/tmp/go-build3686268924/testprogcgo.exe Segv: exit status 2
        crash_cgo_test.go:618: fatal error: unexpected signal during runtime execution
            [signal SIGSEGV: segmentation violation code=0x14 addr=0xe0000000b pc=0x2a15a3c4a]

            runtime stack:
            runtime.throw({0x248e92?, 0x0?})
            	/tmp/workdir/go/src/runtime/panic.go:1047 +0x5d fp=0x266840070 sp=0x266840040 pc=0x35cd7d
            runtime.sigpanic()
            	/tmp/workdir/go/src/runtime/signal_unix.go:821 +0x3e9 fp=0x2668400d0 sp=0x266840070 pc=0x373889
            runtime.syscall()
            	/tmp/workdir/go/src/runtime/sys_openbsd_amd64.s:466 +0x1f fp=0x2668400e0 sp=0x2668400d0 pc=0x392a3f

            goroutine 1 [syscall]:
            syscall.syscall(0x3b55a0, 0x1f0e, 0xb, 0x0)
            	/tmp/workdir/go/src/runtime/sys_openbsd3.go:24 +0x3b fp=0xc00005be48 sp=0xc00005be28 pc=0x38d77b
            syscall.syscall(0x32e1f8?, 0xc00007c0c0?, 0x0?, 0x43c201?)
            	<autogenerated>:1 +0x26 fp=0xc00005be90 sp=0xc00005be48 pc=0x393406
            syscall.Kill(0xc0ffffffff?, 0x0?)
            	/tmp/workdir/go/src/syscall/zsyscall_openbsd_amd64.go:893 +0x2f fp=0xc00005bec0 sp=0xc00005be90 pc=0x3b412f

sigpanic is called, which means the Go signal handler treats it as a kernel-issued SIGSEGV, instead of a user-sent one.
@golang/openbsd do you know if the OpenBSD kernel may report a user-sent SIGSEGV as kernel-sent (i.e. the signal code being not SI_USER)? Thanks.

I think this is the same problem as #52963 and @pmur created a CL to skip this failure https://go.dev/cl/430375.
There is a Go signal handler that tries to do a Go backtrace but gets sent to a thread running C code which won't work.

If the Go signal handler is trying to obtain a backtrace, does the test binary need to call runtime.SetCgoTraceback with some appropriate callback to ensure that it can backtrace a signal delivered to a C stack?
(It looks like the fact that the thread is running C code is an intentional part of the test.)
Or is the problem that the thread is running C code without any Go frames on the stack? In that case, would it help to thread-lock the C.nop() goroutine and use syscall.Tgkill (where available) to deliver the signal to that thread in particular? (Compare #19326.)

This is not easily reproducible. I think @pmur was able to make it fail and found that it was on a stack that was running only C code. But the Go stacktracer only works for a Go stackframe at least on PPC64. Slot 0 of the frame is the LR value in Go, but it is the caller's stack pointer in C and that is why you get the unknown PC error when running C code.
See @cherrymui's suggestion in the CL for fixing the test.


Regression after #397 has been landed

The following test can reproduce the problem:
(function () {
  var d = {};
  var a = [arguments];
})();

This now throws ReferenceError.
It also makes 29 test262 tests to fail.

@kkristof, thank you for raising the issue.
In my environment, ReferenceError is also raised at 005eb044a93b5ecaf7ac385c8fa9c866e3554b38 (just before #397 - abc2b55297eff13538fca2440d127ba79cdcc8b3 - was merged).
So, maybe, the issue is not connected with the #397 patch.
Could you, please, check this in your environment?

@kkristof, with the following patch test finishes successfully in my environment.
Could you, please, also check the following patch for this and other 29 failing tests in your environment, and list tests that are fixed with the patch?
Thank you in advance,
diff --git a/jerry-core/parser/js/parser.cpp b/jerry-core/parser/js/parser.cpp
index 082d8d6..6f60d73 100644
--- a/jerry-core/parser/js/parser.cpp
+++ b/jerry-core/parser/js/parser.cpp
@@ -2949,9 +2949,18 @@ preparse_scope (bool is_global)
     }
   }

-  while (!token_is (end_tt))
+  size_t nesting_level = 0;
+  while (nesting_level > 0 || !token_is (end_tt))
   {
-    if (token_is (TOK_NAME))
+    if (token_is (TOK_OPEN_BRACE))
+    {
+      nesting_level++;
+    }
+    else if (token_is (TOK_CLOSE_BRACE))
+    {
+      nesting_level--;
+    }
+    else if (token_is (TOK_NAME))
     {
       if (lit_literal_equal_type_cstr (lit_get_literal_by_cp (token_data_as_lit_cp ()), "arguments"))
       {

Failure caused by missing check for current nesting level during search for identifier tokens.

Sorry, the minimized example was wrong, The original test case was the following:
(function () {
    function getFunc() {
        return 10;
    }
    Object.defineProperty(arguments, "0", {
        get: getFunc,
        enumerable: true,
        configurable: false
    });
    try {
        Object.defineProperty(arguments, "0", {
            configurable: true
        });
    } catch (e) {
        return e instanceof TypeError;
    }
    return false;
}(0, 1, 2));

The following test262 test cases were affected:

ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-291-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-291
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-297-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-297
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-298-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-298
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-299-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-299
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-300-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-300
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-303
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-309
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-310
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-311
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-312
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-314-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-314
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-321-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-321
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-322-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-322
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-323-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-323
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-324-1
ch15/15.2/15.2.3/<IP_ADDRESS>/<IP_ADDRESS>-4-324
ch15/15.3/15.3.4/<IP_ADDRESS>/S<IP_ADDRESS>_A7_T9
ch15/15.3/15.3.4/<IP_ADDRESS>/S<IP_ADDRESS>_A6_T9
ch15/15.3/15.3.4/<IP_ADDRESS>.2/<IP_ADDRESS>.2-4-1
ch15/15.3/15.3.4/<IP_ADDRESS>.2/<IP_ADDRESS>.2-4-2
ch15/15.4/15.4.4/<IP_ADDRESS>/<IP_ADDRESS>-9-c-ii-12

Your patch solves all of them and also the ReferenceError in the description. Thank you.

@kkristof, thank you!

Pull request with fix: #442


False positive from AS0034: Not allowed to change InherentPermissions property of table object

Please include the following with each issue:
1. Describe the bug
In v1.0 of our extension we have the InherentPermissions property applied to a table object.
If we try to change the value of the InherentPermissions property for this table object in a next version, then AS0034 throws the follow error diagnostic:
error AS0034: The property 'InherentPermissions' for Table '<My Table Name>' has changed from value 'RX' to value 'RmX'. This is not allowed because it will break upgrade of existing installations and dependent extensions.

(Please also see: https://www.yammer.com/dynamicsnavdev/#/Threads/show?threadId=2534529863409664)

Quentin Tresontani – Wednesday at 11:40 AM
I agree, this looks like a bug. Can you log this on Github? Issues · microsoft/AL (github.com)

2. To Reproduce
Steps to reproduce the behavior:

Have the following property values on an AL table object in the v1 version of your extension:

table 51000 ABC_MyTable
{
    Access = Public;
    Caption = 'My Table';
    DataPerCompany = false;
    InherentPermissions = RX;

    fields
    {
        field(1; Code; Code[20])
        {
            Caption = 'Code';
            DataClassification = CustomerContent;
            NotBlank = true;
        }
        field(2; Description; Text[250])
        {
            Caption = 'Description';
            DataClassification = CustomerContent;
        }
    }

    keys
    {
        key(PK; Code)
        {
            Clustered = true;
        }
    }
}

In a v2 of your extension try to change the property value of the InherentPermissions property of the same table object to a different value, e.g.:

table 51000 ABC_MyTable
{
    Access = Public;
    Caption = 'My Table';
    DataPerCompany = false;
    InherentPermissions = RmX;

    fields
    {
        field(1; Code; Code[20])
        {
            Caption = 'Code';
            DataClassification = CustomerContent;
            NotBlank = true;
        }
        field(2; Description; Text[250])
        {
            Caption = 'Description';
            DataClassification = CustomerContent;
        }
    }

    keys
    {
        key(PK; Code)
        {
            Clustered = true;
        }
    }
}

Rule AS0034 (from the AppSourceCop) will raise an error diagnostic:

error AS0034: The property 'InherentPermissions' for Table 'ABC_MyTable' has changed from value 'RX' to value 'RmX'. This is not allowed because it will break upgrade of existing installations and dependent extensions.

3. Expected behavior
No error diagnostic is raised by AS0034 when only the InherentPermissions is changed. This should not be considered as breaking (but of course changes should be applied with care).
4. Actual behavior
An error diagnostic is raised by AS0034 when only the InherentPermissions is changed.
5. Versions:

AL Language: v12.1.887908
Visual Studio Code: 1.84.2
Business Central: N.A.
List of other Visual Studio Code extensions that you have installed: N.A.

Final Checklist
Please remember to do the following:

[X] Search the issue repository to ensure you are reporting a new issue

[X] Reproduce the issue after disabling all extensions except the AL Language extension

[X] Simplify your code around the issue to better isolate the problem

The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 24.0.14036.0 and VS Code Extension Version 13.0.901531.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://freddysblog.com/2020/06/25/working-with-artifacts/


Failure to build

Looks like the project fails to build due to changes in dependencies.
Step 3/7 : RUN env GIT_TERMINAL_PROMPT=1 go get -v github.com/JustinAzoff/bro-pdns
 ---> Running in dd60d110e052
github.com/JustinAzoff/bro-pdns (download)
github.com/JustinAzoff/flow-indexer (download)
github.com/google/gopacket (download)
get "golang.org/x/net/bpf": found meta tag get.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at //golang.org/x/net/bpf?go-get=1
get "golang.org/x/net/bpf": verifying non-authoritative meta tag
golang.org/x/net (download)
get "golang.org/x/sys/unix": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys/unix?go-get=1
get "golang.org/x/sys/unix": verifying non-authoritative meta tag
golang.org/x/sys (download)
github.com/klauspost/pgzip (download)
github.com/klauspost/compress (download)
github.com/pquerna/ffjson (download)
github.com/buger/jsonparser (download)
github.com/gorilla/mux (download)
github.com/jmoiron/sqlx (download)
github.com/lib/pq (download)
github.com/mattn/go-sqlite3 (download)
github.com/pkg/errors (download)
github.com/spf13/cobra (download)
github.com/spf13/pflag (download)
github.com/spf13/viper (download)
github.com/fsnotify/fsnotify (download)
github.com/hashicorp/hcl (download)
github.com/agext/levenshtein (download)
github.com/apparentlymart/go-textseg (download)
cannot find package "github.com/apparentlymart/go-textseg/v12/textseg" in any of:
        /usr/local/go/src/github.com/apparentlymart/go-textseg/v12/textseg (from $GOROOT)
        /go/src/github.com/apparentlymart/go-textseg/v12/textseg (from $GOPATH)
github.com/mitchellh/go-wordwrap (download)
github.com/zclconf/go-cty (download)
get "golang.org/x/text/unicode/norm": found meta tag get.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text/unicode/norm?go-get=1
get "golang.org/x/text/unicode/norm": verifying non-authoritative meta tag
golang.org/x/text (download)
cannot find package "github.com/hashicorp/hcl/hcl/printer" in any of:
        /usr/local/go/src/github.com/hashicorp/hcl/hcl/printer (from $GOROOT)
        /go/src/github.com/hashicorp/hcl/hcl/printer (from $GOPATH)
github.com/magiconair/properties (download)
github.com/mitchellh/mapstructure (download)
github.com/pelletier/go-toml (download)
github.com/spf13/afero (download)
github.com/spf13/cast (download)
github.com/spf13/jwalterweatherman (download)
github.com/subosito/gotenv (download)
get "gopkg.in/ini.v1": found meta tag get.metaImport{Prefix:"gopkg.in/ini.v1", VCS:"git", RepoRoot:"https://gopkg.in/ini.v1"} at //gopkg.in/ini.v1?go-get=1
gopkg.in/ini.v1 (download)
get "gopkg.in/yaml.v2": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at //gopkg.in/yaml.v2?go-get=1
gopkg.in/yaml.v2 (download)
ERROR: Service 'zeek-pdns-web' failed to build: The command '/bin/sh -c env GIT_TERMINAL_PROMPT=1 go get -v github.com/JustinAzoff/bro-pdns' returned a non-zero code: 1

Building FROM golang.

I think you're using an old golang image from being modules were a thing. see if FROM golang:1.16 works

Yep, using golang:1.16 worked a treat. Cheers!


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_12nh22s7wm/clone/recipe/meta.yaml:14: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_12nh22s7wm/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_12nh22s7wm/clone/recipe/meta.yaml:26: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_12nh22s7wm/clone/recipe/meta.yaml:39: missing_documentation: The recipe is missing a doc_url or doc_source_url
Errors were found


allow user to specify the port the agent will listen on

Adds a flag to allow the user to specify the port the pdc agent will listen on instead of letting the server select a port by using -R 0. If the user does not specify a port, -R 0 will be used, same behavior as before.
Closes https://github.com/grafana/hosted-grafana/issues/5039

We have decided not to add this flag at the moment. If you want to set the listen port, use the agent in legacy mode:
pdc-agent -i /root/.ssh/grafana_pdc<EMAIL_ADDRESS>-p 22 -R <listen_port> -o CertificateFile=/root/.ssh/grafana_pdc-cert.pub -o ConnectTimeout=1 -o ServerAliveInterval=15 -o UserKnownHostsFile=/root/.ssh/grafana_pdc_known_hosts -vvv


Using Invoke-ChocolateyBoxstarter to install .NET 4.7 causes Boxstarter to do a Windows update

I have been able to reproduce this issue on a bare Windows 8.1 64-bit virtual. The machine has the following applied to it:

Install Chocolatey 0.10.5
Install Boxstarter 2.10.3
UAC remains on
Windows updates disabled

I run the following, which installs .NET 4.7; however, Boxstarter starts doing a Windows update while this Chocolatey package is being installed - not desirable. This behaviour is also observed when invoking Boxstarter via the Install-BoxstarterPackage cmdlet but only if .NET 4.7 is the last package.
Import-Module Boxstarter.Chocolatey
Invoke-ChocolateyBoxstarter dotnet4.7

The console output while .NET 4.7 is installed is:

Installed/updated chocolatey-windowsupdate extensions.
The install of chocolatey-windowsupdate.extension was successful.
Software installed to 'C:\ProgramData\chocolatey\extensions\chocolatey-windowsupdate'
[NuGet] Installing 'KB4019990 1.0.0'.
[NuGet] Successfully installed 'KB4019990 1.0.0'.
KB4019990 v1.0.0 (forced) [Approved]
kb4019990 package files install completed. Performing other installation steps.

Boxstarter starting Checking for updates...+ Boxstarter starting Checking for updates...

Starting windows update serviceStarting windows update service

Looks like starting Windows Update Service triggers this. Packages that install MSUs will typically ensure Windows Update service is turned on.

@ferventcoder thanks for the feedback, I thought it may have been something long those lines. However, I don't believe that's the complete picture because:

The Windows update are only applied when installing .NET 4.7, which does depend on MSUs; however, when I install .NET 4.6.1 (for example) that also has dependencies on MSUs, Boxstarter doesn't install Windows updates.
Boxstarter doesn't always start applying Windows updates when .NET 4.7 is installed, only if .NET 4.7 is the last thing it installs, i.e. say if I installed .NET 4.7 followed by 7zip, then Boxstarter doesn't apply Windows updates.
I've noticed that the .NET 4.7 package has a new dependency on chocolatey-windowsupdate.extension but I don't believe that's what's triggering the update for the reasons mentioned previously.

Still feels like a bug in Boxstarter.

The only reason why Boxstarter would perform a windows update is if it is being told to via Install-WindowsUpdate There is no logic in Boxstarter that would call windows update on its own. You might dig into the .Net packages and see if they are explicitly calling that.

Isn't Install-WindowsUpdate a Boxstarter function? How would the .Net package know to call that function?

Boxstarter starting Checking for updates...+ Boxstarter starting Checking for updates indicates Install-WindowsUpdate was called. It is a boxstarter function. Do you mind sharing the package or script that is being passed to Invoke-ChocolateyBoxstarter @colin-sim ?

@mwrock The Chocolatey package is dotnet4.7.
You may be right, the package has a dependency on chocolatey-windowsupdate.extension package. I don't know what this package works but there is a Install-WindowsUpdate function in there.

@colin-sim I think you are on to something

Now that we know what the problem is, does anyone have any suggestions on how I might be able to workaround this issue or fixing it in Boxstarter?

Scope. The naming of the function is understandable into why there would be a collision. Having the package be able to call back out to Boxstarter functions feels like a scope thing that could be corrected. As far as how exactly... that I'm not sure on. Since you can't control the scoping issue in the packages themselves, control the scoping at the Boxstarter level.
Alternatie ideas:

Rename that function in boxstarter to something with Boxstarter in the name - may not be feasible or may be a breaking change.
Rename that function in the Chocolatey package and update all references in other packages - probably not feasible, would result in lots of churn and broken packages.
Pre-install .NET 4.7 outside of Boxstarter or kb4019990 - not a good workaround
Accept the Windows updates - probably not something you are keen to as you had it turned off in the first place
Other ideas

Dumb question. Why isn't the Boxstarter one called Install-WindowsUpdates?

@ferventcoder Thanks for your input. I agree with all your suggestions and feel the best approach would be to scope the Boxstarter functions into it's own namespace. Since namespaces don't exist in PowerShell (not that I know of in a conventional sense anyway) I would suggest the best approach is to rename all Boxstarter functions to include Boxstarter in its name. It is conceivable that other function names in the Boxstarter module to collide with other setup or install operations that comes from outside of Boxstarer.
@mwrock What do you think? I guess rename every Boxstarter function is no easy task and I'm sure will break everyone's existing setup/scripts.
@mwrock Can you think of a way to change the way Boxstarter scopes functions so that downstream scripts/operations do not invoke functions that's defined in Boxstarter?

Yeah. Ideally if I were writing this over again or embarking on a major version bump, I'd rename all functions to include "Boxstarter" not to mention making Install-WindowsUpdate plural. Scoping is tricky. Choco's PowershellService imports the boxstarter modules. If it imports them after extensions, that would explain why boxstarter is superseding the extension.

So is there a workaround or is the only option one of ferventcoder's suggestions (none of which are ideal and kind of defeats of motivation to use Boxstarter in the first place - unless I've missed something)?

Maybe look at the parameters and if it is not what was being looked for, look for another function with the same name.
To do this though, Boxstarter would need to inspect the functions already being imported and then just rename them if they conflict. That way it would be aware when it receives a function with things that don't look quite right. The trick is seeing them during import since they are all getting imported at the same time.

Why is choco importing the boxstarter modules anyway?

Boxstarter comes as Chocolatey packages - I'm guessing that is why. Design of Boxstarter

I'm initiating the choco package install via Boxstarter, e.g. Install-BoxstarterPackage dotnet4.7. This means the Boxstarter modules are already loaded and the Boxstarter.Chocolatey package contains a cmdlet Install-WindowsUpdate, which collides with the function defined in the chocolatey-windowsupdate module.
@jberezanski The fix I proposed in your repo will explicitly import the chocolatey-windowsupdate module before invoking the Install-WindowsUpdate cmdlet; hence, overriding the cmdlet that's already imported by Boxstarter.
@jberezanski How do you feel about that pull-request?

@ferventcoder OK, but this does not by itself explain why Boxstarter commands are automatically available in Chocolatey. After all, posh-git, for example, is also installed as a Chocolatey package and does not get loaded in each PowerShell session unless imported explicitly.
@mwrock I feel I'm missing something regarding Boxstarter architecture. Does it, perhaps, somehow share a single PowerShell instance with Chocolatey? Or does it install its PowerShell modules systemwide, to Program Files? Does it have to do so?

Ideally if I were writing this over again or embarking on a major version bump, I'd rename all functions to include "Boxstarter"

I know exactly how you feel; I now regret letting myself be talked out of prefixing the extension's functions when I originally developed it.
@colin-sim I responded to the PR. TL;DR: not thrilled about your suggestion, but I mentioned an alternative I would be willing to consider.

Just to clear up a few things in regards to boxstarter module installation and loading. When one installs boxstarter, the boxstarter modules are added to the SYSTEM PSModulePath and thus accessible from any shell. From inside a chocolatey package being installed via Boxstarter, Boxstarter uses the choco api vis choco.sll and not choco.exe. Upon instantiating the choco services, Boxstarter adds its own modules to chocolatey's powershell service to ensure they are loaded. It does this for 2 key reasons:

The package may be running on a remote machine where the modules might not exist in PSModulePath
Its important that the modules are loaded after the chocolatey powershell modules in order to override some behavior that enables boxstarter to discover pending reboots and reboot and restart correctly.

Admittedly this architecture has grown quite tangled particularly after choco evolved to a C# program. This was fairly straightforward when everything was powershell. If I were to rewrite Boxstarter today, I would not drive the API but would rather just shell out to an installed choco.exe. However there are already products that do just that so I'm not personally motivated to spend large quantities of free time rewriting or refactoring boxstarter :)

Oh... I was hoping for something much simplier like Boxstarter :S


chore(ci): don't run on draft PRs

Not a draft because well I need to test non-draft :) but a draft in spirit

Benchmark results
Metrics with a significant change:

batch_insert_into_indexed_tree_20_depth_ms (1024): 221 (+37%)
batch_insert_into_indexed_tree_20_depth_hash_ms (1024): 0.142 (+39%)
avm_simulation_time_ms (FeeJuice:set_portal): 17.0 (+37%)
avm_simulation_time_ms (Token:mint_public): 44.2 (-86%)
avm_simulation_time_ms (Token:assert_minter_and_mint): 332 (+433%)
avm_simulation_time_ms (AuthRegistry:set_authorized): 49.1 (+35%)
avm_simulation_time_ms (FPC:prepare_fee): 83.3 (+35%)
l2_block_processing_time_in_ms (8): 446 (-23%)
node_history_sync_time_in_ms (3): 3,399 (-17%)
node_history_sync_time_in_ms (5): 4,411 (-19%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,775
1,552
698
755 (+1%)
776

proof_construction_time_sha256_30_ms
11,888
3,185 (+1%)
1,419 (+2%)
1,438
1,474

proof_construction_time_sha256_100_ms
45,438
12,228
5,731 (-3%)
6,157 (+2%)
5,593 (+2%)

proof_construction_time_poseidon_hash_ms
79.0 (+1%)
34.0
34.0
58.0
86.0 (-2%)

proof_construction_time_poseidon_hash_30_ms
1,536
417
199
226 (-2%)
267 (-1%)

proof_construction_time_poseidon_hash_100_ms
5,659
1,503
672
769 (+8%)
751 (+1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,356
7,876
14,884

l1_rollup_calldata_gas
50,160
92,790
177,880

l1_rollup_execution_gas
843,001
1,576,527
3,361,673

l2_block_processing_time_in_ms
254 (-2%)
:warning: 446 (-23%)
879 (+11%)

l2_block_building_time_in_ms
11,569 (-1%)
22,745
45,323 (-1%)

l2_block_rollup_simulation_time_in_ms
11,569 (-1%)
22,745
45,323 (-1%)

l2_block_public_tx_process_time_in_ms
9,888 (-1%)
21,022
43,565 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
:warning: 3,399 (-17%)
:warning: 4,411 (-19%)

node_database_size_in_bytes
14,250,224
18,243,824

pxe_database_size_in_bytes
16,258
26,818

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit
simulation_time_in_ms
witness_generation_time_in_ms
input_size_in_bytes
output_size_in_bytes
proving_time_in_ms

private-kernel-init
75.3 (+1%)
383 (+2%)
21,099
44,933
N/A

private-kernel-inner
140
672
71,847
45,067
N/A

private-kernel-reset-tiny
290
668
64,687
44,922
N/A

private-kernel-tail
149
126 (-1%)
50,553
56,996
N/A

base-parity
5.53
N/A
160
96.0
N/A

root-parity
35.4 (-1%)
N/A
73,948
96.0
N/A

base-rollup
2,614
N/A
189,124
664
N/A

block-root-rollup
41.2
N/A
58,205
2,448
N/A

public-kernel-setup
82.9
N/A
114,173
79,414
N/A

public-kernel-app-logic
95.8
N/A
113,991
79,414
N/A

public-kernel-tail
857
N/A
497,078
16,414
N/A

private-kernel-reset-small
273 (+1%)
N/A
66,341
45,629
N/A

private-kernel-tail-to-public
1,437 (-2%)
593 (+1%)
448,133
1,825
N/A

public-kernel-teardown
82.7
N/A
114,437
79,414
N/A

merge-rollup
20.1 (+1%)
N/A
38,174
664
N/A

undefined
N/A
N/A
N/A
N/A
85,025 (+2%)

Stats on running time collected for app circuits

Function
input_size_in_bytes
output_size_in_bytes
witness_generation_time_in_ms

ContractClassRegisterer:register
1,344
11,731
340

ContractInstanceDeployer:deploy
1,408
11,731
18.0

MultiCallEntrypoint:entrypoint
1,920
11,731
418

FeeJuice:deploy
1,376
11,731
393 (+2%)

SchnorrAccount:constructor
1,312
11,731
59.9 (-1%)

SchnorrAccount:entrypoint
2,336
11,731
366 (-1%)

FeeJuice:claim
1,344
11,731
38.0 (+4%)

Token:privately_mint_private_note
1,280
11,731
67.3 (-5%)

FPC:fee_entrypoint_public
1,344
11,731
26.7 (+4%)

Token:transfer
1,312
11,731
208 (+1%)

Benchmarking:create_note
1,344
11,731
73.8 (-2%)

SchnorrAccount:verify_private_authwit
1,280
11,731
26.5 (+1%)

Token:unshield
1,376
11,731
492 (+2%)

FPC:fee_entrypoint_private
1,376
11,731
651 (+2%)

AVM Simulation
Time to simulate various public functions in the AVM.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
164 (-1%)
2,261

FeeJuice:set_portal
:warning: 17.0 (+37%)
2,588

Token:constructor
73.5 (+3%)
12,938

FPC:constructor
46.5 (+3%)
7,744

FeeJuice:check_balance
37.1 (+3%)
1,980

Token:mint_public
:warning: 44.2 (-86%)
4,419

Token:assert_minter_and_mint
:warning: 332 (+433%)
2,899

AuthRegistry:set_authorized
:warning: 49.1 (+35%)
923

FPC:prepare_fee
:warning: 83.3 (+35%)
3,925

Token:transfer_public
18.2 (+28%)
8,887

FPC:pay_refund
41.7 (+12%)
4,851

Benchmarking:increment_balance
1,237
3,124

Token:_increase_public_balance
38.4 (+2%)
2,238

FPC:pay_refund_with_shielded_rebate
50.8 (+3%)
4,851

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.164 (-1%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.20
3.86 (-2%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.8
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.115
0.108 (-3%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.2 (-1%)
17.6
30.4 (-5%)
60.1 (+2%)
118 (+4%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.107 (-2%)
0.102
0.0988 (-5%)
0.103 (+2%)
0.106 (+4%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.6 (+1%)
25.9 (+1%)
43.7 (-3%)
85.5 (+5%)
:warning: 221 (+37%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
357
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.112 (+1%)
0.104 (+1%)
0.105 (-3%)
0.105 (+4%)
:warning: 0.142 (+39%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.0
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
129
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.105
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,168
668,252

Transaction size based on fee payment method
| Metric |  |
| - |  |


🚀 Feature: Watch mode with a configuration file

Bug Report Checklist

[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
Combining #35 and #36: I'd like to have watch mode support a local configuration file. That way you can preview what changes to your local repository will look like with different configs.
As in, if you run npx create --watch in a directory with a create.config.ts and then update create.config.ts, local file system changes will be re-applied.
Additional Info
💖

Merging back into #35 per https://github.com/JoshuaKGoldberg/create/issues/35#issuecomment-2566661516. Since it'll be a lot of work, and #97 ended up needing to include config file support anyway, it's unclear to me how to split these issues up so far.


BUG: read_sql from IBM DB2 raises syntax error

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Modin version (modin-0.8.0):
Python version (py3):
Code we can use to reproduce:
import ibm_db_sa
import sqlalchemy
import modin.pandas as pandas
import configparser
import os

os.environ["MODIN_ENGINE"] = "ray"
query = """
SELECT *
FROM db2_table
FETCH FIRST 20 ROWS ONLY;
"""
conn = """ibm_db_sa://user_name:password@host:port/database"""
df = pandas.read_sql(query,conn)

Describe the problem
I am trying to use modin.pandas to query an IBM DB2 table. DB2 does not use the LIMIT keyword so I am getting an error from the line in your code
"SELECT * FROM ({}) as foo LIMIT 0".format(sql), con, index_col=index_co
Error message
sqlalchemy.exc.ProgrammingError: (ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N An unexpected token "LIMIT" was found following "". Expected tokens may include: "FETCH FIRST ROWS ONLY". SQLSTATE=42601 SQLCODE=-104
Source code / logs
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/ibm_db-3.0.1-py3.6-linux-x86_64.egg/ibm_db_dbi.py", line 1235, in _set_cursor_helper
num_columns = ibm_db.num_fields(self.stmt_handler)
Exception: SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N  An unexpected token "LIMIT" was found following "".  Expected tokens may include:  "FETCH FIRST  ROWS ONLY".  SQLSTATE=42601 SQLCODE=-104
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1284, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.6/site-packages/ibm_db_sa/ibm_db.py", line 106, in do_execute
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.6/site-packages/ibm_db-3.0.1-py3.6-linux-x86_64.egg/ibm_db_dbi.py", line 1355, in execute
self._set_cursor_helper()
File "/usr/local/lib/python3.6/site-packages/ibm_db-3.0.1-py3.6-linux-x86_64.egg/ibm_db_dbi.py", line 1238, in _set_cursor_helper
raise self.messages[len(self.messages) - 1]
ibm_db_dbi.ProgrammingError: ibm_db_dbi::ProgrammingError: SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N  An unexpected token "LIMIT" was found following "".  Expected tokens may include:  "FETCH FIRST  ROWS ONLY".  SQLSTATE=42601 SQLCODE=-104
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "parallel.py", line 58, in
df = pandas.read_sql(query, connection)
File "/home/knyat/.local/lib/python3.6/site-packages/modin/pandas/io.py", line 385, in read_sql
return DataFrame(query_compiler=EngineDispatcher.read_sql(**kwargs))
File "/home/knyat/.local/lib/python3.6/site-packages/modin/data_management/dispatcher.py", line 155, in read_sql
return cls.__engine._read_sql(**kwargs)
File "/home/knyat/.local/lib/python3.6/site-packages/modin/data_management/factories.py", line 96, in _read_sql
return cls.io_cls.read_sql(**kwargs)
File "/home/knyat/.local/lib/python3.6/site-packages/modin/engines/base/io/file_reader.py", line 29, in read
query_compiler = cls._read(*args, **kwargs)
File "/home/knyat/.local/lib/python3.6/site-packages/modin/engines/base/io/sql/sql_reader.py", line 62, in _read
"SELECT * FROM ({}) as foo LIMIT 0".format(sql), con, index_col=index_col
File "/home/knyat/.local/lib/python3.6/site-packages/pandas/io/sql.py", line 438, in read_sql
chunksize=chunksize,
File "/home/knyat/.local/lib/python3.6/site-packages/pandas/io/sql.py", line 1218, in read_query
result = self.execute(*args)
File "/home/knyat/.local/lib/python3.6/site-packages/pandas/io/sql.py", line 1087, in execute
return self.connectable.execute(*args, **kwargs)
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 2244, in execute
return connection.execute(statement, *multiparams, **params)
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1012, in execute
return self.execute_text(object, multiparams, params)
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1187, in _execute_text
parameters,
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1324, in execute_context
e, statement, parameters, cursor, context
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1518, in handle_dbapi_exception
sqlalchemy_exception, with_traceback=exc_info[2], from=e
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/util/compat.py", line 178, in raise
raise exception
File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1284, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.6/site-packages/ibm_db_sa/ibm_db.py", line 106, in do_execute
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.6/site-packages/ibm_db-3.0.1-py3.6-linux-x86_64.egg/ibm_db_dbi.py", line 1355, in execute
self._set_cursor_helper()
File "/usr/local/lib/python3.6/site-packages/ibm_db-3.0.1-py3.6-linux-x86_64.egg/ibm_db_dbi.py", line 1238, in _set_cursor_helper
raise self.messages[len(self.messages) - 1]
sqlalchemy.exc.ProgrammingError: (ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N  An unexpected token "LIMIT" was found following "".  Expected tokens may include:  "FETCH FIRST  ROWS ONLY".  SQLSTATE=42601 SQLCODE=-104
[SQL: SELECT * FROM (
SELECT * FROM DB2_TABLE
) as foo LIMIT 0]
(Background on this error at: http://sqlalche.me/e/f405)

Hi @knyats I am not able to reproduce the error you are facing. Could you posted an update issue?

@pyrito this looks like a syntax error in how we were selecting a subset of the rows in our read_sql implementation. It's similar to #3524.

Getting a similar error when using Modin to query IBM DB2. Any workaround for this issue.
An unexpected token "_" was found following "".  Expected tokens may include:  "".  SQLSTATE=42601 SQLCODE=-104
[SQL: SELECT COUNT(*) FROM (select * from TestTable where year =2023) AS _]

@mvashishtha , Sure will try installing from master branch.

@mvashishtha, I installed Modin from the master branch. Still facing the same issue. Having '_' as alias is causing the issue.
An unexpected token "_" was found following "". Expected tokens may include: "". SQLSTATE=42601 SQLCODE=-104
[SQL: SELECT COUNT(*) FROM (select * from TestTable where year =2023) AS _]

@Vsn92 could you pleas post the entire stack trace?


Ill-formed Query Graph returns 502 error codes

Describe the bug
Requests to the CHP api using ill-formed query graphs results in a 502 error code being returned. 502 is a "Bad Gateway error". Confirmed in the docker log were the correct exception messages. Expected was a 500 error.
To Reproduce
Using the following Query Graph structure:
reasoner_std['query_graph']['nodes']['n0'] = { 'category':'biolink:Gene'}
reasoner_std['query_graph']['nodes']['n1'] = { 'category':'biolink:Drug',
'id':'CHEMBL:CHEMBL88'
}
reasoner_std['query_graph']['edges']['e0'] = { 'predicate':'biolink:affects',
'subject': 'n1',
'object': 'n0'
}
In the one-hop wildcard query will fail. The issue is that we anticipate the object node having the curie, whether ensembl for gene or chembl for drug.
Expected behavior
500 Error
Additional context
This issue should also double as a feature request.
At the message level we should include LogEntry objects (for specification see: https://github.com/NCATSTranslator/ReasonerAPI/blob/master/TranslatorReasonerAPI.yaml)
This object can hold on to our internal exception messages so that they can be passed back to the requester as well as other helpful debugging information.

Should be covered in PR 16


Error in CustomViewComponent ng-template

1. If 'ng-template' is an Angular component, then verify that it is part of this module.
2. If 'ng-template' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the<EMAIL_ADDRESS>of this component to suppress this message. ("
    [ERROR ->]<ng-template #dynamicTarget></ng-template>
  "): CustomViewComponent@1:4 ; Zone: <root> ; Task: Promise.then ; Value:

How to fix this?

@Iraecio please take a look at this issue https://github.com/akveo/ng2-smart-table/issues/266.


[RFC] What if hyperapp was just a bit less magical and a bit more transparent?

This would be a major breaking change. This would be so major that one might as well publish it as a different "framework". This would also mean things are not as tidy as our current "immaculate API" 👼 , but on the other hand this would be more flexible & powerful.
It would also simplify the world and be implementable in much less bytes. ☝
I'd just like to share the API I thought up with all of you so help me decide if this is going to be for us or I should explore this idea elsewhere. 🤔
Here it comes...
import { h, app } from "hyperapp"
const { render, call } = app({ count: 1 })

document.body.appendChild(
  render(state => (

{state.count}

      <button onclick={() => call(state => ({ count: state.count + 1 }))}>
        +
      </button>
      <button
        onclick={() =>
          setTimeout(() => {
            call(state => ({ count: state.count - 1 }))
          }, 1000)}
      >
        -
      </button>

  ))
)

Please give it 5 minutes and think about all the implications. See how by decoupling render and update from the app call that means we no longer need actions or events. And mixins, well those can be implemented  in a manner similar to Redux enhancers, as the second argument to the app() call.
I am not strongly in favor or replacing the current API for this, but I am starting to like it a bit. Like @lukejacksonn said, food for thought. 🍝

<button
  update(state => {
    setTimeout(() => {
      update(state => ({ count: state.count - 1 }))
    }, 1000)
  })}
>
  -
</button>

@JorgeBucaran is the outer update() call even needed? Shouldn't calling update from inside setTimeout already do the job? 🤔

@okwolf It's needed so we can get a copy of the state.

BTW I called the functions render and update, but that's just a name. I think render works well, but update could be dispatch, action, resolve, command, call, etc.

I think it would be worth exploring, and I'd like to experiment with it. Perhaps we could create a branch for it? Publish it as hyperapp2000 or something.
It's hard to say yay or nay off hand without exploring it a bit in code. I'm thinking about some of the patterns I depend on (wether kosher or not), such as custom-events for separating concerns, scoped updates, and prewired components. They'll probably look a lot different if they're even relevant under this new paradigm.
One thing I like about the current paradigm, is that the mixins and events system gives you one central place to customize a lot of things. If we don't have a render event in the new paradigm, for instance you can't inject other stuff to the view as arguments (if that's what you want). Not via a mixin anyway. You'd have to wrap the render function.

It would feel awesome.
Wondering what impact this would have on the router and other components that currently rely on mixins.

Like @zaceno, I currently rely on the event system in an app I'm developing.  Not saying similar things couldn't be accomplished with the new API, but I'd be curious to see a realistic application before/after.  Something with routing and data fetching that uses the existing events system.
Even just an implentation of the router and logger would be useful to see how it could work.
I can see the benefit of decoupling actions from the app initialization.  You're basically changing hyperapp from using dependency injection to requiring devs to manually import whatever actions they're going to use in the file.  That probably will make type checking, editor autocomplete and dead code elimination easier.

Wow. Conceptually it looks awesome to me. I don't know exactly what would be the practical implications and if the developer experience would be better or not. But this seems to summarize the essence of the functional UI paradigm, and the flexibility it exhibits is amazing.
Please release it in any way so we can play with it.
And by the way, I'm following you "behind the trenches" and I'm impressed by the community work you all are doing: making all the evolution of the library transparent, and involving all the people. Congrats 👏 👏

I dont know if I am a little bit off topic, but here we go.
I personnaly think all the magical about Hyperapp is about actions. And more precisely about the actions I need to define and the actions I will use all other the framework.
app({
  actions: {
    add(state, actions, { value }) {
      return { count: state.count + value }
    }
  },

  view(state, actions) {
    return <button onclick={() => actions.add({ value: 3 })}/>
  }
})

I have to define (state, actions, data) but after I need to call (data).
Now we admitted all over HA to define all functiont that way
(state, actions, data) => result

I think this is really a great thing to have only one function signature all over the framework. This will add simplicity and cut some questions. But what about thinking all entries of the framework as High Order Functions ?
All the entries/hooks of the framework will now follow only one function signature.
(state, actions) => (data) => function

So it could be also a great standar to introduce thunk for all the async stuff instead of Promise.
(state, actions) => (data) => (thunk) => function

So I guess it will be more easy to understand what I define and what I get.
app({
  actions: {
    add(state, actions) {
      return ({ value }) => { count: state.count + value }
    }
  },

  view(state, actions) {
    return <button onclick={() => actions.add({ value: 3 })}/>
  }
})

A more complete example (with sync and async) could be, the following counter.
app({
  state: {
    count: 0
  },
  view: (state, actions) =>

        {state.count}

      <button onclick={() => actions.subLater(1, 3000)} disabled={state.count <= 0}>ー (3 sec)</button>
      <button onclick={() => actions.sub(1)} disabled={state.count <= 0}>ー (now)</button>
      <button onclick={() => actions.add(1)}>＋ (now)</button>
      <button onclick={() => actions.addLater(1, 3000)}>＋ (3 sec)</button>
    ,
  actions: {
    sub: (state, actions) => (value) => ({ count: state.count - value }),
    add: (state, actions) => (value) => ({ count: state.count + value }),
    subLater: (state, actions) => (value, time) => update => {
      setTimeout(() => {
        update(state => state.count <= 0 ? {} : { count: state.count - value })
      }, time)
    },
    addLater: (state, actions) => (value, time) => update => {
      setTimeout(() => {
        update(state => ({ count: state.count + value }))
      }, time)
    }
  }
})

In your proposal you introduce a function call which looks to take a thunk function with the signature state => result which I assume always gets passed the latest state and that the result of calling the function gets passed to update which in turn triggers a render.
Implementation details aside, this means you could do this:
state: {
  count: 0,
},
actions: {
  resetCount: _ => _ => ({ count: 0 })
  setCountTo: data => _ => ({ count: data }),
  addToCount: data => state => ({ count: state.count + data }),
},
view: state =>
  h('button', {
    oncreate: e => setInterval(_ => call(actions.addToCount(1)), 1000),
    onclick: e => call(actions.resetCount)
  }, state.count)

There are pros and cons to this.. have a think about it. I'm happy to answer questions 😅

If you are talking about the update(state => ({ count: state.count + value })) this is already part of Hyperapp features. Since https://github.com/hyperapp/hyperapp/pull/347

It is like the update function.. but you can't access update from within a view currently.. can you 🤔  wouldn't it mean I would have to write the action like this:
addToCount: (state, actions, data) => update => update(state => ({ count: state.count + data })),

Thank you everyone for your invaluable feedback. I'll be closing here and updating https://github.com/hyperapp/hyperapp/pull/385 where I'll explain the exciting upcoming changes to Hyperapp. 👋❤


pkg/aws/eni: new subnet-ids parameter

This change permits the configuration of specific SubnetIDs []string
as part of the pkg/aws/eni/types.ENISpec. Essentially, it follows
the same principle as what was already in place with SecurityGroups /
SecurityGroupTags.
If SubnetIDs is set, it will be considered instead of SubnetTags. Here
is an example configuration:
{
  "cniVersion": "0.3.1",
  "name": "cilium",
  "type": "cilium-cni",
  "enable-debug": false,
  "eni": {
    "first-interface-index": 0,
    "pre-allocate": 10,
    "subnet-ids": ["subnet-0661a8d7e35b56e00","subnet-0661a8d7e35b56e01"],
    "subnet-tags": {},
    "security-group-tags": {},
    "security-groups": []
  }
}

This will result in the operator-aws looking up for subnets matching the
configured list in an exhaustive fashion.
pkg/aws/eni: new subnet-ids parameter

test-me-please

Oh indeed @ungureanuvladvictor my bad, I updated the docs :+1:

test-me-please

ci-aks

test-1.20-4.19

test-1.21-4.9

test-runtime


nb: 6.10.1 -> 6.11.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/nb/versions.
meta.description for nb is: "A command line note-taking, bookmarking, archiving, and knowledge base application"
meta.homepage for nb is: "https://xwmx.github.io/nb/"
meta.changelog for nb is: ""
Updates performed

Version update

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.11.2 with grep in /nix/store/nb2a9v5zgnia47hfl0afv4rsnr71gg1y-nb-6.11.2
found 6.11.2 in filename of file in /nix/store/nb2a9v5zgnia47hfl0afv4rsnr71gg1y-nb-6.11.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
nb

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nb2a9v5zgnia47hfl0afv4rsnr71gg1y-nb-6.11.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A nb https://github.com/r-ryantm/nixpkgs/archive/88a5646cf020df19576aede880414a2c2f311227.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nb2a9v5zgnia47hfl0afv4rsnr71gg1y-nb-6.11.2
ls -la /nix/store/nb2a9v5zgnia47hfl0afv4rsnr71gg1y-nb-6.11.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

nb

Maintainer pings
cc @toonn for testing.

Should I merge r-ryantm PRs myself or wait for another Nixpkgs maintainer to come along, or are they automatically merged?

Just go ahead and merge if the PR is good. :+1: There are no automatic merges.

Should I merge r-ryantm PRs myself

If it's a package you maintain, go for it. If not, I usually wait for the maintainer to approve it.


Validate database name and output error message to the user

I think the current addition is also validating that and will also fail with an error message to the user saying that database name is invalid

@zlesnr @jbeveland27 I've revised the recipe to handle blank database name. I've validated the behavior on the various OS we support.
Feel free to re-review.
@jbeveland27 regarding error code value, I think there is an interesting conversation we'd want to have to standardize our rc values. I know @ctrombley is interested in that as well. Let's talk about this independently of this work if you agree.


refactor: cleanup docker SKUs build stage

What type of PR is this?

What this PR does / why we need it:
This PR fixes a bug introduced by a previous refactoring, cleans up the docker SKUs from build stage so that yaml parsing does not fail.
https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=72106935&view=results
^ Sample run.
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 61.866%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
2526

Relevant Lines:
4083

💛  - Coveralls


Allow users to request identity enhancements from providers

I'm not 100% sold on 6ab7f82 so happy to peel that commit off if it's bad.

I'm happy with the commit that introduces the outstanding number of enhancement requests as a label on the button.
Makes it quite prominent that there is an action(s) required to be taken.

I note that when I click on requests and through to a particular user that after I click the dismiss button the request goes away, as expected.
However if I click enhance and then go and modify the subject the initial enhancement request remains, that is it must be explicitly dismissed which isn't indicated and seems a bit unintuitive.
How do you feel about dismissing the request when the 'Enhance Identity' is clicked? Perhaps this would also lead to the need for a UI to list old requests?

I tried to avoid automatic, magic behaviour. In particular, I don't want things to disappear if somebody closes a browser tab part way through.
The flow I had in mind here was:

Request appears
Provider admin views request, clicks 'Enhance Identity'
Two options are available, so the provider admin emails the user asking for clarification on exactly what level of access they needed
Provider admin gets distracted while waiting for a reply and closes the browser tab

I guess I could modify the flow so that the request is dismissed when an attribute is provided via the "Enhance Identity" link. In that case, the redirect would need to go elsewhere, as going back to view the request doesn't really make sense anymore..

Yeah I figured that was the type of flow you where trying to protect however we need to do something otherwise I fear these requests will just build up over time and never be dismissed.
I note the dismissed action also sets the subject that undertook the dismissal per https://github.com/ausaccessfed/identity-enhancement-service/pull/76/files#diff-c7a9af97058bde13b9eab8ce23f106e8R47 this isn't occurring when an admin enhances an identity and then doesn't bother to also dismiss.
You're idea is likely the only practical solution here. Perhaps in that case the view would still return to detail enhancements of the subjects identity as it does now but append the fact that request X was completed at the same time?

Alright. Get that into ya.


Launch debugger for FireFox/Chrome on external monitor

I have a 2 monitor setup. 1 monitor on my laptop, and 1 external display. I'm running Windows 10 2004. On Windows I have the FireFox Developer Edition and Google Chrome browsers configured, so that they open on my external monitor full screen.
In VSCode (1.47) I have 2 debuggers configured via launch.json. FireFox Debugger extension and Google Chrome Debugger extension. When I run the debugger via a Launch Firefox or Launch Chrome option, the browsers open on my 1st monitor and not full screen, which is not ideal.
I would like to request a feature that will open the browsers on my external monitor full screen, so that the settings are taken from the system. Currently VSCode ignores the system settings and launches the browsers anew on my 1st screen.

At least for Chrome, you may be able to set the --window-position in your runtime args: https://peter.sh/experiments/chromium-command-line-switches/#window-position

Moving to backlog -- probably won't implement a setting for this, but I would like to verify that it is possible to create a setting that does this.

There have been no 👍's on this, so I will suggest that as your solution: use --window-position and --start-maximized.


ZKVM-480: Add experimental support for sys_fork

Related to https://github.com/risc0/risc0/pull/2084#pullrequestreview-2197703844, I just realized to other solutions to this question when using sys_fork for unconstrained functions.
One is to end the child with a hard loop and some kind of syscall that doesn't halt, but indicates to the host that the process is done. The other is to return to the same execution path as the parent. In either case, the child code does not contain a halt instruction. I personally favor the case of having the guest go into a hard loop.
In general, the halt instruction is kind of special in the zkVM. In many ways, the proofs we generate are "reach-ability proofs", in that the statement says "I know an execution path that reaches a halt instruction with the given journal". So when there are multiple paths in the program that reach a halt instruction, the statement is that one of those paths was taken, without any indication of which one.

I tried to address all the comments. The main thing is changing the exit condition for the child from being sys_halt to a new syscall called sys_exit. This both preserves POSIX semantics and provides a model whereby the zkvm proves the reach-ability of the entire machine getting into a halted state. sys_exit is merely one of the processes in that machine ending.


Instructions for building the frontend

I believe the instructions in the README are out of date now, I'm not actually sure what needs to be done now.

And even better if we can simplify building by providing the npm/webpack files to make this a one command thing.

Hmm, so I think building actually works as described (though could probably be improved). But serving the pages is not working properly.


Instance does not handle VK_INCOMPLETE properly within enumerate_physical_devices

Template
If you dont understand something just leave it.
If you can provide more detailed information than the template allows for, please ignore the template and present all of your findings.

Version of vulkano: "0.32.3"
OS: Windows 11
GPU (the selected PhysicalDevice): 3080M
GPU Driver: TODO
Upload of a reasonably minimal complete main.rs file that demonstrates the issue:

fn main() {
        let library = VulkanLibrary::new().unwrap();
        let extensions = vulkano_win::required_extensions(&library);
        let instance = Instance::new(
            library,
            InstanceCreateInfo {
                enabled_extensions: extensions,
                enumerate_portability: true, // required for MoltenVK on macOS
                max_api_version: Some(Version::V1_1),
                ..Default::default()
            },
        );

        let device_extensions = DeviceExtensions {
            khr_swapchain: true,
            ..DeviceExtensions::empty()
        };

        let devices = instance.enumerate_physical_devices();

        if devices.is_err() {
            //This doesn't print the expected error message
            println!("Unable to enumerate physical devices {}", devices.err().unwrap());
            panic!();
        }
}

Output:
Unable to enumerate physical devices unnamed error, VkResult value 5
Issue
I updated to Windows 11 now my previously working example doesn't work. I'm trying to improve the error handling so that I can get more useful errors when Vulkan fails to initialize. I went to the discord asking how to get the VulkanError as a string value. Rua said they noticed a bug in the code on the vulkano side from the given example so I am posting it here as requested.

Talking with Rua the code does appear to be correct. The issue was Nvidia discrete graphics cards & Ryzen integrated graphics don't play well at the driver level creating a failure.
If you patch your system here it works. There is a Windows 10 & Windows 11 patch. I had to update my patch since I upgraded to windows 11.
https://www.amd.com/en/support/apu/amd-ryzen-processors/amd-ryzen-9-mobile-processors-radeon-graphics/amd-ryzen-9-5900hx


Update TileFissionComputerPort.java new methods

getClusterComponents()
getNumberOfClusters()
updateShieldState()
getNumberOfShields()

@igentuman Unfortunately your separated PRs conflict with each other - would you be able to combine them into one?


CORE-32732 Improved privacy logging.

Description
Improves privacy logging so customers better know how opt-in is tied to command queuing and failure.

Related Issue
https://jira.corp.adobe.com/browse/CORE-32732

Motivation and Context
Give users a better sense of why their commands are being delayed.

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] All tests pass and I've made any necessary test changes.
[x] I have run the Sandbox successfully.

@artur-ciocanu I'm going to merge this, but I'd be happy to open a new PR after you respond to my questions. Thanks.


Azure Core Samples issue

Section Link:

Reason: The method getSecretClient() is an internal method in the package of keyvault-secrets.
Suggestion: Delete the method getSecretClient() and change the name of the method getSyncSecretClientCodeSnippets to getSecretClient() .

@jongio , for notification.


Bug with .toEqualTypeOf

The following does not give an error (expect-type@0.11.0):
expectTypeOf<
	{ a: boolean }
>().toEqualTypeOf<
	{ a: boolean | undefined }
>();

By the way, if you want you can just use my StrictEqual implementation:
import { StrictEqual } from '@papb/assorted-ts-utils';

Do you have strictNullChecks turned off? Your code is erroring as expected for me, same in typescript playground.

Hmmm, that's odd, I had "strict": true in my tsconfig since the beginning, but now I can't reproduce it anymore. I must have made some other mistake. Thanks!!


v3 input with success/warning/error has no visual effect

Issue type:

[ ] Feature request
[x] Bug report
[ ] Documentation

Environment:

AdminLTE Version:  v3
Operating System:  OSX
Browser (Version):  Chrome 66.0.3359.181

Description:
Form groups with class has-success, has-warning, has-error don't render with colors. I searched the code and it seems that these classes do not appear in any css file.
The following is screenshot taken from official v3 live preview page:

Input with success:
<input id="inputSuccess" placeholder="Enter ..." class="form-control is-valid" type="text">

is-valid

Input with error:
<input id="inputError" placeholder="Enter ..." class="form-control is-invalid" type="text">

is-invalid

@TChrabanski Wow! Thanks a lot! It works!

We apparently forgot to update this bit from BS v3 to v3.

[ ] Upgrade input states

This issue is fixed with #2119, you can test it on https://adminlte-dev.rejack.space/pages/forms/general.html


Got 500 when deleting manifest concurrently

Feb  1 15:44:43 <IP_ADDRESS> registry[660]: time="2018-02-01T15:44:43.883495646Z" level=error msg="response completed with error" auth.user.name=test021517499787 err.code=unknown err.message="filesystem: Path not found: /docker/registry/v2/repositories/project021517499787/hello-world/_manifests/tags/v1/current/link" go.version=go1.7.3 http.request.host="registry:5000" http.request.id=60f44dd0-a8de-4da8-80b3-481ffad9eebe http.request.method=DELETE http.request.remoteaddr="<IP_ADDRESS>:36318" http.request.uri="/v2/project021517499787/hello-world/manifests/sha256:48b69107095fc23bf6a4e61b0bd11f9843bf4f0e8bf4033fc3b6742b066b756e" http.request.useragent="Go-http-client/1.1" http.response.contenttype="application/json; charset=utf-8" http.response.duration=3.843472ms http.response.status=500 http.response.written=201 instance.id=d6856611-e622-4a56-9c7b-e773535ea4c8 service=registry vars.name="project021517499787/hello-world" vars.reference="sha256:48b69107095fc23bf6a4e61b0bd11f9843bf4f0e8bf4033fc3b6742b066b756e" version=v2.6.2
Feb  1 15:44:43 <IP_ADDRESS> registry[660]: <IP_ADDRESS> - - [01/Feb/2018:15:44:43 +0000] "DELETE /v2/project021517499787/hello-world/manifests/sha256:48b69107095fc23bf6a4e61b0bd11f9843bf4f0e8bf4033fc3b6742b066b756e HTTP/1.1" 500 201 "" "Go-http-client/1.1"
Feb  1 15:44:43 <IP_ADDRESS> registry[660]: time="2018-02-01T15:44:43.884808094Z" level=info msg="response completed" go.version=go1.7.3 http.request.host="registry:5000" http.request.id=c8b7229d-3d3a-4415-bbf8-8dc574ab9a6a http.request.method=DELETE http.request.remoteaddr="<IP_ADDRESS>:36548" http.request.uri="/v2/project021517499787/hello-world/manifests/sha256:48b69107095fc23bf6a4e61b0bd11f9843bf4f0e8bf4033fc3b6742b066b756e" http.request.useragent="Go-http-client/1.1" http.response.duration=4.557164ms http.response.status=202 http.response.written=0 instance.id=d6856611-e622-4a56-9c7b-e773535ea4c8 service=registry version=v2.6.2
Feb  1 15:44:43 <IP_ADDRESS> registry[660]: <IP_ADDRESS> - - [01/Feb/2018:15:44:43 +0000] "DELETE /v2/project021517499787/hello-world/manifests/sha256:48b69107095fc23bf6a4e61b0bd11f9843bf4f0e8bf4033fc3b6742b066b756e HTTP/1.1" 202 0 "" "Go-http-client/1.1"

Looks like perhaps a duplicate of #2430. Hard to say because the information there is thin.
If the link is being deleted and "path not found" is encountered, it should be ignored, as that is the desired result.
Could you send a patch?

Also, what backend did you encounter this with?

We have two images library/hello-world:v1 and library/hello-world:v2 which have the same digest, when we try to delete them concurrently, get the 500 error.
Version 2.6.2 with filesystem storage.

@ywk253100 Could you give https://github.com/docker/distribution/pull/2516 a try and let me know if it solves the issue in your environment?

The PR solves the issue partly, and I submit another PR #2518 which merges yours and adds some more changes.

@ywk253100 Thanks for the contribution!
Could preserve my commit in #2518? That or wait until #2516 is merged.

@stevvooe Submit another PR #2520 which contains your commit.

Is there any plan for the next release?


[BUG] One of my clients getting version errors

[ERROR] addons/acf-3/lua/acf/base/version/cl_version.lua:45: attempt to index local 'Branch' (a nil value)

PrintStatus - addons/acf-3/lua/acf/base/version/cl_version.lua:45
v - addons/acf-3/lua/acf/base/version/cl_version.lua:63
unknown - lua/includes/modules/hook.lua:84

I have the latest ACF-3 but someone is getting these errors. He has acf2 installed on his gmod which idk if that would cause the issue.

I honestly don't know how that's even happening, that line will make sure Branch isn't nil before using it.
https://github.com/Stooberton/ACF-3/blob/6eea93e252b8de55fc1f13b25c47890105e3317f/lua/acf/base/version/cl_version.lua#L43-L51

I'm getting the error too. Maybe its related to github's connection issues today?

Nevermind I wasn't up to date.


User can see example climate profiles

[x] #140
[x] #144
[x] #145
[x] #146
[x] #147
[x] #178

Marked done.


container not working in Laravel 5?

Hello,
We installed a clean Laravel 5 with your package to be sure. When using the normal session and redirect method without container, the message is displayed. When putting the infoInstant example with container in the view, nothing is displayed.
We used this example:
{!! Notification::container('myInstant')->infoInstant('Instant message added in a view and displayed!') !!}
But also setting a specific container before redirect and display this container has no results.
Any idea what is happening?
Peter

Never mind, need to define containers as described in https://github.com/edvinaskrucas/notification/issues/27
Suggestion to put this in readme, so you know you have to configure this. The examples in the readme don't suggest to config a custom container in the config file.


Make -q to silence header, and stdout if specified twice

I am not sure it works, because quiet_header is defined in Main::setup and probably is not available in Main::setup2.
I'd like to silence the header, because I use some .gd scripts from command line, and need to pipe their output without extra lines from godot.
Bugsquad edit: This closes https://github.com/godotengine/godot-proposals/issues/4998.

-qq should probably also be supported as an equivalent of -q -q.

@akien-mga --no-header will only turn off this line.
Godot Engine v3.4.5.stable.fedora.f9ac000d5 - https://godotengine.org

But there are also these that are output in default mode.
OpenGL ES 3.0 Renderer: Mesa Intel(R) HD Graphics 4400 (HSW GT2)
OpenGL ES Batching: ON

Should they also depend on --no-header?
Can you tell what else would godot print in default mode? My use case is to make stdout completely clear from godot messages, but not from script messages to stdout. If --no-header is enough for that, I can redo PR for the new option.

Should they also depend on --no-header?

I think so, yes.

I hope they are printed to stderr, no?

They should be if I'm not mistaken :slightly_smiling_face:

OpenGL ES 3.0 Renderer: Mesa Intel(R) HD Graphics 4400 (HSW GT2)
OpenGL ES Batching: ON

For these two lines I still need a pointer to filter them out.

Seems doable. I still haven't found the class that outputs this info though.

In the Vulkan renderer, the header is printed here: https://github.com/Calinou/godot/blob/d5e2e8b0fc0e48c18ce80b92cef88c131a0d1c4b/drivers/vulkan/vulkan_context.cpp#L1033-L1035
In the OpenGL renderer, the header is printed here: https://github.com/Calinou/godot/blob/d5e2e8b0fc0e48c18ce80b92cef88c131a0d1c4b/drivers/gles3/rasterizer_gles3.cpp#L196

But then you'll have to change the way "disable stdout" works or add a new parameter?

But then you'll have to change the way "disable stdout" works or add a new parameter?

Yes, a separate project setting should be added to toggle the header display.

I reworked this in https://github.com/godotengine/godot/pull/79179 to add --no-header option. Please take a look.

Good work !

@abitrolly I opened a pull request based on tient to add --no-header to the project settings

@kaissouDev nice! What is your story for exporting the game without console output? Are you making a roguelike for terminal in Godot? My use case for terminal is just have a script with a #!/usr/bin/env godot --no-header -q shebang and run it when needed for data processing and vis in a popup window.

@kaissouDev nice! What is your story for exporting the game without console output? Are you making a roguelike for terminal in Godot? My use case for terminal is just have a script with a #!/usr/bin/env godot --no-header -q shebang and run it when needed for data processing and vis in a popup window.

Hello ! I just wanted to add the "--quiet-header" option to have more control over the console of our game without having 2 lines written automatically.

Maybe an option to customize that header would be a better fit for project options? The it can

show the default engine info (advertise Godot engine)
be set empty
show customized engine info (and if the link to company support page)

But I think that discussion belongs to a new issue at https://github.com/godotengine/godot-proposals

Yes, that would be a good idea, I think it can be done if you store a variable and print it in the console, but then I don't really see the point because you can use gdscript for everything.

Yea, well, I guess I am just overthinking it. That header reminded me how Unity logo flashes on Kongregate games. Guess that's a feature of free Unity version.

I think that if you want to print a custom header, you should do it yourself in GDScript in an autoload's _ready() function. This allows using print_rich() and the like, something that a built-in implementation may not be able to do.

you should do it yourself in GDScript in an autoload's _ready() function. This allows using print_rich()

but isn't print_rich for making texts in different colours?

but isn't print_rich for making texts in different colours?

Yes, and some people may want to use that in a header :slightly_smiling_face:

yes, I think it's preferable to use gdscript rather than integrate it directly into the editor, as that would take more time and be pointless

Superseded by #79179.


Suggestion: Group Monitored Items in one structure in standalone publisher with possibility of trigger

For our use cases we need a set of data points sampled and published in the same message.
Additional, it would be great if all the nodes are publishing when a certain endpoint changes, for example a boolean switching from false to true.
Grouping
We would like to be able to group nodes in the publishednodes.json config file of the standalone publisher.
The configuration could then look like the following with just a new section OpcNodeGroups:
[
    {
        "EndpointUrl": "opc.tcp://host.docker.internal:49322/",
        "UseSecurity": false,
        "OpcNodes": [
            {
                "Id": "ns=2;s=Machine1.Status",
                "OpcSamplingInterval": 1000,
                "OpcPublishingInterval": 5000,
                "DisplayName": "Machine1 Status"
            },
            {
                "Id": "ns=2;s=Machine1.Speed",
                "OpcSamplingInterval": 500,
                "OpcPublishingInterval": 2000,
                "DisplayName": "Machine1 Speed"
            }
        ],
        "OpcNodeGroups": [
            {
                "GroupId": "Machine1",
                "OpcSamplingInterval": 1000,
                "OpcPublishingInterval": 2000,
                "nodes": [
                    {
                        "Id": "ns=2;s=Machine1.Pressure",
                        "DisplayName": "Pressure"
                    },
                    {
                        "Id": "ns=2;s=Machine1.Temperature",
                        "DisplayName": "Temperature"
                    },
                    {
                        "Id": "ns=2;s=Machine1.TorqueA",
                        "DisplayName": "TorqueA"
                    },
                    {
                        "Id": "ns=2;s=Machine1.TorqueB",
                        "DisplayName": "TorqueB"
                    },
                    {
                        "Id": "ns=2;s=Machine1.OrderNumber",
                        "DisplayName": "OrderNumber"
                    },
                    {
                        "Id": "ns=2;s=Machine1.PartNumber",
                        "DisplayName": "PartNumber"
                    },
                    {
                        "Id": "ns=2;s=Machine1.PartFinished",
                        "DisplayName": "PartFinished"
                    }
                ]
            }
        ]
    }
]

The resulting message might then look like this the following sample. The messages asscociated the Group would then have a GroupId.
[
    {
        "NodeId": "nsu=MYServer;s=Machine1.Status",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "Machine1 Status",
        "Value": {
            "Value": 389,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "NodeId": "nsu=MYServer;s=Machine1.Speed",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "Machine1 Speed",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.Pressure",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "Pressure",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.Speed",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "Speed",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.TorqueA",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "TorqueA ",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.TorqueB",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "TorqueB",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.OrderNumber",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "OrderNumber",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.PartNumber",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "PartNumber",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    },
    {
        "GroupId": "Machine1",
        "NodeId": "nsu=MYServer;s=Machine1.PartFinished",
        "ApplicationUri": "urn:MYSERVER:UA%20Server",
        "DisplayName": "PartFinished",
        "Value": {
            "Value": -298,
            "SourceTimestamp": "2020-11-20T15:39:52.2521132Z"
        }
    }
]

Trigger for Group
It would be great if all the nodes are publishing when a certain endpoint changes, for example a boolean switching from false to true.
Therefore a Trigger in the OpcNodeGroup would be required, which defines the node for the trigger.
[
    {
        "EndpointUrl": "opc.tcp://host.docker.internal:49322/",
        "UseSecurity": false,
        "OpcNodes": [
            {
                "Id": "ns=2;s=Machine1.Status",
                "OpcSamplingInterval": 1000,
                "OpcPublishingInterval": 5000,
                "DisplayName": "Machine1 Status"
            },
            {
                "Id": "ns=2;s=Machine1.Speed",
                "OpcSamplingInterval": 500,
                "OpcPublishingInterval": 2000,
                "DisplayName": "Machine1 Speed"
            }
        ],
        "OpcNodeGroups": [
            {
                "GroupId": "Machine1",
                "OpcSamplingInterval": 1000,
                "OpcPublishingInterval": 2000,
                "Trigger": {
                    "Id": "ns=2;s=Machine1.PartFinished",
                    "Trigger": {
                        "Type": "Once",
                        "Value": true
                    }
                },
                "nodes": [
                    {
                        "Id": "ns=2;s=Machine1.Pressure",
                        "DisplayName": "Pressure"
                    },
                    {
                        "Id": "ns=2;s=Machine1.Temperature",
                        "DisplayName": "Temperature"
                    },
                    {
                        "Id": "ns=2;s=Machine1.TorqueA",
                        "DisplayName": "TorqueA"
                    },
                    {
                        "Id": "ns=2;s=Machine1.TorqueB",
                        "DisplayName": "TorqueB"
                    },
                    {
                        "Id": "ns=2;s=Machine1.OrderNumber",
                        "DisplayName": "OrderNumber"
                    },
                    {
                        "Id": "ns=2;s=Machine1.PartNumber",
                        "DisplayName": "PartNumber"
                    },
                    {
                        "Id": "ns=2;s=Machine1.PartFinished",
                        "DisplayName": "PartFinished"
                    }
                ]
            }
        ]
    }
]

This is just a proposal /feature request. I'm glad to see other options and possibilities.
Thanks,
Martin

OPC UA PubSub supports datasets, which are equivalent to the subscription (per endpoint, per tag inside endpoint, batches of 1000).  They are part of the same network message (size permitting).
Regarding triggering, this has been requested as "polled" mode, where a set of nodes are sent on a trigger.  This has nothing to do with the way OPC UA subscriptions work, but rather would leverage something like the OPC Twin and a scheduler.
A poll mode issue feature request has been added as #1934.


xsoar-tools docker update demisto-sdk version

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Replace "price per night" in booking breakdown

What's to be corrected: The "price per night" label in booking breakdown

How should it look like (screenshot or sketch):

How should it work (write use case): The breakdown should be adapted to our use case (booking parties).
Priority (tag accordingly): regular
Domain (tag accordingly): frontend
Branch: staging
Work on it

Work on staging or master (if it's urgent)
Tag with ongoing and move the card to ongoing.
Correct the default
Commit your work
Create a PR (if it's urgent) and ask for validation. Move the card to staged.
Close the issue if all the work have been done

** Validate **

Check on mobile and on desktop if the default have been correctly corrected.
If everything is working fine, move the card toaccepted column.
If the feature isn't completely implemented, re-open the issue with a comment clearly what the problem is and what is the desired result. Move the card to have issues column.

Please follow https://github.com/Whichost/frontend/wiki/Git-workflow

What have been done: We changed the translations to indicate "Per booking" instead of "Per night".
Pushed to: staging.
Tag somebody: @buckwierd
PR: NA, test on staging (https://whichost-frontend-staging.herokuapp.com/l/the-cotton-ball-cork/5c0a5516-6f5b-45b1-bfb6-22b157f77d8a).

Asking for validation:

Check on mobile and on desktop if the issue have been correctly fixed.
If everything is correct, move the card to accepted column.
If the issue isn't fixed, re-open the comment clearly what the problem is and what is the desired result.
Move the card to have issues column.
Merge (or express approval in) the corresponding PR if needed. Move the card to the launch column.

The issue has been implemented/fixed correctly.


Case Sensitive headers

Hi there.
A quick issue that I've encountered today using vegeta binary (v5.6.3 amd64). Considering the following target file:

If you proxy the requests sent by vegeta, you got something like this (Headers are sorted and Capitalized) :

I know that RFC 2616 specifies that headers should be case-insensitive, but the REST application that I'm testing is sensitive.
I understand that http.header's function add and set canonicalize headers, but is there any quick hack to make vegeta respect cases?
Thanks !

I'm sorry but adding a hack to vegeta to support non-standard HTTP behaviour doesn't make sense. Also, the code that needs patching isn't in vegeta itself but in the Go standard library.

I had this same problem once when working with a case-sensitive API (third party software). I agree that this is non-standard HTTP behaviour, but making it work wouldn't hurt vegeta and only increase it's use cases. The solution is extremely simple: http://stackoverflow.com/questions/26351716/how-to-keep-key-case-sensitive-in-request-header-using-golang

It looks like only one line needs to be changed to omit the canonicalization by Go's net/http and apply the headers with their original casing: https://github.com/tsenart/vegeta/blob/80e72220d6d9e2803004a9f47f04a8e870debe52/attack.go#L189

@GeertJohan: Thanks for digging further! OK, it seems that given how easy it is, it's worth doing it. Would you be interested in providing a patch with tests for this?

Sure I'll be able to do that, but gotta go now so it'll probably be later this week if thats okay.


DatabaseJob should not be in the Frank!Doc

❗ please do not add sensitive information in issues, you can provide extra information via email using issue number as reference ❗
Describe the issue
The DatabaseJob is a special job that users can create from the GUI, and should not be part of the XML Configuration. Therefore I would also not expect it to be part of the Frank!Doc (and XSD).
Reporter
Ricardo

To Reproduce
Steps to reproduce the behavior:

Go to https://frankdoc.frankframework.org/#!/Job/DatabaseJob
Should not be there

Screenshots
If applicable, add screenshots to help explain your problem.
Configuration
Please provide the configuration of the Pipe or Receiver with the problem.

Input
Please provide an example of the input message.
Alternatively, provide a Ladybug report.

Environment
Please go to the console of your Frank, click on 'Information' and copy-paste the results here.

Additional Environment

DBMS: [e.g. Oracle, MSSQL, MariaDB, MySql, PostgreSQL]
Browser: [e.g. Chrome, Safari, Edge, Firefox]

Additional Context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)

FrankDoc has been modified, see: https://github.com/ibissource/frank-doc/pull/120