Refactor Parser Tests for EditCommandTest #254

Part of #254

v1
@Zhiyuan-Amos submitted v1 for review.

[v1 1/1] Refactor Parser Tests for EditCommandTest

(:books: Archive)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/1/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v2
@Zhiyuan-Amos submitted v2 for review.

[v2 1/2] Implement Parser base test class
[v2 2/2] Extract Parser Tests for EditCommandTest

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v1 and v2)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/2/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@Zhiyuan-Amos let's add the EditCommandParserTest in this PR but keep the GUI test untouched.
Cleaning up the GUI test can be done separately as it needs to consider the entire class, not just the duplicated parts. It's best if we tackle that in one shot after all lower level tests are complete, rather than in piece-meal fashion. So, don't think of this as moving tests; think of it as adding missing tests.

v3
@Zhiyuan-Amos submitted v3 for review.

[v3 1/2] Implement Parser base test class
[v3 2/2] Create Tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v2 and v3)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/3/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@yamgent this iteration I added new tests (just realised that my tests were incomplete...).

v4
@Zhiyuan-Amos submitted v4 for review.

[v4 1/1] Create Tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v3 and v4)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/4/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@yamgent I added more test cases after discussion with @damithc. It's more thorough now imo :)

v5
@Zhiyuan-Amos submitted v5 for review.

[v5 1/1] Create Tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v4 and v5)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/5/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v6
@Zhiyuan-Amos submitted v6 for review.

[v6 1/1] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v5 and v6)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/6/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@damithc I can't think of a way to test editPersonDescriptor because it's private i.e I'm unable to check whether editPersonDescriptor contains the expected values. Remedies:

I tried error seeding i.e deleting some lines of code in EditCommandParser (for example, assigning certain parameters of editPersonDescriptor with the wrong values and then running with the test cases, the result of the test cases is fail. As such,

We can create a test for EditPersonDescriptor to ensure that it stores data as intended.

For your review.

The access modifiers for information about the command are pretty inconsistent across all our commands. For example, SelectCommand#targetIndex is public but EditCommand#filteredPersonListIndex is private.
It would be interesting to test whether the parser produces a correct command with the proper values. Since there are no accessor methods for such variables, perhaps we should add one? Or make it public final?

@yamgent speaking of inconsistency, not only are the access modifiers different between DeleteCommand#targetIndex which is public, but EditCommand#filteredPersonListIndex is private, but their naming are different as well even though the DeleteCommand#targetIndex is referring to the filtered list as well. Maybe we should raise a PR for standardising naming and access modifiers?

Or make it public final?
I'm not sure whether there's a need to expose targetIndex. There's no reason to expose it at the moment.

@yamgent speaking of inconsistency, not only are the access modifiers different between DeleteCommand#targetIndex which is public, but EditCommand#filteredPersonListIndex is private, but their naming are different as well even though the DeleteCommand#targetIndex is referring to the filtered list as well. Maybe we should raise a PR for standardising naming and access modifiers?

We can start with posting an issue in the issue tracker about it.

Verification in success cases is pretty weak. As suggested, may be EditCommand can provide an accessor for the EditPersonDescriptor?  To be defensive, we can return a copy of the object. An alternative is to implement an equals method for the EditCommand so that we can construct an 'expected' EditCommand and do an asserEquals. What do you think?
Yes we should test ParserUtil but that still doesn't confirm EditCommandParser is passing the correct values to the EditPersonDescriptor.

may be EditCommand can provide an accessor for the EditPersonDescriptor? To be defensive, we can return a copy of the object. An alternative is to implement an equals method for the EditCommand so that we can construct an 'expected' EditCommand and do an asserEquals.

I think the latter suggestion is better as we are able to check whether the index is parsed correctly or not as well.

I think the latter suggestion is better as we are able to check whether the index is parsed correctly or not as well.

Indeed. The following error seed (at EditCommandParser#line57 seem to pass tests.
return new EditCommand(index.get(),  editPersonDescriptor);
-> return new EditCommand(1, editPersonDescriptor);

v7
@Zhiyuan-Amos submitted v7 for review.

[v7 1/3] Change access modifiers of EditCommand attributes
[v7 2/3] Teach EditCommand and EditPersonDescriptor equals method
[v7 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v6 and v7)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/7/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Should I write tests for the equals method for both EditPersonDescriptor and EditCommand?

v8
@Zhiyuan-Amos submitted v8 for review.

[v8 1/3] Change access modifiers of EditCommand attributes
[v8 2/3] Teach EditCommand and EditPersonDescriptor equals method
[v8 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v7 and v8)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/8/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v9
@Zhiyuan-Amos submitted v9 for review.

[v9 1/3] Change access modifiers of EditCommand attributes
[v9 2/3] Teach EditCommand and EditPersonDescriptor equals method
[v9 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v8 and v9)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/9/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v10
@Zhiyuan-Amos submitted v10 for review.

[v10 1/3] Change access modifiers of EditCommand attributes
[v10 2/3] Teach EditCommand and EditPersonDescriptor equals method
[v10 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v9 and v10)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/10/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v11
@Zhiyuan-Amos submitted v11 for review.

[v11 1/3] Change access modifiers of EditCommand attributes
[v11 2/3] Teach EditCommand and EditPersonDescriptor equals method
[v11 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v10 and v11)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/11/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v12
@Zhiyuan-Amos submitted v12 for review.

[v12 1/4] Allow EditCommand attributes to be accessed by outside classes
[v12 2/4] Add EditPersonDescriptor#equals
[v12 3/4] Add EditCommand#equals
[v12 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v11 and v12)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/12/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v13
@Zhiyuan-Amos submitted v13 for review.

[v13 1/4] Allow EditCommand attributes to be accessed by outside classes
[v13 2/4] Add EditPersonDescriptor#equals
[v13 3/4] Add EditCommand#equals
[v13 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v12 and v13)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/13/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v14
@Zhiyuan-Amos submitted v14 for review.

[v14 1/4] Allow EditCommand attributes to be accessed by outside classes
[v14 2/4] Add EditPersonDescriptor#equals
[v14 3/4] Add EditCommand#equals
[v14 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v13 and v14)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/14/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v15
@Zhiyuan-Amos submitted v15 for review.

[v15 1/4] Allow EditCommand attributes to be accessed by outside classes
[v15 2/4] Add EditPersonDescriptor#equals(Object)
[v15 3/4] Add EditCommand#equals(Object)
[v15 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v14 and v15)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/15/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v16
@Zhiyuan-Amos submitted v16 for review.

[v16 1/4] Allow EditCommand attributes to be accessed by outside classes
[v16 2/4] Add EditPersonDescriptor#equals(Object)
[v16 3/4] Add EditCommand#equals(Object)
[v16 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v15 and v16)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/16/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v17
@Zhiyuan-Amos submitted v17 for review.

[v17 1/4] Allow EditCommand attributes to be accessed by outside classes
[v17 2/4] Add EditPersonDescriptor#equals(Object)
[v17 3/4] Add EditCommand#equals(Object)
[v17 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v16 and v17)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/17/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v18
@Zhiyuan-Amos submitted v18 for review.

[v18 1/4] Allow EditCommand attributes to be accessed by outside classes
[v18 2/4] Add EditPersonDescriptor#equals(Object)
[v18 3/4] Add EditCommand#equals(Object)
[v18 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v17 and v18)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/18/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@Zhiyuan-Amos I'm yet to review the recent iteration. In the mean time something else occurred to me. Does the parser require a space before a prefix? i.e. is t/friendt/family acceptable? In either case, is it considered in tests?

v19
@Zhiyuan-Amos submitted v19 for review.

[v19 1/4] Allow EditCommand attributes to be accessed by outside classes
[v19 2/4] Add EditPersonDescriptor#equals(Object)
[v19 3/4] Add EditCommand#equals(Object)
[v19 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v18 and v19)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/19/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v20
@Zhiyuan-Amos submitted v20 for review.

[v20 1/4] Allow EditCommand attributes to be accessed by outside classes
[v20 2/4] Add EditPersonDescriptor#equals(Object)
[v20 3/4] Add EditCommand#equals(Object)
[v20 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v19 and v20)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/20/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v21
@Zhiyuan-Amos submitted v21 for review.

[v21 1/4] Allow EditCommand attributes to be accessed by outside classes
[v21 2/4] Add EditPersonDescriptor#equals(Object)
[v21 3/4] Add EditCommand#equals(Object)
[v21 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v20 and v21)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/21/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Major change this iteration: instead of having a EditPersonDescriptor helper constructor method that requires all values to be given, use a Builder pattern instead. That way, it prevents the case of having to call the method like this: (Optional.empty(), Optional.empty(), Optional.of("bob@yahoo.com"), Optional.empty(), Optional.empty())

v22
@Zhiyuan-Amos submitted v22 for review.

[v22 1/4] Allow EditCommand attributes to be accessed by outside classes
[v22 2/4] Add EditPersonDescriptor#equals(Object)
[v22 3/4] Add EditCommand#equals(Object)
[v22 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v21 and v22)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/22/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v23
@Zhiyuan-Amos submitted v23 for review.

[v23 1/4] Allow EditCommand attributes to be accessed by outside classes
[v23 2/4] Add EditPersonDescriptor#equals(Object)
[v23 3/4] Add EditCommand#equals(Object)
[v23 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v22 and v23)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/23/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v24
@Zhiyuan-Amos submitted v24 for review.

[v24 1/4] Allow EditCommand attributes to be accessed by outside classes
[v24 2/4] Add EditPersonDescriptor#equals(Object)
[v24 3/4] Add EditCommand#equals(Object)
[v24 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v23 and v24)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/24/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v25
@Zhiyuan-Amos submitted v25 for review.

[v25 1/4] Allow EditCommand attributes to be accessed by outside classes
[v25 2/4] Add EditPersonDescriptor#equals(Object)
[v25 3/4] Add EditCommand#equals(Object)
[v25 4/4] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v24 and v25)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/25/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@damithc Ah how could I have missed that out. Thanks for the catch prof.

The first commit isn't necessary with the justification given.

v26
@Zhiyuan-Amos submitted v26 for review.

[v26 1/3] Add EditPersonDescriptor#equals(Object)
[v26 2/3] Add EditCommand#equals(Object)
[v26 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v25 and v26)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/26/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v27
@Zhiyuan-Amos submitted v27 for review.

[v27 1/3] Add EditPersonDescriptor#equals(Object)
[v27 2/3] Add EditCommand#equals(Object)
[v27 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v26 and v27)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/27/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@damithc @yamgent I made a bit more changes this iteration. Rationale: EditPersonBuilder ought to be more flexible so that test classes can do lesser work :)

v28
@Zhiyuan-Amos submitted v28 for review.

[v28 1/3] Add EditPersonDescriptor#equals(Object)
[v28 2/3] Add EditCommand#equals(Object)
[v28 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v27 and v28)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/28/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@damithc prof can this be merged already? Quite a few other PRs are dependent on this.

prof can this be merged already? Quite a few other PRs are dependent on this.

Can proceed but need to get re-approved by the previous reviewers who approved it before the recent changes. @pyokagan @MightyCupcakes @eugenepeh

@damithc

Can proceed but need to get re-approved by the previous reviewers who approved it before the recent changes. @pyokagan

I didn't explicitly approve/reject this PR, so no need for my re-approval.

I didn't explicitly approve/reject this PR, so no need for my re-approval.

@pyokagan It was a 'false memory' on my part 😛

v29
@Zhiyuan-Amos submitted v29 for review.

[v29 1/3] Add EditPersonDescriptor#equals(Object)
[v29 2/3] Add EditCommand#equals(Object)
[v29 3/3] Create tests for EditCommandParser

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v28 and v29)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/394/29/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.


[MCOMPILER-484] Remove deprecated mojos

Remove deprecated mojos.
https://issues.apache.org/jira/browse/MCOMPILER-484

Would be good to update linked Jira with short note about what we removed so reviews would not be forced to click on every PR/commit


AddGrpcClient Does not work with discovery

Adding a gRPC client does not respect service discovery

Only happened once, not sure what happened


getting error in custom unit test

Hi,
I working latest device updates sdk code and developed some own unit test for own customized part of code.
Unit test is acting for function which send message to cloud , so it has dependencies to another which is from azure-c-sdk.
To avoid error , i am using umock functionality and mocking dependencies using STRICT_CALL.
But getting error of umock.
Please help me out.
code :
#include "umock_c/umock_c.h"
#include <catch2/catch.hpp>
using Catch::Matchers::Equals;

#include <sstream>
#include <string>

#include "aduc/c_utils.h"
#include "aduc/logging.h"

#define ENABLE_MOCKS
#include "azureiot/iothub_message.h"
#undef ENABLE_MOCKS

TEST_CASE("Test_Case-4: IotClient_SendMessageAsyn Test"){

    ADUC_Logging_Init(ADUC_LOG_DEBUG, "du-agent");
    // umock_c_reset_all_calls();

    REGISTER_UMOCK_ALIAS_TYPE(IOTHUB_MESSAGE_HANDLE, void*);

    SECTION("Validate Client-handle as null ,Fail")
    {
        bool result = IotClient_SendMessageAsyn((char *)"Hi", NULL, (char *)"test");
        CHECK (result == 0);
    }

    SECTION("Input are Valid and communication fail,Fail")
    {
        bool result = IotClient_SendMessageAsyn((char *)"{\"test\":\"Hi\"}", (IOTHUB_DEVICE_CLIENT_LL_HANDLE)1234, (char *)"test");
        CHECK (result == 0);
    }

    SECTION("Payload Json Invalid ,Fail")
    {
        bool result = IotClient_SendMessageAsyn(NULL, (IOTHUB_DEVICE_CLIENT_LL_HANDLE)1234,(char *)"test");
        CHECK (result == 0);
    }

    SECTION("Payload fail to convert utf-8,Fail")
    {

        STRICT_EXPECTED_CALL(IoTHubMessage_SetContentEncodingSystemProperty(0,0))
            .SetReturn(IOTHUB_MESSAGE_INVALID_ARG)
            .IgnoreAllArguments();

         bool result = IotClient_SendMessageAsyn((char *)"!@#$", (IOTHUB_DEVICE_CLIENT_LL_HANDLE)123, (char *)"test");
        CHECK (result == 0);
    }

}

Error while building
-- target architecture: x86_64
-- target architecture: x86_64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vetscan/accenture/dev_gc/test/adu-service/out
[1/2] Building CXX object src/agent/custom_iot_service/tests/CMakeFiles/custom_iot_service_unit_tests.dir/common_iotclient_communincation_ut.cpp.o
FAILED: src/agent/custom_iot_service/tests/CMakeFiles/custom_iot_service_unit_tests.dir/common_iotclient_communincation_ut.cpp.o
/usr/bin/c++ -DADUC_DOWNLOADS_FOLDER=\"/var/lib/adu/downloads\" -DADUC_INSTALLEDCRITERIA_FILE_PATH=\"/tmp/adu-test-installedcriteria\" -DADUC_LOG_FOLDER=\"/var/log/adu\" -DADUC_USE_ZLOGGING=1 -DADUC_VERSION=\"0.8.1\" -DARCHITECTURE_x86_64=1 -DAUTH_TYPE_0x509 -DAUTH_TYPE_SYM -DAUTH_TYPE_TPM -DFILE_UPLOAD_ENABLE=\"true\" -DTELEMETRY_ENABLE=\"true\" -I/usr/local/inc -I/usr/local/pal/linux -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I../src/agent/custom_iot_service/tests/inc -I../src/agent/custom_iot_service/tests/../../inc -I../src/agent/custom_iot_service/tests/../inc -I../src/agent/hsm_interface/inc -I../src/utils/c_utils/inc -I../src/logging/inc -I../src/logging/zlog/inc -I../src/agent/pnp_helper/inc -I../src/agent/adu_core_interface/inc -I../src/inc -I../src/adu_types/inc -I../src/adu_workflow/inc -I../src/communication_abstraction/inc -I../src/extensions/extension_manager/inc -I../src/extensions/inc -I../src/utils/extension_utils/inc -I../src/utils/hash_utils/inc -I../src/utils/parser_utils/inc -I../src/utils/parson_json_utils/inc -I../src/utils/system_utils/inc -I../src/utils/workflow_utils/inc -I../src/utils/crypto_utils/inc -isystem /usr/local/include/azureiot -Werror -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wformat -Werror=format-security -fno-rtti -Wall -Wextra -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-function -Wno-unused-parameter -Wno-ignored-qualifiers -g -std=gnu++11 -MD -MT src/agent/custom_iot_service/tests/CMakeFiles/custom_iot_service_unit_tests.dir/common_iotclient_communincation_ut.cpp.o -MF src/agent/custom_iot_service/tests/CMakeFiles/custom_iot_service_unit_tests.dir/common_iotclient_communincation_ut.cpp.o.d -o src/agent/custom_iot_service/tests/CMakeFiles/custom_iot_service_unit_tests.dir/common_iotclient_communincation_ut.cpp.o -c ../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp
../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp:21: error: "__cplusplus" redefined [-Werror]
   21 | #define  __cplusplus
      |
<built-in>: note: this is the location of the previous definition
In file included from /usr/local/include/umock_c/umock_c.h:13,
                 from ../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp:1:
../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp: In function ‘void ____C_A_T_C_H____T_E_S_T____0()’:
../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp:154:9: error: ‘get_auto_ignore_args_function_IoTHubMessage_SetContentEncodingSystemProperty’ was not declared in this scope
  154 |         STRICT_EXPECTED_CALL(IoTHubMessage_SetContentEncodingSystemProperty(0,0))
      |         ^~~~~~~~~~~~~~~~~~~~
../src/agent/custom_iot_service/tests/common_iotclient_communincation_ut.cpp:154:9: error: ‘umock_c_strict_expected_IoTHubMessage_SetContentEncodingSystemProperty’ was not declared in this scope; did you mean ‘IoTHubMessage_SetContentEncodingSystemProperty’?
  154 |         STRICT_EXPECTED_CALL(IoTHubMessage_SetContentEncodingSystemProperty(0,0))
      |         ^~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.

Hey @gc-zoetis
Did you ever get to a resolution here?
Let me know or I'll close the issue.
Thanks,
Nic Hemstreet


Create a Button Component

Story
Create a Button component to use it in our projects.
Prerequisites
Finishing our Tailwind configurations and our library setup.
Transforming our Icons from SVG into Fonts.
Tasks
Create a Button component that:

[ ] Takes a text as its children.
[ ] Changing the button size. using a size = "small", "medium", "large",.... prop. you can find these sizes from here
[ ] className prop to pass styles to that component
[ ] Any other prop we might need to use it in our applications for example startIcon={<DeleteIcon />, variant="Filled", "Ghost",... props.

Acceptance criteria
The final result should match this Figma design

thanks for the nice description. I can clearly see the effort invested to increase our ticket quality. 👍
one remark:
we should also explain the base button responsibility and how it plays a key role in  the component (referring to what mostafa mentioned in his demo)

thanks for the nice description. I can clearly see the effort invested to increase our ticket quality. 👍
one remark:
we should also explain the base button responsibility and how it plays a key role in  the component (referring to what mostafa mentioned in his demo)

@Nilegfx

thanks for the nice description. I can clearly see the effort invested to increase our ticket quality. +1
one remark: we should also explain the base button responsibility and how it plays a key role in the component (referring to what Mostafa mentioned in his demo)

I added the Base component as a prerequisite until we arrange with @elhaw if these base components should have a separate folder or it will be in the same file as the styled component:

For example, the Button.tsx will contain both ButtonBase and Button components.

and according to that, we will decide if it is going to have a separate ticket or not.


ESM Support

Modern versions of Node.js supports ESM, and quite a good majority of the code nowadays is already ESM (I personally use ESM on Deno projects too, it's just a better experience). We should migrate everything to ESM and provide CJS only as backwards compatibility.

Fulfilled with 4.x - with support to JSR included.


Drawing with two fingers jumps between points. Can't disable multitouch

Do you want to request a feature or report a bug?
Report a bug
What is the current behavior?
When drawing with two fingers the touch points jump around both fingers.
Replication steps:

Go to the sample site: https://szimek.github.io/signature_pad/
Use two fingers to draw a line.

Result:
The signature creates a connecting line between two fingers.
See result screenshot:

Do this:

What is the expected behavior?
The expected behaviour is that multitouch should be disabled. Looking through the code, it is theoretically trying to prevent a double touch but it doesn't really work on a mobile device. The lines are created and can make a big black square.
Which versions of SignaturePad, and which browser / device are affected by this issue? Did this work in previous versions of SignaturePad?
Version: 5.0.3
Browser: All of them, iOS safari and Chrome as well as Android Chrome.
Some debugging information:

On iOS in Safari, the mobile web browser event is being caught by the mousePointer click even though the pointerType: "touch"
When touching the screen, the canvas pointerDown event does not get any of the event.touches nor event.targetTouches they are undefined

There is no easy way to catch if the user is already touching the screen as the drawingStroke turns to false when holding one finger down and pressing down with another finger.

See full event data.

If you would like to create a PR that would be awesome 😁👍

@UziTech I think this should address the problem:
https://github.com/szimek/signature_pad/pull/788
can I ask you for CR and help with testing :) ?

For testing you should need to update the tests with the new property and create a test that has both isPrimary true and false touches.
https://github.com/szimek/signature_pad/blob/267935b1d147367225a9a8c0a216973111bf6e65/tests/signature_pad.test.ts#L266

What do you mean by false touches? you mean pointerDown with isPrimary false?
Or mixed events? (points and touch in the same moment)
Also where I should add the tests?
Inside user interactions describe ?

Sorry I meant "IsPrimary (true and false) touches". Like set isPrimary: true on some touches and isPrimary: false on some touches in the same test.
Ya user interactions describe sounds good


Documentation: Is it still necessary to define RUNIT?

There is a comment in main.c stating that RUNIT should be defined. Is it still true?
https://github.com/cylgom/ly/blob/master/src/main.c#L20-L22

Nope, this should go x)

Fixed in 2101f5bde05d81da696ed51cdf45e84de47d6cff


Ability to use custom location for local Swift packages

It's not uncommon to use swift packages to separate apps into different modules for features.  Currently, the configuration for swift packages is not flexible enough to allow packages to live outside of the main packages folder.  This is not ideal for apps that are heavily modularized. I have a PR forthcoming that will support this configuration.
I believe this would also address https://github.com/yonaskolb/XcodeGen/issues/1118
Example: Packages can live within their domains in an apps folder structure.

,

@yonaskolb I have been using this change locally.  Would you be open to upstreaming this change?

@John-Connolly is there a way to realize a package located at the root (outside of any group) of a project with your changes from #1175 ?
If not would you be able to advise in these issues? #1209


Added modules

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@2edffac). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #9   +/-   ##
=========================================
  Coverage          ?   98.26%
=========================================
  Files             ?        5
  Lines             ?      173
  Branches          ?        0
=========================================
  Hits              ?      170
  Misses            ?        3
  Partials          ?        0

Continue to review full report at Codecov.

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


zlib-ng: 2.2.1 -> 2.2.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/zlib-ng/zlib-ng/releases.
meta.description for zlib-ng is: zlib data compression library for the next generation systems
meta.homepage for zlib-ng is: https://github.com/zlib-ng/zlib-ng
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.2.2 with grep in /nix/store/311hy46wd336mprwahfrfpf9zcma4h14-zlib-ng-2.2.2
found 2.2.2 in filename of file in /nix/store/311hy46wd336mprwahfrfpf9zcma4h14-zlib-ng-2.2.2

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

1016 total rebuild path(s)

1016 package rebuild(s)

First fifty rebuilds by attrpath

acquire
angie
angieQuic
authentik
baserow
c-blosc2
devpi-client
devpi-server
dosbox-staging
dvc
dvc-with-remotes
home-assistant
home-assistant-component-tests.abode
home-assistant-component-tests.accuweather
home-assistant-component-tests.acmeda
home-assistant-component-tests.adax
home-assistant-component-tests.adguard
home-assistant-component-tests.advantage_air
home-assistant-component-tests.aemet
home-assistant-component-tests.aftership
home-assistant-component-tests.agent_dvr
home-assistant-component-tests.air_quality
home-assistant-component-tests.airgradient
home-assistant-component-tests.airly
home-assistant-component-tests.airnow
home-assistant-component-tests.airq
home-assistant-component-tests.airthings
home-assistant-component-tests.airthings_ble
home-assistant-component-tests.airtouch4
home-assistant-component-tests.airtouch5
home-assistant-component-tests.airvisual
home-assistant-component-tests.airvisual_pro
home-assistant-component-tests.airzone
home-assistant-component-tests.airzone_cloud
home-assistant-component-tests.aladdin_connect
home-assistant-component-tests.alarm_control_panel
home-assistant-component-tests.alarmdecoder
home-assistant-component-tests.alert
home-assistant-component-tests.alexa
home-assistant-component-tests.amberelectric
home-assistant-component-tests.ambient_network
home-assistant-component-tests.ambient_station
home-assistant-component-tests.analytics
home-assistant-component-tests.analytics_insights
home-assistant-component-tests.android_ip_webcam
home-assistant-component-tests.androidtv
home-assistant-component-tests.androidtv_remote
home-assistant-component-tests.anova
home-assistant-component-tests.anthemav

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/eea613cf623404fd6e1ca14cbcd8fea500c69434#zlib-ng

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/311hy46wd336mprwahfrfpf9zcma4h14-zlib-ng-2.2.2
ls -la /nix/store/311hy46wd336mprwahfrfpf9zcma4h14-zlib-ng-2.2.2/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @Izorkin for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


This repo should not have the same approver group or approval process as other @opentdf implementation repos

Q: Do we want a different set of approvers/CODEOWNERS for opentdf/spec versus the rest of opentdf - that is, the implementation?

@pflynn-virtru @biscoe916 @cassandrabailey293
Has anyone looked into this. Currently we have 56 developers as CODEOWNERS because the developers team is assigned to this repo. It looks the same on other repos.
I feel like we should scope each repos CODEOWNERS to the core maintainers imo.


Anchored windows - first show draw misplacement

When using  .anchor on window - the first time the window is rendered results in window showing in "default" position for a brief moment and then jumping to proper anchor position. I belive this is caused by the way the anchor is implemented.  We force the paint of the window since we dont know the size of its area - and as a result can't find where the "center" is. Maybe a sollution would be a "dry run" - that would result in size calculation but would not paint the window (resulting in flicker).
if let Some((anchor, offset)) = anchor {
    if is_new {
        // unknown size
        ctx.request_repaint();
    } else {
        let screen = ctx.available_rect();
        state.pos = anchor.align_size_within_rect(state.size, screen).min + offset;
    }
}

Video sample showing issue (the video is slowed down - since the effect last only a second):
https://user-images.githubusercontent.com/931482/180718174-e5a78141-b1af-450e-93a5-a779731e646d.mp4
Code to reproduce issue :
use eframe::{egui, emath::Align2};

fn main() {
    let options = eframe::NativeOptions::default();
    eframe::run_native(
        "Egui issue",
        options,
        Box::new(|_cc| Box::new(IssueApp { open: false })),
    );
}

struct IssueApp {
    open: bool,
}

impl eframe::App for IssueApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::Window::new("Issue window")
            .anchor(Align2::CENTER_CENTER, [0., 0.])
            .open(&mut self.open)
            .show(ctx, |ui| {
                ui.label("Some content");
            });

        egui::CentralPanel::default().show(ctx, |ui| {
            if ui.button("Show window").clicked() {
                self.open = true;
            }
        });
    }
}

Resolved via: https://github.com/emilk/egui/pull/1856


Fix ru-RU

Added
var transformForLocale = {
....
"ru": spaceThousCommaDec,
"ru-RU": spaceThousCommaDec,

Please submit a pull request...

https://github.com/willsp/polyfill-Number.toLocaleString-with-Locales/pull/19

Merged and updated in npm registry. Thanks!!!


Utilize Open Graph Meta Tags

Open Graph meta tags provide useful information to sites looking to embed posts from your site. Information such as the title, author, publication date, etc.. are already present in the Post class so the change would be quite simple.
If this is a change you'd like, I can create the PR for this.

Brilliant idea! If you would like to create a PR, that would be totally awesome! :)

I can create a PR for this. @alii do you also want images related to the post to be in the embeds?
PS: Really good blog, I will use it as mine too. thanks :)

Yeah that would be cool. Although perhaps it would be better if we manually specified which image to use in the post's config. You can type it as NextStaticImage (or something like that) and access via .src which would allow the following
import image from './image.png';

export class MyBoringBlogPost extends Post {
	public ogImage = image;
	// ...
}

Yeah I was thinking along the same lines. I'll try to implement this tomorrow (12 am here rn).

no rush! thank you so much :)


Feature request: Color picker

Idea
Despite of very cool service to get color names (link from Readme), it will be very handy to pick colors inside Logseq (and without Internet connection).
Inspiration screenshots:

References styles plugin:

Developer tools from browsers:

References styles has own settings window, used by lot of devs before were introduced Logseq native settings
there is no possibily to (easy) modify input on props editing cose it's just simple HTML textarea
i thougt about "colorpicker will be nice to have", but it's in bottom of my featurelist... and i have no yet any idea how to implement this. PRs are welcome ))

As an implementation idea:
If it is hard to implement color picker field inside the text area — may be there is another place?
As an brainstorming: near the page title; right-aligned from page title; under the page props bullet point; no ui, but command to choose color...
Color picker field can be visible at 5% alpha channel without hover to not interract with theme and modify page color property when a color value chosen...
PS sure, it is low level as it is «setup only once functionality»

a lof of pain in implementation and tons of aside issues and false-positive trigerrings for such small feature


Data path integration

Add ZGC gateway entries' MAC addresses. #189
@er1cthe0ne There seems to be no quit error on my computer, but there is a small probability that the aca_zeta_scale_test will not pass. The cause is being investigated.

@er1cthe0ne The concurrency stop error has not completely disappeared, and I need to continue to modify it later.

@er1cthe0ne The concurrency stop error has not completely disappeared, and I need to continue to modify it later.


Fix Request: "Show Failure only" adjustement

Hello ! I know it wont the game changing feature, but more Quality of Life feature
Supose you have two prompt an you tick " Show Falure only"

Prompt 1
Prompt 2

✅
❌

✅
❌

❌
✅

✅
❌

❌
✅

Then hide the column Prompt 1
In the current state we have  :

Prompt 2

❌

❌

✅

❌

✅

Instead of only  this :

Prompt 2

❌

❌

❌

thanks

Thanks for pointing this out!  This is fixed in af949db1f2a5125596a30816f97f0fcb29bc5ea7.  If a column is hidden, its failures won't be counted when deciding whether to display the row.


Update arcade and use -Svc pools for release/rename branch

While this is a lot of files being touched, it's only two things:

Update to latest Arcade from release/7.0 branch
Move builds to -Svc pool providers (same images and machine size, different billing entity)

we're not yet in a position to take the arcade updates, can this be trimmed to just the machine pool changes?

we're not yet in a position to take the arcade updates, can this be trimmed to just the machine pool changes?

Sure, now it's purely a pool provider name change.  All the stuff in eng/common is already in any arcade you'd update to so future arcade updates won't lose this.


Update Set-SPOSite.md

Adding new Anonymous Link Expiration for sites changes.

Docs Build status updates of commit 40d0c4f:
:clock10: Full build: the average full build time is 12 min(s) 3 sec(s), this is based on the last 666 build(s) for this repository.

Docs Build status updates of commit 40d0c4f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

Docs Build status updates of commit 2edf033:
:clock10: Full build: the average full build time is 12 min(s) 2 sec(s), this is based on the last 670 build(s) for this repository.

Docs Build status updates of commit 2edf033:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

Docs Build status updates of commit f67dd39:
:clock10: Full build: the average full build time is 11 min(s) 57 sec(s), this is based on the last 756 build(s) for this repository.

Docs Build status updates of commit f67dd39:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

Docs Build status updates of commit a26db19:
:clock10: Full build: the average full build time is 11 min(s) 57 sec(s), this is based on the last 758 build(s) for this repository.

Docs Build status updates of commit a26db19:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


⚠ Bofrost.de has degraded performance

In e52bbab, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1165 ms

Resolved: Bofrost.de performance has improved in 8ad5c92 after 1 hour, 33 minutes.


Is there an equivalent to Microsoft.Xna.Framework.GameWindow?

Is there an equivalent to Microsoft.Xna.Framework.GameWindow, with methods such as ClientSizeChanged?
Thanks for you work!

Yes, WpfGame inherits from Image so you can make use of the existing WPF event "SizeChanged".
For the other stuff (such as AllowAltF4 and Title properties) you would have to write your own wrapper.
WpfGame is only a control and has no notion of its surrounding window (there could be more than one WpfGame inside the same window as demoed here).

Understood. Thanks, I abstracted the "game window" and implemented differently for XNA GameWindow  and WPF Window.


[Bug] KeyError: 'DetLocalVisualizer is not in the visualizer registry. Please check whether the value of DetLocalVisualizer is correct or it was registered as expected.

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (master) or latest version (3.x).

Task
I have modified the scripts/configs, or I'm working on my own tasks/models/datasets.
Branch
3.x branch https://github.com/open-mmlab/mmdetection/tree/3.x
Environment
System environment:
sys.platform: linux
Python: 3.8.16 (default, Mar  2 2023, 03:21:46) [GCC 11.2.0]
CUDA available: True
numpy_random_seed: 460692009
GPU 0: GeForce RTX 2080
CUDA_HOME: /usr/local/cuda-10.2
NVCC: Cuda compilation tools, release 10.2, V10.2.8
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.9.0
PyTorch compiling details: PyTorch built with:

GCC 7.3

C++ Version: 201402

Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications

Intel(R) MKL-DNN v2.1.2 (Git Hash 98be7e8afa711dc9b66c8ff3504129cb82013cdb)

OpenMP 201511 (a.k.a. OpenMP 4.5)

NNPACK is enabled

CPU capability usage: AVX2

CUDA Runtime 10.2

NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37

CuDNN 7.6.5

Magma 2.5.2

Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.2, CUDNN_VERSION=7.6.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.9.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
TorchVision: 0.10.0
OpenCV: 4.7.0
MMEngine: 0.6.0

Reproduces the problem - code sample
python tools/train.py configs/rtmdet/rtmdet_l_8xb32-300e_coco.py
Reproduces the problem - command or script
python tools/train.py configs/rtmdet/rtmdet_l_8xb32-300e_coco.py
Reproduces the problem - error message
mmengine - WARNING - Failed to import mmdet.visualization, please check the location of the registry visualizer is correct.
Traceback (most recent call last):
File "tools/train.py", line 125, in
main()
File "tools/train.py", line 114, in main
runner = Runner.from_cfg(cfg)
File "/home/ding/.conda/envs/mm3/lib/python3.8/site-packages/mmengine/runner/runner.py", line 431, in from_cfg
runner = cls(
File "/home/ding/.conda/envs/mm3/lib/python3.8/site-packages/mmengine/runner/runner.py", line 385, in init
self.visualizer = self.build_visualizer(visualizer)
File "/home/ding/.conda/envs/mm3/lib/python3.8/site-packages/mmengine/runner/runner.py", line 767, in build_visualizer
return VISUALIZERS.build(visualizer)
File "/home/ding/.conda/envs/mm3/lib/python3.8/site-packages/mmengine/registry/registry.py", line 548, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File "/home/ding/.conda/envs/mm3/lib/python3.8/site-packages/mmengine/registry/build_functions.py", line 100, in build_from_cfg
raise KeyError(
KeyError: 'DetLocalVisualizer is not in the visualizer registry. Please check whether the value of DetLocalVisualizer is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#import-the-custom-module'
Additional information
No response

I am also facing the same issue.

I recreate the same environment ,then this issue is solved fortunately.

I am also facing the same issue.

I recreate the same environment ,then this issue is solved fortunately.

I am also facing the same issue.

I recreate the same environment ,then this issue is solved fortunately.

That actually helped, thanks a lot!

配置上需要加上default_scope = 'mmdet',不然就会报这个错

配置上需要加上default_scope = 'mmdet'，不然就会报这个错

May I ask which file was added in

@chenluxin-git  this goes at the root level of the config,
e.g. could be:
cfg.default_scope = 'mmdet'


gather result存在潜在问题

Is there an existing issue for this?

[X] I have searched the existing issues

Description of the Bug
如果传入的tensor是其他大tensor的切片，gather时会报错："Buffer size not aligned"
Environment Information
- GCC version: 9.4.0
- Torch version: 1.13.1+cu117
- Linux system version: ubuntu 20.04
- CUDA version: 11.7
- Torch's CUDA version (as per `torch.cuda.version()`): 11.7

To Reproduce

构造一个大的tensor A
构造一个小tensor B指向A的一个区间
gather_result(B)
会出现“Buffer size not aligned"

Expected Behavior
期望正在运行，返回正确结果
Screenshots
No response
Additional Information
No response
Confirmation

[ ] I have reviewed and verified all the information provided in this report.

Fixed in #146


Merge IntegerLookup and StringLookup

Hi!
I'm building a lot of embeddings-based models, and the annoying thing is that I have to specify which of my many features uses which layer, although the logic is the same. Integer features use the integer lookup, string features use the StringLookup. Sure, you can write some boilerplate code to extract the type from the feature and choose the appropriate layer, but can't there just be a Lookup layer that takes integers and strings?
For the Hashing layer, it also works. You can give it integers or strings, and it just hashes it to integers between 0 and #buckets.
Thanks a lot!
PS: Tensorflow 2.12.0, not able to contribute.
Best
Robert

@RobertKuebler,
Could you please elaborate about your Feature. Also, please specify the Use Cases for this feature. Thank you!

Heya!
Imagine that you have a dataset with two features

N (some numbers, but categorical, int64 type) and
S (some strings, also categorical, string type).

I want to create embeddings for both features, and for this, I have to use the Lookup layers before. In order to get embeddings for N, I need to use the IntegerLookup before the EmbeddingLayer. For S, I need StringLookup instead of the IntegerLookup. So I have to write some boilerplate code before (if feature is numeric, use IntegerLookup, if feature is a string, use StringLookup).
I could use the Hashing layer for both N and S because this layer doesn't care. And I just wanted to ask if there could be a generic Lookup layer that can deal with integers and strings.
Thanks a lot!

Thanks for the request.

can't there just be a Lookup layer that takes integers and strings

Well, there is, but it is internal. The reason we prefer for the interface to lookup layers to be type-specific is that it is much easier to reason about the program's behavior, which minimizes errors. It's like static typing.
If you really want such a type-agnostic layer, it's easy to make one for your own codebase, leveraging the existing IntegerLookup and StringLookup layers.


Add MVC Controller to isle sample project

Pull Request Test Coverage Report for Build 423

0 of 0   changed or added relevant lines in 0 files are covered.
57 unchanged lines in 13 files lost coverage.
Overall coverage decreased (-0.4%) to 65.162%

Files with Coverage Reduction
New Missed Lines
%

infra-sofa-boot-starter/src/main/java/com/alipay/sofa/infra/endpoint/SofaBootVersionEndpoint.java
1
86.11%

healthcheck-sofa-boot-starter/src/main/java/com/alipay/sofa/healthcheck/startup/ReadinessCheckProcessor.java
1
82.76%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/service/helper/ReferenceRegisterHelper.java
2
76.19%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/spring/factory/ServiceFactoryBean.java
2
69.44%

infra-sofa-boot-starter/src/main/java/com/alipay/sofa/infra/config/spring/namespace/handler/SofaBootNamespaceHandler.java
3
0.0%

test-sofa-boot-starter/src/main/java/com/alipay/sofa/test/runner/SofaJUnit4Runner.java
3
56.67%

healthcheck-sofa-boot-starter/src/main/java/com/alipay/sofa/healthcheck/configuration/HealthCheckConfiguration.java
4
46.0%

healthcheck-sofa-boot-starter/src/main/java/com/alipay/sofa/healthcheck/core/AfterHealthCheckCallbackProcessor.java
4
81.16%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/spring/factory/AbstractContractFactoryBean.java
4
52.38%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/service/client/ServiceClientImpl.java
4
33.33%

Totals

Change from base Build 420:
-0.4%

Covered Lines:
1444

Relevant Lines:
2216

💛  - Coveralls


doubly linked list.rb

implementation of doubly linked list in ruby

Hey @SakshiMishra1 !
Great work.
You can follow me and star this repository for further updates.
Have fun 🙌🏼


FIX(container): add menu containers public re-export

Really like the concept of this library and was eager to try some stuff out.
Was really happy to find the menu containers in the documentation, but the compiler complained they were private in the module.
I'm not totally sure if my fix is the correct/planned way for adding the menu containers, but it seems to work :D
(P.S.: Sorry for the push spam. Apparently I should really start looking at the details of my work before pushing, because I'm too stupid to get them right the first time...)

Menus are barely half-done, but feel free to give them a spin!
I've exposed them now in 56352c26a492915ef9aba24cea204b825f63469f
Use it as:
use egui::menu;

menu::bar(ui, |ui| {
    menu::menu(ui, "File", |ui| {
        if ui.add(Button::new("Open")).clicked {
            ...
        }
    });
});


When will the code be released?

The code will be released immediately once our paper is accepted.

一旦我们的论文被接受，代码将立即发布。

thanks!

催更！

催更

催更


PostgreSQL: Not working auto-completion in section ORDER BY

Not working auto-completion in section ORDER BY
in SELECT

in ORDER BY

so, too, is working

and so - does not work

Can't reproduce (in my test env all auto-complete works in all cases including order by).
What server and what jdbc driver (version) do you use?
Are there any error in error log (https://github.com/serge-rider/dbeaver/wiki/Log-files) ?

postgresql-9.4.1212.jre7
.log has not errors

The error persists if an empty string is considered a delimiter.
When the checked flag Blank line is statement delimiter.
If remove the flag, auto-completion on a new line will work.

https://github.com/serge-rider/dbeaver/issues/2561

Maybe by default, this flag after the first installation is disabled?
Example
inline

new line

new line, without flag

Yep, now I see it. It is actually a more generic error (SQL query extraction).
Thanks for report.


Build with localization limited to locations with short path

Description
Currently build with generation of XLF files working only from directories shorter then 23 characters. Path c:\d\user\GitHub\testfx is the minimal path which exhibit broken build. When I change path to c:\d\user\GitHub\tstfx build with localization start working. Without passing -uxlf build is working on longer paths.
Steps to reproduce

Checkout source code to location at least of this length c:\d\user\GitHub\testfx
Run .\build.cmd -uxlf

Expected behavior
Build run correctly without errors
Actual behavior
c:\d\user\GitHub\testfx\scripts\build\TestFx.Loc.targets(48,5): error MSB3073: выход из команды "xcopy /Y /I /S /E ..\..\..\packages\MSTest.Internal.TestFx.Localized.Documentation.1.0.0-build-20170420-1\contentFiles\any\any\Extensions\Desktop ..\..\..\artifacts\Debug\Extension.Desktop\" с кодом 4. [c:\d\user\GitHub\testfx\src\TestFramework\Extension.Desktop\Extension.Desktop.csproj]

Environment
Windows 10 Home Russian language
MAX_PATH limit relaxed in the registry (or where it is allowed to have longer paths)

@kant2002, it seems this is an issue with xcopy, I don't seem to find any workaround with this, I'll go ahead and change xcopy to robocopy to fix this

@kant2002, I was trying to fix this issue, but it seems it's not reproing in the latest master, could you try the same thing on your end

@karanjitsingh I could confirm that checking out to folder c:\d\user\GitHub\dotnet\testfx and running .\build.cmd -uxlf is produce build for me. I done completely clean build. Make sure that path is relatively long. Minimal length is length of c:\d\user\GitHub\testfx which is 23 characters.

@karanjitsingh so seems to be this is Microsoft/MSBuild#53 related

There seems to be related comment which has indication that issue could be solved with custom MSBuild tasks (https://github.com/Microsoft/msbuild/issues/53#issuecomment-425810095) not sure that you want to go that route.

@kant2002, here's a workaround I found https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/

Closing this issue since it's non-actionable


[Secrets] Configure all secret options directly from Keybase

closes #216

TODO:

[x] Get the build to work for all of my hosts.
[x] Move secrets out of home.nix files.
[x] Move secrets out of my networks.
[x] Build & Compare every host to the base of the branch.

[x] Cratos
[x] Demeter
[x] Hades
[x] Hera
[x] Zeus

[x] Merge the work in Keybase to master.


Deprecated Content - View Designer

This document is specifically for the View Designer configuration. With that now having been deprecated and unavailable, are you able to provide a Workbook equivalent?

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

ID: 7c813d7c-1789-d0c9-c833-cbdd3f60e2b8
Version Independent ID: e5b7e6a7-2f78-dd58-b450-0d173935e26c
Content: Deploy Microsoft Teams Rooms management with Azure Monitor - Microsoft Teams
Content Source: Teams/rooms/azure-monitor-deploy.md
Service: msteams
GitHub Login: @dstrome
Microsoft Alias: dstrome

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


[Zeta] redundent ARP request for Zeta node

Context
Zeta group rule leverage the Zeta node destination IP and destination MAC for vxlan packet forwarding. Since the destination mac is already filled in by group rule, the expectation is no ARP request for destination IP is needed.
Expected

no ARP request for destination IP is sent
tunnel packet will be forwarded to Zeta node

Actual

ARP request for destination IP is sent
tunnel packet did not get forwarded to Zeta node

I have emailed ovs-dev on this and waiting for response.

Fall back plan is to use the ZGC entries information to populate static ARP, static ARP method has been validated working.

Fall back plan is to use the ZGC entries information to populate static ARP, static ARP method has been validated working.

perhap this behavior is due to the fact that we didn't specify a physical interface or IP in our vxlan-generic port, and that trigger the linux networking stack to send ARP request to looking for the best local interface to use. Let's try to add the tenant network interface IP into the vxlan-generic port to see if that helps.
It will require changing of aca code in aca_ovs_l2_programmer.cpp, line 149 from:
execute_ovsdb_command(
        string("--may-exist add-port br-tun vxlan-generic -- set interface vxlan-generic ofport_request=") +
                VXLAN_GENERIC_OUTPORT_NUMBER +
                " type=vxlan options:df_default=true options:egress_pkt_mark=0 options:in_key=flow options:out_key=flow options:remote_ip=flow",
        not_care_culminative_time, overall_rc);

to:
execute_ovsdb_command(
        string("--may-exist add-port br-tun vxlan-generic -- set interface vxlan-generic ofport_request=") +
                VXLAN_GENERIC_OUTPORT_NUMBER +
                " type=vxlan options:df_default=true options:egress_pkt_mark=0 options:in_key=flow options:local_ip=<IP_ADDRESS> options:out_key=flow options:remote_ip=flow",
        not_care_culminative_time, overall_rc);

perhap this behavior is due to the fact that we didn't specify a physical interface or IP in our vxlan-generic port, and that trigger the linux networking stack to send ARP request to looking for the best local interface to use. Let's try to add the tenant network interface IP into the vxlan-generic port to see if that helps.
It will require changing of aca code in aca_ovs_l2_programmer.cpp, line 149 from:
execute_ovsdb_command(
        string("--may-exist add-port br-tun vxlan-generic -- set interface vxlan-generic ofport_request=") +
                VXLAN_GENERIC_OUTPORT_NUMBER +
                " type=vxlan options:df_default=true options:egress_pkt_mark=0 options:in_key=flow options:out_key=flow options:remote_ip=flow",
        not_care_culminative_time, overall_rc);

to:
execute_ovsdb_command(
        string("--may-exist add-port br-tun vxlan-generic -- set interface vxlan-generic ofport_request=") +
                VXLAN_GENERIC_OUTPORT_NUMBER +
                " type=vxlan options:df_default=true options:egress_pkt_mark=0 options:in_key=flow options:local_ip=<IP_ADDRESS> options:out_key=flow options:remote_ip=flow",
        not_care_culminative_time, overall_rc);

response from ovsdev:

Who trigger this unneeded ARP request?
When OvS tries to send tunnel packets, OvS will use the arp, if there
is no arp, request it.

Can we disable this behavior?
I add a feature, then OvS can learn arp from linux kernel. In other
words, we disable it ?
http://patchwork.ozlabs.org/project/openvswitch/list/?series=220295

response from ovsdev:

Who trigger this unneeded ARP request?
When OvS tries to send tunnel packets, OvS will use the arp, if there
is no arp, request it.

Can we disable this behavior?
I add a feature, then OvS can learn arp from linux kernel. In other
words, we disable it ?
http://patchwork.ozlabs.org/project/openvswitch/list/?series=220295

Fall back plan is to use the ZGC entries information to populate static ARP, static ARP method has been validated working.

adding options:local_ip=<IP_ADDRESS> for vxlan-generic port doesn't help. This confirms the ovsdev statement above. We will go with the fallback plan mentioned by @liangbin-pub .
@zhangml there are two action items to execute the fallback plan. Please go ahead to add the static arp entries ("arp -s ipaddr macaddr) when creating the group rule, remove the static arp entries when deleting the group rule.

Fall back plan is to use the ZGC entries information to populate static ARP, static ARP method has been validated working.

adding options:local_ip=<IP_ADDRESS> for vxlan-generic port doesn't help. This confirms the ovsdev statement above. We will go with the fallback plan mentioned by @liangbin-pub .
@zhangml there are two action items to execute the fallback plan. Please go ahead to add the static arp entries ("arp -s ipaddr macaddr) when creating the group rule, remove the static arp entries when deleting the group rule.


Problems with colons in name for author/source

Hello,
when a colon is in the name part, it will led to unexpected results:

It looks like, that current validation of an URL is not considering this case:
if let Ok(url) = Url::parse(s) {
If this validation will be improved, the : can be added to the regex for name and url (see) .
Have fun,
someone.earth

I see why this is a problem. However I don't know if extending the allowed set of characters is the right solution.
Maybe it's better for the name to be whatever is before the <url> part. And also if it's empty or only whitespace it should be None, not an empty or whitespace string.
So:

Rachel: Best recipes <https://rachel.url> -> Rachel: Best recipes | https://rachel.url
     <https://rachel.url> -> None | https://rachel.url

I think this is a better solution because it's simpler and behaves as expected no matter what the user writes.

With the current implementation, there are two issues dealiung with ":" in names:
Issue 1: Names first word are tailored with ":" will be interpreted as an URL (test):

Rachel: Best recipes <https://rachel.url> -> no name and url rachel: Best recipes <https://rachel.url>

Rachel: Best recipes -> no name and url rachel: Best recipes

Issue 2: Names containing ":" after the first word, everything will be interpreted as name (test):

Rachel Peterson: Best recipes <https://rachel.url> -> name Rachel Peterson: Best recipes <https://rachel.url> and no URL

This happens because of the current implementation of URL detection code: if let Ok(url) = Url::parse(s) { .
My PR is not adressing  the issues with  ":" (the PR is only improving the current behavior, if the names containg several special chars).
For a better differentiating, I will raise more issues for the other names and url issues.
I am with you, that a more general solution would fix this issue and also adresses the thingy of my PR. But this would maybe break the current behavior of the name-url dualism (it can be a name OR an URL) and won't be very backwards combatible.
I would suggets one of the following two approaches:

A better URL detection, for dealing with the name-url dualism (and than for example using my PR for improved special char support in the name part): Higher backwards combability, but less clean
The URL part has always to be encapsulated with <..>, even when there is no given name and the part before  will be completly interpreted as the name: Less backwards combaility, but cleaner

I personally would prefer 2. .
What do you think?

I don't know. For this I don't care too much about backwards compatibility because it's not a core language feature and the crate is not in a stable version.
I like 2 for the same reason: it's cleaner and no room for error. But there's something about just writting the URL that I like a lot.
>> source: https://www.youtube.com/watch?v=1tZcGfRouIE

The problem is that rachel: best recipes is actually a well formed URL where rachel is the protocol.
Another solution can be:

Anything until <..> is the name and then the URL.
If the string starts with http or https then test if it's a valid URL. So only http(s) URLs can be bare, without the <..>

This would preserve backwards compatibility with 99% of uses and allow any characters as the name. What do you think?

I don't know. For this I don't care too much about backwards compatibility because it's not a core language feature and the crate is not in a stable version.

Aye

I like 2 for the same reason: it's cleaner and no room for error. But there's something about just writting the URL that I like a lot.
>> source: https://www.youtube.com/watch?v=1tZcGfRouIE

I see, and yep, its very convenient :)

The problem is that rachel: best recipes is actually a well formed URL where rachel is the protocol.

True, but yesterday when using the debugger on the url-parsing, I saw, that for this the "host" would be None. This could be used as a second critera (next to Ok(url)), if this is a valid URL. Already tried it and it worked for these kind of examples.

Anything until <..> is the name and then the URL.
👍 (except <...> is an invalid url, see approach at the bottom)

If the string starts with http or https then test if it's a valid URL. So only http(s) URLs can be bare, without the <..>

I would like to keep a general approach for the protocol: For example it would be nice, that smb://, sftp:// etc. will worked, too. I think, this can be achieved with the improved "is valid url" check, I just mentioned (host != None). This will work for the very most cases. And if there would be a very rare special case, I would bet, the check can be also improved to handle that.
So, our final approach would look like this?

name <valid url> -> as name & url
name <invalid url> -> as name
name -> as name
invalid url -> as name
<invalid url> -> as name
valid url -> as url
<valid url> -> as url

What do you think?

Very good to have noticed that the host is None! I think it will be fine if we check on that. So yes, that approach looks good to me.

I will finish the implementation later ✌


boilerplate

Nevermind. It looks like Kevin already did this.

but we do need the folders on my 2nd push


change: fix: cloufront typo

Simple typo fix.

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

fixed in master now


sha256 mismatch

The sha256 mentioned on https://github.com/toltec-dev/toltec/ does not match:
reMarkable: ~/ wget http://toltec-dev.org/bootstrap
Connecting to toltec-dev.org (<IP_ADDRESS>:80)
Connecting to toltec-dev.org (<IP_ADDRESS>:443)
wget: note: TLS certificate validation not implemented
wget: can't open 'bootstrap': File exists
reMarkable: ~/ echo "46f556b06f5624b48e974ae040b6213828eff6aa2cc78618a4d8961a27cdc8b3  bootstrap" | sha256sum -c
bootstrap: FAILED
sha256sum: WARNING: 1 of 1 computed checksums did NOT match
reMarkable: ~/ sha256sum bootstrap
cbe83d1ae2d3ef6291a2b57202bb59aace14f2f1849bbdb09552a7419995294a  bootstrap

Good catch. :+1:
Any idea why this happened @matteodelabre. I think we have a check against this, but maybe the bootstrap script was not uploaded??
Otherwise I can make a quick PR to fix that.

Good catch. :+1:
Any idea why this happened @matteodelabre. I think we have a check against this, but maybe the bootstrap script was not uploaded??
Otherwise I can make a quick PR to fix that.

I did a quick test, and bootstrap on the site doesn't match the stable branch:
cbe83d1ae2d3ef6291a2b57202bb59aace14f2f1849bbdb09552a7419995294a  bootstrap.site
46f556b06f5624b48e974ae040b6213828eff6aa2cc78618a4d8961a27cdc8b3  bootstrap.stable

Here is the diff:
2c2
< # Copyright (c) 2021 The Toltec Contributors
---
> # Copyright (c) 2020 The Toltec Contributors
24d23
< [[ -z $old_systemd_mount_path ]] && old_systemd_mount_path=/etc/systemd/system/opt.mount
30,42c29,30
< # Find out current branch or get default one
< get-branch() {
<     local opkg_conf="$entware_path/etc/opkg.conf"
<     local branch
<     if [[ -f "$opkg_conf" ]]; then
<         # Get the first (...) value (aka \1) of the pattern if matching
<         branch="$(sed -E 's|^src/gz\s+toltec\s+https://toltec-dev.org/([[:alnum:]]*).*$|\1|;t;d' "$opkg_conf" | head -n1)"
<     fi
<     echo "${branch:-stable}"
< }
<
< # Toltec branch to use for this install - you almost always want the default
< [[ -z $toltec_branch ]] && toltec_branch="$(get-branch)"
---
> # Toltec branch to use for this install - you almost always want 'stable'
> [[ -z $toltec_branch ]] && toltec_branch="stable"
86,87c74,75
<     local wget_remote=https://toltec-dev.org/thirdparty/bin/wget-v1.21.1
<     local wget_checksum=8798fcdabbe560722a02f95b30385926e4452e2c98c15c2c217583eaa0db30fc
---
>     local wget_remote=https://toltec-dev.org/thirdparty/bin/wget-v1.20.3
>     local wget_checksum=8d447c6eb0a39e705f45bea900b12eef07142ea3da0809aca4dd44fe4110cdfd
121,132d108
<
<     if [[ -f $old_systemd_mount_path ]] && [[ ! -f $systemd_mount_path ]]; then
<         # The user was probably using https://github.com/Evidlo/remarkable_entware
<         # before switching to toltec. Removing old .mount file to prevent duplicate files
<         log "Updating opt.mount location"
<
<         if systemctl -q is-enabled opt.mount; then
<             # Remove path to old file if still symlinked
<             systemctl disable opt.mount
<         fi
<         rm $old_systemd_mount_path
<     fi

I did a quick test, and bootstrap on the site doesn't match the stable branch:
cbe83d1ae2d3ef6291a2b57202bb59aace14f2f1849bbdb09552a7419995294a  bootstrap.site
46f556b06f5624b48e974ae040b6213828eff6aa2cc78618a4d8961a27cdc8b3  bootstrap.stable

Here is the diff:
2c2
< # Copyright (c) 2021 The Toltec Contributors
---
> # Copyright (c) 2020 The Toltec Contributors
24d23
< [[ -z $old_systemd_mount_path ]] && old_systemd_mount_path=/etc/systemd/system/opt.mount
30,42c29,30
< # Find out current branch or get default one
< get-branch() {
<     local opkg_conf="$entware_path/etc/opkg.conf"
<     local branch
<     if [[ -f "$opkg_conf" ]]; then
<         # Get the first (...) value (aka \1) of the pattern if matching
<         branch="$(sed -E 's|^src/gz\s+toltec\s+https://toltec-dev.org/([[:alnum:]]*).*$|\1|;t;d' "$opkg_conf" | head -n1)"
<     fi
<     echo "${branch:-stable}"
< }
<
< # Toltec branch to use for this install - you almost always want the default
< [[ -z $toltec_branch ]] && toltec_branch="$(get-branch)"
---
> # Toltec branch to use for this install - you almost always want 'stable'
> [[ -z $toltec_branch ]] && toltec_branch="stable"
86,87c74,75
<     local wget_remote=https://toltec-dev.org/thirdparty/bin/wget-v1.21.1
<     local wget_checksum=8798fcdabbe560722a02f95b30385926e4452e2c98c15c2c217583eaa0db30fc
---
>     local wget_remote=https://toltec-dev.org/thirdparty/bin/wget-v1.20.3
>     local wget_checksum=8d447c6eb0a39e705f45bea900b12eef07142ea3da0809aca4dd44fe4110cdfd
121,132d108
<
<     if [[ -f $old_systemd_mount_path ]] && [[ ! -f $systemd_mount_path ]]; then
<         # The user was probably using https://github.com/Evidlo/remarkable_entware
<         # before switching to toltec. Removing old .mount file to prevent duplicate files
<         log "Updating opt.mount location"
<
<         if systemctl -q is-enabled opt.mount; then
<             # Remove path to old file if still symlinked
<             systemctl disable opt.mount
<         fi
<         rm $old_systemd_mount_path
<     fi

Thanks for reporting! I think what happened is that I used an earlier version of the bootstrap script when manually uploading our new home page last week. This is why the checksum displayed on the home page was correct (cbe83d1ae2d3ef6291a2b57202bb59aace14f2f1849bbdb09552a7419995294a). I’ll fix this manually for now. When #270 is merged, all of that will be handled automatically.

Thanks for reporting! I think what happened is that I used an earlier version of the bootstrap script when manually uploading our new home page last week. This is why the checksum displayed on the home page was correct (cbe83d1ae2d3ef6291a2b57202bb59aace14f2f1849bbdb09552a7419995294a). I’ll fix this manually for now. When #270 is merged, all of that will be handled automatically.

Should be fixed now. Sorry about that!

Should be fixed now. Sorry about that!


Thanks for the explanations. LGTM!


Something

This was my first time coding and I enjoyed learning about some of the functions and logic of it. The game is very basic, to the point where it might not be considered a game. I learned a lot from coding it, and my favorite part was making the sprites.

Thanks for the PR! Glad to hear you liked the Sprig :)

How about adding more functions?
Let us know if you need any help!

It seems you need to make more changes before you're ready to get your Sprig. I'm going to close this PR for now. Feel free to reopen if you want to continue working on your game.


[Extension] Add extension min version check in core

Description

Improve the extension incompatible message with command suggestions to resolve #16452
An error message now looks like this:

The 'datadog' extension version 0.1.0 is not compatible with your current CLI core version 2.18.0.
This extension requires a min of 2.19.0 CLI core.
Please run 'az upgrade' to upgrade to a compatible version.

This PR also adds EXTENSION_VERSION_REQUIREMENTS dict in core to support specifying minimum required version of a compatible extension. CLI will show an error message if azure-cli is updated but the existing extension does not meet the minExtVersion requirement. The dict looks like this:
{'databricks': {'minExtVersion': '0.7.0'}, 'datadog':{'minExtVersion': '1.0.0'}}
The error message looks like this:

The 'datadog' extension version 0.1.0 is not compatible with your current CLI core version 2.18.0.
This CLI core requires a min of 1.0.0 for the 'datadog' extension.
Please run 'az extension update -n datadog' to update it.

Testing Guide

History Notes

[Core] Add support for specifying minimum required version of an extension to work with the current core version
[Extension] Add actionable message when an extension is not compatible with the CLI core.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Extension


Implement GET function for query audiocard state

Please implement a get function similar to Set for querying audio card various states so that we can have scripts to auto switch devices etc.

Can you use dump command? It gets all parameters.
PowerShell:
$parms = sbz-switch dump -f json | ConvertFrom-Json
$output = $params.creative.'Device Control'.SelectOutput


Bad result of SubExprMatchCount

result is 2x bigger than needed.
will add testcase for it and a fix.

Test proj in Lazarus
tregexpr-test.zip


Upgrade the API version and implement threads

Due https://github.com/discord/discord-api-docs/pull/2855 I think this is the best time to upgrade the API version and implement threads functionality. Probably I will implement them and create a draft PR.
P.S. It's not yet shipped and we can't actually test it, but probably this will be solved soon, and if so, I will start on implementing this great feature.

From Discord API server as I understood, they're planning to have some sort of allowlist for such functionality.  But probably for other devs this will cause problems, because they're cannot test the functionality. But, waiting for official decision tomorrow.

Work has begun on threads in discordgo: https://github.com/bwmarrin/discordgo/pull/922

Alright, then I'm going to close this issue.


Improved UI of Team Page

I have made the necessary changes that I had mentioned you can have a look.
Also I have made the UI that goes well with the other pages.

https://princerey.github.io/HealhUb/
Let me know if you need some changes.


Postgres Re-write

Pull request

[x] I have read and agreed to the code of conduct.
[x] I have read and complied with the contributing guidelines.
[x] What I'm implementing was assigned to me or was not being worked on and is a somewhat requested feature. For reference see our GitHub projects.
[ ] I have tested all of my changes.

Added/Changed

Creation of schema for postgres
All entities for the rewrite

Closing #264

jenkins build


Setup Umami Analytics

:information_source:  We decided to use Umami instead of GA because Umami is more unlikely to be blocked by privacy features.
Acceptance

[ ] Umami is implemented on the Portal.JS website :heavy_check_mark: FIXED. See PR https://github.com/datopian/portaljs/pull/766
[ ] I can see the analytics stats on an Umami dashboard :heavy_check_mark: FIXED. Links will be shared on private channels.

Tasks

[x] Register the Portal.JS domain on Datopian Analytics
[x] Insert the tracking script on the site
[x] Test

FIXED. See commit https://github.com/datopian/portaljs/commit/57770900ceb7288b7bd9166f59e176a8fd6dcbab and check out Datopian Analytics.


HOTIFX: v1.10.3

[X] Dapr maintainer(s) communicate out the discovery of an issue that requires a hotfix and the reason why to the Discord Maintainers and Release channels. Hotfix is one of categories below:

[ ] Security vulnerability
[X] Regression that does not have a work around: #5992
[X] Broken mainline scenario that has a missing test case: #5993
[ ] Kafka CA cert authentication regression: https://github.com/dapr/components-contrib/issues/2639

[ ] Create the v1.10.3-rc.1 Hotfix release (code changes) and test it
[ ] Create v1.10.3-rc.1 Tag
[ ] Performance tests passing: #6016
[ ] End to End tests passing on Linux and Windows: #6016
[X] New test case written to catch future occurrences.  (Inlcuded in PRs above)
[ ] Notify users to try RC1
[ ] Update the longhaul tests to use 1.10.3-rc.1
[ ] Write release notes [@ItalyPaleAle ]: #6016
[ ] Review release notes [@dapr/maintainers-dapr ]
[ ] Create v1.10.3 Tag [@dapr/maintainers-dapr ]
[ ] Backport fixes into master branch [@dapr/maintainers-dapr ]
[ ] Update the documentation: Latest version & versions in supported releases [@nyemade-uversky ]
[ ] Push new tag in installer-bundle repo. [@artursouza or @shivamkm07]
[ ] Announce the hotfix release on Discord Announcements channel [@nyemade-uversky or @greenie-msft ]

https://github.com/dapr/components-contrib/pull/2640

Hotfix has been released. Closing


Non-integer value for left of 0.4541015625

Getting issue when using non-integer values
My values are here
{
"Width": 0.1533203125,
"Height": 0.1533203125,
"Left": 0.4541015625,
"Top": 0.7255859375
}

Hi, this is not a complete code sample, but I guess you're using extract
https://sharp.pixelplumbing.com/api-resize#extract

"...describes the region to extract using integral pixel values"

Here is the example that I am using :
const sharp = require("sharp");
let left = 0.4541015625;
let top = 0.7255859375;
let width = 0.1533203125;
let height = 0.1533203125;
let output="output.jpg";
sharp("./celebrities.jpg")
.extract({ left: left, top: top, width: width, height: height })
.toFile(output, function(err) {
// Extract a region of the input image, saving in the same format.
});
Response: Error: Non-integer value for left of 0.4541015625

Please note the documentation says "integral pixel values", so the properties are expected to be in pixels and have integral (integer, whole number) values.

Thanks for your help.


rkyv is actually slower with deserialization, did I do something wrong?

I was surprised to see that rkyv performed worse, even in deserialization
Cargo version: cargo 1.81.0 (2dbb1af80 2024-08-20)
Device: MacBook Air M2 16GB RAM
Here's my benchmark output:
bitcode serialize: 1.42ms
bitcode deserialize: 15.29µs
rkyv serialize: 4.26ms
rkyv deserialize:  721.58µs

I created the following PoC project to test it out:
use std::time::Instant;

use bitcode::{Decode, Encode};
use rand::{thread_rng, RngCore};
use rkyv::{Archive, Deserialize as RkyvDeSerialize, Serialize as RkyvSerialize};

#[derive(Encode, Decode, Archive, RkyvSerialize, RkyvDeSerialize)]
#[archive(
    // This will generate a PartialEq impl between our unarchived and archived
    // types:
    compare(PartialEq),
    // bytecheck can be used to validate your data if you want. To use the safe
    // API, you have to derive CheckBytes for the archived type:
    check_bytes,
)]
struct FakeChunk {
    pub data: Vec<u8>,
    pub tag: Vec<u8>,
}

fn main() {
    let mut data = vec![0u8; 1024 * 30];
    let mut tag = vec![0u8; 32];
    thread_rng().fill_bytes(&mut data);
    thread_rng().fill_bytes(&mut tag);
    let test_chunk = FakeChunk { data, tag };

    {
        let now = Instant::now();
        let bytes = bitcode::encode(&test_chunk);
        println!("bitcode serialize: {:.2?}", now.elapsed());
        let now = Instant::now();
        let obj: FakeChunk = bitcode::decode(&bytes).unwrap();
        println!("bitcode deserialize: {:.2?}", now.elapsed());
    }
    {
        let now = Instant::now();
        let bytes = rkyv::to_bytes::<_, { 1024 * 40 }>(&test_chunk).unwrap();
        println!("rkyv serialize: {:.2?}", now.elapsed());
        let now = Instant::now();
        let archived = rkyv::check_archived_root::<FakeChunk>(&bytes[..]).unwrap();
        println!("rkyv deserialize:  {:.2?}", now.elapsed());
    }
}

Cargo toml:
[package]
name = "serializer_benchmarks"
version = "0.1.0"
edition = "2021"

[dependencies]
bincode = "1.3.3"
bitcode = "0.6.3"
postcard = { version = "1.0.10", features = ["alloc"] }
rand = "0.8.5"
rkyv = { version = "0.7.45", features = ["validation"] }

Ok never mind, I found out I wasn't using the unsafe deserialization. I updated the PoC:
use std::time::Instant;

use bitcode::{Decode, Encode};
use rand::{thread_rng, RngCore};
use rkyv::{Archive, Deserialize as RkyvDeSerialize, Serialize as RkyvSerialize};

#[derive(Encode, Decode, Archive, RkyvSerialize, RkyvDeSerialize)]
#[archive(
    // This will generate a PartialEq impl between our unarchived and archived
    // types:
    compare(PartialEq),
    // bytecheck can be used to validate your data if you want. To use the safe
    // API, you have to derive CheckBytes for the archived type:
    check_bytes,
)]
struct FakeChunk {
    pub data: Vec<u8>,
    pub tag: Vec<u8>,
}

fn main() {
    let mut data = vec![0u8; 1024 * 30];
    let mut tag = vec![0u8; 32];
    thread_rng().fill_bytes(&mut data);
    thread_rng().fill_bytes(&mut tag);
    let test_chunk = FakeChunk { data, tag };

    {
        let now = Instant::now();
        let bytes = bitcode::encode(&test_chunk);
        println!("bitcode serialize: {:.2?}", now.elapsed());
        let now = Instant::now();
        let obj: FakeChunk = bitcode::decode(&bytes).unwrap();
        println!("bitcode deserialize: {:.2?}", now.elapsed());
    }
    {
        let now = Instant::now();
        let bytes = rkyv::to_bytes::<_, { 1024 * 40 }>(&test_chunk).unwrap();
        println!("rkyv serialize: {:.2?}", now.elapsed());
        let now = Instant::now();
        let archived = rkyv::check_archived_root::<FakeChunk>(&bytes[..]).unwrap();
        println!("rkyv deserialize:  {:.2?}", now.elapsed());
        let archived = unsafe { rkyv::archived_root::<FakeChunk>(&bytes[..]) };
        let now = Instant::now();
        println!("rkyv deserialize (unsafe):  {:.2?}", now.elapsed());
    }
}

Now the output reads:
bitcode serialize: 1.06ms
bitcode deserialize: 13.54µs
rkyv serialize: 3.43ms
rkyv deserialize:  707.96µs
rkyv deserialize (unsafe):  84.00ns

Byte slices are a known sore spot in 0.7. You can use Raw to hint to the compiler that it can skip validation on those bytes.

Also - rkyv 0.8 will be out later this week and these are its numbers:
> cargo run --release
bitcode serialize: 43.40µs
bitcode deserialize: 11.40µs
rkyv serialize: 9.00µs
rkyv deserialize:  200.00ns
rkyv deserialize (unsafe):  100.00ns

Also - rkyv 0.8 will be out later this week and these are its numbers:
> cargo run --release
bitcode serialize: 43.40µs
bitcode deserialize: 11.40µs
rkyv serialize: 9.00µs
rkyv deserialize:  200.00ns
rkyv deserialize (unsafe):  100.00ns

I saw that there's a new version in the works. This is amazing! You even became faster than bitcode!