Dependency issues while building micro-ROS node with custom interfaces

Issue template

Hardware description:
RTOS:
Version or commit hash:

Steps to reproduce the issue
Followed the instructions as in the post ,to create custom service and message in MyCustomMessage folder within the micro-ros workspace.After building the workspace[Please find SS-1],transferred the header files from /microros_ws/install/my_custom_message/include/my_custom_message/ to the micro_ros_arduino/src/. However while compiling the sample code for testing purpose with above mentioned header file,got the following error. Please let me know if Am missing any steps.

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensy36.html
PLATFORM: Teensy (4.14.0) > Teensy 3.6
HARDWARE: MK66FX1M0 180MHz, 256KB RAM, 1MB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES:
 - framework-arduinoteensy 1.155.0 (1.55)
 - toolchain-gccarmnoneeabi 1.50401.210715 (5.4.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 94 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <Ethernet> 2.0.0
|   |-- <SPI> 1.0
|-- <micro_ros_arduino> 0.0.4+sha.6659d98
|   |-- <Ethernet> 2.0.0
|   |   |-- <SPI> 1.0
|   |-- <SPI> 1.0
|-- <TeensyStep> 2.3.1+sha.1f68646
Building in release mode
Compiling .pio/build/teensy36/lib818/micro_ros_arduino/my_custom_message/msg/detail/my_custom_message__type_support.cpp.o
Compiling .pio/build/teensy36/lib818/micro_ros_arduino/my_custom_message/srv/detail/my_custom_service__type_support.cpp.o
.pio/libdeps/teensy36/micro_ros_arduino/src/my_custom_message/msg/detail/my_custom_message__type_support.cpp:10:59: fatal error: rosidl_typesupport_cpp/message_type_support.hpp: No such file or directory
compilation terminated.
.pio/libdeps/teensy36/micro_ros_arduino/src/my_custom_message/srv/detail/my_custom_service__type_support.cpp:10:59: fatal error: rosidl_typesupport_cpp/message_type_support.hpp: No such file or directory
compilation terminated.
*** [.pio/build/teensy36/lib818/micro_ros_arduino/my_custom_message/msg/detail/my_custom_message__type_support.cpp.o] Error 1
*** [.pio/build/teensy36/lib818/micro_ros_arduino/my_custom_message/srv/detail/my_custom_service__type_support.cpp.o] Error 1

Expected behavior
successful compilation
Actual behavior
throws some dependency issue
Additional information

MyCustomService.srv
int32 command
int32 code
---
int32 position
string direction

MyCustomMessage.msg
int32 command
int32 code

//sample code to replicate the issue
#include <micro_ros_arduino.h>
#include <example_interfaces/srv/add_two_ints.h>
#include <my_custom_message/srv/my_custom_service.h>
#include <stdio.h>
#include <rcl/error_handling.h>
#include <rclc/rclc.h>
#include <rclc/executor.h>
#include <std_msgs/msg/int64.h>

rcl_node_t node;
rclc_support_t support;
rcl_allocator_t allocator;
rclc_executor_t executor;

rcl_service_t service;
rcl_wait_set_t wait_set;

example_interfaces__srv__AddTwoInts_Response res;
example_interfaces__srv__AddTwoInts_Request req;

#define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){while(1){};}}
#define RCSOFTCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){}}

void service_callback(const void * req, void * res){
  example_interfaces__srv__AddTwoInts_Request * req_in = (example_interfaces__srv__AddTwoInts_Request *) req;
  example_interfaces__srv__AddTwoInts_Response * res_in = (example_interfaces__srv__AddTwoInts_Response *) res;

  //printf("Service request value: %d + %d.\n", (int) req_in->a, (int) req_in->b);

  res_in->sum = req_in->a + req_in->b;
}

void setup() {
  set_microros_transports();
  delay(1000);

  allocator = rcl_get_default_allocator();

  // create init_options
  RCCHECK(rclc_support_init(&support, 0, NULL, &allocator));

  // create node
  RCCHECK(rclc_node_init_default(&node, "add_twoints_client_rclc", "", &support));

  // create service
  RCCHECK(rclc_service_init_default(&service, &node, ROSIDL_GET_SRV_TYPE_SUPPORT(example_interfaces, srv, AddTwoInts), "/addtwoints"));

  // create executor
  RCCHECK(rclc_executor_init(&executor, &support.context, 1, &allocator));
  RCCHECK(rclc_executor_add_service(&executor, &service, &req, &res, service_callback));
}

void loop() {
  delay(100);
  RCSOFTCHECK(rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100)));
}

//SS-1

In order to add a new message to the Arduino precompiled library, I would suggest to:

Create a new ROS 2 package with the message using:

ros2 pkg create --build-type ament_cmake my_custom_message
cd my_custom_message
mkdir msg
touch msg/MyCustomMessage.msg

In the autogenerated CMakeLists.txt file you should add the following lines just before ament_package():
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
  "msg/MyCustomMessage.msg"
 )

In the autogenerated package.xml file you should add the following lines:
<build_depend>rosidl_default_generators</build_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>

The content of the msg/MyCustomMessage.msg file contains your message definition. For example, let’s include these fields:
char char_test
float32 float32_test
float64 double_test
int8 int8_test
uint8 uint8_test

Once you have the package just copy the generated folder to extras/library_generation/extra_packages
Just follow the instructions for rebuilding the Arduino library with your added folders taken into account: check here

Hi @pablogs9,
Thanks for the reply.
I uploaded the generated custom service folder in the specified folder.
ubuntu@pi:~/Documents/PlatformIO/Projects\Micro_ros_Sample1/.pio/libdeps/teensy36/micro_ros_arduino/extras/library_generation/extra_packages/custom_interfaces$ ls CMakeLists.txt  package.xml  srv ubuntu@pi:~/Documents/PlatformIO/Projects\Micro_ros_Sample1/.pio/libdeps/teensy36/micro_ros_arduino/extras/library_generation/extra_packages/custom_interfaces$
However while trying to rebuild the arduino folder, could not proceed because the given steps in applicable in the raspberrypi4 which is currently connected to teensy 3.6.
ubuntu@pi:~/Documents/PlatformIO/Projects\Micro_ros_Sample1/.pio/libdeps/teensy36/micro_ros_arduino/extras/library_generation/extra_packages/custom_interfaces$ docker run -it --rm -v $(pwd):/project --env MICROROS_LIBRARY_FOLDER=extras microros/micro_ros_static_library_builder:galactic
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error

Please let me what else I can do to use the custom ROS2 service in the arduino code.

You need to run the docker on a Linux/amd64 computer instead of in a Raspberry Pi. Is that not possible for your use case?

Any update on this?

used the same on linux/amd64 computer itself. Thanks.


46 trailing spaces

This pull request addresses issue #46.
Without this patch, HTML elements with trailing spaces would not convert to Markdown correctly. For example, <i>some text </i> here would convert to _some text _ here.
This patch removes the trailing space from inside the HTML element, and adds it after the emphasis delimiter so that <i>some text </i>here would convert to _some text_ here and not _some text_here
Tests were failing before I made any changes (extra line breaks in the results that were not in the expected files), so I can not confirm that all tests are actually passing. They were however, not failing in any new ways after my changes.

I'm still not sure I understand the difference between this and #46, but please see my most recent comment on that PR to explain why I'm closing this issue now.
Sorry for the huge delay in getting around to this. I hope this hasn't put you off contributing.


Improve performance

Something (or things) are really slow to complete using H2. Isolate + try to improve, if possible.

  fetchSkillTree(gladiator) - started
    fillAltSkills(gladiator) - started
    fillAltSkills(gladiator) - completed in 25 ms
    fillSkillLevels(gladiator) - started
    fillSkillLevels(gladiator) - completed in 107 ms
    fetchCrests(gladiator) - started
    fetchCrests(gladiator) - completed in 40 ms
    aggregateMessages() - started
    aggregateMessages() - completed in 13 ms
  fetchSkillTree(gladiator) - completed in 322 ms

  fetchSkillTree(moonlord) - started
    fillAltSkills(moonlord) - started
    fillAltSkills(moonlord) - completed in 1 ms
    fillSkillLevels(moonlord) - started
    fillSkillLevels(moonlord) - completed in 50 ms
    fetchCrests(moonlord) - started
    fetchCrests(moonlord) - completed in 22 ms
    aggregateMessages() - started
    aggregateMessages() - completed in 4 ms
  fetchSkillTree(moonlord) - completed in 100 ms

So: Fetching levels is slow, and fetching crests is also slow. Maybe unavoidable?


Datepicker has performance issues while interacting with days

While using this datepicker with android (but it happens with ios too), selecting days takes a while to render again because all Day components render again. React.memo does not seem to be working. To check it out, you can add console.log('render ComponentName') like:
...
  const textStyle = isSelected
    ? { color: '#fff', ...theme?.selectedTextStyle }
    : isToday
    ? {
        ...theme?.calendarTextStyle,
        color: theme?.selectedItemColor || '#0047FF',
        ...theme?.todayTextStyle,
      }
    : theme?.calendarTextStyle;

  console.log('render Day', date);

  return (
    <View style={styles.dayCell}>
      <Pressable
        disabled={disabled}
        onPress={() => onSelectDate(date)}
        style={[
          styles.dayContainer,
          dayContainerStyle,
          todayItemStyle,
          activeItemStyle,
          disabled && styles.disabledDay,
        ]}
        testID={date}
...

This way, you will see that all components render again every time you press on a different day.
For this component in particular, i have tried:
export default React.memo(Day, (props1, props2) => {
  // If you return true, component is memorized
  return (
    props1.date === props2.date &&
    props1.disabled === props2.disabled &&
    props1.isCurrentMonth === props2.isCurrentMonth &&
    props1.isToday === props2.isToday &&
    props1.isSelected === props2.isSelected
  )
});

And now the calendar seems to be faster. I guess React.memo should be checked in every component that uses/might use it?

Hello @Elolawyn thank you for suggesting these fixes I will test and implement it.

hi @farhoudshapouran, any progress about this issue?

hi @farhoudshapouran, any progress about this issue?

hi, @YaoHuiJi sorry for the late reply, I fixed this issue and after some reviews, I will release a new version.


use single color to render the back side of terrain

Thanks for improving the underground navigation experience. It's important when dealing with some underground project. But sometimes it's hard to distinguish if the current view point is underground because the terrain is rendered the same on both sides. Maybe we can make it more clear by using single color to render the back side of terrain.

@OmarShehata It maybe something like this.

@vinstics you might be able to use globe.undergroundColor for this. See this sandcastle demo

@lilleyse @OmarShehata
Thanks a lot. Looks good enough. It keeps the shadow of the terrain without redering by using alpha. However, there is still room for improvement when use it together with globe.translucency.
Something like undergroundColorGradientByDistance might help, which can blend backside of the terrain with some color you want while keeping the center of the globe remain black.
underground

above the terrain

@vinstics yeah I see, the current system only supports one color but for your case you would need two.
As a partial workaround you could check when scene.cameraUnderground is true or not and change the color based on that: Sandcastle example


File Converter

Description of the new feature / enhancement
Implementing File Converter in the File Explorer and Context Menus to convert all kinds of files to another format.
Scenario when this would be used?
A easier way to convert files across the system just clicking the mouse right button and having it in the context menu (like image resizer), without needing a shady converter website or program.
Supporting information
There is a good github program (https://github.com/Tichau/FileConverter) but doesn't support W11 Context Menus.

/dup #2686

It is a good idea, just already captured by some other users. Check out this list of common issues. If you have more ideas, then you can see if anyone else has already suggested it and +👍 their issue.
https://github.com/microsoft/PowerToys/wiki/Common-Triage-Issue


Using ObsidianPasteImg sometimes makes obsidian render poorly

🐛 Describe the bug
After using ObsidianPasteImg a couple of times, it gets into this state where when I paste an image using the command it renders poorly in just Obsidian.
Hard to describe this issue because it seems very specific to Obsidian.
So when I paste the image using ObsidianPasteImg, it shows up in the file tree and everything works as expected, but Obsidian just renders it with some extra brightness and bad contrast. However, when I use finder or preview to open that exact image, it looks perfectly fine, which tells me that this probably isn't an image problem(?), but Obsidian just isn't dealing with it well. The reason I'm submitting an issue here and not to Obsidian though is if I paste the exact same thing I have in my clipboard at the time directly in Obsidian it pastes perfectly fine and the image it adds gets rendered perfectly. Below is an example of first what ObsidianPasteImg's image rendered as, and second what the exact same image pasted from my clipboard shows up as in Obsidian.

I literally just copied this image from google images from this link: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/480px-Instagram_icon.png
Sorry if my explanation wasn't super clear. This seems like a very weird bug to me that I don't understand. Let me know if you want further clarification on anything. I also searched for a while if there were any Obsidian issues out there related to this, but didn't find anything.
Config
{
    "epwalsh/obsidian.nvim",
    version = false, -- get latest version
    lazy = true,
    ft = "markdown",
    dependencies = {
      "nvim-lua/plenary.nvim",
      "hrsh7th/nvim-cmp",
      "nvim-telescope/telescope.nvim",
      "nvim-treesitter/nvim-treesitter",
    },
    keys = {
      { "<leader>oo", "<cmd>ObsidianOpen<cr>", desc = "Open Obsidian" },
      { "<leader>on", "<cmd>ObsidianNew<cr>", desc = "Create a new Obsidian Document" },
      { "<leader>os", "<cmd>ObsidianSearch<cr>", desc = "Search Obsidian" },
      { "<leader>of", "<cmd>ObsidianQuickSwitch<cr>", desc = "Obsidian Find Files" },
      { "<leader>op", "<cmd>ObsidianPasteImg<cr>", desc = "Obsidian Paste Image" },
      { "<leader>or", "<cmd>ObsidianRename<cr>", desc = "Obsidian Rename current note" },
      { "<leader>ot", "<cmd>ObsidianTemplate<cr>", desc = "Insert Obsidian Template into file" },
    },

    opts = {
      workspaces = {
        {
          name = "Obsidian Vault",
          path = "~/Documents/Obsidian Vault",
        },
      },
      open_app_foreground = true,
      completion = {
        nvim_cmp = true, -- with this set to true, it automatically configures completion on its own
      },
      disable_frontmatter = true,
      templates = {
        subdir = "templates",
        date_format = "%Y-%m-%d",
      },
      note_id_func = function(title)
        if title ~= nil then
          -- Convert title to lowercase and replace spaces with hyphens, e.g. "My Note" -> "my-note"
          return title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower()
        else
          return "untitled"
        end
      end,
    },
  }

Environment
❯ nvim --version
NVIM v0.10.0-dev-2501+gdbf6be296-Homebrew
Build type: Release
LuaJIT 2.1.1703358377

❯ nvim --headless -c 'lua require("obsidian").info()' -c q
Obsidian.nvim v3.6.1 (099ef3dc0c0882fb4f10ebce8283c368c58bd06b)
Dependencies:
   plenary.nvim: 4f71c0c4a196ceb656c824a70792f3df3ce6bb6d
   nvim-cmp: 04e0ca376d6abdbfc8b52180f8ea236cbfddf782
   telescope.nvim: dc1ea28cc2a02cd1cebb9d80e967807d668f78f8
Integrations:
   picker: TelescopePicker()
   completion: enabled (nvim-cmp)
Tools:
   rg: ripgrep 14.1.0
Environment:
   operating system: Darwin
Config:
   notes_subdir: nil

❯ pngpaste -v
pngpaste 0.2.3

Obsidian v1.5.8 (Installer version v1.4.16)

I've been seeing this a lot too. Sometimes, after reopening Obsidian, the image isn't washed out anymore. It's a very strange bug.

I am also having the same problem.

Same here...


ci: fix permission in benchmark workflow

:tada: This PR is included in version 2.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add helper version of split_jobs that calls C functions

Potential API could be:
def run_cjobs(job_name, *args, converters=()): ...

job_name would be the name of the C function, and possibly also its file. converters would be a list of functions to convert the given Python object to a cffi object or similar.
This would probably be easiest with cython, but I don't, as of yet, know how.
If this does work, a similar API should be provided for other languages that can interact with Python or be called from C. I know you can do go, and I'm fairly sure rust would work if C does

I think I have something similar to this working in the cython branch. It's not quite the same, and it would have problems if you needed to include any .c files, but it's at least partial support.
Full support would need to build an actual C extension, either using Cython or the standard C API. This is a good first step, though. If I can find a way to compile at runtime with a .c file, then that would be the way to go.


Booelan

Did you mean Boolean in the Readme?

Yeah!
Booelan, wow! 😓
Would you like to open a PR to fix the typo?

All right


dml-fused-activations.md rogue backslashes in struct definition

In https://docs.microsoft.com/en-us/windows/ai/directml/dml-fused-activations, there should be no rogue backslashes before/after the _Maybenull_ SAL annotation:
Currently:
struct DML_CONVOLUTION_OPERATOR_DESC
{
    ...
    \_Maybenull\_ const DML_TENSOR_DESC* BiasTensor;

Expected:
struct DML_CONVOLUTION_OPERATOR_DESC
{
    ...
    _Maybenull_ const DML_TENSOR_DESC* BiasTensor;

@stevewhims Interesting. I just noticed this PR went into a separate repo, not the usual https://github.com/MicrosoftDocs/sdk-api, and no reviewers were auto-added.


footer issue

i want to improve the footer and solvesd some footer issue,icon issue

I want to improve the footer section and also the alignment of the social icons because they are not properly align and the text is not properly recognizagle i want to improve that also.
please assign this to me under
gssoc'23 tag


Remove twitter embed from website

The twitter embed doesn't work any more. Also, twitter is effectively dead and maintaining a separate account for our team doesn't make a lot of sense I think.

Closed by 526b666640c83d7a9b3243b904406a6d23487d8d


SpotMenu pop up not showing when "automatically hide finder bar" option is selected

SpotMenu pop up not showing when "automatically hide finder bar" option is selected

Still broken


Add Linear connector

Description

Provide description here

Type of change

[ ] Bug fix
[ #528 ] New feature
[ ] Breaking change

Related issues

Fix #528

Migration notes

Describe migration notes if any

Extra info

Add any additional information

There now is a airbyte linear community source: https://linear.app/docs/airbyte
See conversation here: https://github.com/faros-ai/airbyte-connectors/issues/528. @tovbinm suggested removing our source and just keeping our converters.

Although, it seems the community source does not support incremental yet...

so, maybe we keep our source until we are satisfied with the community source?

@huongtn Linear already has an Airbyte source for pulling their data. We want to use their version instead of maintaining our own version, but it is missing a couple features that you implemented in your source implementation. The missing features I found so far are: "Labels" stream, and incremental support for "Issues" stream.
We've made a fork of Linear's Airbyte source here https://github.com/faros-ai/linear-airbyte-source. Please make a PR adding those missing features (and any other missing features I missed) to that version of the source, and update your destination converters to support Linear's source. I suspect only minimal changes to the converters will be needed, as the fetched data from each stream should be largely the same.
We can then contribute your source additions upstream to the official Linear source repo.


Mistake in README for reference application config file

The example json config for the bf_switchd reference application has unnecessary commas on lines 6 and 29 that cause the program to fail to process the file. In the readme the example json given is
    {
        "chip_list": [
            {
                "id": "asic-0",
                "chip_family": "dpdk",
                "instance": 0,
            }
        ],
        "instance": 0,
        "p4_devices": [
            {
                "device-id": 0,
                "p4_programs": [
                    {
                        "program-name": "<P4 program name>",
                        "cpu_numa_node": "0",
                        "bfrt-config": "share/dpdk/<P4 program name>/bf-rt.json",
                        "port-config": "share/dpdk/<P4 program name>/ports_topology.json",
                        "eal-args": "dummy -n 4 -c 3",
                        "p4_pipelines": [
                            {
                                "p4_pipeline_name": "pipe",
                                "context": "share/dpdk/<P4 program name>/pipe/context.json",
                                "config": "share/dpdk/<P4 program name>/pipe/<P4 program name>.spec",
                                "path": "share/dpdk/<P4 program name>"
                            }
                        ]
                    }
                ],
            }
        ]
    }

When it should be
    {
        "chip_list": [
            {
                "id": "asic-0",
                "chip_family": "dpdk",
                "instance": 0
            }
        ],
        "instance": 0,
        "p4_devices": [
            {
                "device-id": 0,
                "p4_programs": [
                    {
                        "program-name": "<P4 program name>",
                        "cpu_numa_node": "0",
                        "bfrt-config": "share/dpdk/<P4 program name>/bf-rt.json",
                        "port-config": "share/dpdk/<P4 program name>/ports_topology.json",
                        "eal-args": "dummy -n 4 -c 3",
                        "p4_pipelines": [
                            {
                                "p4_pipeline_name": "pipe",
                                "context": "share/dpdk/<P4 program name>/pipe/context.json",
                                "config": "share/dpdk/<P4 program name>/pipe/<P4 program name>.spec",
                                "path": "share/dpdk/<P4 program name>"
                            }
                        ]
                    }
                ]
            }
        ]
    }

Note the removed commas after "instance": 0 and the second to last ].

not relevant any more. Fixed in earlier releases


Fixed sorting bug

Overview
Fixed issue #170 where it would crash when sorted more than 2 times.
What Changed
Added a check to make sure aGrades and bGrades objects were defined.

This seems to have removed the check if they're both undefined/not loaded. It was this:
if (aGrades.state !== 'done' && bGrades.state !== 'done') {
  return 0;
}

If there's not a reason, can you bring it back (for grades and rmp) and apply your changes from the other if statements to these as well.

There was no particular reason. I added it back and its working so no issues

Looks excellent then! I'll let @AbhiramTadepalli review


Handle "quit" command correctly during search

Previously, the timer thread could end up in an endless loop when a
"quit" command was received after a "go" command with one of the
options "wtime", "btime" or "movetime"

Codecov Report

Merging #93 (c4f946e) into main (c73a128) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #93   +/-   ##
=======================================
  Coverage   96.49%   96.50%
=======================================
  Files          66       66
  Lines        6538     6553   +15
=======================================
+ Hits         6309     6324   +15
  Misses        229      229

Impacted Files
Coverage Δ

engine/src/timer.rs
100.00% <100.00%> (ø)

fatalii/tests/cli.rs
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


End of Artifactory maintenance

Draft until JFrog confirmation.

JFrog confirmed by mail the completion of the maintenance, ready for review 🙂


Add support for expire_after

Add support for entities expiration, DTU or microinverter entities may become unavailable in Home Assistant after a certain number of seconds when there is no update from hoymiles-mqtt

Codecov Report

Merging #4 (7b2012c) into main (b177dd9) will not change coverage.
The diff coverage is 0.00%.

@@          Coverage Diff          @@
##            main      #4   +/-   ##
=====================================
  Coverage   0.00%   0.00%
=====================================
  Files          5       5
  Lines        177     182    +5
=====================================
- Misses       177     182    +5

Impacted Files
Coverage Δ

hoymiles_mqtt/__main__.py
0.00% <0.00%> (ø)

hoymiles_mqtt/ha.py
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


cmd/go: TestScript/mod_invalid_version is failing locally

Not sure why this isn't happening on TryBots, but this is what I'm seeing when I run locally on macOS or Linux:
$ go test -run=TestScript/mod_invalid_version_repro
go test proxy running at GOPROXY=http://<IP_ADDRESS>:60665/mod
--- FAIL: TestScript (0.01s)
    --- FAIL: TestScript/mod_invalid_version_repro (3.39s)
        script_test.go:252:
            # Regression test for golang.org/issue/27173: if the user (or go.mod file)
            # requests a pseudo-version that does not match both the module path and commit
            # metadata, reject it with a helpful error message.
            #
            # TODO(bcmills): Replace the github.com/pierrec/lz4 examples with something
            # equivalent on vcs-test.golang.org.
            # A pseudo-version derived from a canonical tag on the same revision is invalid. (3.337s)
            > cp go.mod.orig go.mod
            > go mod edit -require<EMAIL_ADDRESS>            > cd outside
            $WORK/gopath/src/outside
            > ! go list -m golang.org/x/text
            [stderr]
            go list -m<EMAIL_ADDRESS>invalid pseudo-version: tag (v0.2.0) found on revision c4d099d611ac is already canonical, so should not be replaced with a pseudo-version derived from that tag
            go list -m<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>invalid pseudo-version: tag (v0.2.0) found on revision c4d099d611ac is already canonical, so should not be replaced with a pseudo-version derived from that tag
            [exit status 1]
            > stderr 'go list -m<EMAIL_ADDRESS><EMAIL_ADDRESS>invalid pseudo-version: tag \(v0.2.0\) found on revision c4d099d611ac is already canonical, so should not be replaced with a pseudo-version derived from that tag'
            > cd ..
            $WORK/gopath/src
            > ! go list -m golang.org/x/text
            [stdout]
            golang.org/x/text v0.2.1-0.20171213102548-c4d099d611ac
            FAIL: testdata/script/mod_invalid_version_repro.txt:23: unexpected command success

FAIL
exit status 1
FAIL    cmd/go  5.088s

I could reproduce the bug using Git only:
#!/usr/bin/env bash

set -euo pipefail

rm -rf repo
mkdir repo
cd repo
git init --bare
git remote add origin -- https://go.googlesource.com/text
git fetch -f --depth=1 origin refs/tags/v0.2.0:refs/tags/v0.2.0
got=$(git -c log.showsignature=false log -n1 '--format=format:%H %ct %D' c4d099d611ac --)
want='c4d099d611ac3ded35360abf03581e13d91c828f<PHONE_NUMBER> grafted, tag: v0.2.0'
if [ "$got" != "$want" ]; then
  echo "got:  $got" >&2
  echo "want: $want" >&2
  exit 1
else
  echo ok >&2
fi

This may be a bug with the version of Git installed on my machine. I couldn't reproduce this with Git 2.32.0.

Is this marked as a 1.18 release blocker because it's okay to fix this after 1.17 is released?
I can't reproduce with git version 2.30.1 (Apple Git-130) either.

Ah, meant to mark this for 1.17.
I'm removing the release-blocker label, since this seems to be a bug in Google's Git, not in Go, and I don't expect we'll need to change anything.
Reported internally as b/193836680.

Thanks for reporting<EMAIL_ADDRESS>should fix this.
The buggy commit was not part of any Git release, so cmd/go shouldn't need to work around it.

Thanks @jrn! I'll close this issue then.


Add listSpacing for text

Add listSpacing for:

TextSublayerNode
TextStyle

Thanks for putting this up! It looks like we've added these properties in this PR, so closing this out.


WebSockets sending JSON data

Is your feature request related to a problem? Please describe.
Currently websocket connections can only send const string& and const char*, for it to send const Json::Value& we have to stringify it first, and then send it over the const string& overload.
The problem is, there is only one public method exposed by Json::Value to construct a stringified JSON, that is Json::Value::toStyledString. But it outputs a prettified version of the JSON, with indents.
There is Json::StreamWriter, but that is a lot of manual work.
Describe the solution you'd like
A public overloaded method for drogon::WebSocketConnection taking in a const Json::Value&, to stringify efficiently, just like how drogon::HttpResponse::newHttpJsonResponse(json) generates an efficient stringified version of the JSON.

I write a format function for Json::Value myself. I think this is the one of the unfriendly places of jsoncpp. nlohmann json has a dump() method, which is really good.
I personally don't want to add any more Jsoncpp relative apis into framework. It really sucks, in both api design and performance. Perhaps we will get rid of it in future.

Perhaps we can write a middle layer API that reveives the const Json::Value& and spits out a dumped JSON string, this way we know where it has been referenced and can change its signature easily

@Mis1eader-dev  You are right.
This is my version of 'parse' and 'dump'.
The dump api is simple, but I don't know if it is a standard practice to use a static builder...
The parse api is still ugly... There are so many different ways to handle errors, and we don't have a standard for that.
I don't feel like forcing others to use my way, so I won't want to write this PR :see_no_evil:. I'll leave it to someone who wants.
#include <json/reader.h>
#include <json/writer.h>

std::string jsonToString(const Json::Value & json)
{
    static const Json::StreamWriterBuilder & builder = []() -> Json::StreamWriterBuilder & {
        static Json::StreamWriterBuilder builder;
        builder["commentStyle"] = "None";
        builder["indentation"] = "";
        return builder;
    }();
    return writeString(builder, json);
}

bool stringToJson(const std::string & doc, Json::Value * root, Json::String * errs)
{
    return stringToJson(&doc[0], &doc[0] + doc.size(), root, errs);
}

bool stringToJson(char const * beginDoc, char const * endDoc, Json::Value * root, Json::String * errs)
{
    static Json::CharReaderBuilder & builder = []() -> Json::CharReaderBuilder & {
        static Json::CharReaderBuilder builder;
        builder["collectComments"] = false;
        return builder;
    }();
    std::unique_ptr<Json::CharReader> jsonReader(builder.newCharReader());
    return jsonReader->parse(beginDoc, endDoc, root, errs);
}

Why no PR? It's better to have something than not have JSON for WebSockets
We can copy the logic written in the HttpResponse implementation for JSON responses and make a drogon::json middle layer containing both strToJson and jsonToStr methods
For strToJson we'll use the logic of HttpRequest JSON parsing


[Draft] Implement Security Feature

This is a first draft about how a package security feature might look like.
The basic idea is that package maintainers can mark a release as insecure and provide a URL to a CVE or a blog post describing the vulnerability as a first step to implement something like the suggestion in https://github.com/pypa/warehouse/issues/798
Styles
I've borrowed a lot of the excellent styles that are already in the codebase and added a few new style classes.
If you take a look at the attached screenshots, you'll see that I've added a big red banner on top and a smaller label on the Version History & Changelog tab.

Workflow
A maintainer that wants to mark a release is insecure would go to a new page where all the packages he or she maintains are listed, select one or multiple releases and provide a URL for further explanation.

Implementation
This draft adds two new fields to the packaging.Release model:

insecure Boolean
insecure_url Text

And a new view to accounts.views that I've called mark_insecure. In its current form, the view does nothing other than passing a dict containing two example projects to the template.
Is this something you would consider to add to the new codebase? I'm open to all feedback for this draft and I'm willing to go down a completely different route if this doesn't fit.
If this is something you'd consider, I'd be happy to continue to work on this to fill the missing parts.

I've not looked at the code itself at all, but the feature itself seems sound to me. I wonder if it makes sense to make it more generic so that it could cover the use case of #345 as well (or maybe not, since it's possible to have an insecure version that hasn't been deprecated or had support dropped).
All design is gated on @nlhkabu so she'd have to speak to any particular design impact and how it should be displayed.

Instead of insecure boolean I suggest marked_insecure_at datetime, as sometimes you want to track these changes on timeline for audit purposes.

Thanks @jayfk. Both the design and front end code look great - the only thing I'd like to see is the banner size reduced (as per my above comment).

Thanks @jayfk. Both the design and front end code look great - the only thing I'd like to see is the banner size reduced (as per my above comment).

Yes! I've played around with it a little (even had the whole banner in red for a while), but I had always the impression that it was a bit too much.

I've not looked at the code itself at all, but the feature itself seems sound to me. I wonder if it makes sense to make it more generic so that it could cover the use case of #345 as well (or maybe not, since it's possible to have an insecure version that hasn't been deprecated or had support dropped).

Maybe we could switch the fields to something like:

deprecated_at: datetime (what @miohtama suggested so that we can keep track of it)
deprecated_reason: ["insecure", "not maintained", None]

This way a package that is insecure would be a special case of a deprecated package and we have one interface to manage it all. What do you think?

Implementation in #1462.


Perform API hit for address autocomplete search with minimum of 3 chars

@guytepper how can I add reviewers?

Great! Thank you! 🙏


⚠ SolarOscp has degraded performance

In 3f35848, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 386 ms

Resolved: SolarOscp performance has improved in efda5a2.


I cant send my tokens in chain ton to another wallet.

i have tonk tonkens. i have them in trustwallet. but i cant import this wallet to another ton wallet because it has 12 words and the others have 24. moreover, I cant see my tokens in trustwallet. i see they are there in the ton explorer scan. but i cant dl anything with them. i need help
Answer
tired of this network

Original

i have tonk tonkens. i have them in trustwallet. but i cant import this wallet to another ton wallet because it has 12 words and the others have 24. moreover, I cant see my tokens in trustwallet. i see they are there in the ton explorer scan. but i cant dl anything with them. i need help
Answer
tired of this network
Original

Hello @akegaviar
We sincerely apologize for the delay and any inconvenience this may have caused.
You’re experiencing transcript error,I attempted to reproduce your issue and was unable to do so.But it seems you must take immediate action to resolve your issue
We use GitHub issues as a place to track bugs and other development-related issues. If your issue persists, I’ll have to refer you to the official support live chat with the ticket ID TON#5152
Please see the link below to our dedicated support line:
TON Network DApps Support Ticket Requests.
Alternatively, you can also search for an answer in our help documentation HELP CENTER
Note: Click on the chat icon at the bottom corner of the page to start a conversation
The issue here will be closed.
Thanks!


Add some props for Button

I found that some props is not added when I used Button element.
So, I added 'active', 'circular', 'className', 'fluid', and 'floated'.
And I arranged them up.

Looks good! Thanks you 🙂


About Us and Contacts Page information

Kindly provide me with the information to be displayed over "About Us" page and "Contacts" page so that i could complete creating the pages.
Thank You

What is Unicorn Club ?
Unicorn Club is well managed Tech Club of JNU , mainly
focuses on collaborative learning, team building and project
building. We strongly encourages learning of new
technologies.
We promote open-source technologies but it doesn't mean we
won't talk about closed source projects.

https://wiki.mozilla.org/Unicorn_Club  - Wiki Page
<EMAIL_ADDRESS>     - EMail
http://dev-jnu.slack.com/             - slack
https://www.facebook.com/groups/clubunicorn/ - Facebook


Typo in YAML Deployment job Schema

On this page , at the section Deployment job, the Schema is written as:
  strategy:
    runOnce:
      deploy:
        steps:
        - script: [ script |  ...

I think the last 2 lines are wrong. The last line should be gone and the next to last line should be:
        steps: [ script | ...

That line is described in the next section Steps. So that the Schema in Deployment job ends with:
  strategy:
    runOnce:
      deploy:
        steps: [ script |  ...

Another issue is that the same typo also exists on another page Deployment jobs at the Schema section.
What do you think, is it a typo in the Schema at both pages?
If so, please correct the Schemas.

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

ID: 7458d5b2-1bb7-7d87-7ce6-2b0c430b0155
Version Independent ID: edf5bbd3-a3f0-5426-e985-31290f8afd05
Content: YAML schema - Azure Pipelines
Content Source: docs/pipelines/yaml-schema.md
Product: devops
Technology: devops-cicd
GitHub Login: @steved0x
Microsoft Alias: sdanie

@steved0x , can you take a look?

Investigating

@A-AontwSR Thank you for letting us know, I am fixing this and it will be live shortly. Thank you!


Add isContiguous check for new AmgX API

The new AmgX API allows passing in partition offsets instead of a full partition vector.
Perform this check using the PETSc index set API to transparently enable the optimization.

Updated documentation (dependencies)
Added timing to poisson example to allow verification

I verified that the optimization works on the poisson example by doing the following:

Compile/load all libraries: AmgX latest (with the new API),  PETSc latest (OpenMPI, GCC), CUDA 10.1
Compiling the poisson example using both AmgX and the PETSc build (called ompi_gcc_opt):

cd AmgXWrapper/examples/poisson && mkdir build && cd build
cmake -DPETSC_DIR=$TOOLS/petsc -DPETSC_ARCH=ompi_gcc_opt \
-DCUDA_DIR=$CUDA_HOME -DAMGX_DIR=$TOOLS/AMGX ..
make

Running on a single DGX-1V node two cases with 4 and 8 MPI ranks, i.e. 4 and 8 GPUs:
N=400 time -p mpirun -np 4 -x N \  bash -c "bin/poisson -caseName Test -mode AmgX_GPU -cfgFileName configs/AmgX_SolverOptions_AGG.info -Nx \$N -Ny \$N -Nz \$N -Nruns 1 -optFileName test"
Got results from log file with grep -i solving test.log -A2 | awk '{printf("%-10s%s\n",$1, $4)}'. (the command just filters out the runtime in seconds of the regions of interest)
Running with the optimization turned off/on (manually, in source) gives these times, showing that the setA routine is now scaling along with the solve call. Scaling is not perfect as this matrix is still somewhat small, just to be able to run a quick benchmark on a single node for this PR - I've tested this separately on multi-node GPU with larger matrix sizes, too.

OPTIMIZATION OFF          OPTIMIZATION ON
With np=4                 With np=4
Solving   7.6343e+00      Solving   7.6004e+00
WarmUp    7.6985e+00      WarmUp    7.6580e+00
setA      5.8078e+00      setA      4.1525e+00
----------------------    --------------------
With np=8                 With np=8
Solving   4.8465e+00      Solving   4.8461e+00
WarmUp    4.8944e+00      WarmUp    4.8850e+00
setA      4.4951e+00      setA      2.5223e+00
--------------------      --------------------

I also verified that using N_ranks > N_gpus still works, uses the optimized path (i.e. indices are contiguous) and gets a slight speedup, though overall runtime increased (presumably due to the consolidation overhead).

Thanks @mhrywniak ! I'm now reviewing it!

This PR looks good to me, though there is a minor issue I would like to mention: the PR breaks the compatibility to older AmgX. The new code introduced in this PR makes the wrapper not able to work with older AmgX (any versions before the commit aba9132). However, this is fine for me because I believe there are not many AmgXWrapper users. @mhrywniak and @mesnardo are the only two users known to me. So I think this issue is very minor.
The PR will now be merged and closed.

Appendix: a quick performance test
I'm not able to do a serious test because I now only have a personal desktop (i7-5930K + ASUS X99-Deluxe) with two K40c. So I just did a quick test to get some numbers. I tried with two smaller meshes (300x300x300 & 200x200x200) and both aggregation and classical multigrid algorithms. Three combinations of different versions of AmgX and AmgXWrapper were tested. The following results (wall time in seconds of the function setA) are merely the numbers from single runs, i.e., not the average of multiple runs. But they can still provide some sense.

AmgXWrapper v1.5 + AmgX 3049527

1 K40c
2 K40c

300x300x300; Agg
7.30
6.02

200x200x200; Agg
2.02
1.84

200x200x200; Classical
4.42
2.32

AmgXWrapper v1.5 + AmgX aba9132

1 K40c
2 K40c

300x300x300; Agg
7.95
5.19

200x200x200; Agg
2.10
1.43

200x200x200; Classical
4.43
2.25

AmgXWrapper PR26 + AmgX aba9132

1 K40c
2 K40c

300x300x300; Agg
6.91
4.56

200x200x200; Agg
1.95
1.29

200x200x200; Classical
4.44
2.23


Omero channels window parameters became required unintentionally with 0.12.0 changes

With our new use of NgffImageMeta, the Omero channels window appears to have become required in 0.12.0, while it's an optional thing for a user to enter in the web interface.
I don't fully understand how this issue arises to be honest though. Looking at the models, it looked like it should work. Why would an omero channel not have a window parameter? Don't we always set the min & max in the task based on the pixel bitrate? Or do we only do this when a user provides start & end?
In any case, we apparently get the following error when running the Yokogawa to OME-Zarr task (without setting window in the Create OME-Zarr step before):
2023-10-02 17:32:21,639; INFO; START yokogawa_to_ome_zarr task
2023-10-02 17:32:25,050; ERROR; Contents of /path/to/Hodgkin CV8000/Hodgkin CV8000 processed data fractal/Metastasis p146-1.zarr/F/04/0/ cannot be cast to NgffImageMeta.
Original error:
4 validation errors for NgffImageMeta
omero -> channels -> 0 -> window
  field required (type=value_error.missing)
omero -> channels -> 1 -> window
  field required (type=value_error.missing)
omero -> channels -> 2 -> window
  field required (type=value_error.missing)
omero -> channels -> 3 -> window
  field required (type=value_error.missing)
Traceback (most recent call last):
  File "/path/to/FRACTAL_TASK_DIR/.fractal/fractal-tasks-core0.12.0/venv/lib/python3.9/site-packages/fractal_tasks_core/tasks/yokogawa_to_ome_zarr.py", line 271, in <module>
    run_fractal_task(
  File "/path/to/FRACTAL_TASK_DIR/.fractal/fractal-tasks-core0.12.0/venv/lib64/python3.9/site-packages/fractal_tasks_core/tasks/_utils.py", line 79, in run_fractal_task
    metadata_update = task_function(**pars)
  File "pydantic/decorator.py", line 40, in pydantic.decorator.validate_arguments.validate.wrapper_function
    from contextlib import _GeneratorContextManager
  File "pydantic/decorator.py", line 134, in pydantic.decorator.ValidatedFunction.call

  File "pydantic/decorator.py", line 206, in pydantic.decorator.ValidatedFunction.execute

  File "/path/to/FRACTAL_TASK_DIR/.fractal/fractal-tasks-core0.12.0/venv/lib/python3.9/site-packages/fractal_tasks_core/tasks/yokogawa_to_ome_zarr.py", line 115, in yokogawa_to_ome_zarr
    ngff_image_meta = load_NgffImageMeta(zarrurl)
  File "/path/to/FRACTAL_TASK_DIR/.fractal/fractal-tasks-core0.12.0/venv/lib64/python3.9/site-packages/fractal_tasks_core/lib_ngff.py", line 397, in load_NgffImageMeta
    raise e
  File "/path/to/FRACTAL_TASK_DIR/.fractal/fractal-tasks-core0.12.0/venv/lib64/python3.9/site-packages/fractal_tasks_core/lib_ngff.py", line 391, in load_NgffImageMeta
    return NgffImageMeta(**zarr_attrs)
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 4 validation errors for NgffImageMeta
omero -> channels -> 0 -> window
  field required (type=value_error.missing)
omero -> channels -> 1 -> window
  field required (type=value_error.missing)
omero -> channels -> 2 -> window
  field required (type=value_error.missing)
omero -> channels -> 3 -> window
  field required (type=value_error.missing)

The relevant parameter in the Create OME-Zarr task looked like this (no window set):
    "allowed_channels": [
        {
            "wavelength_id": "A01_C04",
            "label": "DAPI",
            "color": "0000FF",
            "active": true,
            "coefficient": 1,
            "inverted": false
        },

We should either revert this and make windows really optional again, or make it also required in the pydantic models we use for the web interface. This is a good example for the importance of https://github.com/fractal-analytics-platform/fractal-tasks-core/issues/540
There is a good workaround for the moment: As long as one actually sets the window parameter in Omero channel, this issue does not arise.

We should either revert this and make windows really optional again

This is covered by #548, which is ready for merging (and that could become version 0.12.1).


Allow to profile non HTTP requests (e.g shell scripts, cron jobs)

Currently we start and end capturing assuming an HTTP request that is routed, dispatched.

would this include being able to use the toolbar on magento https pages also?

@tvby, latest version should worked correctly over HTTP and HTTPS. Currently, I'm working mostly on two stores. One is entirely on HTTPS and the other one is using only secure urls on HTTPS. On both of them I can view toolbar and access details about current or previous requests. Can you share more details why you cannot use the toolbar on https? Any screenshots are welcomed.
This ticket was created to make sure we don't affect non HTTP processes like shell scripts, cron jobs. And also try to profile these executions (e.g what queries or e-mails were run for xyz cron job).


Fix Code Styling

Applied code styling (braces, indents, etc), PMD Apex and fixed typo's

@wimvelzeboer this is great work thanks taking the time to do this, I know @rsoesemann will be happy!

@dfruddffdc @agarciaodeian any thoughts on this? It would be great to get the lib compliant with PMD! 👍

You know how happy I am when you spread the word about Clean Code and PMD...but in this PR it's only used for a few IMHO less important cosmetic changes. More relevant issues found by PMD in this lib are long complex classes. Hard to testcover conditional structures and an overuse of static vs good OO encapsulation patterns.
Don't get me wrong. I love this lib for what it does and how great it scales but the complex code gave me a hard time whenever I wanted to contribute.

Thanks for the clarification @rsoesemann, small steps...

I could have a look at the more important PMD issues if you like, but in this commit I focused on styling. I know that it is best to do not too many things in one pull-request when it comes to styling, else we might run into very complex merges.

@wimvelzeboer That was not at all criticism of your first step. I fully agree with you that before you fix design issues in code "low hanging fruits" like naming and formatting should be fixed.
My answer to @afawcett was twofold: Me highly appreciating the adoption of PMD in such a wellknown repo and the wish to make this lib a bit less verbose and complex so other devs could contribute more.
And I think that PMDs Cyclomatic Complexity, To Long Class, To many methods, To much static stuff rules could help refactor it. But someone with deep insights into the existing code would need to do this. So not me ;-)

If these changes are reduce PMD output and move us a step closer to enabling PMD i am up for it. @wimvelzeboer  can you confirm?


Support for optional time in dates

The Chrono library has separate structures for Date and DateTime. This doesn't work with Elasticsearch's default strict_date_optional_time format.
Can be implemented as a second-chance parse if pull request in chrono is merged https://github.com/lifthrasiir/rust-chrono/pull/54

Try parsing to Parsed first, and check time values before returning

5cc9eeec4e5239969a74fa213b54eca1392e2174


Compilation with CUDA 11.8 fails with the latest Vidual Studio 2022 (17.0)

Description
Problem
I am getting a compilation error when compiling CUDA code with cupy and CUDA 11.8 since a new version of the visual studio compiler has been released (17.0)
the error is
C:\Miniconda\envs\cupy_project\include\crt/host_config.h(153): fatal error C1189: #error:  -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
 E               nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.

The problem is discussed on the NVidida form here
Solution
It is mentioned  here that switching to  CUDA 12.5 could solve the problem. However it is not possible to do that swithc for my project due to other dependencies.
As a mitigation we could add the flag allow-unsupported-compiler in the function compile_using_nvcc`
To Reproduce
# Write the code here

Installation
create a pyhon conda environment using the environment file
name:  runtime
channels:
  - defaults
  - nvidia/label/cuda-11.8.0
  - conda-forge
dependencies:
  - python=3.10
  - cuda-version==11.8
  - cuda-toolkit=11.8
  - cudnn==<IP_ADDRESS>
  - pip:
    - -r requirements.txt

variables:
  OPENCV_IO_ENABLE_OPENEXR: "1"
  CUDA_PATH: ""
  CUDA_HOME: ""

then install cupy-cuda11x==12.3.0
pip install cupy-cuda11x==12.3.0

Environment
Windows.
Visual studio  2022  version 17.0
Additional Information
No response

Thanks for the feedback @martinResearch. Does passing the option through RawKernel's options argument work for you?
https://docs.cupy.dev/en/stable/reference/generated/cupy.RawKernel.html

Thank you for the suggested solution.  I am not using RawKernel directly, I am calling cupyx.scipy.ndimage.binary_erosion , so this does not seems to be a viable solution for me

maybe we could use an environment variable CUPY_NVCC_OPTIONS where the user can put additional options?

I guess this will work? set NVCC=nvcc --allow-unsupported-compiler
I'm still unsure why this error arises, cupyx.scipy.ndimage.binary_erosion should not require NVCC. Could you share the full stack trace and your CuPy version?

here is the stack trace when trying to use binary_erosion:
C:\Miniconda\envs\runtime\lib\site-packages\cupyx\scipy\ndimage\_morphology.py:308: in binary_erosion
    return _binary_erosion(input, structure, iterations, mask, output,
C:\Miniconda\envs\runtime\lib\site-packages\cupyx\scipy\ndimage\_morphology.py:212: in _binary_erosion
    nnz = int(cupy.count_nonzero(structure))
C:\Miniconda\envs\runtime\lib\site-packages\cupy\_sorting\count.py:24: in count_nonzero
    return _count_nonzero(a, axis=axis)
cupy\_core\_reduction.pyx:608: in cupy._core._reduction._SimpleReductionKernel.__call__
    ???
cupy\_core\_reduction.pyx:364: in cupy._core._reduction._AbstractReductionKernel._call
    ???
cupy\_core\_cub_reduction.pyx:701: in cupy._core._cub_reduction._try_to_call_cub_reduction
    ???
cupy\_core\_cub_reduction.pyx:538: in cupy._core._cub_reduction._launch_cub
    ???
cupy\_core\_cub_reduction.pyx:473: in cupy._core._cub_reduction._cub_two_pass_launch
    ???
cupy\_util.pyx:64: in cupy._util.memoize.decorator.ret
    ???
cupy\_core\_cub_reduction.pyx:246: in cupy._core._cub_reduction._SimpleCubReductionKernel_get_cached_function
    ???
cupy\_core\_cub_reduction.pyx:231: in cupy._core._cub_reduction._create_cub_reduction_function
    ???
cupy\_core\core.pyx:2251: in cupy._core.core.compile_with_cache
    ???
 Should be cubin or ptx')
        if code_type == 'ptx':
            assert not separate_compilation

        arch_str = '-gencode=arch=compute_{cc},code=sm_{cc}'.format(cc=arch)
        _nvcc = get_nvcc_path()
        # split() is needed because _nvcc could come from the env var NVCC
        cmd = _nvcc.split()
        cmd.append(arch_str)

        with tempfile.TemporaryDirectory() as root_dir:
            first_part = filename.split('.')[0]

            path = os.path.join(root_dir, first_part)
            cu_path = '%s.cu' % path
            result_path = '%s.%s' % (path, code_type)

            with open(cu_path, 'w') as cu_file:
                cu_file.write(source)

            if not separate_compilation:  # majority cases
                cmd.append('--%s' % code_type)
                cmd += list(options)
                cmd.append(cu_path)

                try:
                    _run_cc(cmd, root_dir, 'nvcc', log_stream)
                except NVCCException as e:
                    cex = CompileException(str(e), source, cu_path, options,
                                           'nvcc')

                    dump = _get_bool_env_variable(
                        'CUPY_DUMP_CUDA_SOURCE_ON_ERROR', False)
                    if dump:
                        cex.dump(sys.stderr)

>                   raise cex
E                   cupy.cuda.compiler.CompileException: `nvcc` command returns non-zero exit status.
E                   command: ['C:\\Miniconda\\envs\\runtime\\bin\\nvcc.EXE', '-gencode=arch=compute_86,code=sm_86', '--ptx', '-DFIRST_PASS=1', '--std=c++11', '-IC:\\Miniconda\\envs\\runtime\\lib\\site-packages\\cupy\\_core\\include', '-IC:\\Miniconda\\envs\\runtime\\lib\\site-packages\\cupy\\_core\\include\\cupy\\_cuda\\cuda-11', '-IC:\\Miniconda\\envs\\runtime\\include', '-ftz=true', 'C:\\Users\\CLOUDT~1\\AppData\\Local\\Temp\\tmpdi0ea8jc\\preprocess.cu']
E                   return-code: 2
E                   stdout/stderr:
E                   C:\Miniconda\envs\runtime\include\crt/host_config.h(153): fatal error C1189: #error:  -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
E                   nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
E                   preprocess.cu

C:\Miniconda\envs\runtime\lib\site-packages\cupy\cuda\compiler.py:376: CompileException

I have the same problem when calling cupy.linalg.norm:
C:\Miniconda\envs\runtime\lib\site-packages\cupy\linalg\_norms.py:96: in norm
    return _norm_ord2(x, axis=axis, keepdims=keepdims)
cupy\_core\_reduction.pyx:608: in cupy._core._reduction._SimpleReductionKernel.__call__
    ???
cupy\_core\_reduction.pyx:364: in cupy._core._reduction._AbstractReductionKernel._call
    ???
cupy\_core\_cub_reduction.pyx:701: in cupy._core._cub_reduction._try_to_call_cub_reduction
    ???
cupy\_core\_cub_reduction.pyx:552: in cupy._core._cub_reduction._launch_cub
    ???
cupy\_util.pyx:64: in cupy._util.memoize.decorator.ret
    ???
cupy\_core\_cub_reduction.pyx:246: in cupy._core._cub_reduction._SimpleCubReductionKernel_get_cached_function
    ???
cupy\_core\_cub_reduction.pyx:231: in cupy._core._cub_reduction._create_cub_reduction_function
    ???
cupy\_core\core.pyx:2251: in cupy._core.core.compile_with_cache
    ???
 Should be cubin or ptx')
        if code_type == 'ptx':
            assert not separate_compilation

        arch_str = '-gencode=arch=compute_{cc},code=sm_{cc}'.format(cc=arch)
        _nvcc = get_nvcc_path()
        # split() is needed because _nvcc could come from the env var NVCC
        cmd = _nvcc.split()
        cmd.append(arch_str)

        with tempfile.TemporaryDirectory() as root_dir:
            first_part = filename.split('.')[0]

            path = os.path.join(root_dir, first_part)
            cu_path = '%s.cu' % path
            result_path = '%s.%s' % (path, code_type)

            with open(cu_path, 'w') as cu_file:
                cu_file.write(source)

            if not separate_compilation:  # majority cases
                cmd.append('--%s' % code_type)
                cmd += list(options)
                cmd.append(cu_path)

                try:
                    _run_cc(cmd, root_dir, 'nvcc', log_stream)
                except NVCCException as e:
                    cex = CompileException(str(e), source, cu_path, options,
                                           'nvcc')

                    dump = _get_bool_env_variable(
                        'CUPY_DUMP_CUDA_SOURCE_ON_ERROR', False)
                    if dump:
                        cex.dump(sys.stderr)

>                   raise cex
E                   cupy.cuda.compiler.CompileException: `nvcc` command returns non-zero exit status.
E                   command: ['C:\\Miniconda\\envs\\runtime\\bin\\nvcc.EXE', '-gencode=arch=compute_86,code=sm_86', '--ptx', '--std=c++11', '-IC:\\Miniconda\\envs\\runtime\\lib\\site-packages\\cupy\\_core\\include', '-IC:\\Miniconda\\envs\\runtime\\lib\\site-packages\\cupy\\_core\\include\\cupy\\_cuda\\cuda-11', '-IC:\\Miniconda\\envs\\runtime\\include', '-ftz=true', 'C:\\Users\\CLOUDT~1\\AppData\\Local\\Temp\\tmphe7mcilx\\preprocess.cu']
E                   return-code: 2
E                   stdout/stderr:
E                   C:\Miniconda\envs\runtime\include\crt/host_config.h(153): fatal error C1189: #error:  -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
E                   nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
E                   preprocess.cu

What if you update to the most recent CuPy? Try pip install "cupy-cuda11x==13.3.*" and see if this still happens? In v13.3.0 we updated the bundled CCCL version, which is used by the reduction kernels.

adding the environment variable NVCC="nvcc --allow-unsupported-compiler" solved the issue :). Thank you @kmaehashi . I will try cupy-cuda11x==13.3.

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

Closing as inactive, feel free to open another case if you still need help.


KinematicBody: backport the setting moving_platform_apply_velocity_on_leave to 3.x

As discussed/requested in #50166, this PR backport the setting that allow to choice the behaviour when you leave a moving platform.

I managed to fix the corrupted cache in the 3.x branch, it should now pass CI after a rebase.

Thanks!


java.lang.NoClassDefFoundError: cz.msebera.android.httpclient.util.Args

When I new AsyncHttpClient, it will list followed errors. I don't know why.
java.lang.NoClassDefFoundError: cz.msebera.android.httpclient.util.Args
at cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory.(SSLSocketFactory.java:337)
at cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory.getSocketFactory(SSLSocketFactory.java:169)
at com.loopj.android.http.AsyncHttpClient.getDefaultSchemeRegistry(AsyncHttpClient.java:301)
at com.loopj.android.http.AsyncHttpClient.(AsyncHttpClient.java:177)
at com.loopj.android.http.AsyncHttpClient.(AsyncHttpClient.java:147)

The version is 1.4.9

Exact same problem here.
NoClassDefFoundError: cz.msebera.android.httpclient.util.Args

Same problem arrived with android 4.4.2 but working fine with 5.0

I have exactly the same problem
Any solution?

OK. I solve the problem. When you compile some libs may be due to multidex error especially using proguard rules, it will not recognize the right class of the lib.  Here compiling lib is included apache lib, your project may compile the apache lib in other lib repeatedly.
So you should add following code in gradle
`android {
...
defaultConfig {
    ...
    // Enabling multidex support.
    multiDexEnabled true
}
...

}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}and add codes in your application@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}`
Hope is helpless.

You saved me from struggling on this problem for 2 days!!!! It works! Thank you.


How to make the interface appear white，could you tell me plz

You can either switch to a light theme or specify a background color within the HTML. I won’t explain how to set a background color in HTML, so please study that on your own.


Odsp caching: More test cases

Just realized that more things can be covered in UTs, specifically calling flush()

Ping


Configuring :authority header in the grpc request

I have a wasm module that initiates a gRPC call by specifying an upstream name which is in the format outbound|port|subset|svc-FQDN.
When making the connection, Envoy translates the cluster name into the :authority header if override is not provided. Since the cluster name format doesn't follow the authority header specification, a lot of http2 implementations are rejecting gRPC requests from istio-proxy. we bypass this hurdle by adding a new cluster using EnvoyFilter with a name that is compliant with the specification but it's just a temporary fix and feels this should be fixed upstream.
Does Istio allow this override? If not, can we make a change so that it's configurable through some resource?
Envoy allows override in the gRPC config: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/grpc_service.proto#envoy-v3-api-msg-config-core-v3-grpcservice-envoygrpc

Facing the same issue here, tried with 1.14.2 and 1.15.0


revup gatk public to 4.alpha.1-51-g79abe31-SNAPSHOT

merge when tests pass

@davidbenjamin This should include the update you needed.

@akiezun Failing I assume due to the changes that @davidbenjamin made.

@lbergelson That's probably true.  How about I do the revup in my branch?  The PR is almost ready to go.

@davidbenjamin Just make the same change in your build.gradle that adam made here.

Closing this -- we want to move to 4.alpha.1-53-g7734d11-SNAPSHOT instead


Extending auto-update-repo to deploy automatically on push

I've looked over the cron job, and that looks like an interesting strategy to automatically update a Dockerfile. I don't see anywhere that pushes the container to the public so thats likely still manual. I've added a CircleCI job to perform Continuous Delivery, every push will trigger a push to docker hub.
You will need to enable CircleCI on github (It's free) and add 2 Environment Variables to your build settings in CircleCi.

DOCKER_PASS
DOCKER_USER

You can see it working the CircleCI results here and the published artifact here

This looks like a neat feature in case you're pushing to some other repo other than docker hub, like privately maintained docker repo. Docker hub has the direct integration with GitHub repositories, so the docker images are being built automatically on pushes.
However, I'd merge this anyway, to make things easier for people using CircleCI and a private docker repository, if there are any of them out there. :)


Data not serialized

When translating a "complex" field, either SEO or Strutured Text, the plugin does not serialize the content. Thus sending [object Object] to the Deepl Free API.

Tested with the latest version of the plugin (1.6.1) and with the Deepl Free API, don't known if other services are also impacted.

After some digging, I found the problem:
https://github.com/voorhoede/datocms-plugin-translate-fields/blob/c5415848efe438b94a900f02032ce317483d0239/src/entrypoints/FieldAddon/FieldAddon.tsx#L79
This should be appearance not appeareance. This makes the translationFormat undefined and therefore translate using the default method for simple input field.

Thanks for raising this issue! This will be fixed in a next version


[SyntaxError] python main.py

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    from rover import rover, reset_uav
  File "/home/park/catkin_ws/src/uav_simulator/scripts/rover.py", line 1, in <module>
    from matrix_utils import hat, vee, q_to_R
  File "/home/park/catkin_ws/src/uav_simulator/scripts/matrix_utils.py", line 140
    R = np.eye(3) + y * hat_r + 0.5 * y2**2 * hat_r @ hat_r
                                                    ^
SyntaxError: invalid syntax

How can I solve this syntax error?
I found the error is about decorator in Python syntax but I'm not familiar to this environment

Do you run python3 main.py or python main.py?
Also, which python version do you use?

I run the code using Python 2.0
My desktop is operating on Ubuntu 18.04 (ROS Melodic).
Thanks
2022년 3월 7일 (월) 오후 9:33, Kanishke Gamagedara @.***>님이
작성:

Do you run python3 main.py or python main.py?
Also, which python version do you use?
—
Reply to this email directly, view it on GitHub
https://github.com/fdcl-gwu/uav_simulator/issues/2#issuecomment-1060639837,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARMO3H5QV3MHCRYZSO5DBCLU6XZP3ANCNFSM5QCIXRJQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Park, Seong Chang
Master Course of Smart Automobile Eng.
Mobility & Robotic systems Lab(MRL)
Soonchunhyang University
Tel : +82-10-3088-4871
E-mail :* @.*** @.**>

It seems like a Python version issue. According to this, matrix multiplication using "@" was introduced in Python 3.5. You either have to upgrade your Python version to >3.5 or replace multiplication operations that uses "@" with matmul or dot.

Oh thanks :)
I got new information about that!
However, I use ROS framework :( so I have to Python version 2.0


Some fixes

let MemoryDOMElement.getAttribute() et  al be more robust (some DOM nodes don't have attributes)
make Component.click() chainable (allowing to detect uncaught exceptions)

Codecov Report

Merging #1221 into develop will increase coverage by 0.01%.
The diff coverage is 92.59%.

@@             Coverage Diff             @@
##           develop    #1221      +/-   ##
===========================================
+ Coverage    63.04%   63.06%   +0.01%
===========================================
  Files          350      350
  Lines        12828    12834       +6
===========================================
+ Hits          8088     8094       +6
  Misses        4740     4740

Impacted Files
Coverage Δ

ui/Component.js
70.5% <100%> (+0.1%)
:arrow_up:

dom/MemoryDOMElement.js
89.09% <92.3%> (+0.13%)
:arrow_up:

Continue to review full report at Codecov.

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


Cannot use custom regularizers with wrapped RNN layers

I ran into a snag in trying to implement a custom activation regularization on bidirectional RNNs.  It fails to construct the layer because Bidirectional' does not propagate any custom_objects` when rebuilding the backward layer.  Relevant loc.
Going into the guts, this fails (for GRUs) here when calling regularizers.get, which in turn fails at this line because no custom objects are passed, though the deserialize function within regularizers does appear to support this.
The obvious fix here is to thread custom_objects parameters all through the regularizers/init/constraint.get functions, as well as the wrapper objects and RNN layers.  This seems pretty clumsy though.  Is there a simpler way around this?

My environment:

Keras 2.0.8 (pypi)
Tensorflow 1.2.1 (this issue should be backend independent though)

Was this fixed/implemented?  Determined to be out of scope?  Just plain uninteresting?
Closing out issues with no discussion or description of why is, generally speaking, not great OSS community management.  Even a one-liner would be helpful here in case other people come across this issue and want to know what happened.


Update react-native types to latest version of PR.

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/15105
The gist of it is that the default ReactNative namespace is gone.

Travis is upset by yarn install

Yeah what’s up with that?
I just ran locally and actually see there’s 2 test failures, will fix in a bit.

This got merged to def types, and I fixed the travis/yarn issue

Should just need a rebase

Updated.

Danger appears to be failing internally, everything else is green.

Woohoo - looks much cleaner.


extract regexes in tailwind.config.js don't seem to match?

I pulled in tailwindcss-to-rust (not the macros) to use this for compile checked tailwind references in an actix-web serving raw html project.
But the tailwind.config.js isn't picking up the Rust const references...
Here's the error
╰  npx tailwindcss --input src/assets/tailwind.css --output public/assets/tailwind_compiled.css

Rebuilding...

warn - No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.
warn - https://tailwindcss.com/docs/content-configuration

Here's the server.
#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .service(hello)
            .service(
                fs::Files::new("/", "./public")
                    .show_files_listing()
                    .use_last_modified(true),
            )
    })
    .bind(("<IP_ADDRESS>", 7373))?
    .run()
    .await
}

#[get("/")]
async fn hello() -> impl Responder {
    HttpResponse::Ok().body(html!(

            <title>"Stuff a ndthigns"</title>
            <link rel="stylesheet" href="/assets/tailwind_compiled.css" />

"Is this "{hey("italicised?")}

    ))
}

I'm not sure why this is happening. That said, I haven't tested this code with the latest tailwindcss. Can you share your tailwind.config.js file? Or better yet, share the whole project so I can test the whole thing?

I'd also need to see the file you pass to tailwindcss --input if you can't share the whole project.

Ah, I figured it out. The regexes in the tailwind.config.rs were matching your trailing } character. Here's an updated version (that I'll add to the docs in the next release):
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: {
    files: ["index.html", "**/*.rs"],
    // You do need to copy this big block of code in, unfortunately.
    extract: {
      rs: (content) => {
        const rs_to_tw = (rs) => {
          if (rs.startsWith("two_")) {
            rs = rs.replace("two_", "2");
          }
          return rs
            .replaceAll("_of_", "/")
            .replaceAll("_p_", ".")
            .replaceAll("_", "-");
        };

        let classes = [];
        let class_re = /C\.[^ ]+\.([^\. {}]+)\b/g;
        let mod_re = /(?:M\.([^\. ]+)\s*,\s*)+C\.[^ ]+\.([^\. {}]+)\b/g;
        let matches = [...content.matchAll(mod_re)];
        if (matches.length > 0) {
          classes.push(
            ...matches.map((m) => {
              let pieces = m.slice(1, m.length);
              return pieces.map((p) => rs_to_tw(p)).join(":");
            })
          );
        }
        classes.push(
          ...[...content.matchAll(class_re)].map((m) => {
            return rs_to_tw(m[1]);
          })
        );
          console.log(classes);
        return classes;
      },
    },
  },
  theme: {
    extend: {},
  },
  plugins: [],
};

Actually, I think the regexes can be tightened even further. I'll do that for the next release, but what I shared above should work you for now.

Actually, it's even more complex now that I think about it. I think these regexes need to be customized for any templating system you use, if you're not using the macros. I'm not sure what you're using to get that html! macro, but it looks like you interpolate with { ... }, so you'd need regexes that match that.

I'm using the super basic html-to-string-macro that's backed by syn-rsx but before I was using render.rs for templating...
Just getting back to this, and not sure if you just added it or if I just totally didn't read the docs but just noticed this bit

And that totally makes sense. I'll give that a shot and see how I fair.

Yes, I just added that bit for the 0.2.0 release. I realized the docs described the case of using the macros as if that was the only way to do it, which it's not. You should be able to adjust the regex above to match your case. I think all you have to do is replace the double curly braces with just one and it should work.

This is great!
Was worried coming from Elm & elm-ui I'd be missing out on the "inline styles" plus language native feel of doing elm-ui but with tailwindcss-to-rust it's a nice approximation to elm-ui.
Thanks a ton!

I'm glad it's working for you!

Ok, "working" is relative to the Stack Overflow I was getting today :grimacing:
Commenting out my use of the C![] macros in my templates got rid of it, so now I'm curious what's happenin' again, Sorry :sweat_smile:

This is mentioned in the README. There's some sort of weird interaction with Rust's compiler here. Try building with --release to see if that fixes it.


All sensors not found after restart

I previously had one Xiaomi sensor and used this component to integrate, and it worked like a charm. Today I received two more sensors and home assistant were able to find them right after I pressed the pairing button on the sensor. But now when I restart hass.io, only two of the three sensors are created as entities. The third one is found when I manually press the pairing button on the sensor.
Is there any way to overcome this without having to manually press the pairing button on the sensor after a restart?

I was a bit too quick to report an issue it seems, there was just quite long delay before the third sensor was automatically found...

Minimum time, required to pick up sensors after HA restart, is equal to period option (60s by default). In case of unstable packets receiving (long distance, for example) it can be longer, if during first period no packets was received...


Added functionality for filling mesh holes, scrap removal, mesh (plane) clipping and normal generation

Added functionality for filling mesh holes (PolyData.FillHoles), extracting the largest domain / scrap removal (PolyData.ExtractLargest; rename?), clipping meshes with planes (PolyData.ClipPlane; rename?), generating normals (PolyData.GenerateNormals; can't currently handle vertex splitting).
I'm not sure whether GenerateNormals should be contained in the PolyData class and just add the array to the input mesh, or whether it should return an array, similar to Curvature. At the moment it's not possible to pass the output of the PolyDataNormals filter to PolyData.Overwrite as with other functions in the PolyData class, as this doesn't preserve the PointData object.
Also amended the PolyData.Decimate function to include all user-definable parameters (such as volume preservation).
I added some documentation for the things I'm PRing which should be complete AFAICT. Most is copied from the corresponding VTK functions, with some minor modifications.
Thanks for maintaining this really awesome package!

Thanks for including documentation along with the added or edited methods.  Overwrite should pass the PointData to the new object, so I'll go about fixing that.
I feel like GenerateNormals should return an array, and we should have another function that stores normals to clear things up.  Perhaps GenerateNormals should be renamed for clarity as well.

Thanks for accepting the PR, @akaszynski!
I tried having a look at what might be going awry in the Overwrite method, but I couldn't intuitively see what might be the cause of losing that data. A solution is of course to just loop over the respective arrays and re-reference them one by one, but I feel like something simpler should be possible.
I agree that might be reasonable to have functions that gets/sets the normals in your way instead of what I implemented. In principle I would like to see normals as something like a PolyData class property, as they are attributes that are both frequently accessed/modified, as well as commonly returned explicitly by many iso-surface generators (see for example skimage.measure.marching_cubes). I do however see that this might not be nicely feasible due to the range of possible input arguments.
My proposition would be to instead implement it similarly to PolyData.Curvature, but with a function returning a tuple of point and cell normals, although I see how one might want to object to having a dual return. I do however think that it is a quite compact and easy to understand implementation. Usage would then be
normals = mesh.Normals()
mesh.SetNormals(*normals)

Example implementation:
    def Normals(self, cell_normals=False, point_normals=True,
                split_vertices=False, flip_normals=False,
                consistent_normals=True, auto_orient_normals=False,
                non_manifold_traversal=True, feature_angle=30.0):
        """Generate point and/or cell normals for a mesh.

        The filter can reorder polygons to insure consistent orientation across
        polygon neighbors. Sharp edges can be split (TODO) and points duplicated
        with separate normals to give crisp (rendered) surface definition. It is
        also possible to globally flip the normal orientation.

        The algorithm works by determining normals for each polygon and then
        averaging them at shared points. When sharp edges are present, the edges
        are split and new points generated to prevent blurry edges (due to
        Gouraud shading).

        Parameters
        ----------
        cell_normals : bool, optional
            Calculation of cell normals. Defaults to False.

        point_normals  : bool, optional
            Calculation of point normals. Defaults to True.

        split_vertices  : bool, optional
            Splitting of sharp edges. Defaults to True.

        flip_normals : bool, optional
            Set global flipping of normal orientation. Flipping modifies both
            the normal direction and the order of a cell's points. Defaults to
            False.

            TODO: Probably need to update point ordering in PolyData when
                setting flip_normals to True.

        consistent_normals  : bool, optional
            Enforcement of consistent polygon ordering. Defaults to True.

        auto_orient_normals : bool, optional
            Turn on/off the automatic determination of correct normal
            orientation. NOTE: This assumes a completely closed surface (i.e. no
            boundary edges) and no non-manifold edges. If these constraints do
            not hold, all bets are off. This option adds some computational
            complexity, and is useful if you don't want to have to inspect the
            rendered image to determine whether to turn on the FlipNormals flag.
            However, this flag can work with the FlipNormals flag, and if both
            are set, all the normals in the output will point "inward". Defaults
            to False.

        non_manifold_traversal : bool, optional
            Turn on/off traversal across non-manifold edges. Changing this may
            prevent problems where the consistency of polygonal ordering is
            corrupted due to topological loops. Defaults to True.

        feature_angle : float, optional
            The angle that defines a sharp edge. If the difference in angle
            across neighboring polygons is greater than this value, the shared
            edge is considered "sharp". Defaults to 30.0.

        Note
        ----
        Triangle strips are broken up into triangle polygons. You may want to
        restrip the triangles.

        Return
        ------
        (pnorms, cnorms) : (np.ndarray, np.ndarray)
            2D arrays containing normals as defined by by the input arguments.
            Each tuple component defaults to None in case the corresponding
            calculation flag is not set to True (see )

        """

        normal = vtk.vtkPolyDataNormals()
        normal.SetComputeCellNormals(cell_normals)
        normal.SetComputePointNormals(point_normals)
        normal.SetSplitting(split_vertices)
        normal.SetFlipNormals(flip_normals)
        normal.SetConsistency(consistent_normals)
        normal.SetAutoOrientNormals(auto_orient_normals)
        normal.SetNonManifoldTraversal(non_manifold_traversal)
        normal.SetFeatureAngle(feature_angle)

        normal.SetInputData(self)
        normal.Update()

        pnorms = None
        cnorms = None
        try:
          pnorms = vtk_to_numpy(normal.GetOutput().GetPointData().GetArray('Normals'))
        except AttributeError:
          pass
        try:
          cnorms = vtk_to_numpy(normal.GetOutput().GetCellData().GetArray('Normals'))
        except AttributeError:
          pass

        return pnorms, cnorms

    def SetNormals(self, pnorms=None, cnorms=None):
        print pnorms
        print cnorms
        """ Set PolyData point and/or cell normals. """
        if pnorms is not None:
            self.AddPointScalars(pnorms, 'Normals', setactive=True, deep=True)
            self.GetPointData().SetNormals(numpy_to_vtk(pnorms, deep=True,
                             array_type=vtk.VTK_FLOAT))
        if cnorms is not None:
            self.AddCellScalars(cnorms, 'Normals', setactive=True, deep=True)
            self.GetCellData().SetNormals(numpy_to_vtk(cnorms, deep=True,
                            array_type=vtk.VTK_FLOAT))

OverwriteMesh now copies the underlying point and cell data.


Update 10-cloudflared-config.sh

Proposed Changes
Bugfix for data_path option.
Also reconsidering not to remove value for data_path so custom_config is still working after add-on restart.
Related Issues

(Github link to related issues or pull requests)

Thanks for that @elcajon, I basically just created the same fix in #214, but let's use this branch.
Please have a look at my comment

Never mind this PR. Everything should be fine just merging your PR.
I have misinterpreted something.


Create an sdist for every wheel that is built

Some users prefer to build their own wheels, and the fact that the
modular types packages are only uploaded as wheels means that these
users can't use pip with "--no-binary :all:" to guarantee that pip only
downloads sdists in order to then rebuild the corresponding wheel.

This looks like it should resolve https://github.com/python/typeshed/issues/5643 - although I can't test the rest of the workflow, https://github.com/typeshed-internal/stub_uploader/blob/main/scripts/upload_changed.py#L48 looks like it'd also upload the adist that will now be created.
I tested this by:

creating + activating a venv
installing the python packages mentioned in the Github Actions setup into that venv
cloning typeshed
running python -m scripts.build_wheel typeshed/ mock 1
verifying that the tmpdir contains both a wheel and an sdist:types-mock-0.1.1.tar.gz  types_mock-0.1.1-py2.py3-none-any.whl

Should we trigger an update for all types-* packages somehow so that we get sdists for existing packages?

Sounds like a good idea.

You both should have permission to do this https://github.com/typeshed-internal/stub_uploader/actions/workflows/force_update.yml (IIRC the package accepts regex, so you probably want something like '.*').

Actually, let me do this right now.

And it is done! (took around 5min to build and upload all)

Thanks Ivan!


Handling of exception (ArgumentError)

This needs useful error messages. Currently it fails more or less silently.

Should easily be implemented by catching (Argument)Errors and printing out their message.


Heroku django.core.management

Hi,
I'm following the Docs for deployment with heroku.. followed all the instructions but I got problems with
heroku run python manage.py migrate
Error:
ImportError: No module named django.core.management
Maybe someone can help me :/ ?
Thanks a lot

I solved it, following the docs and this tutorial: http://toguko.com/blog/deploy-saleor-e-commerce-at-heroku.html
unfortunately I'm not sure what exactly was the matter, and why it didn't worked at the beginning...


feat: parse variable expansion in include path

This change should allow the parser to recognize the variable expansion syntax in the include_path.
Example from poky:
https://github.com/yoctoproject/poky/blob/348d9aba3305cd98b0c0b1ec0f4b1407e786307a/meta/recipes-core/glibc/glibc-y2038-tests_2.38.bb#L1
Sample result:

thanks for the PR. it looks like a few of them fail in your screenshot output, is that intentional because of the unclosed quote? that's fine with me if so

thanks for the PR. it looks like a few of them fail in your screenshot output, is that intentional because of the unclosed quote? that's fine with me if so

yes, I put the " after the $ so none of the choices should match.

just gonna force push your generated changes using tree-sitter cli on master, otherwise LGTM

thanks!


Firebase update

Components to add:

Firebase.Auth
Firebase.Database
Firebase.RemoteConfig
Firebase.Storage

Hello! I'm the build bot for the Mono project.
I need approval from a Mono team member to build this pull request. A team member should reply with "approve" to approve a build of this pull request, "whitelist" to whitelist this and all future pull requests from this contributor, or "build" to explicitly request a build, even if one has already been done.
Contributors can ignore this message.


Remove user button in org team page is out of alignment

Description

Gitea Version
latest
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
build
Database
None

Fixed by #23759


Add a Load More pattern for androidx.paging

Probably combining the androidx.paging support, with a custom RemoteMediator.
Say
1
2
3
Load More

At this point we should not have loaded the complete list from the network, say LoadMoreState(maxItems=3).
On clicking Load More, it should go to some new state, possibly LoadMoreState(maxItems=12) or LoadMoreState(maxItems=Int.MAX_VALUE)?
paging should still be used even when loading all items, incrementally fetching based on the page size.

There are generally two cases

Load more causes additional network fetches. RemoteMediator and androidx.paging will be useful here.
Additional results are already cached. In this case probably the event changes a items.take(5) to change to items.take(15) and best implemented in SectionedList?

Out of scope


Remove options="treeOptions" from README.md examples

It seems that the readme is outdated, as the Tree Control was not working when I followed the readme examples (which have options="treeOptions"' listed as an attribute in the tag. The http://wix.github.io/angular-tree-control examples seem to have theoptionsattribute removed in favor of custom attributes for properties likenode-children` through scope isolates. Could the readme examples be updated or just point to the documentation website for examples?

I'm not seeing the reference to custom attributes over setting the options attribute on the github.io site as @colin92 mentioned (maybe the site has changed since), however, I've also found that setting the options attribute does not work as it overrides all of the other options that the control depends on.

I don't know but maybe it's the other way around? options="treeOptions" works fine for me using version 0.2.15. Downloaded and integrated it two days ago.


add screenshot capability, add screenshot to attachment context picker

check failing in ChatVariables - seems unrelated to my changes

Scary prompt. Do you know what the "system private window picker" is?

For me, the screenshot is the wrong size and includes other content that could be private. I have two monitors, it might be using the size of the larger one.

@roblourens do your monitors have different scales? If so do you know what they are (and their relative positions).

I have 2 monitors again and it seems a bit messy how they deal with pixel density in the screen apis.

the private window picker is the custom electron handler we added https://github.com/microsoft/vscode/blob/4ae362f31b045dac3dbf53f2732bfafc7c9bf66c/src/vs/code/electron-main/app.ts#L199

There was a note about that Mac permissions dialog, I'm not sure we can avoid it. @meganrogge is there something on the main side we can do to disable the audio stuff? That makes it look much scarier even though we don't request audio on browser side.

I have these, so the macbook display will be much higher pixel density than the LG monitor. Is there any other data I can look up?

Just looked and there's no way to bypass that from showing up for mac unfortunately

I have these, so the macbook display will be much higher pixel density than the LG monitor. Is there any other data I can look up?

What layout you have (left, right) and what their scale is. Not sure if you can see scale in macOS somewhere, but you can check it by opening a browser there (100% zoom) and in devtools checking window.devicePixelRatio

lgtm whenever rob approves. I think it's fine to merge this with the multi-monitor stuff not being perfect as it's restricted to only some edge cases where 2+ monitors don't have the same scale in certain setups (mine works with 100% scale on left, 200% scale on right)

I don't know if this is helpful but the layout is like this

devicePixelRatio seems to just be 2 on both sides. In "Displays", the macbook display is "default" scale, the monitor is scaled to 2560x1440

The screenshot is sized wrong in the same way on the larger monitor too, if that helps.

I just want to followup again on this, any reason we are not using https://github.com/electron/electron/blob/main/docs/api/web-contents.md#contentscapturepagerect-opts to take screenshot of the page instead have to rely on screen capture api ? The former api would also avoid the privacy dialogs since we are not requesting video or audio capture.

I just want to followup again on this, any reason we are not using https://github.com/electron/electron/blob/main/docs/api/web-contents.md#contentscapturepagerect-opts to take screenshot of the page instead have to rely on screen capture api ? The former api would also avoid the privacy dialogs since we are not requesting video or audio capture.

I came to the same conclusion this morning to use capturePage. I was hoping we could nudge the standard web way of doing things in the right direction to get it working with a single implementation, but the custom displaymedia handler, hinting that we want the window (so no picker is needed) as well as creating a video and drawing it to a canvas was too getting too complicated.
New plan is to add and use capturePage via INativeMainService and if that's not available (not Electron) we will fall back to getDisplayMedia.

WIP: https://github.com/microsoft/vscode/pull/231309

Thanks!

Thank you!


[Bug]: k8sgpt-deployment is not synchronized, after k8sgptConfig update

Checklist

[X] I've searched for similar issues and couldn't find anything matching
[X] I've included steps to reproduce the behavior

Affected Components

[ ] K8sGPT (CLI)
[X] K8sGPT Operator

K8sGPT Version
v0.3.8
Kubernetes Version
v1.25.6
Host OS and its Version
ubuntu
Steps to reproduce

create a k8sGPT CR with a invalid baseUrl, say

kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
  name: k8sgpt-local-ai
  namespace: default
spec:
  ai:
    enabled: true
    model: ggml-gpt4all-j
    backend: localai
    baseUrl: http://local-ai.local-ai.svc.cluster.local:8080/v1
  noCache: false
  version: v0.3.8
EOF

check operator log

fix baseUrl to http://local-ai.local-ai.svc.cluster.local/v1

check operator & deployment logs

operator log

deployment log

Expected behaviour
k8sGPT-deployment should use the latest configuration after the K8sGPT CR changes
Actual behaviour
The k8sGPT-deployment configuration has not been updated with the latest configuration after the K8sGPT CR changes
Additional Information
No response

I thought I could try to fix it 😄

Thanks for reporting the issue and having a go - I will take a look at the PR!

same issue here !


Confusing documentation on data location

This is more of an UX issue, I suppose. In https://ocr-d.de/en/models#where-is-the-data the docs say:

In Docker though, $XDG_CONFIG_HOME=$XDG_DATA_HOME/ocrd-resources=/usr/local/share/ocrd-resources gets symlinked to /models for easier volume handling (and persistency).

While I was trying to debug OCR-D/ocrd_all#413, I read this and thought it was garbled. It is not, I just didn't comprehend it. I suggest changing it to something more readable, e.g.:

In Docker though, $XDG_CONFIG_HOME (set to $XDG_DATA_HOME/ocrd-resources, which ultimately is /usr/local/share/ocrd-resources) gets symlinked to /models for easier volume handling (and persistency).

Do the $XDG_ variables matter here at all?

Good idea! Would you be willing to submit a PR for this (and similar stumbling points)?

Do the $XDG_ variables matter here at all?

One could of course set XDG_CONFIG_HOME=/models in the Dockerfile, but we really want to allow the user overriding these variables (at runtime or in a derived Dockerfile).

Good idea! Would you be willing to submit a PR for this (and similar stumbling points)?

Will do. The only other thing I encountered so far (besides our METS caching bug) was the permission problem on /models (OCR-D/ocrd_all#413, and, somewhat connected the corresponding error message).


Force a random SECRET_KEY on boot

This default key should not exists.

@Metrax @jbe-dw are either of you able to verify my findings that the app's SECRET_KEY config option is only currently used for URL serialization / protection? I want to ensure I haven't made an oversight in assuming that this key is not currently being used for symmetric encryption anywhere in the app.

Hey, actually it is being used to sign session cookies. It is possible to bypass authentication for deployments using the default key

@Peyphour thank you for catching that. For that reason, I am rejecting this change as it will break horizontally scaled deployments as different secret keys would be generated for each instance of the application running, thus creating issues with non-sticky, load-balanced sessions.
I agree that default keys are bad, but then again so is not following the deployment guide. I'm of the mentality that operators are ultimately responsible for mitigating these risks. I'm all for a change that solves this without breaking the aforementioned use-case.