Compiled Rust library contains symbols R doesn't like

I have been trying to build an R package that can pass R CMD check: https://github.com/clauswilke/helloextendr
This doesn't currently work, because the compiled Rust library contains symbols that R doesn't like:
* checking compiled code ... NOTE
File ‘helloextendr/libs/helloextendr.so’:
  Found non-API calls to R: ‘R_CStackLimit’, ‘R_CleanTempDir’,
    ‘R_RunExitFinalizers’, ‘Rf_initialize_R’, ‘setup_Rmainloop’

Compiled code should not call non-API entry points in R.

See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual.

I believe these are all functions that are needed to create a Rust binary calling R as a library. So we may need to take these out and put them into a separate crate, maybe called extendr-standalone or extendr-bin. Unfortunately we need these calls to run cargo test, so the tests would have to import that crate I assume.

There is no need to call any of these functions. They are not in public API and not meant to be called.

They're needed in the engine, which is needed to call R functions from a stand-alone Rust program:
https://github.com/extendr/extendr/blob/83857eccee8b0631022e5cb0eb8c6f35d78dbf38/extendr-api/src/engine.rs#L42-L73
Again, we have to distinguish between two use cases, an R package calling Rust and a Rust binary calling R.

That's right.
But the thing is, what's a possible use case for a Rust library that also functions as "a Rust binary calling R"

The sole purpose of "extendr" is to allow easy interop between R and Rust via R's C interface, so that we can write Rust code which acts as a library/package used by R.
A standalone Rusr binary which uses R for certain functionalities just seems irrelevant. After all it's "extendr" instead of "extendrust"

I disagree. At a minimum, you need this feature to be able to write Rust test code that you can run with cargo test. It's actually something I've run into with my sinab package. I had to stop writing meaningful unit tests because they all started depending on R api calls that I couldn't make from a standalone Rust binary. And then the only way to unit test is to write exported Rust functions that you can call from R and that mimic the Rust testing environment, and that's a huge overhead and annoyance.

In any case, the more I think about this the more a standalone crate for this particular functionality sounds good to me. Then people can use it when they need to and ignore otherwise. Maybe extendr-engine is the right name?

well, you're right for the testing and I haven't thought about this part. For my limited experience with R-Rust interop, I strictly limit the Rust side s.t. it solely acts as a native library that acts on native types. So it doesn't call foreign functions at all.
So the architecture I'm proposing is:

A low-level binding layer

For Rust programs calling R, we have libR-sys
For R calling Rust library, we have extendr-macro that generates bindings

A high-level translation layer

Turns a R data type to a wrapper type, which provides idiomatic interface for Rust developers. This is what I think extendr should do. And this should solely works on Rust side without crossing the FFI boundary.
For the other direction that making Rust data type usable to R, I don't is feasible.

For testing a R package written in Rust:
Crossing FFI boundary itself is "unsafe" in Rust terminology, and generally not "safe" in its literal meaning. Layering reduces the needs for such actions.
If a particular Rust function can be tested without invoking R FFI, it's preferred to not doing that at all. FFI just adds much more complications for debugging.
If something must invoke R FFI, say it has to call R to initialise certain R data, we may need to develop some testing frameworks. Instead of having a Rust test module calling R and then comes back to Rust side to finish the tests, it's probably easier to have a R program to initialise data and calls Rust.

Beyond testing, another reason you might want to call start_r in a Rust program would be to use some R libraries which don't have natural Rust equivalents.  Along the same lines as https://www.tweag.io/blog/2017-07-10-haskell-r-best-both-worlds/

A general principle of software engineering I've learned over the years is to not dismiss other people's use cases, even if they seem strange or incorrect to you. There's usually some other perspective that we haven't fully appreciated or thought through. If people want to call R from Rust standalone binaries, and if it's technically possible to do so, we should provide this feature, as long as it doesn't interfere with use cases that don't require it. Moving the engine into a separate crate accomplishes this, as far as I can see.

Beyond testing, another reason you might want to call start_r in a Rust program would be to use some R libraries which don't have natural Rust equivalents.  Along the same lines as https://www.tweag.io/blog/2017-07-10-haskell-r-best-both-worlds/

@dasmoth I've thought about this possibility. But many good R package usually are implemented in C or C++. So in many cases it's easier to call those libraries from Rust, without the indirection of going through R.

I have created a PR (#50) that separates out the extendr engine from the extendr api.


Error, or clarity needed - "dedicated Azure Active Directory warehouse"

The section of this doc below does not make sense. What is it referring to when it says a "dedicated Azure Active Directory Warehouse"? I've been digging through the other docs to try to read between the lines as to what this means, but I nor the others I've asked can decipher it.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1cf570be-87ad-3bd3-545f-ad713cf146f1
Version Independent ID: 7d9dd7db-fa1d-4c7a-61a1-cb9c5d68d516
Content: Connect to Tableau - Azure Databricks
Content Source: databricks/integrations/bi/tableau.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@matthansen0  Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

Thanks for your dedication to our documentation. Unfortunately, we have been unable to review your issue and apologize for the delayed response. The requested updates have not yet been made. The timeline for resolution varies based on resourcing. We've created an internal work item (DOC-7154) to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary.
#please-close


test brew HEAD installs

but allow failures
currently failing

What's this? We get very long build times with it.
See https://travis-ci.org/tesseract-ocr/tesseract/builds/232993174
@zdenop @stweil @amitdo

all this does it show you that the patches that are used in brew to build tesseract from source aren't up to date.
the long build time looks like an anomaly, try killing the travis process and restart it

That new test now passes without errors (the brew formula for tesseract was fixed). Nevertheless building Tesseract with brew takes some time, so this test adds about half an hour to the Travis test time for each pull request or update of a branch. I wonder whether that's reasonable.


Cannot Build in VS Code with Ninja and Clang

Brief Issue Summary
CMake Tools doesn't seem to be able to configure my project properly when using a CMakePreset.json that specificies Ninja and Clang.
My CMakePresets.json:
{
  "version": 6,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 25
  },
  "configurePresets": [
    {
      "name": "default",
      "hidden": true,
      "binaryDir": "${sourceDir}/build/${presetName}",
      "generator": "Ninja Multi-Config"
    },
    {
      "name": "x64-windows",
      "displayName": "MSVC x64",
      "description": "Default build using Ninja generator",
      "inherits": "default",
      "cacheVariables": {
        "BUILD_SHARED_LIBS": "ON",
        "LOGGING_BUILD_TESTS": "ON",
        "CMAKE_CXX_COMPILER": "cl.exe",
        "CMAKE_C_COMPILER": "cl.exe"
      },
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
      }
    },
    {
      "name": "x64-clang-windows",
      "inherits": "x64-windows",
      "displayName": "Clang x64",
      "description": "This build is only available on Windows",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER" : "clang++.exe",
        "CMAKE_C_COMPILER": "clang.exe"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "x64-windows-debug",
      "displayName": "MSVC x64 Debug",
      "configurePreset": "x64-windows",
      "configuration": "Debug"
    },
    {
      "name": "x64-windows-release",
      "displayName": "MSVC x64 Release",
      "configurePreset": "x64-windows",
      "configuration": "Release"
    },
    {
      "name": "x64-windows-clang-debug",
      "displayName": "Clang x64 Debug",
      "configurePreset": "x64-clang-windows",
      "configuration": "Debug"
    },
    {
      "name": "x64-windows-clang-release",
      "displayName": "Clang x64 Release",
      "configurePreset": "x64-clang-windows",
      "configuration": "Release"
    }
  ]
}

The error output when configuring (I've omitted certain paths for privacy reasons)
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" -DCMAKE_CXX_COMPILER=clang++.exe -DCMAKE_C_COMPILER=clang.exe -DBUILD_SHARED_LIBS=ON -DLOGGING_BUILD_TESTS=ON -S<src> -B<src>/build/x64-clang-windows -G "Ninja Multi-Config"
[cmake] -- The CXX compiler identification is Clang 16.0.6 with GNU-like command-line
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - failed
[cmake] -- Check for working CXX compiler: C:/Program Files/LLVM/bin/clang++.exe
[cmake] CMake Error at C:/Program Files/CMake/share/cmake-3.27/Modules/CMakeTestCXXCompiler.cmake:60 (message):
[cmake]   The C++ compiler
[cmake]
[cmake]     "C:/Program Files/LLVM/bin/clang++.exe"
[cmake]
[cmake]   is not able to compile a simple test program.
[cmake]
[cmake]   It fails with the following output:
[cmake]
[cmake]     Change Dir: '<src>/build/x64-clang-windows/CMakeFiles/CMakeScratch/TryCompile-14cney'
[cmake]
[cmake]     Run Build Command(s): C:/ProgramData/chocolatey/bin/ninja.exe -v cmTC_c1caf
[cmake]     [1/2 15.6/sec ?/sec]C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -DCMAKE_INTDIR=\"Debug\"  -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -MD -MT CMakeFiles/cmTC_c1caf.dir/Debug/testCXXCompiler.cxx.obj -MF CMakeFiles\cmTC_c1caf.dir\Debug\testCXXCompiler.cxx.obj.d -o CMakeFiles/cmTC_c1caf.dir/Debug/testCXXCompiler.cxx.obj -c <src>/build/x64-clang-windows/CMakeFiles/CMakeScratch/TryCompile-14cney/testCXXCompiler.cxx
[cmake]     [2/2 8.8/sec 12.2/sec]cmd.exe /C "cd . && C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -fuse-ld=lld-link -nostartfiles -nostdlib -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -Xlinker /subsystem:console CMakeFiles/cmTC_c1caf.dir/Debug/testCXXCompiler.cxx.obj -o Debug\cmTC_c1caf.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:Debug\cmTC_c1caf.lib -Xlinker /pdb:Debug\cmTC_c1caf.pdb -Xlinker /version:0.0   -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames  && cd ."
[cmake]     FAILED: Debug/cmTC_c1caf.exe
[cmake]     cmd.exe /C "cd . && C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -fuse-ld=lld-link -nostartfiles -nostdlib -O0 -g -Xclang -gcodeview -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -Xlinker /subsystem:console CMakeFiles/cmTC_c1caf.dir/Debug/testCXXCompiler.cxx.obj -o Debug\cmTC_c1caf.exe -Xlinker /MANIFEST:EMBED -Xlinker /implib:Debug\cmTC_c1caf.lib -Xlinker /pdb:Debug\cmTC_c1caf.pdb -Xlinker /version:0.0   -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames  && cd ."
[cmake]     lld-link: error: <root>: undefined symbol: mainCRTStartup
[cmake]     clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[cmake]     ninja: build stopped: subcommand failed.
[cmake]
[cmake]
[cmake]
[cmake]
[cmake]
[cmake]   CMake will not be able to correctly generate this project.
[cmake] Call Stack (most recent call first):
[cmake]   CMakeLists.txt:3 (project)
[cmake]
[cmake]
[cmake] -- Check for working CXX compiler: C:/Program Files/LLVM/bin/clang++.exe - broken
[cmake] -- Configuring incomplete, errors occurred!

CMake Tools Diagnostics
{
  "os": "win32",
  "vscodeVersion": "1.81.1",
  "cmtVersion": "1.15.31",
  "configurations": [
    {
      "folder": "e:\\Repositories\\xLogging",
      "cmakeVersion": "3.27.4",
      "configured": true,
      "generator": "Ninja Multi-Config",
      "usesPresets": true,
      "compilers": {
        "C": "cl.exe",
        "CXX": "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.37.32822/bin/Hostx86/x86/cl.exe"
      }
    }
  ],
  "cpptoolsIntegration": {
    "isReady": true,
    "hasCodeModel": true,
    "activeBuildType": "Debug",
    "buildTypesSeen": [
      "Debug",
      "Release",
      "RelWithDebInfo"
    ],
    "requests": [
      "file:///e%3A/Repositories/xLogging/include/logging/logger.h",
      "file:///e%3A/Repositories/xLogging/tests/src/logging.cpp"
    ],
    "responses": [
      {
        "uri": "file:///e%3A/Repositories/xLogging/tests/src/logging.cpp",
        "configuration": {
          "includePath": [
            "<omitted>/include",
            "<omitted>/build/x64-windows",
            "<omitted>/build/x64-windows/_deps/doctest-src"
          ],
          "defines": [],
          "compilerPath": "c:/program files/microsoft visual studio/2022/professional/vc/tools/msvc/14.37.32822/bin/hostx86/x86/cl.exe",
          "compilerArgs": [],
          "compilerFragments": [
            "/DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -std:c++latest -MDd"
          ]
        }
      }
    ],
    "partialMatches": [],
    "targetCount": 3,
    "executablesCount": 1,
    "librariesCount": 2,
    "targets": [
      {
        "name": "Logging",
        "type": "SHARED_LIBRARY"
      },
      {
        "name": "LoggingTests",
        "type": "EXECUTABLE"
      },
      {
        "name": "doctest_with_main",
        "type": "STATIC_LIBRARY"
      }
    ]
  },
  "settings": [
    {
      "communicationMode": "automatic",
      "useCMakePresets": "auto",
      "configureOnOpen": null
    }
  ]
}

Debug Log
No response
Additional Information
No response

@DeveloperPaul123 Based on the output that you pasted, it seems like VS Code is failing to find the relevant tools. In VS Code, we don't currently have a story for automatically installing any tools for you, in the CMake experience. You'll have to make sure these are installed yourself and either directly referenced or available on PATH.
Could you ensure that any necessary tools are available?

@gcampbell-msft Sorry, I must be missing something, but what gives you the clue that I'm missing some tools? I have LLVM installed and all the relevant LLVM tools are available on my path.
I should note that the exact same project/setup works just fine in Visual Studio when I open the project using the open folder/CMake feature.

If you're referring to lld-link not being available, this is the output on Poweshell when I run lld-link --version

Are all of the items that are mentioned in your CMakePresets file able to be found on a terminal in VS Code?
cl.exe, clang++.exe, etc.
Thanks!

Hi @gcampbell-msft
Yes it seems that are are available in my VS Code terminal:

@DeveloperPaul123 Try adding this to your preset:
      "architecture": {
        "value": "x64",
        "strategy": "external"
      },

@quyykk This fixed it! Thank you

@quyykk Thanks for that suggestion! Since this fixed the issue, closing.


[desktop_window_webview] When closing webview window, it also closes main window on Linux

When closing the webview window created by desktop_window_webview, it also closes the main window.  Which it should'nt do it.
Expected behavior
When closing webview window, it should not interrupt the main window.

Flutter 3.10.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision d3d8effc68 (6 days ago) • 2023-05-16 17:59:05 -0700
Engine • revision b4fb11214d
Tools • Dart 3.0.1 • DevTools 2.23.1

Hi, I also met the same problem, do not know how to avoid

+1

this should be fixed in version 0.2.1. closing
https://pub.dev/packages/desktop_webview_window/changelog
feel free to reopen if not fixed.

desktop_multi_window  啥时候发布呢

this should be fixed in version 0.2.1. closing
https://pub.dev/packages/desktop_webview_window/changelog
feel free to reopen if not fixed.


python3Packages.wikipedia-api: init at 0.6.0

Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 258044 run on x86_64-linux 1

2 packages built:

python310Packages.wikipedia-api
python311Packages.wikipedia-api

@GrahamcOfBorg build python310Packages.wikipedia-api python311Packages.wikipedia-api


More dynamic group exclusion rules for inline permissions

/**
 * Configuration variables and values, for this settings form.
 *
 * @var array
 */
$config_vars = [
    ['permissions', 'my_var', 'excluded_groups' => [-1]],
];

Why not parse the config before and pass it to the parameter?
		// If we have inline permissions we need to prep them.
		if (!empty($inlinePermissions) && allowedTo('manage_permissions'))
		{
			// We'll need to initialize inline permissions sub-form
			require_once(SUBSDIR . '/Permission.subs.php');
			$permissions_excluded = isset($context['permissions_excluded']) ? $context['permissions_excluded'] : array()
			if (isset($config_var['excluded_groups']))
			{
				$permissions_excluded = array_merge($permissions_excluded, $config_var['excluded_groups']);
			}
			InlinePermissions_Form::init_inline_permissions($inlinePermissions, isset($context['permissions_excluded']) ? $context['permissions_excluded'] : array());
		}

That makes it more rigid. The goal here is to have different exclusions per permission.

Sorry, the code above was wrong, now it's fixed.
Yes, I think I got it, but I'm not entirely sure, so let me try to understand. ;D
You want to be able to specify for each single setting if a group can have the permission or not.
I was just thinking of re-using the already existing $excluded_groups parameters by merging for each config the $context with the parameter specified in the config array:
            $permissions_excluded = isset($context['permissions_excluded']) ? $context['permissions_excluded'] : array()
            if (isset($config_var['excluded_groups']))
            {
                $permissions_excluded = array_merge($permissions_excluded, $config_var['excluded_groups']);
            }
            InlinePermissions_Form::init_inline_permissions($inlinePermissions, $permissions_excluded);
________________________________________________________________________________^^^^^^^^^^^^^^^^^^^^^
// This was broken in the above code
        }

$permissions_excluded is specific for that particular $config.
Let's try an example.
My version:
$context['permissions_excluded'] = array(-1, 0);

$config_vars = [
    ['permissions', 'my_var', 'excluded_groups' => [2]],
];

$permissions_excluded = array(-1, 0, 2);
init_inline_permissions($permissions, $permissions_excluded)

and the three groups will not be there.
Your version:
$context['permissions_excluded'] = array(-1, 0);
init_inline_permissions($permissions, $context['permissions_excluded'])

$config_vars = [
    ['permissions', 'my_var', 'excluded_groups' => [2]],
];

----------------
foreach ($permissions as $permission)
{
	foreach ($excluded_groups as $group)
	{
		...
	}
	foreach ($permission['excluded_groups'] as $group)
	{
		...
	}
}

and the net result is the three groups will not be shown.
 ;)

Your comment left me confused. :/
The idea here is to have unique exclusions per permission.
$config_vars = [
	['permissions', 'my_var', 'excluded_groups' => [2]],
	['permissions', 'my_var2', 'excluded_groups' => [0, 2]],
];

Forget $permissions_excluded since that excludes groups across all permissions.

/me is a master of confusion. :stuck_out_tongue:
Give me a day or so, I'm putting together a test that will work as an example. ;)

kek
On Sun, Aug 21, 2016 at 12:52 AM, emanuele45<EMAIL_ADDRESS>wrote:

/me is a master of confusion. 😛
Give me a day or so, I'm putting together a test that will work as an
example. ;)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/elkarte/Elkarte/pull/2658#issuecomment-241244001, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAaWt6Okb3OQjUhnU6Q0x6-hNyDLZ2n_ks5qiAO2gaJpZM4JoH_6
.

Since the stuff I put together doesn't make things easier to understand (it's just a bit of reorganization), I wrote three gists that may make things less foggy.
The current version of the code:
https://gist.github.com/emanuele45/e66fcd6724975a118c59317b59271aa4
What I think I understood your code does:
https://gist.github.com/emanuele45/c54fdaacb21a8d2529c8c734fceb085e
And finally what I was suggesting:
https://gist.github.com/emanuele45/6915fe4403f49952b8c6d03f1667aec1
Does it make more sense?

The current code and what you are suggesting  net the same result: all permissions have the same exclusion rules.
I'll build a test case. I actually haven't tested your code, even though I'm pretty sure it doesn't do what I'm after...

Dummy input:
$config_vars = [
    ['permissions', 'my_var'],
    ['permissions', 'my_var_2', 'excluded_groups' => [-1, 0]],
    ['permissions', 'my_var_3'],
    ['permissions', 'my_var_4', 'excluded_groups' => [-1]],
    ['permissions', 'my_var_5'],
];

Output of my code:
array (
  -1 =>
  array (
    'id' => -1,
    'name' => 'Guests',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  0 =>
  array (
    'id' => 0,
    'name' => 'Regular Members',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_2
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_3
array (
  -1 =>
  array (
    'id' => -1,
    'name' => 'Guests',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  0 =>
  array (
    'id' => 0,
    'name' => 'Regular Members',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_4
array (
  0 =>
  array (
    'id' => 0,
    'name' => 'Regular Members',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_5
array (
  -1 =>
  array (
    'id' => -1,
    'name' => 'Guests',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  0 =>
  array (
    'id' => 0,
    'name' => 'Regular Members',
    'is_postgroup' => false,
    'status' => 'off',
  ),
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)```

Your code:

```my_var
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_2
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_3
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_4
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)

my_var_5
array (
  2 =>
  array (
    'id' => '2',
    'name' => 'Global Moderator',
    'is_postgroup' => false,
    'status' => 'off',
  ),
)```

How I implemented it: https://github.com/elkarte/Elkarte/compare/development...live627:patch-1#diff-3171122967dd591af9349fb5fe92777bL210

I guess I was drunk before... or maybe not enough. xD


Fix doc builds

@thazhemadam do you know what's happening with

Refusing to continue execution; pipeline '.buildkite/aggregate.yml' fails treehash signature check! You may need to re-run cryptic/bin/sign_treehashes!

@thazhemadam do you know what's happening with

Refusing to continue execution; pipeline '.buildkite/aggregate.yml' fails treehash signature check! You may need to re-run cryptic/bin/sign_treehashes!

Yes. Fixed in https://github.com/SciML/SciMLDocs/pull/231.


WIP: Update neovim-qt from 0.2.15 to <IP_ADDRESS>

Motivation for this change
It didn’t update for quite a while (since 2019).
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Currently it fails to compile with this end of the log (trying with nix-shell --pure -E 'let p=import ./. {}; in p.mkShell {buildInputs=[p.neovim-qt];}' --run nvim-qt):
make  -f test/CMakeFiles/check.dir/build.make test/CMakeFiles/check.dir/build
make[3]: Entering directory '/build/source/build'
cd /build/source/build/test && /nix/store/70y1dj79fq7f6486y8clrgngrcfr303q-cmake-3.18.2/bin/ctest
Test project /build/source/build/test
      Start  1: tst_neovimobject
      Start  2: tst_neovimconnector
      Start  3: tst_callallmethods
      Start  4: tst_encoding
      Start  5: tst_msgpackiodevice
      Start  6: tst_input_mac
      Start  7: tst_input_unix
      Start  8: tst_input_win32
 1/11 Test  #2: tst_neovimconnector ..............Child aborted***Exception:   0.10 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

      Start  9: tst_input_common_mac
 2/11 Test  #4: tst_encoding .....................Child aborted***Exception:   0.11 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

      Start 10: tst_input_common_unix
 3/11 Test  #1: tst_neovimobject .................Child aborted***Exception:   0.12 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

      Start 11: tst_input_common_win32
 4/11 Test  #7: tst_input_unix ...................Child aborted***Exception:   0.12 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

 5/11 Test  #3: tst_callallmethods ...............Child aborted***Exception:   0.12 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

 6/11 Test  #6: tst_input_mac ....................Child aborted***Exception:   0.13 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

 7/11 Test  #8: tst_input_win32 ..................Child aborted***Exception:   0.13 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

 8/11 Test  #5: tst_msgpackiodevice ..............Child aborted***Exception:   0.15 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

 9/11 Test  #9: tst_input_common_mac .............Child aborted***Exception:   0.08 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

10/11 Test #10: tst_input_common_unix ............Child aborted***Exception:   0.08 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

11/11 Test #11: tst_input_common_win32 ...........Child aborted***Exception:   0.08 sec
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

0% tests passed, 11 tests failed out of 11

Total Test time (real) =   0.20 sec

The following tests FAILED:
          1 - tst_neovimobject (Child aborted)
          2 - tst_neovimconnector (Child aborted)
          3 - tst_callallmethods (Child aborted)
          4 - tst_encoding (Child aborted)
          5 - tst_msgpackiodevice (Child aborted)
          6 - tst_input_mac (Child aborted)
          7 - tst_input_unix (Child aborted)
          8 - tst_input_win32 (Child aborted)
          9 - tst_input_common_mac (Child aborted)
         10 - tst_input_common_unix (Child aborted)
         11 - tst_input_common_win32 (Child aborted)
Errors while running CTest
make[3]: *** [test/CMakeFiles/check.dir/build.make:76: test/CMakeFiles/check] Error 8
make[3]: Leaving directory '/build/source/build'
make[2]: *** [CMakeFiles/Makefile2:978: test/CMakeFiles/check.dir/all] Error 2
make[2]: Leaving directory '/build/source/build'
make[1]: *** [CMakeFiles/Makefile2:985: test/CMakeFiles/check.dir/rule] Error 2
make[1]: Leaving directory '/build/source/build'
make: *** [Makefile:554: check] Error 2
builder for '/nix/store/npncywa24r4da94xljqmncw9wqknrrkr-neovim-qt-unwrapped-<IP_ADDRESS>.drv' failed with exit code 2
cannot build derivation '/nix/store/5vpxbg06vnrsm5kjvbz7jmvg9p5jck5w-neovim-qt-<IP_ADDRESS>.drv': 1 dependencies couldn't be built
error: build of '/nix/store/5vpxbg06vnrsm5kjvbz7jmvg9p5jck5w-neovim-qt-<IP_ADDRESS>.drv' failed

Turned off cmake tests, not sure if it is the right thing to do but it fixes the build. And I can run the app with this command:
nix-shell --pure -E 'let p=import ./. {config.useSandboxx=true;}; in p.mkShell {buildInputs=[p.neovim-qt];}' --run nvim-qt

And this newer version actually fixes one of the issues I just reported today:
https://github.com/equalsraf/neovim-qt/issues/755

In case someone doesn’t have time to wait here how I overridden it for myself:
https://github.com/unclechu/nixos-config/commit/4f3bf5540dc8384c9431f77e8bd4bcb8c579b861


docs: Update index page

Just an idea of things which could be added on the home page to get a super quick idea of what mise can do.
This is all in Markdown, but it could be possible to build something a bit prettier, more like on the https://vite.dev homepage (obviously not as advanced, but for example, presenting some information into two columns would help)

Maybe something like this could work well:

@jdx Would you be interested in having something like in the screenshot?

yeah I think that's excellent, the landing page is definitely too spartan at the moment

will re-open another later


New Obstacle Rules

** Fly Casual Release Version **
all
Describe the bug
Old obstacle rules are still implemented.
New Rules should be:
If a ship moves through or overlaps an obstacle, it suffers an effect based on
the type of obstacle after resolving its move:
• Asteroid: The ship suffers one  damage.  On a
hit or crit result, the ship suffers an additional damage.
• Blaze: Roll one attack die. On a hit or crit result, the ship suffers one
damage; on a eyeball result, it gains one stress token. Then the ship
skips its Perform Action step this round.
• Debris Cloud: The ship is assigned one stress token.  On a hit result, the ship suffers one  damage. On a crit result, the
ship suffers one crit damage.
• Electro-Chaff Cloud: The ship breaks all its locks and all locks on it
and then is assigned one jam token.  On a hit or crit
result, the ship is assigned one stress token.
• Gas Cloud: The ship breaks all its locks and all locks on it and then is
assigned one strain token.  On a hit result, the ship
is assigned one ion token. On a crit result, the ship is assigned three ion
tokens.
• Loose Cargo: The ship is assigned one strain token.  On a hit or crit result, the ship is assigned one stress token.
• Spare Parts: The ship is assigned one strain token.  On a hit or crit Result, the ship is assigned one stress token.
• If a ship ends a maneuver overlapping an obstacle, it skips its Perform
Action step.
Before a ship moves, if it is at range 0 of an obstacle, it does not suffer
the effects of that obstacle unless it overlaps that obstacle again.
While a ship is at range 0 of an obstacle it may suffer different effects.
Gas Cloud: The ship cannot acquire locks and cannot be locked. The
ship cannot perform attacks.
Gas clouds do not allow to turn 1 blank to an evade when obstructing a shot.

Also, please implementmthe pride of mandalore obstacle shapes.

Pride of Mandalore asteroids - commit 770b968.
Validated Asteroid and Debris Clouds, appear to be working as intended (@quall3, please confirm that these two do work as expected).

Created new Loose Cargo debris type for Loose Cargo and Spare Parts. Set these up to be spawned by the appropriate upgrade.
Gas Clouds now break locks and prevent new locks while landed on them.

Blaze and Electro-Chaff cloud will be incorporated into the appropriate upgrades work. Closing this issue as remaining work has been completed.


documentation of whitespace handling

Is there any more complete documentation of the whitespace handling?  I'm trying to parse a list of regexps that are surrounded by containing keywords (think "1.0 2.0 3.0"), with mandatory spaces separating them. Repeat doesn't work, because it accepts a sequence w/o any space, and if I add a space to the regex it fails to match the last item if there's no space after it.  List with delimiter=" " doesn't work either.  If I look for repetition of a Keyword instead of a Regex it behaves as expected, presumably because keywords have to be separated by something.  More explicit information on where whitespace is or isn't required would be helpful to figure out how to do this, I think.  E.g. what exactly needs to separate keywords? whitespace? word breaks\b?  Is it true that List delimiters can't be whitespace?
As a secondary question, what's the best way to match what I need (a list of regexps with spaces as delimiters, but no space required after the final one)?  Must I do Sequence(Repeat(Regex(re + '\s')), re) ?

by manner of followup, should Sequence(Repeat(r_float, mi=0), r_float) be the same as Repeat(r_float), where r_float = Regex('...') ?  I would have thought yes, but the second matches strings that the first does not.  Is that a bug that I should open a separate issue for, or is it expected?


chore(helm): bumping app version to 4.1.0 in helm chart

appVersion: 4.0.1 -> 4.1.0
chart version: 0.13.0 -> 0.13.1
For anyone waiting for this to be merged: check this. Be wary tho: sometimes breaking changes might occur in chart update.

don't merge.
Docker images are not yet released (4.1.0 and 4.1.0-dev).

blocking issue: https://github.com/apache/superset/issues/30919

Marking as draft until the docker image is published.

@lodu please rebase and update the chart version to 0.13.2, as I needed to bump the version here to 0.13.1: #30924


Update nanoid extension

Description

I have updated the nanoid command to optionally take in a length param so that you can get a different length nanoid
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Thanks for he update @mikevalstar
@roelvan do you want to check this?

Looks good to me!


[Facebook] Can't download stories

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.10.13 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Bulgaria
Provide a description that is worded well enough to be understood
Hello,
I'm trying to download this story https://www.facebook.com/stories/2910336895647666 but it's not working.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.facebook.com/stories/2910336895647666']
[debug] User config "C:\Users\ivo\AppData\Roaming\yt-dlp\config.txt": ['-f', 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', '-i', '-o', 'D:/Courses/%(title)s.%(ext)s', '--no-mtime']
[debug] Encodings: locale cp1251, fs utf-8, pref cp1251, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[4a601c9ef] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2021-02-02-git-2367affc2c-full_build-www.gyan.dev, ffprobe 2021-02-02-git-2367affc2c-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.0.7, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1890 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: f4da8a97b3a3a2b48b5effce680444668857b57d11de65a7ee6218c8f52d3ea3
yt-dlp is up to date<EMAIL_ADDRESS>[generic] Extracting URL: https://www.facebook.com/stories/2910336895647666
[generic]<PHONE_NUMBER>647666: Downloading webpage
[redirect] Following redirect to https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666
[generic] Extracting URL: https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666
[generic] login.php?next=https://www.facebook: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] login.php?next=https://www.facebook: Extracting information
[debug] Looking for embeds
[redirect] Following redirect to https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666&_fb_noscript=1
[generic] Extracting URL: https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666&_fb_noscript=1
[generic] login.php?next=https://www.facebook: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] login.php?next=https://www.facebook: Extracting information
[debug] Looking for embeds
ERROR: Unsupported URL: https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666&_fb_noscript=1
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1567, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1702, in __extract_info
  File "yt_dlp\extractor\common.py", line 715, in extract
  File "yt_dlp\extractor\generic.py", line 2577, in _real_extract
yt_dlp.utils.UnsupportedError: Unsupported URL: https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fstories%2F2910336895647666&_fb_noscript=1

Duplicate of #5763


User Profile Modal: Move "Manage user" modal into "Full profile" modal

This PR merges the manage user modal into the full profile modal as a tab. This tab is only visible to admins and allows admins to make edits to a user's profile as well as deactivate the user. Also adds an edit button at the top of the full profile modal that switches to the manage user tab (only visible to admins).
The "Manage user" modal is still being used to edit users from Settings -> Organization -> Users. Should this use the full profile modal as well? Also, haven't written any tests yet for this modal. Noticed admins are allowed to edit owner's profile besides the role. Is this intended?
Fixes: (https://github.com/zulip/zulip/issues/21806)

Screenshots and screen captures:
Unauthorized Views

Authorized Views
https://user-images.githubusercontent.com/38874449/165224515-f37228b4-3b3e-4b43-a464-059ac6c44f65.mov
https://user-images.githubusercontent.com/38874449/165225059-8f526be9-5e77-4915-90d0-2832f14614f7.mov
Self-review checklist

[X] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[X] Explains differences from previous plans (e.g., issue description).
[X] Highlights technical choices and bugs encountered.
[X] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[X] Each commit is a coherent idea.
[X] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[X] Visual appearance of the changes.
[X] Responsiveness and internationalization.
[X] Strings and tooltips.
[X] End-to-end functionality of buttons, interactions and flows.
[X] Corner cases, error conditions, and easily imagined bugs.

@rayy-lo thanks for working on this!  It looks like a great start; I don't have any high-level concerns with the approach (but noted a bunch of small ways to improve this).
I'm not sure whether it makes sense to start by squashing the commits -- generally we structure commit series as a set of atomic changes that are each individually correct, which is a different style than you have here. Check out the Zulip commit message guidelines for more details: https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

@timabbott I added a test to the extracted function, but not quite sure I approached it correctly. Whenever you have time, could provide some feedback? Also, could the templates:, user_profile: and popover: commits have been squashed into one? Thanks for taking the time to review!

Closing in favor of https://github.com/zulip/zulip/pull/22853, which is a more current version of this PR.


Indicate static members

.NET, C#

Indicate which members are static
Consider grouping of of static/non-static members

⚠ Idea migrated from UserVoice
Created By: dev
Created On: 2017/12/13 11:36:39 +0000
Votes at Migration: 7
Supporters at Migration: 7

#log-suggestion @dend

🚀 ATTENTION: Internal request logged.

Duplicate of #469


Added totalAllowedGasPerSec to throttle_definitions.proto

Signed-off-by: Stoyan Panayotov<EMAIL_ADDRESS>Description:

Related issue(s):
Fixes #
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

LGTM pending change to snake_case


Web - Expense - Default tax rate and first tag item are not highlighted

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.61-0
Reproducible in staging?: y
Reproducible in production?: n
Issue reported by: Applause - Internal Team
Action Performed:
Precondition: Tag and Tax features should be enabled in the workspace

Navigate to a workspace chat
Click on '+' > 'Request money' > 'Manual' > Enter amount & click 'Next'
Click on 'Show more' > 'Tag' > back navigate > click on 'Tax'

Expected Result:
Highlight should be applied to the first item on 'Tag' and the default tax option
Actual Result:
Highlight is not applied to the first item on 'Tag' and the default tax option
Workaround:
n/a
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/43b9f862-d89b-4a0e-9e69-8cad190b3995
View all open jobs on GitHub

We think that this bug might be related to #wave-collect - Release 1

I think it is caused by this PR

I don't think this is a blocker. However we should fix this. cc @teneeto @rezkiy37 @alitoshmatov @MonilBhavsar since it seems to come from https://github.com/Expensify/App/pull/33927. @teneeto can you work on a fix please?

Tax is fixed with TS migration PR. Will fix for tags

When creating a new money request, category and tag are not selected by default. Tax is selected by default.
When clicking on category or tag, none of the item(first or selected) from TagPicker or CategoryPicker is highlighted
When clicking on tax, the default taxRate is highlighted.
So, this is working as expected!
https://github.com/Expensify/App/assets/32012005/b9cb045a-a233-454d-8a3d-0cf2af119721


[Bug]: Can't duplicate product

I received an error when trying to duplicate the product.
URL: https://youtu.be/v8jP22moSD8

Thanks for reporting it, the issue was resolved in #803


Add buffer time for app launch in Cordova mode

BUG=https://crosswalk-project.org/jira/browse/CTS-1803

@haoxli, PTAL.

LGTM


Flutter Doctor [!] Proxy Configuration

When I run flutter doctor i have this warning. How do I solve it?
[!] Proxy Configuration
• HTTP_PROXY is set
! NO_PROXY is not set

@aljibbs Please try to add export NO_PROXY=localhost,<IP_ADDRESS> to ~/.bash_profile.

Done. Warning solved. Thanks.

hello I have the same problem and did not understand how it was solved.

in which file I place this code "export NO_PROXY = localhost, <IP_ADDRESS>a ~ / .bash_profile."

for window you can use 'set' on cmd
set https_proxy=hostname:port
set NO_PROXY=hostname:port

@BondarenkoStas how about using zsh?
I have set the no_proxy in .zshrc, .profile, /etc/profile, but doesn't work in IDEA: Tools -> Flutter -> flutter doctor

set NO_PROXY=localhost,<IP_ADDRESS>  has no effect in new cmd window, how to save this configuration permanently?


⚠ SolarQuery has degraded performance

In 517d687, SolarQuery ($SOLARQUERY_URL) experienced degraded performance:

HTTP code: 200
Response time: 1000 ms

Resolved: SolarQuery performance has improved in b96be88 after 10 minutes.


[SPARK-41128][CONNECT][PYTHON] Implement DataFrame.fillna  and DataFrame.na.fill

What changes were proposed in this pull request?
Implement DataFrame.fillna  and DataFrame.na.fill
Why are the changes needed?
For API coverage
Does this PR introduce any user-facing change?
yes, new methods
How was this patch tested?
added UT

cc @HyukjinKwon @cloud-fan @amaliujia @grundprinzip

LGTM

merged into master, thank you guys


Refresh Token with Union-Type Returning Handler

Hi,
in my application, I have a login endpoint using Union-Type Returning Handler, so my class is:
sealed class Login : Endpoint<
    LoginRequest,
    Results<Ok<LoginResponse>, UnauthorizedHttpResult>> {

    ...

    public override async Task<Results<Ok<LoginResponse>, UnauthorizedHttpResult>> ExecuteAsync(LoginRequest req, CancellationToken ct)
    {
        ...
    }

    ...

}

I have an issue when I try to use JWT Refresh Token Service to implement my refresh token endpoint and logic: the refresh endpoint response type can't be converted to login endpoint response type, because it's a union of typed result.
Is there a way to do something similar?
For the moment, I have to code both login and refresh endpoint independently, without using the token service.

Ok, thank you for the quick response!

i'll leave this issue open so that someone can look in to implementing it.
thanks!

@tcortega i've forgotten the details of how this was implemented, and don't have the capacity to look in to it anytime soon. if you'd like to have a crack at a PR, that would be great.


fix: Bugfix for duplicated application throws page not found error if opened in view mode

Description

When the application is cloned and the user tries to open the app in view mode directly it fails with a page not found error. This PR assumes that after duplicate application action user won't be having the control over published app version so it's safe to assume both published and unpublished versions should be in sync. To address this application will be automatically published so that users won't face the page not found error even if opened in view mode.

Fixes #8697 #7799 #7965
Type of change

Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

JUnit

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=7965


feat: arrow backed log replay and table state

Description
This is still very much a work in progress, opening it up for visibility and discussion.
Finally I do hope that we can make the switch to arrow based log handling. Aside from hopefully advantages in the memory footprint, I also believe it opens us up to many future optimizations as well.
To make the transition we introduce two new structs

Snapshot - a half lazy version of the Snapshot, which only tries to get Protocol & Metadata actions ASAP. Of course these drive all our planning activities and without them there is not much we can do.
EagerSnapshot - An intermediary structure, which eagerly loads file actions and does log replay to serve as a compatibility laver for the current DeltaTable APIs.

Will update this, as the implementation progresses.
Related Issue(s)

Documentation

@roeap This looks great! I initial had concerns about on how to update from one snapshot to another and the potential costs. Assuming checkpoints are written every 10 commits, the total of the overall LogSegment structure will be fairly small so the cost of cloning a segment will be relatively cheap.
Seems like the primary trade off with this approach is a significant redaction in overall memory footprint but it comes with a potential of additional reads to the underlying store.

Seems like the primary trade off with this approach is a significant redaction in overall memory footprint but it comes with a potential of additional reads to the underlying store.

Exactly @Blajda. Especially for the non-query cases (vacuum etc) we may see more reads, and if not using the EagerSnapshot we may also do some duplicate reading. In this PR we are not yet leveraging some more optimization that can be done with regards to that.
As you mentioned, if users take care of their tables (e.g. checkpoints...) then reading from parquet is the most interesting thing. Thus, the main thing I want to do as a immediate follow up, is to introduce some optimizations for parquet reads, which I hope will come in handy for the work in #2006 - this can make reads from checkpoint files very efficient.

@roeap I think you can fix the python errors if you change use_compliant_nested_type=True for the pyarrow writer.

I am going to merge this because we need it merged, main is already broken :unamused:  So the repair test will need to get fixed shortly


if i use zoom.translateExtent i get NaN for event.transform.x and event.transform.y

Hello,
I tried to wrap my head around this even looking at the d3 code to try to understand if i've been doing something wrong.
But i couldn't find any cause of such behaviour.
this.zoom = d3.zoom()
        .scaleExtent([1, Infinity])
        .translateExtent([0, 0], [this.width, this.chartHeight])
        .on('zoom', () => { this.zoomed(); });

this.svg.append('rect')
        .attr('class', 'zoom')
        .attr('width', this.width)
        .attr('height', this.chartHeight)
        .attr('transform', 'translate(' + this.margin.left + ',' + this.margin.top + ')')
        .style('fill', 'none')
        .style('pointer-events', 'all')
        .call(this.zoom);

zoomed () {
    var transform = d3.event.transform;
    this.x.domain(transform.rescaleX(this.x2).domain());
    this.brushOverlay.call(this.brush.move, this.x.range().map(transform.invertX, transform));

    this.render();
  }

If i comment out the .translateExtent([0, 0], [this.width, this.chartHeight]) everything works except for the panning constraints, of course.
The same thing happens if i use .extent() method.
If instead i keep that line of code, if i try to log the transform variable i get the scale right as usual, but the transform.x and transform.y values as NaN which then triggers all sorts of errors.
I've tried this with both a numerical linear scale and a time scale.

When reporting an issue, please include a link to a live example, preferably on bl.ocks.org or RunKit, or as a pull request in the appropriate repository with new unit tests, that demonstrates that the described behavior is not the expected behavior. Use only the minimum amount of code necessary to reproduce the unexpected behavior.
Non-actionable bugs may be temporarily closed until you provide additional information. If you can’t isolate the bug any further, please let me know and I will try to help. However, I beg your patience: I must balance your request against many other responsibilities—fixing other bugs, answering other questions, new features, new documentation, etc. Please also consider asking for help on Stack Overflow.
If you have a question about D3’s behavior and want to discuss it with other users, also consider the d3-js Google Group or joining the d3-js Slack.
Thank you! 🤗

The problem is your call to zoom.translateExtent:
zoom.translateExtent([0, 0], [this.width, this.chartHeight])

You are passing two arguments when you should be passing one:
zoom.translateExtent([[0, 0], [this.width, this.chartHeight]])

I guess the time has come to finally take a pause, since i've spent the last 2 hours trying to understand what was going on...
Next time i'll check the docs 5 more time before wasting anyone's time...
Thank you so much!


NumPy LiDAR rework

Migrate iterative operations to matrix operations with NumPy to reduce process time + cut down on code

Can i plz close this now


 If yes, you closed your own connection, that's why the following queries will fail with invalid connection.

Testing with 2 mysql clients connecting to a gitbase 0.19.0 daemon:
Client A
MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               4 |
+-----------------+
1 row in set (0.00 sec)

Client B

MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               5 |
+-----------------+
1 row in set (0.01 sec)

MySQL [gitbase]> kill 4;
ERROR 2013 (HY000): Lost connection to MySQL server during query
MySQL [gitbase]> select connection_id();
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    6
Current database: gitbase

+-----------------+
| connection_id() |
+-----------------+
|               6 |
+-----------------+
1 row in set (0.00 sec)

Client A
MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               4 |
+-----------------+
1 row in set (0.00 sec)

I also noticed another weird thing that might be related.
According to the mysql docs:

Thread processlist identifiers can be determined from the ID column of the INFORMATION_SCHEMA PROCESSLIST table, the Id column of SHOW PROCESSLIST output, and the PROCESSLIST_ID column of the Performance Schema threads table. The value for the current thread is returned by the CONNECTION_ID() function.

Which is true for a normal mysql server, connection_id and ID of show processlist match:
mysql> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               8 |
+-----------------+
1 row in set (0.00 sec)

mysql> show processlist;
+----+-----------------+------------------+------+---------+------+------------------------+------------------+
| Id | User            | Host             | db   | Command | Time | State                  | Info             |
+----+-----------------+------------------+------+---------+------+------------------------+------------------+
|  4 | event_scheduler | localhost        | NULL | Daemon  |  262 | Waiting on empty queue | NULL             |
|  8 | root            | <IP_ADDRESS>:40908 | NULL | Query   |    0 | starting               | show processlist |
|  9 | root            | <IP_ADDRESS>:43044 | NULL | Sleep   |  192 |                        | NULL             |
+----+-----------------+------------------+------+---------+------+------------------------+------------------+
3 rows in set (0.01 sec)

But for a gitbase 0.19.0, the IDs do not match:
MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.00 sec)

MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.00 sec)

MySQL [gitbase]> show processlist;
+------+------+------+------+---------+------+-------+------+
| Id   | User | Host | db   | Command | Time | State | Info |
+------+------+------+------+---------+------+-------+------+
|   12 | root | <IP_ADDRESS>:58680 | gitbase | query   |    0 | running | show processlist |
+------+------+------+------+---------+------+-------+------+
1 row in set (0.00 sec)

MySQL [gitbase]> select connection_id();
+-----------------+
| connection_id() |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.01 sec)

MySQL [gitbase]> show processlist;
+------+------+------+------+---------+------+-------+------+
| Id   | User | Host | db   | Command | Time | State | Info |
+------+------+------+------+---------+------+-------+------+
|   14 | root | <IP_ADDRESS>:58680 | gitbase | query   |    0 | running | show processlist |
+------+------+------+------+---------+------+-------+------+
1 row in set (0.00 sec)

The problem is that PROCESSLIST.ID doesn't match CONNECTION_ID() (end every time it generates a new one). But if you have a long running operations, e.g. PROCESLIST.ID = 123
then query:
KILL QUERY 123;

Works.

It should work as follows:
KILL [CONNECTION | QUERY] processlist_id
kill query kills only query, otherwise connection will be closed. The connection assigned to the process list can be found in thread table which is missed.
In other words we should have mapping process_id -> connection_id. In KILL query we only pass process_id.


Please see the PiReel-Website for Pi-Reel-Core issues during Mozsprint

Follow this link to get to our issues page:
https://github.com/PiReel/PiReel-Website/issues

mozsprint 2017 over closed

mozsprint 2017 is over


#1200 handle objects in context

Updating context rendering component to handle objects that come back as values in context.
For example, broader concepts in genre form lookup come back as
values": [
{
"uri": "http://id.loc.gov/authorities/genreForms/gf2011026049",
"id": "gf2011026049",
"label": "Animated films"
}
]
The code now looks for "label" in the value object and displays that.  If there is no label but there is a uri, it will display that instead, and if neither, then it will display a stringified version of the json object

Attached pictures in the issue #1200 should show a before and after view.


Allow uncompressing buffer files during restore

Which issue(s) this PR fixes:
Fixes #2619
What this PR does / why we need it:
Chunks buffered via buf_file where not uncompressed on restore.

Closing, as v1.6 won't see any further updates.


Using PHP8+ feature to maje the code more readable

Since the library is targeting PHP8+ I updated the internal code to make use PHP8+ feature to make the code a bit more easier to read.

It seems you actually reverted most changes of the PR in your last commit, something went wrong.

Match expression reverted
String interpolation reverted
phpstan configuration file updated

Sorry we've both wasted too much time here already, this PR brings nothing of value and is just taking too much effort. Many changes disappeared, other appeared without justification, and it seems some changes are also broken. Let's leave it at that I think it's best.


Ros2 port?

Hi, has there been any work to port this to ROS2?

Made one not too long ago: https://github.com/Cardinal-Space-Mining/direct_lidar_odometry


Docs: Review & improve published documentation

What were you searching in the docs?
The documentation site could use a complete review for clarity, accuracy, and content. The other powertool documentation sites - in particular, powertools for python - may provide inspiration on what we are missing, or how we can do better.
Is this related to an existing documentation section?
No response
How can we improve?
Review & improve documentation
Got a suggestion in mind?
No response
Acknowledgment

[X] I understand the final update might be different from my proposed suggestion, or refused.

Yes. I will start on this.


remove iterrows

Coverage decreased (-0.02%) to 92.692% when pulling 09ba9412b4f696f95befc2fd02599ceb53b66071 on iter into c40cebe8d57b7ac14c5bc5a728023312780153ae on v1.


If I try it on project with packages folder, I get the following error:

And if I remove packages, the server starts, but JS application code (client.js, clientChild.js) is not loaded on client.

Hi @JorgenVatle,
do you have any news on this? We have the same problem with the production build. When using mup or meteor build --production the build is stuck.
First it got stuck at  this:
Build successful (148816.44ms)
Then I added a Close() plugin in the vite.config.js
`export default function ClosePlugin() {
return {
name: 'ClosePlugin', // required, will show up in warnings and errors
    // use this to catch errors when building
    buildEnd(error) {
        if(error) {
            console.error('Error bundling')
            console.error(error)
            process.exit(1)
        } else {
            console.log('Build ended')
        }
    },

    // use this to catch the end of a build without errors
    closeBundle(id) {
        console.log('Bundle closed')
        process.exit(0)
    },
}

}`
Now it seems to be stuck at this:
Loading plugin vite from package `j...
I would really appreciate some help here, cuz we want to get the deployment with vite live.
Thx ☺

I do have a branch in the works that resolves this issue. However, with the way we're feeding Vite's build output into Meteor for production, you may end up seeing some of your project's source files being modified during the build process. When running Meteor in --production mode, those modifications need to persist until the server shuts down. And if Meteor doesn't exit cleanly those modifications are never cleaned up and may inadvertently be committed into version control by a developer.
So I've opted not to ship this until we can come up with a better solution that's not as dangerous. If anyone with some knowledge around the Meteor build process has any ideas on including additional JavaScript into the client bundle without having to modify the project's source, I'd appreciate any help I can get on this. 🙏

Here is my Workaround. Not pretty, but maybe it helps someone:
We wanted Vite for local deployment, not for production, so I just removed it in the ci/cd process. Here is my script
`#deploy.sh
start remove vite for deployment
meteor remove jorgenvatle:vite-bundler
npm uninstall meteor-vite vite vite-jsconfig-paths vite-jsconfig-paths vite-plugin-eslint vite-plugin-node-polyfills vite-plugin-stylelint vite-tsconfig-paths
rm vite.config.js
rm ./server/react-refresh.js
cp .deploy/viteRemovalFiles/mainServer.ts ./server/main.ts
cp .deploy/viteRemovalFiles/mainClient.ts ./client/main.ts
end remove vite
`
`//mainServer.ts
// removed by deployment
//import './react-refresh'; // Server entry point, imports all server code
/**

Import all your Meteor methods and publications.
*/
import '/imports/startup/both';
import '/imports/startup/server';
import './methods/blocks';
`

`//mainClient.ts
import 'meteor/react-meteor-data';
import '../imports/startup/client';
`
-> Make sure you delete node_modules on the deployment Server and make a meteor reset just in case there is old stuff in there

This should now be resolved with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Let me know if you run into any issues. 🙌

This should now be resolved with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Let me know if you run into any issues. 🙌

Thank you very much for your work!
There are 3 non-critical comments:

For the Windows system, the path to the production package in the clientFake.js file is not generated quite correctly, which is why a launch error occurs:

This happens because of the way nodejs treats paths across systems by default. Please process paths for the clientFake.js file, replacing backslashes with forward slashes. If you replace it manually, then everything works correctly.
When restarted in production mode, the generated path and comment are duplicated.
When running in developer mode, the generated path remains. If it is not technically difficult, delete this path automatically. But if it’s difficult, then it’s okay, since in this mode launches will not be frequent and manual removal is not difficult.

Oops. Give it a try with<EMAIL_ADDRESS>


[DNM] Test PR into master

I locally renamed nc/master -> nc/main and pushed nc/main to the remote.

PR authors will need to change the base branch on the PR  to nc/main.


Fix error when call In() by Slice or Array.

When call In() by slice or array(like []int32{2,3} or [2]int{2,3}), args of In() becomes single entry slice of slice(like [[2,3]]).
Then placeholder for SQL IN clause have only one entry  "(?)"  and slice can't convert to correct SQL literal.
It causes SQL error.

@Talos208  I've been a little rework and merged it. Thank you for your PR!


touch event is a little slow, what 's the matter.

I ported lvgl on arm9 (400MHz). then click button is slow.  what is the reason?

Hi,
It an have two main reasons:

when you call lv_tick_inc(x) x should be elapsed time from the last call in milliseconds.
you should wait only a few milliseconds between two call of lv_task_handler()

Put the read() read point function in the thread and share it with the global variable to lvgl.

Thank you for everybody's attention.
I solved this problem, I set like this on conf.h file.
#define LV_INDEV_READ_PERIOD            20
thank you again


feature and matching file

Dr.shen, can u share a feature file(*.sift) and a matching file (.mat) with us, or the corresponding Matlab file(.m), thank u very much!

I currently don't have sift and matches files. But the pre-processed cam and matching files should be able to use to reproduce the results. Maybe related to #1?


open-vm-tools needs to be enabled as it isn't being installed as an RPM anymore

Describe the bug
open-vm-tools is no longer installed by an rpm.  the service is defined but needs to be enabled:
● vmtoolsd.service - Service for virtual machines hosted on VMware
     Loaded: loaded (/usr/lib/systemd/system/vmtoolsd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: http://github.com/vmware/open-vm-tools

[root@qa-c1v4-kgvq2-worker-gz86x system]# journalctl -u  vmtoolsd.service
-- Logs begin at Mon 2021-01-25 17:26:12 UTC, end at Mon 2021-01-25 20:12:48 UTC. --
-- No entries --

[root@qa-c1v4-kgvq2-worker-gz86x system]# systemctl enable vmtoolsd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vmtoolsd.service → /usr/lib/systemd/system/vmtoolsd.service.
Created symlink /etc/systemd/system/vmtoolsd.service.requires/vgauthd.service → /usr/lib/systemd/system/vgauthd.service.

[root@qa-c1v4-kgvq2-worker-gz86x system]# systemctl start  vmtoolsd.service

Version
current 4.6  (I'm testing a  repo that @vrutkovs and I have been testing with for VMWare)

Fixed in https://github.com/openshift/okd-machine-os/pull/76

Fixed in https://github.com/openshift/okd-machine-os/pull/76

I can confirm that 4.6.0-0.okd-2021-02-14-205305 fixed this problem.


Bot Builder v4 IgnoreEmptyItemsConverter causes an issue when ReadJson

Platform
Bot Builder v4.0 (dotnet core)
Author or host
web api (Bot Framework)
Version of SDK
1.1
Issue
When deserialize the DialogState which contains the AdaptiveCard, it fails with error "Error reading JArray from JsonReader at
var array = JArray.Load(reader);.
Error: Current JsonReader item is not an array: StartObject. Path 'DialogState.DialogStack.$values[0].State.dialogs.DialogStack.$values[0].State.options.Prompt.attachments.$values[0].content.action"
This caused by [JsonConverter(typeof(IgnoreEmptyItemsConverter))] attribute on AdaptiveCard which will be called while deserialization but it's not actually an array yet, as $value holds an array not action (nor body)
"actions": {
    "$type": "System.Collections.Generic.List`1[[AdaptiveCards.ActionBase, AdaptiveCards]], System.Private.CoreLib",
    "$values": [
    {
        "$type": "AdaptiveCards.SubmitAction, AdaptiveCards",
        "type": "Action.Submit",
        "data": "Test",
        "title": "Test"
    }
    ]
}

We should try/catch JArray.Load

I am also getting error while returning an adaptive card with many buttons. error comes in var dc = await Dialogs.CreateContextAsync(turnContext) line.  Error: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path 'DialogState.DialogStack.$values[0].State.dialogs.DialogStack.$values[0].State.options.Prompt.attachments.$values[0].content.body'.
Any solutions?

The workaround I'm currently using is to SendActivityAsync the Card and then issue a small text prompt, "please make a selection". You can then add a validator to examine the Activity.Value

So I think I have a couple of approaches to solve this problem. I've been able to reproduce the issue outside of the Bot Framework. However, I think it'd be helpful to know what the payload looks like so I can figure out what the right fix should look like. For example here's a card that repros the same exception:
{
	"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
	"type": "AdaptiveCard",
	"version": "1.0",
	"body": [
	],
	"actions": {
			"type": "Action.OpenUrl",
			"url": "http://adaptivecards.io"
	}
}

(note that actions is an object -- not an array)
the same card with the action section being an array works fine:
{
	"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
	"type": "AdaptiveCard",
	"version": "1.0",
	"body": [
	],
	"actions": [
		{
			"type": "Action.OpenUrl",
			"url": "http://adaptivecards.io"
		}
	]
}

Here's an easy way to repro the issue in a console app:
var card = new AdaptiveCard
{
	Body = { new AdaptiveTextBlock() },
	Actions = { new AdaptiveSubmitAction() },
};

var js = new JsonSerializer() { TypeNameHandling = TypeNameHandling.All };
var obj = JObject.FromObject(card, js).ToObject<object>(js);

Note that the problem only occurs if you pass to FromObject a JsonSerializer with TypeNameHandling.All because otherwise the object won't be serialized as an AdaptiveCard and therefore won't use the IgnoreEmptyItemsConverter upon deserialization. This of course hints at a good workaround. All you have to do is bypass the AdaptiveCards package when adding the card as an attachment, i.e. send it as a normal object (and not an AdaptiveCard) using the serialize/deserialize trick: Content = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(card))
Obviously we shouldn't have to do this so IgnoreEmptyItemsConverter should be fixed. I'm happy to fix it myself if someone could explain to me what purpose it's meant to serve in the first place.

Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(AdpCard)),
};

Hi @v-kydela,
In your example actions is an object and not an array. The AdaptiveCards schema specifies that Actions need to be an array and this might be why you're seeing this failure.

@khouzam - It might look that way if you're unfamiliar with C#. But actually that syntax can be used to initialize enumerable types in C#, and indeed C# is a strongly-typed language so it would be impossible to assign a non-array object to Actions.
Thank you for your help but I already know exactly why I'm seeing the failure. There's a bug in the AdaptiveCards source code, as we've said. We're commenting on an open-source repo so we can see exactly where the faulty code is.

The problem is that the actions property must be specified as an array in the json payload. I don't think there is a bug in Adaptive Cards.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Kyle Delaney<EMAIL_ADDRESS>Sent: Wednesday, February 13, 2019 11:05:03 AM
To: Microsoft/AdaptiveCards
Cc: Subscribed
Subject: Re: [Microsoft/AdaptiveCards] Bot Builder v4 IgnoreEmptyItemsConverter causes an issue when ReadJson (#2148)
@khouzamhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkhouzam&data=02|01|dclaux%40microsoft.com|94dc6c9a6dce45ff45a508d691e6291c|72f988bf86f141af91ab2d7cd011db47|1|0|636856815056857592&sdata=%2F346JIhWtFejgnOb1hrB2lBXTUjZcOIfyeuLSrRiVlg%3D&reserved=0 - It might look that way if you're unfamiliar with C#. But actually that syntax can be used to initialize enumerable types in C#, and indeed C# is a strongly-typed language so it would be impossible to assign a non-array object to Actions.
Thank you for your help but I already know exactly why I'm seeing the failure. There's a bug in the AdaptiveCards source code, as we've said. We're commenting on an open-source repo so we can see exactly where the faulty code is.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FAdaptiveCards%2Fissues%2F2148%23issuecomment-463325162&data=02|01|dclaux%40microsoft.com|94dc6c9a6dce45ff45a508d691e6291c|72f988bf86f141af91ab2d7cd011db47|1|0|636856815056867596&sdata=3Q4D3aO%2F8EXMEr5N8Pqp5rqWT7NiUShxuLKzlDibEUQ%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABRdoSpv6fVZqD41DhXMV3M7w85fc696ks5vNGHfgaJpZM4YNs4d&data=02|01|dclaux%40microsoft.com|94dc6c9a6dce45ff45a508d691e6291c|72f988bf86f141af91ab2d7cd011db47|1|0|636856815056877605&sdata=QXsH67OX2D70xo3TZIbIlWhc8NalyhY4aA86%2BWI6V%2FY%3D&reserved=0.

@dclaux - Thank you for the comment but that is also incorrect. I've already shown in my earlier comment that this issue can be reproduced in a non-bot console app without any payload being sent anywhere. If there was no bug in the AdaptiveCards source code then we wouldn't be able to work around the issue by bypassing the AdaptiveCards code with the serialize/deserialize trick: JsonConvert.DeserializeObject(JsonConvert.SerializeObject(card))

@v-kydela please provide the payload that is being parsed, as @paulcam206 asked. That will help us understand what's going on and what the appropriate fix is, if a fix is needed. We have no doubt you are able to debug our code, but from my viewpoint:
If your payload defines actions as follows:
"actions": {
    "type": "Action.OpenUrl",
    "url": "http://adaptivecards.io"
}

then you have an invalid payload. The actions property is an array and specifying it as an object should not and will not work, in any of our renderers.
If however your actions property is correctly specified as an array as follows:
"actions": [
    {
        "type": "Action.OpenUrl",
        "url": "http://adaptivecards.io"
    }
]

then there is definitely a bug that needs fixing.

@dclaux - Thank you for the reply.
I've made a slight modification to my sample from earlier so that you can see what lies in the intermediate step between JObject.FromObject and JObject.ToObject and that reveals that the reason actions is an object is because of the TypeNameHandling. In order to preserve the type names of the original C# objects, the JsonSerializer wraps each array in an object:
var card = new AdaptiveCard
{
	Body = { new AdaptiveTextBlock() },
	Actions = { new AdaptiveSubmitAction() },
};

Console.WriteLine(JsonConvert.SerializeObject(card));
// Output:
//	{
//		"type": "AdaptiveCard",
//		"version": "1.1",
//		"body": [
//			{
//				"type": "TextBlock",
//				"text": " "
//			}
//		],
//		"actions": [
//			{
//				"type": "Action.Submit"
//			}
//		]
//	}

var js = new JsonSerializer() { TypeNameHandling = TypeNameHandling.All };
var jObject = JObject.FromObject(card, js);

Console.WriteLine(jObject.ToString());
// Output:
//	{
//		"$type": "AdaptiveCards.AdaptiveCard, AdaptiveCards",
//		"type": "AdaptiveCard",
//		"version": "1.1",
//		"body": {
//			"$type": "System.Collections.Generic.List`1[[AdaptiveCards.AdaptiveElement, AdaptiveCards]], mscorlib",
//			"$values": [
//				{
//					"$type": "AdaptiveCards.AdaptiveTextBlock, AdaptiveCards",
//					"type": "TextBlock",
//					"text": " "
//				}
//			]
//		},
//		"actions": {
//			"$type": "System.Collections.Generic.List`1[[AdaptiveCards.AdaptiveAction, AdaptiveCards]], mscorlib",
//			"$values": [
//				{
//					"$type": "AdaptiveCards.AdaptiveSubmitAction, AdaptiveCards",
//					"type": "Action.Submit"
//				}
//			]
//		}
//	}

var obj = jObject.ToObject<object>(js);
// Newtonsoft.Json.JsonReaderException:
// 'Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path 'body'.'

Please run this code yourself to reproduce the error. You can see when the card is serialized without type names that the card's body and actions are both arrays (they couldn't possibly not be because C# is strongly-typed). However, when that same card is serialized with type names the arrays are wrapped in objects. Since there is nothing wrong with the way the card is defined (it's constructed with the C# code from this repo) there is a bug in the repo, as you've said.
The expected behavior is for the AdaptiveCards custom deserialization to complete without error even when an Adaptive Card has been serialized with TypeNameHandling set to All, as it is in the BotBuilder v4 dialog code.
I hope this helps!

Thnk you, this helps.
So it looks like the problem is the Adaptive Card object model isn't fully compatible with NewtonSoft's JSON serialization/deserialization algorithm when TypeNameHandling.All is used. Namely, an AdaptiveCard object cannot be round-tripped (FromObject then ToObject) in TypeNameHandling.All mode.
I'll leave it to @khouzam and @paulcam206 from here (maybe they had already understood all this for that matter.)

@Paulcam206, please repage-in once you are through 1.2 backlog

Solution Worked for me ...
public static Attachment ToAdaptiveCard(this AdaptiveCard card)
{
var adaptiveCardJson = JsonConvert.SerializeObject(card);
return new Attachment()
{
ContentType = "application/vnd.microsoft.card.adaptive",
Content = JsonConvert.DeserializeObject(adaptiveCardJson),
};
}

Do you have a timeline when this is going to be fixed? Thanks

@khouzam @shalinijoshi19 @paulcam206
I think this code is at least a workaround for IgnoreEmptyItemsConverter:
JArray array;
if (objectType.IsGenericType && (objectType.GetGenericTypeDefinition() == typeof(List<>)) && reader.TokenType == JsonToken.StartObject)
{
    dynamic wrappedArray = JObject.Load(reader);
    array = wrappedArray["$values"];
}
else
{
    array = JArray.Load(reader);
}

Can you please help fix this in Nuget, as bots that use this library break when this is not patched: https://github.com/microsoft/botbuilder-dotnet/issues/2456#issuecomment-626766819

@hansmbakker - While this bug should certainly be fixed in the Adaptive Cards .NET SDK, it is still possible to get your bots to work by bypassing the SDK. The workaround people have been using is to convert their Adaptive Cards to JObjects before attaching them to activities.

@v-kydela now I see, thank you!


Contact Info Refactors and Updates

Issue #: /bcgov/entity#10687
Description of changes:

Implements updated design/ux locally and from Shared Component
Refactors and cleans up handling of contact info
Updated unit testing

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

Nice little refactors 👍
I also like the new tests that verify the contacts -> contact change.

Thank you!

There was just some requirements updated in the ticket, so will be making another commit!
Might involve another change to the shared component.. stay tuned.

Updated with PR comments and shared component version number which include added requirements


VS Code automatically Delete My Project Files!!!!!

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:1.61.2
OS Version:Windows11 21H2

Steps to Reproduce:
I dont know why that: my vs code notice me to update and i close down my current window and update it.But the update programm crashed in 5 min and it says there are some other vscode progress still running.
I checkout all my process but no related to vscode,so then i hit retry button.Finally it auto close by another crashed.
I just thinking there was something wrong with my vscode bin files,then i try to reinstall it.
And,were boom.My project files were gone!!!!!!!!!!!!!!!!!!!!
Even the most weried : the project bones still there,but the source code files and the data are all gone.
So please Microsoft!I am the only vscode user among my classmates there.I really dont wanna using the f**ing jetbrains.Plz!!
Fix this bug!!!

In which location did you install VS Code?

We're sorry that happened to you.
In which location did you install VS Code?

Well i have create a root folder callled Visual Studio Code in my E:/ Partition
And under it there were two folder : code config and project.
I have install it on code config and projects are storaged all code such aa ipynb notebooks and data sets.

And under it there were two folder : code config and project.

This is very much not recommended. Do not put your code inside the same folder where you have installed any application, since that application owns that folder and might just delete it.
I recommend you do this:

E:\Programs\Microsoft VS Code, install VS Code here
E:\Code, put your code here

This way, VS Code won't ever delete anything in E:\Code.

Thanks for letting us know. Unfortunately this is as designed. In order for VS Code to automatically update itself, it must delete the old version. It will delete everything it finds within that Microsoft VS Code folder.

Thanks for letting us know. Unfortunately this is as designed. In order for VS Code to automatically update itself, it must delete the old version. It will delete everything it finds within that Microsoft VS Code folder.

Well why not using Incremental update to instead reinstall method although it would be let vs code cotains more data on disk.But it seems a more stable and safety update strategy.


boards: st: nucleo_wba55cg: Fix west debug

To enable breakpoints on this board, remove the dgdb_memory_map disable, which is a leftover from early development steps.

also valid for the ./boards/st/nucleo_wba52cg/support/openocd.cfg

Already fixed.


Lora Operational FALSE

Lora Opartional FALSE, and not responding on intern ip adres now , not syncing.
Worked for exactly 7 days and then down, the location is asserted right and the region is asserted. Any solving for this, because totally no response from helpdesk Nebra.

This is not a support channel.
Please email<EMAIL_ADDRESS>


Ziglings executable?

The original ziglings "driver" was a simple Bash script.
Using the build system is really cool because:

It's cross-platform. Wherever Zig runs, Ziglings runs.
It shows off the build system (in fact, it's been a stress-test for the build system since the very beginning, resulting in upstream fixes to Zig).

However, I think it's also safe to say that by trying to accomplish a good Ziglings experience with the build system has been like playing in hard mode. (Maybe it's not as hard as writing Advent of Code solutions in a Makefile, but it's pretty hard.)
Can we just make a ziglings.zig that compiles when you run build zig and runs immediately?
Not only would we have completely control over the "normal" learner experience, it would also make additional options and tooling much easier:

Running specific exercises
Applying patch files/testing. I don't think we even need patch because our use case is so simple: Replacing whole lines - we don't even need line numbers, just find-and-replace.
(Honestly, I've stopped even using the gollum script recently because it was less work to just write the patch by hand. This would be even easier if we didn't have line numbers at all.)
Maybe watching files for changes? (Rustlings, my inspiration for Ziglings, has this feature: rustlings watch)

To be clear: I'm deeply grateful for the astounding amount of work that has gone into making the build.zig file do as much as it does. I think that effort would produce a pretty awesome stand-alone executable!

@ratfactor Recently I was thinking of writing a ziglings.zig program for fun.
I'm also interested in how the patch files are created.
Should ziglings follow the same UI as https://github.com/rust-lang/rustlings?

One problem is how avoid confusing the users if there are both the build.zig and ziglings.zig files.

@ratfactor
build.zig vs ziglings.zig
My initial concern is what to do with the current build.zig.  Should we remove it, or should we keep it in is some directory?
As for the bootstrap problem, it is possible to specify the install_prefix directory from the build.zig file (equivalent to the -p option.
A different approach to build + exec it to use ziglings.zig as a driver:

Spawn zig build install
Spawn the executable (the source code is in src/main.zig)

The advantage is that

The executable will always be up-to-date
The user will just need to zig run ziglings.zig
ziglings.zig can also optionally spawn the old build.zig file, translating the command line arguments
The ziglings.zig program can check the Zig compiler compatibility
The source code is very small, since the real work is done else were.
This means that we no longer have to be careful about breaking the compatibility and making the code less readable because we can't use the multi-object for loop.

The disadvantage is that this is not the usual workflow for a Zig project.

I forgot about patches.
@ratfactor wrote that he wold like to remove the use of diff and patch and I agree, since it will make it possible to use Windows Powershell, instead of bash.
The problem is how to heal exercises.
In almost all cases, the broken fragment is marked by ???, but exercise 001 is an exception.  This means that we can't use ??? like the POSIX shell $.
A possible solution is to save (in Exercise.heal?) both the broken line and the correct one.  But what if the line is modified or if there are more than one broken line?  The patch command was implemented to handle possible fuzzy data.
About patche creation, I would first create the  exercise in answers and then copy it to exercises and break it.

Running specific exercises

:+1:
Then it should be easy to store the last solved exercise for a faster run.

The disadvantage is that this is not the usual workflow for a Zig project.

In fact, I see this as somewhat problematic, because Ziglings as a programming tutorial currently conveys "real" compilation feeling.

Applying patch files/testing.

I do not know if it is necessary, because it will only used from a) exercise developer and b) our test scripts.

About patche creation, I would first create the exercise in answers and then copy it to exercises and break it.

That's how I always work.

Maybe watching files for changes?

There is a guy who wrote recently one: https://github.com/Jonxslays/zwatch


Installation fixes

The jtNtuple.h wasn't copied during installation
Moved the WCSimConfig.cmake.in under make as suggested by Tom (thought I did this already...)

Hi Tom, yes thanks this is better!


alternative memory saving for domainmgr/processes.go

Alternative to #1879

Doesn't seem to cover all the cases.


camera "stillImageSource" can't not set to a web link

Hi sir, I try to put the stillImageSource directly to the camera still image capture link, but it won't work, how to solve this? Thanks!
This can work:
"stillImageSource": "-rtsp_transport tcp -i rtsp://<IP_ADDRESS>:8554/unicast -vframes 1 -r 1",
This won't work:
"stillImageSource": "http://<IP_ADDRESS>/cgi-bin/snapshot.cgi",

try "stillImageSource": "-i http://<IP_ADDRESS>/cgi-bin/snapshot.cgi"

Thanks , it's now working!


Different thumbnail and enlarged image on lightbox

I am using materializecss to create a image-gallery where images of different dimensions will be uploaded. However, to maintain the thumb size I am cropping all the images in 4:3 ratio to display in page. When someone clicks on any thumbnail the main image pops up (lightbox). The popped up image can have any dimension ratio.
So, I need to use 2 images, one for thumbnail version, one for enlarged version. Is it possible with materializecss lightbox?
The gallery page will be something like this:
http://67photos.co.za/gallery.php

Please provide a way to reproduce it. like a codepen or  a snippet

Closed due inactivity. Feel free to reopen it, if it's still necessary.

I had the same issue and I just resolved this by this
$('.boxwithlarge').materialbox({            onOpenStart: function(e){             e.src = e.attributes['data-enlarge-image'].nodeValue;  } })
it's working perfect


Add .Rproj to gitignore

@luizaandrade shoulod we un-ingnore .Rproj files as well? They seem handy for R on Databricks. You see any issue with doing this?

Pinging the R people @luisesanmartin @luizaandrade . Should we un-ignore the .Rproj file? My reading is that best practice is to commit the  .Rproj file in the repository (see here) but not the .Rproj.user (see here). That is what the edit in this PR would do. Just merge this PR if you agree.

I think the argument that the Rproj files can set up a project easily for any repository collaborator is a strong point for not including them in .gitignore

Our ignore template ignores everything, and then un-ignore what do want to be committed. So now we un-ingore *.Rproj files. That is a bit of an unusual set up, but so much better (IMHO). Just wanted to make sure that that setup is clear.


New package: CoolPlayLin.Installer.LANDrop version 0.4.0

Pull request has been created with komac v2.0.1 :pineapple:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Exception during executable launch operation System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'C:\Program Files\LANDrop\LANDrop.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.)  ---> System.ComponentModel.Win32Exception (216): An error occurred trying to start process 'C:\Program Files\LANDrop\LANDrop.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) Installation failed with exit code -1978334972

(Automated response - build 669.)

Automatic Validation ended with:

Exception during executable launch operation System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'C:\Program Files\LANDrop\LANDrop.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.)  ---> System.ComponentModel.Win32Exception (216): An error occurred trying to start process 'C:\Program Files\LANDrop\LANDrop.exe' with working directory 'D:\TOOLS'. The specified executable is not a valid application for this OS platform.    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) Installation failed with exit code -1978334972

(Automated response - build 669.)

@wingetbot waivers Add Validation-Installation-Error

@wingetbot waivers Add Validation-Executable-Error