ros2_control_node with sudo

Hi all,
I would execute ros2_control_node with root privilegies.
I have a launch file equal to rrobot.launch.py but I have develop a plugin thath need sudo root to be exceuted because it use raw socket to send pkg to eno interface.
At the moment, I launch the node in this manner
    controller_manager_node = Node(
        package='controller_manager',
        executable='ros2_control_node',
        parameters=[robot_description_diz, controllers],
        output='both',
        on_exit=Shutdown()
    )

and launching the file with
sudo -s
source /opt/ros/galactic/setup.bash/; source install/setup.bash
ros2 launch ethercat_controllers controllers.launch.py use_fake_hardware:=true
the output is
[spawner-2] [INFO] [1687508621.874474234] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687508621.874958531] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687508623.888387496] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687508623.889407608] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687508625.902779689] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687508625.904840341] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687508627.917192315] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687508627.919605991] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687508629.929275000] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687508629.932278399] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [ERROR] [1687508631.941449752] [spawner_CSV]: Controller manager not available
[spawner-2] [ERROR] [1687508631.944341756] [spawner_joint_state_broadcaster]: Controller manager not available
[ERROR] [spawner-4]: process has died [pid 99, exit code 1, cmd '/opt/ros/galactic/lib/controller_manager/spawner CSV -c /controller_manager --ros-args --params-file /awaxis/install/axis135s800/share/axis135s800/config/axis.ros2_controllers.yaml'].
[ERROR] [spawner-2]: process has died [pid 94, exit code 1, cmd '/opt/ros/galactic/lib/controller_manager/spawner joint_state_broadcaster --controller-manager /controller_manager --ros-args'].

It seems that ros library aren't linked correctly
Do you have any suggestion about it?
Thanks

I can suggest to run a Control node with sudo and forwarding the appropriate environment variables here:
https://github.com/stack-of-tasks/ros2_control_bolt/blob/caf548f1d7da2e1cde70e1e87e7e2928e351e663/ros2_control_bolt_bringup/launch/bolt.launch.py#L154
And it is better to run a sudo command before executing. the associated ros2 launch command. This way you avoid the need to type the password in the  flow of messages.

Thank you for your answer,
I tried this method before and it works well.
Actually, I'm trying also to run the same code in a docker container but this workaround doesn't work here.
Have you tried it?

The CI tests are realized in dockers so I would suggest that you have a look to the one used by the github actions and the closest to your setup.
Otherwise, if you need help on your specific Dockerfile, it is better to provide a minimal example highlighting your current problem.

I tried to use Dockerfile similar to https://github.com/ros-controls/ros2_control_demos/tree/master/Dockerfile. That's my file:
# FROM ubuntu:focal
FROM ros:galactic-ros-base
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
    && apt-get upgrade -y

WORKDIR /awaxis
ADD . .
RUN rosdep install -y --from-paths src --ignore-src --include-eol-distros --rosdistro=galactic
RUN . /opt/ros/galactic/setup.sh; colcon build

My launch file that need sudo privileged is:
'''
    Authors: Mattia Dei Rossi
'''
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, Shutdown
from launch.substitutions import Command, FindExecutable, LaunchConfiguration, EnvironmentVariable
from launch_ros.actions import Node
from launch import LaunchDescription
from launch.substitutions import PathJoinSubstitution
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os

def generate_launch_description():

    # args
    use_fake_hardware_name = 'use_fake_hardware'
    mode_of_op_name = 'mode_of_op'
    iname_name = 'iname'
    args = [
        DeclareLaunchArgument(
            use_fake_hardware_name,
            default_value='false',
            description='Use fake controllers'),
        DeclareLaunchArgument(
            mode_of_op_name,
            default_value="CSV",
            description='Mode of Operation desired. Available options: CSP,CSV,CST,HM,PP,PV,PT',
        ),
        DeclareLaunchArgument(
            iname_name,
            default_value="eno2",
            description='EtherCAT NIC interface name',
        )
    ]

    use_fake_hardware = LaunchConfiguration(use_fake_hardware_name)
    mode_of_op = LaunchConfiguration(mode_of_op_name)
    iname = LaunchConfiguration(iname_name)

    # load robot description
    xacro_file = os.path.join(get_package_share_directory(
        'axis135s800'), 'robots', 'axis135s800.urdf.xacro')
    robot_description = Command([FindExecutable(
        name='xacro'), ' ', xacro_file, ' use_fake_hardware:=', use_fake_hardware, ' mode_of_op:=', mode_of_op, ' iname:=', iname])
    robot_description_diz = {'robot_description': robot_description}

    # load controllers
    controllers = PathJoinSubstitution([FindPackageShare(
        'axis135s800'), 'config', 'axis.ros2_controllers.yaml'])

    # Nodes
    controller_manager_node = Node(
        package='controller_manager',
        prefix=[  # Sudo command cause need to be sudoer when we do this node cause it real time
                "sudo -E env PATH=",
                EnvironmentVariable("PATH", default_value="${PATH}"),
                " LD_LIBRARY_PATH=",
                EnvironmentVariable("LD_LIBRARY_PATH",
                                    default_value="${LD_LIBRARY_PATH}"),
                " PYTHONPATH=",
                EnvironmentVariable(
                    "PYTHONPATH", default_value="${PYTHONPATH}"),
                " HOME=/tmp ",
        ],
        executable='ros2_control_node',
        parameters=[robot_description_diz, controllers],
        output='both',
        on_exit=Shutdown()
    )

    joint_state_broadcaster = Node(
        package='controller_manager',
        executable='spawner',
        arguments=[
            'joint_state_broadcaster', "--controller-manager", "/controller_manager",
        ],
        output='screen'
    )

    controller = Node(
        package='controller_manager',
        executable='spawner',
        arguments=[
            mode_of_op, "-c", "/controller_manager",
        ],
        parameters=[controllers],
        output='screen'
    )

    robot_state_publisher = Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        name='robot_state_publisher',
        output='both',
        parameters=[robot_description_diz]
    )

    nodes = [
        controller_manager_node,
        joint_state_broadcaster,
        robot_state_publisher,
        controller,
    ]

    return LaunchDescription(args + nodes)

I attach my log using sh shell
# . install/setup.sh
# . /opt/ros/galactic/setup.sh
# ros2 launch ethercat_controllers controllers.launch.py use_fake_hardware:=true
[INFO] [launch]: All log files can be found below /root/.ros/log/2023-06-23-11-21-35-796052-mattia-Latitude-5510-57
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [61]
[INFO] [spawner-2]: process started with pid [63]
[INFO] [robot_state_publisher-3]: process started with pid [65]
[INFO] [spawner-4]: process started with pid [67]
[robot_state_publisher-3] The root link axis135s800_root has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
[robot_state_publisher-3] Link axis135s800_end had 0 children
[robot_state_publisher-3] Link axis135s800_mounting_point had 0 children
[robot_state_publisher-3] Link axis135s800_start had 0 children
[robot_state_publisher-3] [INFO] [1687519296.166488021] [robot_state_publisher]: got segment axis135s800_end
[robot_state_publisher-3] [INFO] [1687519296.166563607] [robot_state_publisher]: got segment axis135s800_mounting_point
[robot_state_publisher-3] [INFO] [1687519296.166576725] [robot_state_publisher]: got segment axis135s800_root
[robot_state_publisher-3] [INFO] [1687519296.166585213] [robot_state_publisher]: got segment axis135s800_start
[ros2_control_node-1] [INFO] [1687519296.179692915] [controller_manager]: update rate is 1000 Hz
[ros2_control_node-1] [INFO] [1687519296.179973700] [controller_manager]: RT kernel is recommended for better performance
[spawner-2] [INFO] [1687519296.337120249] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687519296.337160428] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687519298.349775767] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687519298.349775390] [spawner_CSV]: Waiting for '/controller_manager' node to exist
[spawner-2] [INFO] [1687519300.361239593] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-4] [INFO] [1687519300.361251334] [spawner_CSV]: Waiting for '/controller_manager' node to exist
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[ros2_control_node-1] [INFO] [1687519302.169587512] [rclcpp]: signal_handler(signal_value=2)
[robot_state_publisher-3] [INFO] [1687519302.169592028] [rclcpp]: signal_handler(signal_value=2)
[spawner-4] Traceback (most recent call last):
[spawner-4]   File "/opt/ros/galactic/lib/controller_manager/spawner", line 20, in <module>
[spawner-4]     ret = main()
[spawner-4]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 162, in main
[spawner-4]     if not wait_for_controller_manager(node, controller_manager_name,
[spawner-4]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 95, in wait_for_controller_manager
[spawner-4]     node_and_namespace = wait_for_value_or(
[spawner-4]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 57, in wait_for_value_or
[spawner-4]     time.sleep(0.2)
[spawner-4] KeyboardInterrupt
[spawner-2] Traceback (most recent call last):
[spawner-2]   File "/opt/ros/galactic/lib/controller_manager/spawner", line 20, in <module>
[spawner-2]     ret = main()
[spawner-2]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 162, in main
[spawner-2]     if not wait_for_controller_manager(node, controller_manager_name,
[spawner-2]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 95, in wait_for_controller_manager
[spawner-2]     node_and_namespace = wait_for_value_or(
[spawner-2]   File "/opt/ros/galactic/lib/controller_manager/spawner.py", line 57, in wait_for_value_or
[spawner-2]     time.sleep(0.2)
[spawner-2] KeyboardInterrupt
[INFO] [robot_state_publisher-3]: process has finished cleanly [pid 65]
[INFO] [ros2_control_node-1]: process has finished cleanly [pid 61]
[INFO] [launch]: process[ros2_control_node-1] was required: shutting down launched system
[ERROR] [spawner-4]: process has died [pid 67, exit code -2, cmd '/opt/ros/galactic/lib/controller_manager/spawner CSV -c /controller_manager --ros-args --params-file /awaxis/install/axis135s800/share/axis135s800/config/axis.ros2_controllers.yaml'].
[ERROR] [spawner-2]: process has died [pid 63, exit code -2, cmd '/opt/ros/galactic/lib/controller_manager/spawner joint_state_broadcaster --controller-manager /controller_manager --ros-args'].

In ros2_controller.xacro s describe the param use_fake_hardware
<?xml version="1.0" encoding="utf-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
  <xacro:macro name="axis135s800_ros2_control"
    params="use_fake_hardware:=^|true id:=axis135s800 mode_of_op:=PP iname:=eno2">

    <ros2_control name="awaxis" type="system">
      <hardware>
        <xacro:if value="${use_fake_hardware}">
          <plugin>fake_components/GenericSystem</plugin>
        </xacro:if>
        <xacro:unless value="${use_fake_hardware}">
          <plugin>ethercat_driver/EthercatDriver</plugin>
          <param name="interface_name">${iname}</param>
          <param name="cpu_id">0</param>
          <param name="control_frequency">1000</param>
        </xacro:unless>
      </hardware>

I don't find any issue here, What am I doing wrong?
With

My Dockerfile is similar to that one Dockerfile, but I still have that issue
FROM ros:galactic-ros-base

ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
    && apt-get upgrade -y

WORKDIR /awaxis
ADD . .

RUN rosdep install -y --from-paths src --ignore-src --include-eol-distros --rosdistro=galactic
RUN . /opt/ros/galactic/setup.sh; colcon build

My launch file is
'''
    Copyright Ⓒ Automationware 2023
    Authors: Mattia Dei Rossi<EMAIL_ADDRESS>'''
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, Shutdown
from launch.substitutions import Command, FindExecutable, LaunchConfiguration, EnvironmentVariable
from launch_ros.actions import Node
from launch import LaunchDescription
from launch.substitutions import PathJoinSubstitution
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os

def generate_launch_description():

    # args
    use_fake_hardware_name = 'use_fake_hardware'
    mode_of_op_name = 'mode_of_op'
    iname_name = 'iname'
    args = [
        DeclareLaunchArgument(
            use_fake_hardware_name,
            default_value='false',
            description='Use fake controllers'),
        DeclareLaunchArgument(
            mode_of_op_name,
            default_value="CSV",
            description='Mode of Operation desired. Available options: CSP,CSV,CST,HM,PP,PV,PT',
        ),
        DeclareLaunchArgument(
            iname_name,
            default_value="eno2",
            description='EtherCAT NIC interface name',
        )
    ]

    use_fake_hardware = LaunchConfiguration(use_fake_hardware_name)
    mode_of_op = LaunchConfiguration(mode_of_op_name)
    iname = LaunchConfiguration(iname_name)

    # load robot description
    xacro_file = os.path.join(get_package_share_directory(
        'axis135s800'), 'robots', 'axis135s800.urdf.xacro')
    robot_description = Command([FindExecutable(
        name='xacro'), ' ', xacro_file, ' use_fake_hardware:=', use_fake_hardware, ' mode_of_op:=', mode_of_op, ' iname:=', iname])
    robot_description_diz = {'robot_description': robot_description}

    # load controllers
    controllers = PathJoinSubstitution([FindPackageShare(
        'axis135s800'), 'config', 'axis.ros2_controllers.yaml'])

    # Nodes
    controller_manager_node = Node(
        package='controller_manager',
        prefix=[  # Sudo command cause need to be sudoer when we do this node cause it real time
                "sudo -E env PATH=",
                EnvironmentVariable("PATH", default_value="${PATH}"),
                " LD_LIBRARY_PATH=",
                EnvironmentVariable("LD_LIBRARY_PATH",
                                    default_value="${LD_LIBRARY_PATH}"),
                " PYTHONPATH=",
                EnvironmentVariable(
                    "PYTHONPATH", default_value="${PYTHONPATH}"),
                " HOME=/tmp ",
        ],
        executable='ros2_control_node',
        parameters=[robot_description_diz, controllers],
        output='both',
        on_exit=Shutdown()
    )

    joint_state_broadcaster = Node(
        package='controller_manager',
        executable='spawner',
        arguments=[
            'joint_state_broadcaster', "--controller-manager", "/controller_manager",
        ],
        output='screen'
    )

    controller = Node(
        package='controller_manager',
        executable='spawner',
        arguments=[
            mode_of_op, "-c", "/controller_manager",
        ],
        parameters=[controllers],
        output='screen'
    )

    robot_state_publisher = Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        name='robot_state_publisher',
        output='both',
        parameters=[robot_description_diz]
    )

    nodes = [
        controller_manager_node,
        joint_state_broadcaster,
        robot_state_publisher,
        controller,
    ]

    return LaunchDescription(args + nodes)

I don't find any issue here, What am I wrong?

I solve the issue,
the problem is something related to my docker_compose.yamlfile,
Thank you for your help

I solve the issue,
the problem is something related to my docker_compose.yamlfile,
Thank you for your help

Just for completeness: I have a similar setup, where the hardware component needs root privileges for a proprietary shared memory interface, launched in a sh-shell.
I wrote a sh-script with similar contents to yours, i.e., sourcing the workspace and the ros2 launch command, which I then launch with sudo sh start.sh
This can also be installed as a systemd service with
[Service]
User=root
ExecStart=<path/to>start.sh


Can't static compile with magic lib

Hi,
Im trying to build yara 3.7.1 as a standalone application (static compilation), but i'm stuck with magic 5.33 lib:
./bootstrap.sh
CFLAGS="$CFLAGS -I/tmp/openssl/include -I/tmp/zlib/include -I/tmp/magic/include" \
    LDFLAGS="$LDFLAGS -L/tmp/openssl/lib -L/tmp/zlib/lib -L/tmp/magic/lib" \
    ./configure --disable-shared --enable-static --enable-magic --prefix=/tmp/yara

...
...
checking magic.h usability... yes
checking magic.h presence... no
configure: WARNING: magic.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: magic.h: proceeding with the compiler's result
checking for magic.h... yes
checking for magic_open in -lmagic... no
configure: error: please install libmagic library

Any suggestion ?

It looks like you don't have libmagic installed, try with apt-get install libmagic-dev if you use Debian or Ubuntu. For other distributions you should find which is the name of the package containing libmagic's development headers.

If you are using Fedora, you only need to do this:
sudo dnf install -y file-devel file-libs


Add support for placeholder in code snippets

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Motivation
Hey all,
I'm trying to find a way to implement placeholders in a code snippet. I haven't managed to find any trivial way to do so.
Specifically I'd like to be able to insert the following snippet
plugins("abc").version("[library_version]")

And the [library_version] placeholder should be replaced by the actual version of the library I'm maintaining. The library version is available inside a custom field in the docusaurus config: https://github.com/detekt/detekt/blob/47428426d0760181a4acb395abad6c6aefed4968/website/docusaurus.config.js#L182-L184
The idea is to have code snippets which are easy to copy-n-paste for the library authors.
So far I've looked into creating a custom component, but that's non trivial as JSX is not playing well with the white spaces and special chars we have in a snippet.
I'm looking into doing some text pre-processing before I kick off the bundler, but I'm looking into understanding if there is an easier way to do so.
More context on this is here: https://github.com/detekt/detekt/issues/4915
Self-service

[ ] I'd be willing to do some initial work on this proposal myself.

I'm reluctant to make this available out-of-the-box. Have you tried building a custom Remark plugin?

Have you tried building a custom Remark plugin?

Nope I haven't. I'll look into this. I was more looking into suggestions & directions like the one you just gave me :)

Better ask on the Discord server or in GitHub discussions, in that case. The issue tracker doesn't really take feature requests like this without a corresponding request gaining some traction on Canny first. I'm going to go ahead and close this for now. It's not rejecting your feature, just that the team has little interest in making this the default for now. If you want us to implement it, you can submit a feature request on our Canny board. If you have problems while making your Remark plugin, feel free to reach out on Discord.

Yup will do 👍 Thanks for the update

We implemented it using a custom remark plugin as you suggested @Josh-Cena. If someone else is interested in a similar implementation, you can find it here: https://github.com/detekt/detekt/pull/5001

Great 👍
This is quite often requested: we'll try to provide first-class support for doc placeholders in the future


Refactor client class

The client is defined in one file in one class. This is getting messy. It might make sense to break the client up more into different concerns like schema and data.

Client is now split into multiple files with different concerns. Pep8 is showing showing multiple warnings now in the client since it imports class functions that it does not use. However that is necessary to make them visible outside of the package.


⚠ Bofrost.at has degraded performance

In 62eedf3, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1221 ms

Resolved: Bofrost.at performance has improved in adc7e92.


finishing up

updated schemas

Coverage decreased (-9.8%) to 90.176% when pulling ffef6e7679294cac6f0b091a361709e0c6ad67d0 on OriHoch:master into 45435bfc5240bf3bbd4bceffb037135b264e9ed4 on frictionlessdata:master.

Coverage decreased (-11.8%) to 88.223% when pulling 297a370e2fbb3dc84748cbafc2cdc37770308cc3 on OriHoch:master into 45435bfc5240bf3bbd4bceffb037135b264e9ed4 on frictionlessdata:master.


[🐛 BUG] [UX] input, number, date controls don't validate on focus out event

What went wrong? 🤔
The input control (as well as number, data, ...) does not trap the Focus Out event that should trigger the equivalent of pressing the Enter key
Expected Behavior
See description.
All input, number, date should be impacted.
login probably...
Acceptance Criteria

[ ] Ensure new code is unit tested, and check code coverage is at least 90%.
[ ] Create related issue in taipy-doc for documentation and Release Notes.

Code of Conduct

[X] I have checked the existing issues.
[ ] I am willing to work on this issue (optional)

Hi @FabienLelaquais, I'd love to work on this issue. Could you please assign it to me?

I have assigned you this issue @kart2004 !

Hi @FabienLelaquais, I'd love to work on this issue. Could you please assign it to me?

could you please tell how are you working on this issue

I guess all you have to do is add an event handler to the 'onBlur' attribute of the TextField component used by the input control.
That would be in frontend/taipy-gui/src/components/Taipy/Input.tsx.
This should act just like 'onChange'.

@AlexandreSajus @FabienLelaquais Hey please assign the issue to me

This issue has been assigned already, @TecHAyusH6476 & @Anudhyan. Sorry

This issue has been assigned already, @TecHAyusH6476 & @Anudhyan. Sorry

It's ok . I just wanted to know how to approach this issue, which you already clarified. Thanks

What went wrong? 🤔
The input control (as well as number, data, ...) does not trap the Focus Out event that should trigger the equivalent of pressing the Enter key
Expected Behavior
See description.
All input, number, date should be impacted. login probably...
Acceptance Criteria

[ ]  Ensure new code is unit tested, and check code coverage is at least 90%.
[ ]  Create related issue in taipy-doc for documentation and Release Notes.

Code of Conduct

[x]  I have checked the existing issues.
[ ]  I am willing to work on this issue (optional)

Assing me this issue

Is this issue worked on ?

I can assign this issue but this is already worked on by other contributors @Heisen47

I can assign this issue but this is already worked on by other contributors @Heisen47

I am a newbie but I am still trying my best

Please try to assign this issue to me if possible.

@developervick A PR is open, do you want to collaborate on this issue?

To address the issue of input fields not triggering actions on focusout, I propose adding an event listener to detect the focusout event for all relevant inputs (e.g., number, date fields). This listener would trigger the same function as pressing Enter, ensuring the expected action occurs when focus is lost. I'll ensure thorough unit tests for these handlers, aiming for 90% coverage. This approach should improve user experience across input fields. Would love to hear your feedback!
I am willing to work on this issue @jrobinAV

@hustler0109,
Thank you for your help.
You can propose your PR to solve the issue.
You can also collaborate with the other assignees having a look at their PRs and help us reviewing them.

Why is it not just another action key?

"Why is it not just another action key?" What do you mean?
"Date range should also be impacted!": you mean date, time and date_range right?
That's not yet done despite the issue description. But it will, yes.

Adding to the list of action_keys something like click_event. In your on_action callback, you will be able to know what to do when you receive the action key pressed in the payload

You may not receive a key at all. Like you click on a button...

Clicking is a kind of key and so is clicking on a button; this is what I would have said


Use iota_client through iota_wallet

Change checklist
Tick the boxes that are relevant to your changes, and delete any items that are not.

[ ] I have followed the contribution guidelines for this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that new and existing unit tests pass locally with my changes

Will redo it at some point, too many conflicts now.


Staticlib

I find archived files much easier to work with than shared object files. As a beginner, having that second option written in the README would have saved me a lot of time

Hi, thanks for the contribution! It's nice to see FRC teams still utilizing this software. Wishing you a successful offseason! Merging now.


Enable CodeQL

welp no idea why is nots running, dont care enough to figure out... will try out another time


ImageFromDockerfileBuilder does not honour the .dockerignore file.

Trying to build image from docker file but fails because process cannot access stuff in .vs folder etc.
Normally, when building image from commandline, the dockerignore file makes sure that all these files are excluded.
 await new ImageFromDockerfileBuilder()
                .WithDeleteIfExists(true)
                .WithDockerfileDirectory(@"D:\tfs\OutboxPattern")
                .WithName("Subsystem1.Api.Dockerfile")
                .Build();

This is the structure of my project, so the dockerfile is in the root while the project that is references in the dockerfile is in a sub folder.
Any ideas to get this working?
Thanks a lot.

The implementation of DockerfileArchive does not support .dockerignore yet. It adds all files in DockerfileDirectory to the temporary created Dockerfile.tar. Either you move your Dockerfile, to another directory which contains only Docker image related files or you contribute and implement the .dockerignore feature to DockerfileArchive - that would be really nice!
It should be enough to filter the ignored directories and files here: https://github.com/HofmeisterAn/dotnet-testcontainers/blob/d6fbb00422e33e3187f29713e7283e7f31bc06e3/src/DotNet.Testcontainers/Images/Archives/DockerfileArchive.cs#L63-L65

PR #269.


Cheat Sheet for Windows Terminal key bindings

Description of the new feature/enhancement
The learning curve for the keyboard shortcuts is quite steep. This is a shame, especially because of low GUI (pointer) support.
I've created this Windows Terminal Cheat Sheet
Proposed technical implementation details (optional)
Feel free to link to this cheat sheet in your docs or repo if you find it useful.

Description of the new feature/enhancement
The learning curve for the keyboard shortcuts is quite steep. This is a shame, especially because of low GUI (pointer) support.
I've created this Windows Terminal Cheat Sheet
Proposed technical implementation details (optional)
Feel free to link to this cheat sheet in your docs or repo if you find it useful.

Somebody doesn't know how to check the project for documents: https://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md

@WSLUser u talkin to me? what's your point?

The option to move to a different pane is missing....

It seems straight forward to me. If you think the docs can be improved then submit a PR.

Sure, I can do a PR. But first I prefer to get some acknowledgement from wt team that this is wanted and where.

Hey @th0ger, this is awesome. 😊 Would you mind filing a PR on the docs repo? I think having a "key bindings quick guide" is a wonderful idea.

WOW! This is so cool. It is much better fit for the docs repo as Kayla called out.

Thanks. Yes I only realized later that the docs has it's own repo, will create the PR there.

PR done.


Complete rewrite to the plugin

Complete rewrite to the plugin
Move rule, tests, docs to a folder
Fix ts
Cache result and read from cache for better performance

#53  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @AhmedBaset and the rest of your teammates on  Graphite


Images thumbnails not showing up

Can you provide screenshots of the Maccy window and General/Appearance panes of its preferences?


CD Tabbing Folders does not inject escapes + Quotes not working

In Mac Terminal, you can use quotes to go into a directory with spaces "Folder Name". This causes an error in KUI when using "cd". "ls" works.

When you "cd" and tab through folders with spaces, it will not inject / escapes. Thus it will not go into the folder rather show an error.

folding the second under #1276 and repurposing this issue for the first


Removing wild card (star) imports from files

https://github.com/pyunity/pyunity/blob/9f4c2675e9e9a66f5c2db7f5042d9e6277f23085/pyunity/physics/core.py
https://github.com/pyunity/pyunity/blob/33ef86db69b35665bf000a4d6df23b8604936494/tests.py
https://github.com/pyunity/pyunity/blob/babdfd55de0012a4bf6d7677999821b6b74811f3/pyunity/window/glfwWindow.py
https://github.com/pyunity/pyunity/blob/63b15f162d88b0976c3a5d477b681f218d2107a8/pyunity/scenes/sceneManager.py
https://github.com/pyunity/pyunity/blob/babdfd55de0012a4bf6d7677999821b6b74811f3/pyunity/window/templateWindow.py
https://github.com/pyunity/pyunity/blob/d0ec080f9406adef07956ded23f0751bde222d93/pyunity/scenes/scene.py
https://github.com/pyunity/pyunity/blob/d0233bffd7cdde59e325d63546f4ea9b51a6d6e6/pyunity/loader.py
For now these are the files that still have from <module> import * statement. Gonna fix them as soon as possible!

Yo @rayzchen mind helping me with this one? Since I am lost lmao

not possible cus of how many different classes are imported. Tbh, i don't think this pr is necessary.


fr-FR: syntax errors on "lv_i18n compile" when used with french

I have this yml file called fr-FR.yml
fr-FR:
  key1: key1f
  key2: key2f

when using lvi18n compile -l fr-FR -t '*.yml' --raw lv_i18n_data.inc I get the following plural function, that contains many errors:
static uint8_t fr_fr_plural_fn(int32_t num)
{
    uint32_t n = op_n(num); UNUSED(n);
    uint32_t i = op_i(n); UNUSED(i);
    uint32_t v = op_v(n); UNUSED(v);
    uint32_t i1000000 = i % 1000000;
    if ((((i == 0) || (i == 1)))) return LV_I18N_PLURAL_TYPE_ONE;
    if ((e == 0 && i != 0 && i1000000 == 0 && v == 0) || (e != 0..5)) return LV_I18N_PLURAL_TYPE_MANY;
    return LV_I18N_PLURAL_TYPE_OTHER;
}

I see at least the following errors:

"e" is undefined
"0..5" is invalid

Am I wrong or is there a bug?

cc @puzrin

Regression in 32f5fc26a6c0a5d5c76603084e6a110933d6a376
Check master please, and let me know any problem missed.


Unable to Create an Account

Keybase GUI Version: 4.4.1-20190909145404+b5f8897c2a
Only my user name has been accepted. WNB62 all else has been refused.
I do not understand as I tried again and it was denied as User name already in use and my email is not attached to that user name.
I tried to create another account WNB and this time it just kept spinning in an endless loop. I eventually shutdown my computer.
Please advise me if there is an error in my procedure or ????
Thank you

This issue just happened to me, using Mac devices, MacOS and iOS. The first time, my selected username was available, then an error was showing on both screens after selecting a name for the device and then the username is no longer available and no further steps can be executed. Is there a way to eliminate those users with unfinished records? So I can try and grab the selected username?


Encountering error stating "The given ColumnMapping does not match up with any column in the source or destination."

Report
Write-DbaDbTableData with -AutoCreateTable or without it as well halfway through leads to an error stating: "The given ColumnMapping does not match up with any column in the source or destination." There isn't much as far as details past this and when I review the table and output it should be writing the entire datatable. Even using a -WhatIf I can see that the command should succeed.
Host used

[x] powershell.exe
[x] ISE
[x] VS Code
[ ] Other (please specify)

Errors Received
writeErrorStream      : True
PSMessageDetails      :
Exception             : System.Exception: The given ColumnMapping does not match up with any column in the source or destination. ---> System.Management.Automation.MethodInvocationException:
Exception calling "WriteToServer" with "1" argument(s): "The given ColumnMapping does not match up with any column in the source or destination." --->
System.InvalidOperationException: The given ColumnMapping does not match up with any column in the source or destination.
at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource1 source)                              at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)
at CallSite.Target(Closure , CallSite , Object , Object )
--- End of inner exception stack trace ---
at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception exception)
at Invoke-BulkCopy(Closure , FunctionContext )
at System.Management.Automation.PSScriptCmdlet.RunClause(Action`1 clause, Object dollarUnderbar, Object inputToProcess)
at System.Management.Automation.PSScriptCmdlet.DoEndProcessing()
at System.Management.Automation.CommandProcessorBase.Complete()
--- End of inner exception stack trace ---
TargetObject          : ----
CategoryInfo          : NotSpecified: (----:PSObject) [Write-Error], Exception
FullyQualifiedErrorId : dbatools_Write-DbaDbTableData,Stop-Function
ErrorDetails          : The given ColumnMapping does not match up with any column in the source or destination.
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at Stop-Function, C:\Program Files\WindowsPowerShell\Modules\dbatools\1.0.140\allcommands.ps1: line 87504
at Write-DbaDbTableData, C:\Program Files\WindowsPowerShell\Modules\dbatools\1.0.140\allcommands.ps1: line 78899
at , : line 1
PipelineIterationInfo : {0, 1}
Steps to Reproduce

Use Invoke-DbaQuery -As DataTable to gather any form of data and store it into a variable.
Test the variable to determine that the data is correctly formatted and stored as a correct object.
Use the command Write-DbaDbTableData -SqlInstance -Database -InputObject - Table -AutoCreateTable with the appropriate params filled in.

Expected Behavior
A table to be created with all of the rows put into the database correctly.
Actual Behavior
Halfway through encounter an error stating: "The given ColumnMapping does not match up with any column in the source or destination."
Environmental information
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
Please provide the output of the below script
PowerShell Version        : 5.1.18362.1171
dbatools latest installed : 1.0.140
Culture of OS             : en-US
SQL Server:
Microsoft SQL Server 2016 (SP2-CU15-GDR) (KB4583461) - 13.0.5865.1 (X64)
Oct 31 2020 02:43:57
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3  (Build 9600: ) (Hypervisor)
us_english

@cvillegashak, so far I'm not able to duplicate the problem. Do you have more specific steps to duplicate the problem?
I tried the following:
# This completes very quickly because the DataSet usage is optimized for the bulk copy. See the InputObject param documentation in Write-DbaDbTableData.
$random = Get-Random
$tableName = "MyTestData_$random"
$query = "SELECT [CityID]
      ,[CityName]
      ,[StateProvinceID]
  FROM [WideWorldImporters].[Application].[Cities]"
$dataset = Invoke-DbaQuery -SqlInstance localhost -Database WideWorldImporters -Query $query -As DataSet
Measure-Command { $dataset | Write-DbaDbTableData -SqlInstance localhost -Database WideWorldImporters -Table $tableName -AutoCreateTable }

# This will take several minutes to complete because a DataTable is being used. See the InputObject param documentation in Write-DbaDbTableData.
$random = Get-Random
$tableName = "MyTestData_$random"
$dataTable = Invoke-DbaQuery -SqlInstance localhost -Database WideWorldImporters -Query $query -As DataTable
Measure-Command { $dataTable | Write-DbaDbTableData -SqlInstance localhost -Database WideWorldImporters -Table $tableName -AutoCreateTable }

Have you considered using the Copy-DbaDbTableData command? It allows a query to be used and is simpler and more efficient.

Hey Adam! Thanks so much for the response. Yep, that’s what I ended up doing and it worked like a charm. ☺ This issue can be closed.
[http://webdownload.hunton.com/esignature/HAKLogo.png]
Christian Villegas
Enterprise Systems Engineer
cvillegas<EMAIL_ADDRESS>p
404.888.4201
m
404.416.6035
Hunton Andrews Kurth LLP
Bank of America Plaza, St 4100
600 Peachtree Street, N.E.
Atlanta, GA 30308
HuntonAK.comhttp://www.huntonak.com/?utm_source=esighunton&utm_medium=email&utm_campaign=esigtracking
From: Adam Lancaster @.>
Sent: Thursday, April 15, 2021 3:03 PM
To: sqlcollaborative/dbatools @.>
Cc: Villegas, Christian @.>; Mention @.>
Subject: Re: [sqlcollaborative/dbatools] Encountering error stating "The given ColumnMapping does not match up with any column in the source or destination." (#7206)
Caution: This email originated from outside of the firm.
@cvillegashakhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_cvillegashak&d=DwMCaQ&c=jxhwBfk-KSV6FFIot0PGng&r=ic9jVXYYpuUNLkAPZAVBkn3SC8eprTa0E2btVZI3efo&m=PQo-HGJrpQzpIuiJyJS3bszyVYtWnLzgmrC3U5vAJDc&s=j6rihmyanL-yQCDcvVSrCwBGB0gA_bMV695lIyIv5YA&e=, so far I'm not able to duplicate the problem. Do you have more specific steps to duplicate the problem?
I tried the following:
This completes very quickly because the DataSet usage is optimized for the bulk copy. See the InputObject param documentation in Write-DbaDbTableData.
$random = Get-Random
$tableName = "MyTestData_$random"
$query = "SELECT [CityID]
  ,[CityName]

  ,[StateProvinceID]

FROM [WideWorldImporters].[Application].[Cities]"
$dataset = Invoke-DbaQuery -SqlInstance localhost -Database WideWorldImporters -Query $query -As DataSet
Measure-Command { $dataset | Write-DbaDbTableData -SqlInstance localhost -Database WideWorldImporters -Table $tableName -AutoCreateTable }
This will take several minutes to complete because a DataTable is being used. See the InputObject param documentation in Write-DbaDbTableData.
$random = Get-Random
$tableName = "MyTestData_$random"
$dataTable = Invoke-DbaQuery -SqlInstance localhost -Database WideWorldImporters -Query $query -As DataTable
Measure-Command { $dataTable | Write-DbaDbTableData -SqlInstance localhost -Database WideWorldImporters -Table $tableName -AutoCreateTable }
Have you considered using the Copy-DbaDbTableDatahttps://urldefense.proofpoint.com/v2/url?u=https-3A__docs.dbatools.io_-23Copy-2DDbaDbTableData&d=DwMCaQ&c=jxhwBfk-KSV6FFIot0PGng&r=ic9jVXYYpuUNLkAPZAVBkn3SC8eprTa0E2btVZI3efo&m=PQo-HGJrpQzpIuiJyJS3bszyVYtWnLzgmrC3U5vAJDc&s=DMThaOeh3-2F2xvZ7XAsTS1wwL5hAl0p7rv2x2yAtCQ&e= command? It allows a query to be used and is simpler and more efficient.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_sqlcollaborative_dbatools_issues_7206-23issuecomment-2D820663696&d=DwMCaQ&c=jxhwBfk-KSV6FFIot0PGng&r=ic9jVXYYpuUNLkAPZAVBkn3SC8eprTa0E2btVZI3efo&m=PQo-HGJrpQzpIuiJyJS3bszyVYtWnLzgmrC3U5vAJDc&s=mfC3-5oi9WsD2xhmhMN5ve29pM5J7RnqmxDIZUF0Dbc&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AOPQ4YBEDMCRCVHYUTSX443TI4Z6NANCNFSM4ZT6HYJA&d=DwMCaQ&c=jxhwBfk-KSV6FFIot0PGng&r=ic9jVXYYpuUNLkAPZAVBkn3SC8eprTa0E2btVZI3efo&m=PQo-HGJrpQzpIuiJyJS3bszyVYtWnLzgmrC3U5vAJDc&s=c19zliuKhTSsWT4J56C7_Nzm6LG_t7cLaHF2vtNC6B8&e=.

@cvillegashak, that is great to hear. Just an fyi, for security precaution you should edit your previous reply on GitHub and remove the info starting from your email signature to the end of your post:  https://github.com/sqlcollaborative/dbatools/issues/7206#issuecomment-820666649
This is one of the drawbacks to using the email reply feature. It's safer to open the page in GitHub and enter the reply directly so that email signatures and other details are not inadvertently posted.

Done. Thanks for the heads up! :)


Feature/sync gigasecond

@exercism/cpp here is the new PR. I had forced-pushed to the previous to include the no important files changed tag. I wasn't aware that this would prevent re-opening. Sorry about that!

The failed check says:
This PR touches files which potentially affect the outcome of
the tests of an exercise. This will cause all students' solutions
to affected exercises to be re-tested.

If this PR does **not** affect the result of the test (or, for
example, adds an edge case that is not worth rerunning all tests
for), **please add the following to the merge-commit message**
which will stops student's tests from re-running. Please
copy-paste to avoid typos.

```
[no important files changed]
```

For more information, refer to the [documentation](https://exercism.org/docs/building/tracks#h-avoiding-triggering-unnecessary-test-runs).
If you are unsure whether to add the message or not, please ping
`@exercism/maintainers-admin` in a comment. Thank you!

In this case ya probably want to re-run all the student solutions.

I only added that one excluded test to tests.toml and renamed the tests. I didn't change any actual test code. The changes there are only formatting (looks like .clang-format has changed in the meantime or hadn't been applied to that file before). So I'm not sure we should really re-run all student solutions. However, I can of course drop the tag. Let me know what to do!

I didn't see the include false on the last line. If no tests were added (or changed) then indeed, it should NOT re-run ;)
[fcec307c-7529-49ab-b0fe-20309197618a]
description = "does not mutate the input"
include = false


Don't set syntax folding when perl_fold is unset

This returns to behavior prior to 47fec445da1d8ff54ebcbf43ce73ed6bc8915cf3, where setlocal foldmethod=syntax moved from a default-0 condition block to a default-1 block.

Thanks!


Fix wrong Assignment Types

Assignment types are case-sensitive. Correct values must be in CamelCase, otherwise the deployment of remediation tasks will fail. Example for wrong ApplyandAutoCorrect insted of correct ApplyAndAutoCorrect
    "status": "Failed",
    "error": {
        "code": "DeploymentOperationFailed",
        "message": "Input provided for ApplyandAutoCorrect is invalid."

Learn Build status updates of commit 93d250b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/governance/machine-configuration/machine-configuration-policy-effects.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@timwarner-msft,
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


support heterogeneous version tests

Change Description
Added support for heterogeneous EOSIO versions.
Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Closing because of buildkite/eosio-sync-tests


Merge LuckyMigrator into LuckyRecord.

The way I'd think about this is: does the implementation of LuckyMigrator depend on LuckyRecord? If so, I think they should probably be merged.

Let's move forward with this. The last few PRs to LuckyRecord/Migrator have required changes to both and it is a pain to orchestrate. I'll try to tackle this one of these days :)


request help: failed to connect to the unix socket unix:/usr/local/apisix/conf/apisix-1.sock: no such file or directory

Issue description
Sending a request to http://localhost:9080 will result in an error. I'm running apisix in docker.
Error
2024/09/01 04:11:33 [error] 33#33: *396 [lua] init.lua:889: phase_func(): failed to connect to the unix socket unix:/usr/local/apisix/conf/apisix-1.sock: no such file or directory

Dockerfile
FROM golang:1.22.5 AS plugin-builder

WORKDIR /builder

COPY go-runner .

RUN CGO_ENABLED=0 go build .

FROM apache/apisix:3.9.1-debian

ENV APISIX_STAND_ALONE=true

EXPOSE 9080 9180 9091 9443 9092

COPY apisix.yaml /usr/local/apisix/conf/apisix.yaml

COPY --from=plugin-builder /builder/go-runner /usr/local/apisix-go-plugin-runner/go-runner

apisix.yaml
routes:
  - uri: /
    plugin_config_id: 1
    upstream:
      nodes:
        "upstream-nlb-9780037035286027.elb.ap-northeast-2.amazonaws.com": 1
      type: roundrobin

plugin_configs:
  - id: 1
    plugins:
      ext-plugin-pre-req:
        name: ext-plugin-pre-req
        config:
          name: "say"
          value:
            body: "Hello, APISIX!"

ext-plugin:
  cmd: ["/usr/local/apisix-go-plugin-runner/go-runner", "run"]
#END

Furthermore, when I checked /usr/local/apisix/config in Docker, there is no sock file and no environment variable named APISIX_LISTEN_ADDRESS.
apisix@fe350b633c44:/usr/local/apisix/conf$ ls
apisix.uid  apisix.yaml  cert  config-default.yaml  config.yaml  debug.yaml  mime.types  nginx.conf

apisix@fe350b633c44:/usr/local/apisix/conf$ printenv
APISIX_STAND_ALONE=true
HOSTNAME=fe350b633c44
PWD=/usr/local/apisix/conf
HOME=/home/apisix
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin
_=/usr/bin/printenv
OLDPWD=/usr/local/apisix

Environment

APISIX Go Plugin Runner's version:
APISIX version: apache/apisix:3.9.1-debian
Go version: 1.22.5
OS (cmd: uname -a): Darwin sanghyeonkimui-MacBookPro.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:12:58 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6000 arm64

try replacing /usr/local/apisix-go-plugin-runner/go-runner with /usr/local/apisix/go-runner in Dockerfile and apisix.yaml


Use alternate Storage.Object.get API URL pattern to avoid SSL certifi…

…cated error if there are '.' in the bucket name
npm test all passed

This is a weird one. Overall the fix looks good to me. @stephenzsy could you try and add a unit test for this too? If not, let me know and I'll add a test when I merge this in.

Resolved by #638. Thanks @stephenzsy!


[ja] Translate content/en/docs/reference/glossary/cni.md into Japanese

This is a Feature Request
What would you like to be added
Translate content/en/docs/reference/glossary/cni.md into Japanese
Why is this needed
There is no Japanese translation for this page
Comments

File to translate:

https://github.com/kubernetes/website/blob/main/content/en/docs/reference/glossary/cni.md

Original:

https://kubernetes.io/ja/docs/reference/glossary/?all=true#term-cni

日本語に翻訳する際は、以下のドキュメントを参考にしてください。

Japanese Localization document: https://kubernetes.io/ja/docs/contribute/localization/

/area localization
/language ja
/good-first-issue

/assign

/unassign Shubhdeep02
PTAL #45476 (comment), thank you

/triage accepted

/assign


Switch label click should activate/deactivate switch

Requirements

Clicking on switch label should activate/deactivate switch
Clicking on switch label should not select label text


Hooks against advisement

Where can I find said advisement?

https://reactjs.org/docs/hooks-faq.html#do-i-need-to-rewrite-all-my-class-components
Here-ish. Dan Abramov has also written more which is basically "Write new stuff in hooks, but refactoring errything to hooks is not needed".
But here we are, doing it anyway.


Case sensitivity?

I just realized that doorman is enforcing case-sensitivity on my user's email even though I'm using a lowercase unique index. I can solve this in my app but I'm wondering if a PR to doorman would be preferred so that by default we query lowercase?
If you're up for it, I can have a PR in today.

Definitely an oversight. I'd love a PR making it case sensitive.

Do you think it's reasonable to require that the user has lowered the emails before they went into the DB (or through a migration) or should we lower it on each query?
If we the DB lower on each time but you've already lowered it seems like overkill. Also, if we have to lower the DB on each query using a fragment, we can't use our existing fakes and I'm fairly certain we'll have to add a real db to test things.

Do you think it's reasonable to require that the user has lowered the emails before they went into the DB (or through a migration) or should we lower it on each query?

Definitely. I think it's probably worth recommending using citext on postgres in the README.


Inconsistency between artifactory_local_rpm_respository and artifactory_local_debian_respository

Describe the bug
Defined a GPG key to match the RSA key we have for Alpine Linux.
resource "artifactory_keypair" "gpg" {
  pair_type = "GPG"
  pair_name = "E4FE7A7B"
  alias     = "E4FE7A7B"

  private_key = file("keys/gpg/E4FE7A7B.asc")
  public_key  = file("keys/gpg/E4FE7A7B.pub.asc")
  # passphrase = ""

  lifecycle {
    ignore_changes = [
      private_key,
      passphrase,
    ]
  }
}

In the local and virtual repo resources for rpm and debian (a matrix), keypair appears to have changed to primary_keypair_ref. No problem. I'm using the HashiCorp Terraform extension in VSCode to introspect the provider and provide inline error messages in my .tf files.
In artifactory_local_debian_repository, I am able to set primary_keypair_ref = artifactory_keypair.gpg.id. I can also set this in artifactory_virtual_debian_repository (e.g., the only two places where you can set it). I can also set it in artifactory_virtual_rpm_repository.
However, in artifactory_local_rpm_repository, the keypair and primary_keypair_ref attributes appear to be undefined. This is inconsistent with the comparable artifactory_local_debian_repository resource.
Requirements for and issue

https://github.com/jfrog/terraform-provider-artifactory/blob/e440b36bc60333a73f1f4e6cddaba87353c973e5/pkg/artifactory/resource_artifactory_local_debian_repository.go#L10-L27
https://github.com/jfrog/terraform-provider-artifactory/blob/e440b36bc60333a73f1f4e6cddaba87353c973e5/pkg/artifactory/resource_artifactory_local_rpm_repository.go#L11-L43
https://github.com/jfrog/terraform-provider-artifactory/blob/e440b36bc60333a73f1f4e6cddaba87353c973e5/pkg/artifactory/resource_artifactory_virtual_rpm_repository.go#L12-L25

Artifactory v7.31.10.
Terraform v1.1.7
on darwin_amd64
+ provider registry.terraform.io/jfrog/artifactory v4.0.0

Expected behavior
Keypairs would be supported by local_rpm just like it is for local_debian and virtual_(rpm|debian) resources.

I vaguely remember an inconsistency in RT about this - you're saying "just make them consistent by name" in the HCL? That should be doable with deprecation

Oh. I think we can accomodate. Thanks for being such a productive and active community member


Uprev to Blue Green Deploy version 1.2.0 or higher

Hi, using your container for our CI/CD pipeline and would love to take advantage of the BGD feature added to specify a manifest file, improved in 1.3.0

This should be resolved by #119. It'll probably take a bit of time before Docker Hub builds the new images though.


x/mobile/audio/al: export AL_SOURCE_DISTANCE_MODEL

Package al doesn't export the AL_SOURCE_DISTANCE_MODEL  constant from the OpenAL Soft headers. It is the only capability that can be used with al.Enable and al.Disable.

just been trying out some ideas for higher level abstractions of this, but have found a few more basic items also not exposed;
buffer looping, AL_LOOPING
direct source pitch changes, AL_PITCH
retrieving the current buffer, AL_BUFFER
i have forked and added, these additions could be pulled, but are quite trivial, and are purely additions.

just been trying out some ideas for higher level abstractions of this, but have found a few more basic items also not exposed;
buffer looping, AL_LOOPING
direct source pitch changes, AL_PITCH
retrieving the current buffer, AL_BUFFER
i have forked and added, these additions could be pulled, but are quite trivial, and are purely additions.

also now notice the offset set functions are missing;
(and offset seconds was being accessed as an int, when a float has to be more useful)
inserted.....(over writting the original 3 functions in a.go)
// OffsetSeconds returns the current playback position of the source in seconds.
func (s Source) OffsetSeconds() float32 {
return getSourcef(s, paramSecOffset)
}
// SetOffsetSeconds sets the current playback position of the source in seconds.
func (s Source) SetOffsetSeconds(sec float32){
setSourcef(s, paramSecOffset,sec)
}
// OffsetSample returns the sample offset of the current playback position.
func (s Source) OffsetSample() int32 {
return getSourcei(s, paramSampleOffset)
}
// SetOffsetSample sets the sample offset of the current playback position.
func (s Source) SetOffsetSample(i int32){
setSourcei(s, paramSampleOffset,i)
}
// OffsetByte returns the byte offset of the current playback position.
func (s Source) OffsetByte() int32 {
return getSourcei(s, paramByteOffset)
}
// SetOffsetByte sets the byte offset of the current playback position.
func (s Source) SetOffsetByte(i int32){
setSourcei(s, paramByteOffset,i)
}

@splace, let's continue the discussion at https://github.com/golang/go/issues/13912 and https://github.com/golang/go/issues/13913.

sure. i do have some observations.


Limit number of items in memory cache

We need to add an optional count limit on the memory cache to ensure a there is a maximum limit on the memory use of MemoryCache. When the count limit is reached, we will trim a percentage of the items in the cache (we have used 10% in the past).
cc @muratg @Eilon
Post 2.0 we plan to include a size hint to the memory cache and design more extensible eviction policies.

Followup item filed in #326

We decided to implement #326 instead.


Make a component for the demo to reference files that create a link to github sources (currently as a TODO in footer demo)

Instead of
`./global-top.vue`

use <file>./global-top.vue</file> (same rendering but clickable)

maybe even in an iframe/popup


better / robust support for mutations / mutation dependencies

If we have
lst.append(x)

x will successfully be added as a dependency to lst, since it is a simple ast.Name (the only thing currently supported for mutation deps). If, however, we have something more complicated, like
lst.append(x())

or
lst.append(x.y(z))

we won't correctly add these.

This was (hopefully) partially addressed in 7458275. Contrary to the commit message, subscripts still not handled. Also need more extensive testing before this issue can be closed for good.


Firbase config

npm installled axios
modified vite.config.js to deal with cors

hold on on merging


Color picker sampling incorrect color

Microsoft PowerToys version
0.41.4
Running as admin

[X] Yes

Area(s) with issue?
ColorPicker
Steps to reproduce

Open color picker
Sample any color

It occurs in all applications, the attached screenshot was taken in Chrome.

It occurs on both of my monitors
Color correction in graphics card software is disabled
Use my settings in the color management is unchecked
Night light is disabled
My display uses SDR color space and RGB color format

PowerToysReport_2021-07-07-21-51-10.zip
✔ Expected Behavior
Sample correct color
❌ Actual Behavior

Sampling incorrect color
You can see the sampled color hex VALUE differs from the one in the color picker

Other Software
No response

The color on the left is correct based on the screenshot.  Via https://www.colorhexa.com/eb4034.  You can see, the color on the left and in top right circle matches.  The bottom circle reads different value and none of them are HEX eb4034.
HEX eb4034 is a much much brighter red than what your screenshot has.

Can you give more detail on where you're pulling that value from?  I even validated the color grabs with MS Paint and its eyedropper, color picker is pulling the correct value.  Only way i got the EB4034 value was via the colorhexa page's sample.

I can clearly say that my uploaded screenshot has slightly shifted colors compared to what I see in the browser's color picker.
But I'm really confused now, since I painted both Hex values in photoshop and compared window next to window, and the first - #EB4034 color seems to be the one I see in the browser, but when I take a screenshot of the browser and paste it into the photoshop it instantly changes color to the one visible on my screenshot - #CF5336.
In this case, I would assume there is some software layer that I am unable to locate, that causes those color changes in between screen capturing software and the actual source.

We need clear repro steps as right now there is some type of shift but it isn't the color picker inside PT based on your screen shot.
It could be DOM related in the webpage.  Without more information, we can't help out here.


Improve grammar and change to end-links in article: How to use services module grammar

@dubiety

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


New version: Codemao.TurtleEditor.1 version 1.3.2

Pull request has been created with komac v2.8.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

=== manifests\c\Codemao\TurtleEditor\1\1.3.2 === Missing Properties value based on version 1.8.2: Icons

This entry was not in the previous manifest.


is ssr supported?

I'm using the library in nuxt and for now everything is fine :) but I want to know if the ssr is fully supported.
Thank you!

Yes fully supported.


Question: Prompt only based of outcome of a previous prompt?

Hi,
Love this framework.
I am wondering how I can show a prompt ONLY if the value of a previous prompt was "true"?
Is this possible?

Yes! Inquirer supports this with the "when" property. I'll put a link in here once I'm back at my computer. But I'm sure google can help you find it too


Send gifts to all favorites

When in the send gifts interface, you have button to send to random friends, but it would be great if there could be button that selects all favorited friends

Just updated latest version and its there, I thought I should log it as we spoke about this.
So, thanks!
But, clicking the button has locked my browser, and after reloading page it also locks browser.
Have waited a few minutes but it does not seem to come back

Checked and it does same lockup for other gifts too.
Click Friends, send gifts, send free gifts, click on gift to send, then click select frequent gifters

Just fixed this in the latest release!

Clicking the button only selects 8 out of 19 frequent gifters?
and the gifters change after each refresh it seems

Lazy to type again, but here is notes from discord


YOLO608

Hi Experiencor,
I'm interested in seeing the difference between the YOLOv2  416x416 and the YOLOv2 608x608 models,
Is this just a matter of generating weights using YAD2K and changing the size and anchors in config.json?,
Thanks again, awesome job!

@CGCooke Do you mean to use this repo to test the difference between the 2 models trained using Darknet code via YAD2K code?
P/S: you can use this repo to train 2 models (416 and 608) and evaluate then thereafter.

Thanks @experiencor,
I've previously adapted the code from commit e6aad92  on 10 Aug to use the 608 model, and I was interested in the added benefit from using imgaug & masking in the loss function.
Do I also need to make any changes to do multi-class detection? (Apart from adding the extra classes in config.json)

You don't need to make any changes. The size of the network auto adjusts to the number of classes. Why don't you try the latest code? The old code has issue with multi-class detection in older version of Keras.

Thank you,
I'm trying the new code, still trying to identify why the e6aad92 commit performs better on my dataset than the current code.


sca-wf-task dies

sca-wf-task's timeout loop terminates (cb chain is broken somewhere?) sometimes. I need to investigate, but also consider self-termination if cb-chain is broken (so that pm2 can restart it)?

The chain break event is now detected and reported to slack via /health api. I am gathering more info on this.

It was most likely caused by improper handling of ssh2 cb().


refactor(map_height_fitter)!: prefix package and namespace with autoware

Description
This PR will add the autoware_ prefix to map_height_fitter.
This will affect driving_log_replayer

https://github.com/tier4/driving_log_replayer/pull/543

Related links
Parent Issue:

https://github.com/autowarefoundation/autoware/issues/4569

How was this PR tested?

Checked the node launched

Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

@SakodaShintaro I fixed the conflict at 48f3b04 .

@isamu-takagi Would you be able to review the changes of the system directory?


React-Redux kanban board setup

Dear Review,
We would like to inform you that we are two in this group for the React group project. @yusufobr and @Bellagirl-maker.
And this is the link for our GitHub project : https://github.com/yusufobr/Space-X-React-Redux/projects/1
Thanks

Hi <STUDENT_MENTION>,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that has no link to the GitHub project. 👍
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.

STATUS: APPROVED :green_circle: :clap:
Hi @Bellagirl-maker & @yusufobr  🙋♂,
Your project is complete!  There is nothing else to say other than... Great job 👏

Congratulations! 🎉
TO HIGHLIGHT:

The tasks are evenly distributed ✔

Now you can merge this branch and move on :1st_place_medal:
Optional suggestions
N/A
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.
HAPPY CODING AND GOOD LUCK WITH THE COMING ONES :crossed_fingers: :four_leaf_clover:


core: add attrs to request message

This is an example of adding Attrs (as an alternative to SessionContext).  Attrs are type safe, and make it easy to find out where a particular Key is used.  Attrs is mutable as there are several places where it its mutated.    Since we don't have the error prone checks to ensure return values are used, it would be risky to make Attrs immutable.

I like it conceptually but I don't like the name "Attrs". For example, I think SessionContext is a lot more descriptive.

@artgon  I can make the accessor something like callAttrs.  I feel Session is the wrong terminology too (a session persists across multiple calls).   I am using the Attrs in other places so I don't think it would be correct to change the type name, just the variable name.

What about RequestAttrs?

Yeah, given the usage, the name should allude to this being a request level attribute store. Avoid RequestContext since that has connotations based on prior usage in other frameworks/libs.

Unrelated to this change but since we're on this class, https://github.com/Netflix/zuul/blob/500295cde056968db4156195d330662c0cc5ae67/zuul-core/src/main/java/com/netflix/zuul/Attrs.java#L65-L67
I think the type conversion should happen on line 67, ie. after the null check, not before.

I'm also hesitant to use the word Request because its shared for the request and the response, same as SessionContext.

So, we need a word that includes both Request and Response but isn't "Session" :)

I think Call encompasses both.


Add Omnivox

Student portal for schools in Quebec.

Lowercase only? That's not good.
Thanks for the PR.


fix 404 not found with nginx

fix #1589 and ref #86
Project Folder Structure
├── laradock
└── www

Please make sure that public folder of Laravel project in www
Modified laradock/.env
APP_CODE_PATH_HOST=../www

Copy nginx config
cp -r nginx/sites/laravel.conf.example nginx/sites/laravel.test.conf

Add laravle.test in /etc/hosts
<IP_ADDRESS> laravel.test

open your browser
open http://laravel.test or you can change the hostname to http://localhost

@Mahmoudz  @bestlong any feedbacks?

Suggestions to follow Multiple Projects folder structure:
no need edit .env config file.
when www folder is a laravel project
cp -r nginx/sites/laravel.conf.example nginx/sites/www.test.conf
edit nginx/sites/www.test.conf
server_name www.test
root /var/www/www/public

Add www.test in /etc/hosts
<IP_ADDRESS> www.test

I try to install Laradock for a beginner.
your_laravel_folder/
└── ...
└── ...
└── laradock

Don't modify the laradock/.env file
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../

copy the default conf for nginx container.
cp -r nginx/sites/laravel.conf.example nginx/sites/laravel.test.conf

Add laravle.test in /etc/hosts
<IP_ADDRESS> laravel.test

Start the container:
docker-compose up -d nginx mariradb

Finally, you will get the 404 not found in the browser since you forgot to change the setting of root dir
- /var/www/laravel/public
+ /var/www/public

I think it will take a lot of time to find the root cause for a beginner.

for a beginner start ref https://laradock.io/introduction/#quick-overview
nginx/sites/default.conf origin design is laradock in laraval project and base on single project concept
folder struct must is:
laravel_app_folder
├── laradock
└── public/index.php

if start from zero:
follow nginx/sites/default.conf design only need create public/index.php
folder struct like:
work_folder
├── laradock
└── public/index.php

in work_folder and run command
mkdir public
touch public/index.php
echo "<?php\necho phpinfo();\n" > public/index.php

cd laradock
cp env-example .env
docker-compose up -d nginx

open http://localhost
if you agree with this process, we only need update document.

- root /var/www/laravel/public;
+ root /var/www/your_laravel_folder_path/public;

and
- 1 - Clone Laradock inside your PHP project:
+ 1 - Clone Laradock inside your Laravel project:


Calendar Coordinator not active

The Calendar Coordinator of a club does not have to have an active Range Badge.  I get "No Active Member Found" when trying to add to Auth Users.

But, I was able to over write First Name and create.

All users were suppose to have active badges, except Root.  You can create an account as a root user with a password then change their permissions.  Make sure to change their username to the desired level before creation as root.


kernel: add some basic structs

WIP, send a PR first in case someone wants to know what Kernel looks like :)

@tisonkun I can see two reasonable implementation so far: local and remote. The local implementation simply talks to the underlying journal/storage to do its job. The remote implementation talks to a remote kernel service that manages other things for it.

@huachaohuang let me list concepts we define so far:

Journal, Storage will have multiple implementations, because they can be outside systems. A RemoteJournal makes sense because someone possibly provides their own Journal service.
Kernel, if it means resource management, will have multiple implementations in the dimension of resource providers (standalone, YARN, Kubernetes). Because different resource providers have different interaction logic. Any kernel should be able to start any implementation of Journal/Storage, with its specific resource pool.
Engine, which talks to Journal/Storage that are internal concepts of Engula, should be a sole implementation, no matter what implementation of Journal/Storage or Engine it will talk to.

Close this in favor of #155


Allow resources params from data and json arguments

re-order parsing of data and resource arguments
pass data to the resource parser and prefer this argument (in order)
to first get resource arguments from data or json args
loosen validation to allow arguments here in lieu of as argv[1]

Thank you for this addition.


Add post endpoint

Need to check if the time of execution after removing the patch stays the same in an ENV like staging with a realistic amount of data.


fix(search) advance stream position even if there is a zero length match

E.g. if someone search for \b in regex mode the length of the match is 0 and then in readToken it will call the token function However since pos does not change it errors out throw new Error("Mode " + mode.name + " failed to advance stream.");
After the fix
Seems to work fine :rose:

Good idea. Merged as 21f1d0a


Fix applying and removing styles when sorting postboxes

This moves style changes when sorting to CSS, and adds a quick animation when a postbox pops into place.

Manually merged.


Match builder image with project go version

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/lgtm

/approve

we actually should have closed this one, they merged a fix upstream and I take it into consideration in my PR #167 but never mind Ill rebase it..


Added Platform.sh CLI Tool Integration

Added tool for Platform.sh Integration.
Updated Readme.md to include SECRET_PLATFORMSH_CLI_TOKEN environment variable that is rewritten with startup.sh to just PLATFORMSH_CLI_TOKEN which is used to authenticate with Platform.sh.
Following Documentation on Platform.sh CLI tool https://github.com/platformsh/platformsh-cli
Platform is another big hosting company alongside Pantheon and Acquia. This integration could be an additional step to a more universal tool and yet another hosting company we can reach out to.
Other customizations through environment variables are as follows
Other customization is available via environment variables:

PLATFORMSH_CLI_DEBUG: set to 1 to enable cURL debugging. Warning: this will print all request information in the terminal, including sensitive access tokens.
PLATFORMSH_CLI_DISABLE_CACHE: set to 1 to disable caching
PLATFORMSH_CLI_SESSION_ID: change user session (default 'default')
PLATFORMSH_CLI_TOKEN: an API token. Warning: storing a secret in an environment variable can be insecure. It may be better to use config.yaml as above, depending on your system. The environment variable is preferable on CI systems like Jenkins and GitLab.
PLATFORMSH_CLI_UPDATES_CHECK: set to 0 to disable the automatic updates check
CLICOLOR_FORCE: set to 1 or 0 to force colorized output on or off, respectively
http_proxy or https_proxy: specify a proxy for connecting to Platform.sh

Also need a test case added to verify the platfom binary version. Similar to https://github.com/docksal/service-cli/blob/3f1e897a4e0f2ae2bd68d278881f8b7a8e481bf4/tests/test.bats#L213-L216

@lmakarov pls review

Thanks @sean-e-dietrich ! This is now merged.

Cool!

I'm attempting to setup docksal on a platform.sh. I noticed a new documentation page to get this working in the develop branch here:
https://docs.docksal.io/en/develop/tools/platformsh/
It says to use cli version 2.3.0+. But that version isn't available. I'm assuming this hasn't been deployed yet in a new release? Is there a way for me to use this now or should I wait for this to be released? Any help would be appreciated. Thanks!

@chrisroane Platform.sh integration will become available with the next Docksal release (at some point this month hopefully).
If you'd like to be a beta tester, then you can use the edge (development) versions of the cli images.
Assuming you are using the default stack configuration in Docksal (see docksal/drupal8 as an example), you can force a specific cli image version like this:
fin config set CLI_IMAGE='docksal/cli:edge-php7.1'
fin project start

@lmakarov I would love to test this to make sure it is working. I can probably also help updating the docs to help people integrate with platform. However, even with using the edge version it doesn't install the platform cli.
I updated to use the edge version. Here is my docksal.env file:
# This is a shared configuration file that is intended to be stored in the project repo.
# To override a variable locally:
# - create .docksal/docksal-local.env file and local variable overrides there
#
# After editing, apply changes with 'fin up'

# Use the default Docksal LAMP stack
DOCKSAL_STACK=default

# Lock images versions for LAMP services
# This will prevent images from being updated when Docksal is updated
#WEB_IMAGE='docksal/web:x.x-apache2.4'
DB_IMAGE='docksal/db:1.1-mysql-5.5'
#CLI_IMAGE='docksal/cli:2.2-php7.2'
CLI_IMAGE="docksal/cli:edge-php7.2"

# Override virtual host (matches project folder name by default)
#VIRTUAL_HOST=drupal8.docksal
# Override document root ('docroot' by default)
DOCROOT=_www

# MySQL settings.
# MySQL will be exposed on a random port. Use "fin ps" to check the port.
# To have a static MySQL port assigned, copy the line below into the .docksal/docksal-local.env file
# and replace the host port "0" with a unique host port number (e.g. MYSQL_PORT_MAPPING='33061:3306')
MYSQL_PORT_MAPPING='0:3306'

# Enable/disable xdebug
# To override locally, copy the two lines below into .docksal/docksal-local.env and adjust as necessary
XDEBUG_ENABLED=0

I ran fin config set --global SECRET_PLATFORMSH_CLI_TOKEN="" with my platform token and confirmed the token is set with the SECRET_PLATFORMSH_CLI_TOKEN variable in my ~/.docksal/docksal.env file.
I started over by removing the project with fin p remove and then ran fin p start. It looks like it is using the edge version, but fin platform --help returns Unknown command platform --help. See 'fin help' for list of available commands
Should I need to set the SECRET_PLATFORMSH_CLI_TOKEN variable on the project level for this to work? I followed the docs on this page. Let me know if I am missing something obvious.
I switched companies recently and am pushing to use docksal company wide. We mainly use platform.sh, so this will be incredibly useful and save me some setup steps if I can get this working. Thanks for your help.

For now you have to use
fin exec platform ...

The new platform built-in will be added to the fin after the release.

Even when I go into fin bash, the platform command is not available. Also this doesn't work either: fin exec platform --help.  We have an issue with edge images not being pushed to Docker Hub.
(#70) was supposed to address it, but looks like it did not.

@chrisroane (#71 ) should address this issue. Images tagged with edge should be up shortly.

@chrisroane edge images have been updated. You can pull the most recent version with fin update --project-images.

@lmakarov I confirmed the platform cli software is installed, but it isn't picking up my SECRET_PLATFORMSH_CLI_TOKEN token. This is the error I get in fin bash: https://cl.ly/3n1g1W3X3s3W

@chrisroane SECRET_PLATFORMSH_CLI_TOKEN will only work in run-cli automatically right now when you use the develop version of fin.
If you want you can update using
DOCKSAL_VERSION=develop fin update

or you can also be able to run:
fin run-cli -e SECRET_PLATFORMSH_CLI_TOKEN [COMMAND]

assuming SECRET_PLATFORMSH_CLI_TOKEN has been added to your $HOME/.docksal/docksal.env file

@sean-e-dietrich I couldn't get the above to work right. So for now, I'm just using the cli edge version and manually running platform auth:password-login to log into platform.
The good news is I created custom commands to import the db, import user files, install all of the node dependencies + yarn and the site fully works locally.
When this gets deployed, I can do more in depth testing to make sure authentication with platform cli is more automatic, but I think this will work for us for the time being. Thanks!

I am glad that you're good for the time being.
Could you elaborate a bit what did not work right with updating to the develop version? Wanted to double check just in case you hit some edge case we could fix eraly.

I was a little confused at what @sean-e-dietrich was suggesting. I updated docksal.yml file with DOCKSAL_VERSION=develop but it gave me an error. I guess I'm not clear where the code he posted should go to use the develop version of fin.

Ah, it doesn’t go in the yml file. If you run the command Sean posted in your terminal, it will update fin to the current develop version.

Ah that was the probably the problem. If I find some time, I may give this another shot.
FYI, I created a public repo that has some documentation, custom commands and getting things to match the platform drupal 8 environment more closely. This will be a work in progress, but I thought I would post where this is at so far:
https://bitbucket.org/thebrickfactory/docksal-drupal-8-platform/overview
I'm sure some of these custom commands could be converted to something like an addon or a boilerplate. But I think this is a good start for the time being.

I think by default, they set the php.ini to 128MB, but it appears that can be changed, since some of our projects have it set to 256MB.

Great idea!
By default we don't push file permissions to the repo. But I wonder if there is a way around that for certain use cases?
Great idea! Platform.sh will end up creating a symlink to web from _www via platform build. I think the directory could change from web depending on the platform yaml file. But it should end up always being referenced from the _www directory.
Great idea.

I'll get this updated. I'm going to create a similar repo to handle D7 projects, since some of the commands will be different there.
Being able to use the platform cli tool made this fairly straightforward to integrate. I think our team is going to love using Docksal.

By default we don't push file permissions to the repo

I definitely support you on this one, but I have always though that 'x' permission is an exception. For example without 'x' permission on a directory you wouldn't be able to list its contents.
Anyways you can run fin <command> even without 'x' permission set. Fin will ask whether you want to set it executable and then execute it. Is that the kind of way around you meant?

I was mainly wondering if there is a way to push the file permission settings for those command files to the repo, without having git pickup other file permissions. Currently I am running git config core.fileMode false to not pick up file permissions on a git repo. There probably is a different way to handle that... I'll probably dive deeper into that later.
I made some updates to the Platform.sh D8 repo. I also created a public repo that does the same things for D7 (with minor differences in the drush commands and docs):
https://bitbucket.org/thebrickfactory/docksal-drupal-7-platform.sh/src/master/

Posting a followup to this. I am using CLI 2.3 + the release candidate for docksal (fin). Platform cli is installed on the box, but it isn't auto authenticating, even with the global SECRET_PLATFORMSH_CLI_TOKEN var set. Will this part not fully work, like it does for the terminus token, until the stable release comes out? Right now I have some super hackey code that grabs the global platform token, writes the token to a file in the cli and authenticates the platform cli that way but I really would like to not have to do that.

@croane release candidate is in develop. Please don't use release candidate. The mechanism of RC will only be stable after the 1.10.0 release.
To use platform.sh integration right now please update to the develop version.
DOCKSAL_VERSION=develop fin update


Nodeos Logging Documentation

I have not seen any good documentation for the logging.json and I believe that would be a very nice addition.

Yes !!! It's very annoying to have that much noise in standard out by default.


ValueError: You are trying to load a weight file containing 0 layers into a model with 11 layers.

Getting an error running the run_all_pipeline.py, might there be something wrong with the c3d-sports1M_weights.h5 weights file?
  File "run_all_pipeline.py", line 289, in <module>
    args.activity_threshold)
  File "run_all_pipeline.py", line 45, in run_all_pipeline
    model = C3D_conv_features(True)
  File "run_all_pipeline.py", line 233, in C3D_conv_features
    model.load_weights('data/models/c3d-sports1M_weights.h5')
  File "/home/ubuntu/anaconda3/envs/theano_p27/lib/python2.7/site-packages/keras/models.py", line 738, in load_weights
    topology.load_weights_from_hdf5_group(f, layers, reshape=reshape)
  File "/home/ubuntu/anaconda3/envs/theano_p27/lib/python2.7/site-packages/keras/engine/topology.py", line 3354, in load_weights_from_hdf5_group
    str(len(filtered_layers)) + ' layers.')
ValueError: You are trying to load a weight file containing 0 layers into a model with 11 layers.

Please note the versions of the frameworks used for this repository. The versions used are some years old and can be found  on the requirements.txt file.

@graphific Were you able to resolve this issue? If yes, is it due to incompatible versions or something else? I am also getting similar error

Close due to inactivity.


ability to test / detect if a module is a CJS module (without parsing)

Hello!  👋
Just started using this package for a project I've been working on, and one of my use cases is detecting if a package from node_modules is a CommonJS module.  It would be great if this package could be extended with an additional function, something like test or validate, that would effectively be like parse, but rather than throw on not being able to analyze the module, it would just return true / false instead.
For example, this is how I am making it work now by using parse.
const testForCjsModule = async(url) => {
  let isCommonJs = false;

  try {
    const module = await fs.promises.readFile(url, 'utf-8');

    await parse(module);

    isCommonJs = true;
  } catch (e) {
    const { message } = e;
    const isProbablyLexarErrorSoIgnore = message.indexOf('Unexpected import statement in CJS module.') >= 0
      || message.indexOf('Unexpected export statement in CJS module.') >= 0;

    if (!isProbablyLexarErrorSoIgnore) {
      // we probably _shouldn't_ ignore this, so let's log it since we don't want to swallow all errors
      console.error(e);
    }
  }

  return Promise.resolve(isCommonJs);
};

const isCjs = await testForCjsModule('path/to/something/in/node_modules/index.js')

i haven't looked into the code here yet, but if you are inclined to support something like, and you think it could be classified as a "good first issue", I would be happy to try and help.
I was thinking the usage could look something like this
const { detect } = require('cjs-module-lexer');

const module = fs.readFileSync('path/to/something/in/node_modules/index.js', 'utf-8');
const isCjsModule = await detect(module);

console.debug(isCjsModule);  // true | false

Thanks in advance for your consideration on this, and additionally thanks for all your great work on this and other projects of yours, like es-module-shims and SystemJS.  Great stuff!  ⭐

Trying to parse a module is not enough. For example, you cannot know if this is an ES module or a CJS module just by parsing it:
globalThis.await = 0;

let isScript = true;
Promise.resolve().then(() => isScript = false);

await
0

console.log("is script?", isScript);

Trying to parse a module is not enough. For example, you cannot know if this is an ES module or a CJS module just by parsing it:
globalThis.await = 0;

let isScript = true;
Promise.resolve().then(() => isScript = false);

await
0

console.log("is script?", isScript);

Sure, I understand a detect function would just be as limited as parse is, but it would still be nice to get the functionality of parse, but just without the Error being thrown if the lexar can't analyze it correctly.  I understand there is some naivety in the approach, and my project absolutely favors users going down the ESM path, so it's mostly just for a convenience and a way to nudge people away from CommonJS in their dependency trees.

Sure, I understand a detect function would just be as limited as parse is, but it would still be nice to get the functionality of parse, but just without the Error being thrown if the lexar can't analyze it correctly.  I understand there is some naivety in the approach, and my project absolutely favors users going down the ESM path, so it's mostly just for a convenience and a way to nudge people away from CommonJS in their dependency trees.

The proper way of detecting CJS vs ESM is to use these rules, which is what Node.js and the various bundlers do.

The proper way of detecting CJS vs ESM is to use these rules, which is what Node.js and the various bundlers do.

Ah, excellent!  Thank you so much for sharing, will definitely dive head first into that then.  👀

Ah, excellent!  Thank you so much for sharing, will definitely dive head first into that then.  👀

Detecting modules based on whether they use module syntax can be brittle - hence why we use type package boundaries in Node.js.


Related image environment variable for operator

Operator allows to override operand images with RELATED_IMAGE_COMPONENT environment variables. For disconnected clusters, it'd be great to have ability to override image of the operator itself.

This is not necessary because you can override the image at the platform level (I assume you are talking about disconnected OpenShift clusters).


Automatically logged out after refresh

I am having this issue where the system is logging me out. I have found a pattern that causes it. A logged out user makes an unauthorized call the to the API, then logs in. The next refresh will log you out. I can't see anything in my code, or anything that jumps out that would cause this. My local storage looks fine before and after logging in.

Before logging in:

{"authenticated":{}}

Make an authenticated call.

After logging in:

{"authenticated":{"authenticator":"authenticator:oauth2-gateway","access_token":"XXXXX","token_type":"bearer","expires_in":600,"refresh_token":"XXXXXX","created_at":1477929759,"expires_at":1477930359010}}

Refresh, and it logs you out of the ember app

@anthonycollini does local storage still have authenticated object set or is it cleared out after refresh? Is oauth2-gateway a custom authenticator, I don't see it in the list of built in once?
I recently had a similar issue with my custom authenticator, in my case I missed setting up the restore(data) method.
I think when page refreshes restore gets run with the data from your authenticated object, it needs to return a resolved promise with passed data resolve(data). See this example authenticators/oauth2-password-grant.js
Again, that is what I ran into and it sounds similar, good luck!

Hi guys! And thanks! I had a similar issue with a custom Torii provider, in which I had not implemented the fetch function, which is called by ESA restore. Implementing fetch fixed it!

@anthonycollini: any more info on this? Particularly, can you share the code of your custom authenticator?

Closing for lack of feedback

@marcoow I'm having a similar issue. Using a custom authenticator. When I login, I can see the localStorage is set correctly, but when I refresh the page, the localStorage is wiped clean. I never see the restore method of my authenticator called (likely because on page load the localStorage data is missing).

I never see the restore method of my authenticator called (likely because on page load the localStorage data is missing).

Yes, that sounds like a good explanation. Please post the source of your Authenticator and the session store definition. Also, which ESA Version are you using?

@marcoow Hmm... I assumed the session store was setup with some default. Do I need to explicitly set something here? If so I may have missed that in the docs. ESA version is current (just installed today).

Regardless here's my authenticator (using AWS Cognito)
/* global AWSCognito */
import Ember from 'ember';
import ENV from '../config/environment';
import Base from 'ember-simple-auth/authenticators/base';

const Promise = Ember.RSVP.Promise;
const Cognito = AWSCognito.CognitoIdentityServiceProvider;

const userPool = new Cognito.CognitoUserPool({
  UserPoolId: ENV.APP.AWS.Cognito.poolId,
  ClientId: ENV.APP.AWS.Cognito.clientId
});

function cognitoUser(username) {
  return new Cognito.CognitoUser({
    Username: username,
    Pool: userPool
  });
}

export default Base.extend({
  restore(data) {
    console.log('restore session');
    return new Promise((resolve, reject) => {
      if (data.user) {
        data.user.getSession((err, session) => {
          if (!err && session.isValid()) {
            data.session = session;
            resolve(data);
          } else {
            reject();
          }
        });
      } else {
        reject();
      }
    });

  },

  authenticate(username, password) {
    console.log('authenticate');
    return new Promise((resolve, reject) => {
      cognitoUser(username).authenticateUser(new Cognito.AuthenticationDetails({
        Username: username,
        Password: password
      }), {
        onSuccess: (session) => resolve(session),
        onFailure: (err) => reject(err)
      });
    }).then(session => {
      return {
        user: userPool.getCurrentUser(),
        session: session
      };
    });

  },

  invalidate(data) {
    console.log('invalidate');
    if (data.user) {
      data.user.signOut();
    }
    return Promise.resolve();
  }
});

@marcoow Some more info that might be relevant. In Chrome developer tools, while viewing the Application tab and looking at Local Storage: data is stored at ember_simple_auth-session. If I attempt to delete this item, it's instantly regenerated and set to: {"authenticated":{}}.  Is there some polling happening? Perhaps on page refresh the polling preempts or overwrites the persisted key with an empty object?

@marcoow
I traced it to internal-session.js::setUnknownProperty, which, upon page load, calls _updateStore, which calls persist with this.content, but the content is null.  The persist method trashes the localStorage because it's given null to persist.
If I comment out this._updateStore in the  setUnknownProperty method, then reloads seem to work, but clearly I have no idea what the consequence of that is.
It seems like _updateStore is called too early via setUnknownProperty, before the content property is set within internal-session. Some sort of chicken/egg issue perhaps.
setUnknownProperty is called twice, while loading the page. With these keys: __OWNER__ and __NAME_KEY__.
Hopefully with this you can debug and figure out a fix! Have you been able to reproduce the error?
Let me know if you need more info!

It seems you're trying to store the Cognito.CognitoUser object in the session which won't work. You can only store POJOs with atomic members (strings, ints, etc.) in the session. In your case you might be able to store some sort of ID in the session (e.g. resolve with that from the authenticator's authenticate method) and then restore the user from that in the restore method.

@marcoow I did end up changing to just storing my token. Everything is work fine right now with the code I have in the PR.


SRIOV tests are unstable

@glazychev-art please add description/prs

Sometimes random vfio tests failed.
Incident:
https://github.com/networkservicemesh/integration-k8s-packet/actions/runs/4224905945/jobs/7336468169
These PRs fixed the problem:

https://github.com/networkservicemesh/sdk-sriov/pull/497
https://github.com/networkservicemesh/sdk-sriov/pull/507
https://github.com/networkservicemesh/cmd-forwarder-sriov/pull/590
https://github.com/networkservicemesh/integration-k8s-packet/pull/322

@glazychev-art Thanks!


Input/Output with Continuous FFT

wire.py only does input/output and adapting it for FFT filtering is non-trivial. After much research I figured out how to do continuous FFT and have modified wire.py to wireFFT.py which I contribute to "the cause."
wireFFT.zip

Hey @joem5636 thanks for your efforts and the interest on experimenting with the toolbox.
Posting ZIP files for downloading is not good practice. One should not download such from unknown sources. ;)
Directly posting your code would be helpful. Otherwise, you seem to have also have published your code here, right?
https://github.com/joem5636/WireFFT/blob/master/wireFFT.py

As you have figured out, doing real-time processing in the frequency domain is not trivial in practice. I am also not aware of any popular packages which implement Overlapp-Add-Convolution entirely in Python.
I have implemented Overlapp-Save for example here as part of my processing pipeline for spherical microphone arrays. There is a lot of other stuff around it, but you could find all the essential building blocks there. I hope the documentation around it somewhat helps to understand what is going on.
A general comment. The way of data organization i.e., the order in which the time blocks / audio channels / audio samples are stacked in numpy arrays, matters quite a bit in terms of processing performance. Obviously, careful planning of the exact way data is gathered, shifted, multiplied and distributed is crucial for a correct processing without artifacts.

Correct. Posting .py was not allowed and cut-paste lost formatting, hence
the .zip.
On Sat, Jan 1, 2022, 8:09 PM Hannes Helmholz @.***>
wrote:

Hey @joem5636 https://github.com/joem5636 thanks for your efforts and
the interest on experimenting with the toolbox.
Posting ZIP files for downloading is not good practice. One should not
download such from unknown sources. ;)
Directly posting your code would be helpful. Otherwise, you seem to have
also have published your code here, right?
https://github.com/joem5636/WireFFT/blob/master/wireFFT.py
—
Reply to this email directly, view it on GitHub
https://github.com/spatialaudio/python-sounddevice/issues/387#issuecomment-1003645434,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASZUVUDRZTIYCMVVIACOUTUT6QWPANCNFSM5LBRTMDA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Correct. Posting .py was not allowed and cut-paste lost formatting, hence the .zip.

True. But you can use Markdown in the comments as well, and therefore use code blocks, see https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code-and-syntax-highlighting

I suspected I could use  or the equivalent but knew .zip would
work and i already had the files zipped.
Best,
Joee
On Sun, Jan 2, 2022, 2:05 PM Hannes Helmholz @.***>
wrote:

Correct. Posting .py was not allowed and cut-paste lost formatting, hence
the .zip.
True. But you can use Markdown in the comments as well, and therefore use
code blocks, see
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code-and-syntax-highlighting
—
Reply to this email directly, view it on GitHub
https://github.com/spatialaudio/python-sounddevice/issues/387#issuecomment-1003760680,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASZUVUVRN4WSEVXCCIZMF3UUCOYNANCNFSM5LBRTMDA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>