Ad-hoc validators in Annotated[Generic,AfterValidator] do not pass class (sub) class checks for nested generic models

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
When using an "ad-hoc" (as in instantiated at that moment) validator, i.e. lambda v: v  or a more elaborate one like
class SingleValueList:
    """Helper class to restrict a list to a single value."""

    def __init__(self, allowed_value: Any) -> None:
        """Initialize the helper class.

        Args:
            allowed_value (Any): Accepted value for the list.
        """
        self.allowed_value = allowed_value

    def __call__(self, v: List[Any]) -> List[Any]:
        """Validate if the provided value is one of the allowed ones.

        Args:
            v (Any): Value to validate.

        Raises:
            ValueError: Exception for wrong list length.
            ValueError: Exception for mismatching value.

        Returns:
            EnumMember_: Instance of the allowed values.
        """
        if len(v) > 1 or len(v) < 1:
            raise ValueError(f"Exactly a single {self.allowed_value} is allowed.")

        if v[0] == self.allowed_value:
            return v
        else:
            raise ValueError(f"{v[0]} is not allowed")

inside an AfterValidator  reusing the same expression for the inner and outer instance of a generic model will not be accepted and generate a weird Validation error
E       pydantic_core._pydantic_core.ValidationError: 1 validation error for Outer[Annotated[str, AfterValidator]]
E       inner
E         Input should be a valid dictionary or instance of Inner[Annotated[str, AfterValidator]] [type=model_type, input_value=Inner[Annotated[str, AfterValidator]](t='test'), input_type=Inner[Annotated[str, AfterValidator]]]
E           For further information visit https://errors.pydantic.dev/2.6/v/model_type

informing the user Inner[Annotated[str, AfterValidator]] should be of type Inner[Annotated[str, AfterValidator]] which it seems to be.
There seems to be a logic for recognizing validator functions ATM so probably they could use the inner function for their __repr__ ?
Also the documentation on custom generic types could hint at this.
I got a bit curious and found annotated-types working for standard cases and breaking for Predicate using a lambda expression
Example Code
from typing import Annotated
from typing import Generic
from typing import TypeVar

import pytest
from annotated_types import Len
from annotated_types import Predicate
from pydantic import AfterValidator
from pydantic import BaseModel
from pydantic import BeforeValidator
from pydantic import PlainValidator

@pytest.mark.parametrize(
    "annotation_expression",
    [
        "str",
        "Annotated[str, Len(max_length=10)]",
        # Annotate by reference
        '"LAMBDA_AFTER_ANNOTATION"',
        '"LAMBDA_PLAIN_ANNOTATION"',
        '"LAMBDA_BEFORE_ANNOTATION"',
        '"LAMBDA_PREDICATE_ANNOTATION"',
        '"FUNCTION_PREDICATE_ANNOTATION"',
        # Validate by function
        "Annotated[str, AfterValidator(validator)]",
        "Annotated[str, PlainValidator(validator)]",
        "Annotated[str, BeforeValidator(validator)]",
        "Annotated[str, Predicate(validator)]",
    ]
    + [
        pytest.param(annotation_expression, marks=(pytest.mark.xfail))
        for annotation_expression in [
            # Validate by lambda
            "Annotated[str, AfterValidator(lambda v: v)]",
            "Annotated[str, PlainValidator(lambda v: v)]",
            "Annotated[str, BeforeValidator(lambda v: v)]",
            "Annotated[str, Predicate(lambda v: True)]",
        ]
    ],
)
def test_parametrized(annotation_expression: str):
    T_ = TypeVar("T_")

    class Inner(BaseModel, Generic[T_]):
        t: T_

    class Outer(BaseModel, Generic[T_]):
        inner: Inner[T_]

    def validator(v: T_) -> T_:
        return v

    # Pydantic Annotations
    LAMBDA_AFTER_ANNOTATION = Annotated[str, AfterValidator(lambda v: v)]
    LAMBDA_PLAIN_ANNOTATION = Annotated[str, PlainValidator(lambda v: v)]
    LAMBDA_BEFORE_ANNOTATION = Annotated[str, BeforeValidator(lambda v: v)]

    # Predicate Annotations
    LAMBDA_PREDICATE_ANNOTATION = Annotated[str, Predicate(lambda v: True)]
    FUNCTION_PREDICATE_ANNOTATION = Annotated[str, Predicate(validator)]

    inner = Inner[eval(annotation_expression)](t="test")
    outer = Outer[eval(annotation_expression)](inner=inner)

Python, Pydantic & OS Version
pydantic version: 2.6.1
        pydantic-core version: 2.16.2
          pydantic-core build: profile=release pgo=true
                 install path: /home/...../.venv/lib/python3.11/site-packages/pydantic
               python version: 3.11.2 (main, May  2 2023, 12:19:59) [GCC 12.2.0]
                     platform: Linux-6.2.0-26-generic-x86_64-with-glibc2.38
             related packages: mypy-1.8.0 email-validator-2.1.0.post1 typing_extensions-4.9.0 pydantic-settings-2.2.1 pyright-1.1.351
                       commit: unknown

@JensHeinrich,
Thanks for reporting this. Running this on our main branch, I get all tests passing. Could you please provide a MRE for the issue that you're seeing? Thanks!

@JensHeinrich,
Ah I was reading too fast, I see you have some marked as xfail. Never mind - I'll take a closer look!


platform: Add RISC-V architecture with VisionFive

Add RISC-V architecture and StarFive JH71x0-based boards VisionFive and VisionFive 2.
Signed-off-by: Daniel Bovensiepen
Signed-off-by: Zhu Jia Xing
FIX #1097

Is there anything what still needs changes or can this be merged?

Could we merge here or is there anything we should still modify?

I updated the branch to resolve the conflict with the radxa merge. Can we merge here or is there anything you need else?

@tingleby we are celebrating here 1 year anniversary. Anything you would need us to do to merge this here?

thanks @arfoll for the review!

@bovi My apologies. Thanks @arfoll for the review too

@bovi My apologies. Thanks @arfoll for the review too

no need to apologies. was just worried that there is something controversial in the merge request. thanks for the merge that helps us a lot to get rid of our internal patchsets! 🥰


NO-JIRA: Fix issue with release note tool

Add a more clear error message and return on error in release note tool.  Also add support for an authorization token so we can avoid 403 errors.

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

The title seems misleading to me unless I'm missing something. This doesn't fix the issue; it just adds additional context on the error message, right?

Correct! FIxed now :)

/retitle NO-JIRA: Fix issue with release note tool

/lgtm cancel
someone else should lgtm

/lgtm

/test e2e-aws
/test e2e-kubevirt-aws-ovn

/test verify

/test verify

/hold cancel
Removing hold that was from tests failing


Cql4bonnie 530

@holmesie @mulcahyk
why are these changes necessary? they don't seem to break anything, but i was able to use the HDS changes without these.
If necessary, I give my approval for this PR (I'm posting on Kristian's behalf).
Should we wait until the front-end code perhaps needs this to make any changes here?

@edeyoung Without these changes there is no way to grab the observation "population" in Bonnie. HDS will work and the measure will load into bonnie with no problems without these changes, however if we want to display or use observations in bonnie we need these changes.
This is the code that grabs the parsed observation from HQMF and saves it to the CQLMeasure Model in the MongoDB. This pull request looks good to me, and I believe this is the first step for us to get Observations working on the front-end.

test failure is the expected test failure that we have been seeing in bonnie bundler and have it on our list to explore.


Fix Old Typo: pysical -> physical

Happened to see this typo while flipping through the codebase--figured I'd quickly pay it forward.

🙏


Impl posfile auto-compaction in in_tail

Which issue(s) this PR fixes:
Fixes https://github.com/fluent/fluentd/issues/1126
What this PR does / why we need it:
note: merge after https://github.com/fluent/fluentd/pull/2803
Docs Changes:
needed
Release Note:
same as the title

@repeatedly ping


Add some more forward docs

Fixes https://github.com/EnzymeAD/Enzyme.jl/issues/698
cc @gaurav-arya, @giordano

Codecov Report
Patch coverage has no change and project coverage change: -0.21 :warning:

Comparison is base (41bd538) 77.08% compared to head (7c22a89) 76.87%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #755      +/-   ##
==========================================
- Coverage   77.08%   76.87%   -0.21%
==========================================
  Files          18       18
  Lines        7345     7344       -1
==========================================
- Hits         5662     5646      -16
- Misses       1683     1698      +15

Impacted Files
Coverage Δ

src/Enzyme.jl
87.50% <ø> (ø)

... and 4 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Confuse about service router

https://github.com/Romakita/ts-express-decorators/blob/master/src/services/index.ts#L3
I'm confused about this code, is there any reason to use express-serve-static-core instead of express?

Express.d.ts didn't provide the type for Express.Router, but in express-serve-static-core we have it. It's just for TypeScript compilation.
Maybe we need to improve this code in next version.

Thank you for your response, :)
I found that the express already include package express-serve-static-core, so we can use express types directly.
I will make a PR to remove the dependency of express-serve-static-core to make the reference consistent.

fix in 1.2.6


PVinverter is shown as "Fronius" in VRM

Hello!
Not really a problem of this code I think, but when implementing my sungrow inverter as "pvinverter" it is shown as "Fronius" pvinverter.
I have another fronius in use, but i wan't to seperate them in two single inverters within VRM.
Thank you!
Alex

Without any code examples or screenshots it's impossible to give you any advice.

Hi!
Sorry for that.
This is my current dashboard

You see the "Fronius" which is my real fronius added by VRM automatically via (modbus?)
And here my current configuration in node red for testing adding another PV inverter.

The pvinverter is listed within vrm device overview with extra VRM instance, but the values are added to the already existing fronius inverter.

Do you need any specific part of code or screenshot ?
Thanks!

The GX UI is very limited. I suspect it will not show multiple PVInverters. I have no experience with PVInverters but I do have 3 mppts in my installation, they are represented by one Mppt icon and the data aggregated. And they Icon is just a generic Mppt icon, not a picture of my actual MPPT models.

You see the "Fronius" which is my > real fronius added by VRM
automatically via (modbus?)
I'm not sure what you mean by this. Nothing is added by VRM, VRM is the portal in Victron's cloud.

Sorry, I didn't mean VRM but the VenusUI.
I will cheeck victron forum for a solution, here you see pv inverters without "fronius" symbol:
https://community.victronenergy.com/questions/3848/how-to-add-pv-meter-on-ac-out1-multigrid-venus.html


At the moment the cache provided by OpenSslCachingKeyMaterialProvider…

… is not bound. We should support an upper limit
Motivation:
At the moment te cache is not bound and so lead to huge memory consumpation. We should ensure its bound by default.
Modifications:
Ensure cache is bound
Result:
Fixes https://github.com/netty/netty/issues/9747.

imho this kind of protection should be good enough and not super expensive.

That’s actually a good idea

Am 06.11.2019 um 19:08 schrieb Nick Hill<EMAIL_ADDRESS>
@njhill commented on this pull request.
CHM#size() isn't that cheap since it has to sum the buckets. Since the cache never shrinks, how about an additional plain cacheIsFull boolean field to guard it (would be ok for that to be racy)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@njhill we could also just use an AtomicInteger... WDYT ?

@normanmaurer I guess so but wouldn't plain boolean be cheaper/simpler? There would be at most (roughly) maxCachedEntries calls to size() which should be insignificant.. the main thing I guess is avoiding the ongoing cost. Up to you though of course!

@njhill yeah you are right...

@njhill PTAL again

@normanmaurer if SSL key materials are constantly created over and over with different aliases the cache is going to have an awful hit ratio.. better off disabling the cache if not using SunX509KeyManagerImpl.

Sure but still we should not have a cache that is unbound

Am 07.11.2019 um 02:14 schrieb Johno Crawford<EMAIL_ADDRESS>
@normanmaurer if SSL key materials are constantly created over and over with different aliases the cache is going to have an awful hit ratio.. better off disabling the cache if not using SunX509KeyManagerImpl.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


[p4rt-session] Add convenience functions for installing entities.

PR Description :
[p4rt-session] Add convenience functions for installing entities.
Build Results :
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$ bazel build $BAZEL_BUILD_OPTS p4_pdpi/...
INFO: Analyzed 76 targets (1 packages loaded, 71 targets configured).
INFO: Found 76 targets...
INFO: Elapsed time: 4.356s, Critical Path: 3.71s
INFO: 11 processes: 3 internal, 8 linux-sandbox.
INFO: Build completed successfully, 11 total actions
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$ bazel build $BAZEL_BUILD_OPTS p4rt_app/...
INFO: Analyzed 100 targets (1 packages loaded, 107 targets configured).
INFO: Found 100 targets...
INFO: Elapsed time: 1.107s, Critical Path: 0.02s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$

UT Results :
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$ bazel test $BAZEL_BUILD_OPTS p4_pdpi/...
INFO: Analyzed 76 targets (0 packages loaded, 0 targets configured).
INFO: Found 45 targets and 31 test targets...
INFO: Elapsed time: 0.381s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
//p4_pdpi:ir_tools_test                                         (cached) PASSED in 0.3s
//p4_pdpi/netaddr:ipv4_address_and_network_address_test         (cached) PASSED in 0.2s
//p4_pdpi/netaddr:ipv6_address_test                             (cached) PASSED in 0.3s
//p4_pdpi/netaddr:mac_address_test                              (cached) PASSED in 0.2s
//p4_pdpi/packetlib:packetlib_fuzzer_test                       (cached) PASSED in 15.5s
//p4_pdpi/packetlib:packetlib_test                              (cached) PASSED in 0.1s
//p4_pdpi/packetlib:packetlib_test_runner                       (cached) PASSED in 0.1s
//p4_pdpi/packetlib:packetlib_unit_test                         (cached) PASSED in 1.1s
//p4_pdpi/string_encodings:bit_string_test                      (cached) PASSED in 0.2s
//p4_pdpi/string_encodings:byte_string_test                     (cached) PASSED in 0.2s
//p4_pdpi/string_encodings:decimal_string_test                  (cached) PASSED in 0.1s
//p4_pdpi/string_encodings:decimal_string_test_runner           (cached) PASSED in 0.0s
//p4_pdpi/string_encodings:hex_string_test                      (cached) PASSED in 0.0s
//p4_pdpi/string_encodings:hex_string_test_runner               (cached) PASSED in 0.0s
//p4_pdpi/string_encodings:readable_byte_string_test            (cached) PASSED in 0.2s
//p4_pdpi/testing:helper_function_test                          (cached) PASSED in 0.4s
//p4_pdpi/testing:info_test                                     (cached) PASSED in 0.1s
//p4_pdpi/testing:info_test_runner                              (cached) PASSED in 0.0s
//p4_pdpi/testing:main_pd_test                                  (cached) PASSED in 0.0s
//p4_pdpi/testing:mock_p4_runtime_server_test                   (cached) PASSED in 0.4s
//p4_pdpi/testing:packet_io_test                                (cached) PASSED in 0.0s
//p4_pdpi/testing:packet_io_test_runner                         (cached) PASSED in 0.1s
//p4_pdpi/testing:rpc_test                                      (cached) PASSED in 0.1s
//p4_pdpi/testing:rpc_test_runner                               (cached) PASSED in 0.1s
//p4_pdpi/testing:sequencing_test                               (cached) PASSED in 0.1s
//p4_pdpi/testing:sequencing_test_runner                        (cached) PASSED in 0.1s
//p4_pdpi/testing:table_entry_gunit_test                        (cached) PASSED in 0.3s
//p4_pdpi/testing:table_entry_test                              (cached) PASSED in 0.1s
//p4_pdpi/testing:table_entry_test_runner                       (cached) PASSED in 0.1s
//p4_pdpi/utils:annotation_parser_test                          (cached) PASSED in 0.2s
//p4_pdpi/utils:ir_test                                         (cached) PASSED in 0.3s
Executed 0 out of 31 tests: 31 tests pass.
INFO: Build completed successfully, 1 total action
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$ bazel test $BAZEL_BUILD_OPTS p4rt_app/...
INFO: Analyzed 100 targets (0 packages loaded, 0 targets configured).
INFO: Found 65 targets and 35 test targets...
INFO: Elapsed time: 0.431s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
//p4rt_app/event_monitoring:app_state_db_port_table_event_test  (cached) PASSED in 0.5s
//p4rt_app/event_monitoring:config_db_node_cfg_table_event_test (cached) PASSED in 0.5s
//p4rt_app/event_monitoring:config_db_port_table_event_test     (cached) PASSED in 0.5s
//p4rt_app/event_monitoring:state_verification_events_test      (cached) PASSED in 0.5s
//p4rt_app/p4runtime:ir_translation_test                        (cached) PASSED in 0.4s
//p4rt_app/p4runtime:p4info_verification_schema_test            (cached) PASSED in 0.4s
//p4rt_app/p4runtime:p4info_verification_test                   (cached) PASSED in 0.4s
//p4rt_app/p4runtime:packetio_helpers_test                      (cached) PASSED in 0.5s
//p4rt_app/sonic:app_db_acl_def_table_manager_test              (cached) PASSED in 0.7s
//p4rt_app/sonic:app_db_manager_test                            (cached) PASSED in 0.4s
//p4rt_app/sonic:app_db_to_pdpi_ir_translator_test              (cached) PASSED in 0.4s
//p4rt_app/sonic:packetio_impl_test                             (cached) PASSED in 0.3s
//p4rt_app/sonic:packetio_port_test                             (cached) PASSED in 0.3s
//p4rt_app/sonic:response_handler_test                          (cached) PASSED in 0.4s
//p4rt_app/sonic:state_verification_test                        (cached) PASSED in 0.2s
//p4rt_app/sonic:vrf_entry_translation_test                     (cached) PASSED in 0.4s
//p4rt_app/sonic/adapters:fake_sonic_db_table_test              (cached) PASSED in 0.1s
//p4rt_app/tests:acl_table_test                                 (cached) PASSED in 0.9s
//p4rt_app/tests:action_set_test                                (cached) PASSED in 0.7s
//p4rt_app/tests:api_access_test                                (cached) PASSED in 0.6s
//p4rt_app/tests:arbitration_test                               (cached) PASSED in 0.8s
//p4rt_app/tests:fixed_l3_tables_test                           (cached) PASSED in 2.5s
//p4rt_app/tests:forwarding_pipeline_config_test                (cached) PASSED in 3.3s
//p4rt_app/tests:grpc_behavior_test                             (cached) PASSED in 5.1s
//p4rt_app/tests:p4_constraints_test                            (cached) PASSED in 0.1s
//p4rt_app/tests:p4_constraints_test_runner                     (cached) PASSED in 0.1s
//p4rt_app/tests:p4_programs_test                               (cached) PASSED in 0.9s
//p4rt_app/tests:packetio_test                                  (cached) PASSED in 3.1s
//p4rt_app/tests:port_name_and_id_test                          (cached) PASSED in 0.7s
//p4rt_app/tests:response_path_test                             (cached) PASSED in 1.3s
//p4rt_app/tests:role_test                                      (cached) PASSED in 0.6s
//p4rt_app/tests:state_verification_test                        (cached) PASSED in 0.8s
//p4rt_app/tests/lib:app_db_entry_builder_test                  (cached) PASSED in 0.0s
//p4rt_app/utils:event_data_tracker_test                        (cached) PASSED in 0.0s
//p4rt_app/utils:table_utility_test                             (cached) PASSED in 0.4s
Executed 0 out of 35 tests: 35 tests pass.
INFO: Build completed successfully, 1 total action
bibhuprasad@eaba4ee0062c:/sonic/src/sonic-p4rt/sonic-pins$

Co-authored-by: Steffen Smolka<EMAIL_ADDRESS>

@kishanps, Could you please review.
Thanks.


End of translation "Queueing a Series of State Updates"

Hello. "Queueing a Series of State Updates" has finished translating. Please review to correct the mistakes. Thanks.

Dear @rezvani2647. What is next after pl? I'm like to continue translation.

here

excellent pr. thanks. I will approve it, @rezvani2647 please help to review and merge.


Chef 13:  Not assigning an value for compression leads to an error

Default value :none is invalid for property compression of resource duply_profile. In Chef 13 this will become an error: Option compression must be equal to one of: bzip2, incremental!  You passed :none.. at 1 location:

/var/chef/cache/cookbooks/duply/resources/profile.rb:39:in `class_from_file'
See https://docs.chef.io/deprecations_custom_resource_cleanups.html for further details.

Thanks for the heads up.  I'm open to suggestions and PRs as my working computer currently isn't tooled for Chef development.


Distinguish "Greeter" as the name of the CMake project and as the name of files/directories/classes

Hi TheLartians
First of all thanks for this great project; it really simplifies things quite a bit.
One thing might be confusing for beginners though: the name "Greeter" is used both as the name of the CMake project and as the name of several files/directories/classes. Although you can technically distinguish these two by the capitalization of the first letter it still opens possibilities for mistakes.
One side effect in renaming the project name is also missing from the README: one needs to change #include <greeter/version.h> to #include <NewProjName/version.h> in .cpp files as well.
Do you think changing the project name to something like "YourProject" is better? I can make the PR.

Hey @nerrons, thanks for the suggestion! I do see how the naming can be confusing and lead to mistakes. I hoped that most problems should be easy to find thanks to the compiler's error message, e.g. after renaming a file. Tbh I'm not really sure how renaming the project to "YourProject" would help, as users would still run into the same issues?

Hey @nerrons, thanks for the suggestion! I do see how the naming can be confusing and lead to mistakes. I hoped that most problems should be easy to find thanks to the compiler's error message, e.g. after renaming a file. Tbh I'm not really sure how renaming the project to "YourProject" would help, as users would still run into the same issues?

Then they can fearlessly replace all YourProject to whatever they want without breaking anything. Now they probably still have to look at each occurrence and try to figure out what they mean.

Ah, so if I understand correctly, you suggest separating the CMake target name from the include destination? E.g. in CMake, the target would be called MyProject, but the include files would still be include/greeter/*.h?

Ah, so if I understand correctly, you suggest separating the CMake target name from the include destination? E.g. in CMake, the target would be called MyProject, but the include files would still be include/greeter/*.h?

Exactly! I hope that would clarify things a bit.

Yeah, I see how it would make iterative renaming easier. However, imo it's a good convention for libraries to use the project name in the include paths, which is kind-of enforced in the starter's structure. Removing it could lead to more derived projects changing both independently. Perhaps we can resolve the issue another way. Some ideas:

Recommend using case-sensitive replace in the Readme and explain the naming scheme. Would be the easiest approach but requires users to read the readme carefully.
Move all project-specific settings such as the project name and include path into a separate configuration file config.cmake. This would make it easier to get started with a new project, but would make the main CMakeLists less readable and discourage new users from learning / changing the actual CMake.
Add a new self-removing command in cmake/tools.cmake that would allow to customise the project. E.g. after cloning you could run cmake -S. -Bbuild -DRENAME_CPP_STARTER=MyProject to automatically rename project and include paths.

Personally, I like both approaches 1. and 3.

I agree with your concerns about having include path names consistent with project names for libraries. Thanks for that point.
Regarding approach 3 it feels like we're doing too much, aren't we? We gonna have another target to maintain while what it accomplishes is just a few ⌃F's (or ⌘F's). It's also good for beginners to actually read before they start and at least go through the main CMakeLists.txt's at least once.

Agreed that 3 may be a bit overkill, so it seems 1 is the best option moving forward. If you want to go ahead and add the disclaimer to the Readme, I'd be happy to review the PR!

I changed the README a little bit in #84, please take a look!


Using the proper syntax will ensure we don't have any unnecessary open issues.  I'll go ahead and close #2045 manually.  Thanks!


Documentation: unclear information on checking the size of a collection using byType() testMatcher

From doc:

byType() - the value taken from the response via the provided JSON Path needs to be of the same type as the type defined in the body of the response in the contract. byType can take a closure where you can set minOccurrence and maxOccurrence. That way you can assert on the size of the collection.

I would assume the check will be for the size of the collection (e.g. size of an ArrayList), but the generated tests use hasFlattenedSizeBetween(lowerBound, higherBound).
I suggest you add that to the documentation ("This check the size of the flattened collection. To check the size of unflattened collection, e.g. an ArrayList, use a custom method via byCommand testMatcher.").

Are you willing to file a PR with the fix? If that's the case could you please file the PR against 1.1.x branch and I'll merge it to master and 2.0.x

Ok, I'll try.

https://github.com/spring-cloud/spring-cloud-contract/pull/394


Get variable from meta_any by reference instead of copy?

I'm using entt::meta to automatically serialize data in user-created types. For structs and classes, I'm doing the following for each member:
entt::meta_any value = instance.get(child->GetPropId());
child->Deserialize(stream, value);
instance.set(child->GetPropId(), value);

Where instance is a meta_any containing the structure object and child is a node object that I use for serialization and, in this case, represents a variable inside the struct referenced by instance.
As far as I understand, value is a copy of the variable and not a reference. This is not scaling too well on things like large arrays in terms of performance and I haven't measured it yet, but I suspect one of the bottlenecks is this piece of code. Is there a way to get a member variable by ref instead of by copy?

Yeah, sure, it's all about using entt::as_ref_t when registering it with the factory.
You can find the details in the doc and many examples in the test suite but feel free to reach out for a quick and dirty example if you can't get it to work.

Thank you so much, that worked a treat!


fix: e2e cucumber import

Description:
fix e2e tests not working due to some incompatibilities. We've proven the SDK works in the needed environments but for some reason we were unable to run e2e until this fixes have been implemented
Checklist:

[ ] My PR follows the contribution guidelines of this project
[ ] My PR is free of third-party dependencies that don't comply with the Allowlist
[ ] 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 the PR title to follow the conventional commit specification

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

3 of 4 (75.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 74.273%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/mercury/didcomm/Wrapper.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>7:
0.03%

Covered Lines:
3323

Relevant Lines:
4261

💛  - Coveralls


Gulp error webpack

I have NPM installed this package inside my laravel project, and im trying to compile it with gulp, but I am getting this error;
[15:57:40] Using gulpfile ~/Workspace/justbet/gulpfile.js
[15:57:40] Starting 'all'...
[15:57:40] Starting 'sass'...
[15:57:41] Finished 'sass' after 1.24 s
[15:57:41] Starting 'webpack'...
{ [Error: ./~/vue-instant/index.js
Module parse failed: /Users/dennissmink/Workspace/justbet/node_modules/vue-instant/index.js Unexpected token (1:20)
You may need an appropriate loader to handle this file type.
| export default from './dist/vue-instant.common'
| export * from './dist/vue-instant.common'
| import './dist/vue-instant.css'
 @ ./resources/assets/js/bootstrap.js 22:20-42
 @ ./resources/assets/js/app.js]

Am I doing something wrong? My require code;
window.VueInstant = require('vue-instant');

I can confirm this error.

A css file is included when importing the package. You may have to setup your bundler to embed the css in your page.

There is no way around this? Seems odd to include css with JS together.

And maybe you need to configure your bundler to compile .vue files.
Other option is include the browser version.
import VueInstant from 'vue-instant/dist/vue-instant.common'

Alternatives to includes css @Cannonb4ll
import 'vue-instant/dist/vue-instant.css'
import VueInstant from 'vue-instant/dist/vue-instant.common'
Vue.use(VueInstant)

You should include it in README, I also had this issue with Laravel Mix. Now fixed with your alternative


Search and Replace tool from the Script editor doesn't filtrer by selection.

Godot version: 3.1.2.stable.official
OS/device including version: Windows 7 SP1, Edit: also Ubuntu.
Issue description: When use the "Replace..." Tool from the text editor (in menu Search), the tool does not limit the search to the selection, even with "Selection Only" marked. Happens either replacing oneor all instances of the word, that the search begins at the start of the file.
Steps to reproduce:
1 - Open a Script. (The main node in the example file has one)
2 - Open the toon in Menu Search -> Replace...
3 - Type the words to search and replace.
4 - Mark selection only.
5 - Select the desired section of the text.
6 - Click either replace or replace all.
Minimal reproduction project:
search_and_replace_bug.zip

I would like to work on this issue.


Fix announcements compose profile image

Preview link
Resolves #641
Resolves #642

The preview isn't right, can you check your preview setup?
production:

preview:

Great job on adding report/hide!
This part of #641 seems not fixed:

Currently it shows "Announcement" header with no content. We want to show "no announcement" when there isn't any

For example this community has no announcment: https://near.org/megha19.near/widget/app?page=community&handle=webassemblymusic
Could you please address it?

@ailisp I don't see any header, or do you want to show the header and a text that no announcement exists?

@Megha-Dev-19 Yes, want to show the header and a text that no announcement exists

oh now I get it, I misread the requirement, I will update it.

hey @ailisp, sorry for the delay, I completely forgot about this PR


possible to add Google Cast-ability   audio?

is it ..possible to add Google Cast-ability ?.. if so how.. I'm kind of a noob
 Front conversations

@bodecove this feature is possible, but requires registration in the dashboard of google.
I found some sdk and guides directly from google: https://developers.google.com/cast/
I think this is a thing for another project.
Hope it helps
Alex

@bodecove i have bad news. :( If you want to register your account in the dashboard it wants to pay you a registration fee of 5$. Here is it: https://cast.google.com/publish/#/signup
I think that is a huge problem.

@AlexProgrammerDE ...i agree..  but if it can be done...I will test it ..for the 5bux...i just need to figure out how  lol

@bodecove i found this guide: https://codelabs.developers.google.com/codelabs/cast-receiver/
I think if this works it is a step into the right direction. 👍

Sorry.. Been busy.. I'll get it done this week., forward me the test.apk
again if ucan
On Thu, Feb 13, 2020, 9:26 AM Alex<EMAIL_ADDRESS>wrote:

@bodecove https://github.com/bodecove i found this guide:
https://codelabs.developers.google.com/codelabs/cast-receiver/
I think if this works it is a step into the right direction. 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/balenalabs/balena-sound/issues/102?email_source=notifications&email_token=ALCJOWIJEI4VIQETI7V2333RCVREDA5CNFSM4KR34LX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELVNDDQ#issuecomment-585814414,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALCJOWM5ZNL4OXGGNDYXCULRCVREDANCNFSM4KR34LXQ
.

@bodecove are you still interested in doing this? You have not replied in a while.

I am still interested ..just with the virus here in usa Illinois..been
really busy with news.. And many life changes..i will try and get going on
this...reply with . APK u want me to test
On Fri, Mar 27, 2020, 8:26 AM Alex<EMAIL_ADDRESS>wrote:

@bodecove https://github.com/bodecove are you still interested in doing
this? You have not replied in a while.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/balenalabs/balena-sound/issues/102#issuecomment-604999599,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALCJOWKEZAPKWSWD2BJAMY3RJSSQZANCNFSM4KR34LXQ
.

@bodecove i think you don´t need a apk file. It should also work with Youtube and other streaming enabled services. Can you try to get this running on a Pi: https://codelabs.developers.google.com/codelabs/cast-receiver/#0 ?
This should give you video and music output. Let me know if you are finished.

I just bought the chromecast license myself and gonna experiment with it a bit. But even if it would work I only see this inside another project. This basically requires the need for balena sound at all, but is also paid. I will give an update on this once I get this working in audio only.

Any progress on this?  It would be a dealbreaking feature for me.  I'd trash several echo dots running to various sound equipment if this picked up some traction.

I was going to ask the same, with Spotify prices on the ramp, YT Music has real traction plus amazon music as well, but we have to rely in good ole BT.

Any update on this @bodecove or @AlexProgrammerDE? I think it would be a very interesting feature even if we need to pay a few bucks

@pjmartorell    life has put this on back burner..i have not pursued this for some time..but yes it would be a nice feature

I'd also be willing to pay for the chromecast licensing fee if necessary in order to have this. Youtube Music is getting pretty big.

This could bypass the bluetooth issues on the rpi3 and also give a more stable way to stream audio than bluetooth. Bluetooth in my house has a range of about 15 feet.

I've started to look into this a little - ALthought dislaimer I'm a complete n00b.
Ran through this  tutorial https://developers.google.com/cast/codelabs/cast-receiver#0 as suggested by @AlexProgrammerDE ...however I think If I'm not mistaken - this requires you to have a cast device to configure against...not sure this is possible as the Pi is not a Chrome-cast but maybe I'm wrong here....
A possible creative solution is just simply plugging a chrome-cast into the HDMI slot...but that kinda defeats the purpose I would think.
Looking further it might be possible to make a web receiver and have  BalenaOS run a local web-server for
https://developers.google.com/cast/docs/web_receiver/basic
More info here:
https://developers.google.com/cast/docs/web_receiver/core_features#creating-a-customized-receiver-app
I'm honestly probably not the guy to do this but I'm genuinely interested in learning about this.

I am on mobile so my response will be short, I am not meaning to come off as rude. With that out of the way the HDMI is output. I don't think the pi support HDMI in. My solution was to use a hifiberry that has line in and use a chromecast audio. Unfortunately it seems the line in is broken on balenaSound. I ended up just using snapcast directly on an rpi running debian and it works great.
Further I believe Google changed the cast API and afaik it has not been reversed so getting something implemented may be hard. Afaik there are no more open source Chromecast clients that are working.

Thanks for digging into this issue!!
On Tue, Mar 22, 2022 at 12:01 PM Frank Claycomb @.***>
wrote:

I've started to look into this a little - ALthought dislaimer I'm a
complete n00b.
Ran through this tutorial
https://developers.google.com/cast/codelabs/cast-receiver#0 as suggested
by @AlexProgrammerDE https://github.com/AlexProgrammerDE ...however I
think If I'm not mistaken - this requires you to have a cast device to
configure against...not sure this is possible as the Pi is not a
Chrome-cast but maybe I'm wrong here....
A possible creative solution is just simply plugging a chrome-cast into
the HDMI slot...but that kinda defeats the purpose I would think.
Looking further it might be possible to make a web receiver and have
BalenaOS run a local web-server for
https://developers.google.com/cast/docs/web_receiver/basic
More info here:
https://developers.google.com/cast/docs/web_receiver/core_features#creating-a-customized-receiver-app
I'm honestly probably not the guy to do this but I'm genuinely interested
in learning about this.
I am on mobile so my response will be short, I am not meaning to come off
as rude. With that out of the way the HDMI is output. I don't think the pi
support HDMI in. My solution was to use a hifiberry that has line in and
use a chromecast audio. Unfortunately it seems the line in is broken on
balenaSound. I ended up just using snapcast directly on an rpi running
debian and it works great.
Further I believe Google changed the cast API and afaik it has not been
reversed so getting something implemented may be hard. Afaik there are no
more open source Chromecast clients that are working.
—
Reply to this email directly, view it on GitHub
https://github.com/balenalabs/balena-sound/issues/102#issuecomment-1075396336,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALCJOWKFKS37SAZLQRR3VBTVBH4GXANCNFSM4KR34LXQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

The chromecast "receiver" guide by Google seems to be actually a chromecast remote guide. Correct me if I'm wrong.
https://play.google.com/store/apps/details?id=com.softmedia.receiver.castapp
This is the only app I've found to have true chromecast receiver functionality, it allows any device to cast to the phone.

The chromecast "receiver" guide by Google seems to be actually a chromecast remote guide. Correct me if I'm wrong.
This app implements the true chromecast receiver protocol:
https://play.google.com/store/apps/details?id=com.softmedia.receiver.castapp
These libraries also implement true chromecast receiver:
https://github.com/enen92/script.tubecast
https://www.npmjs.com/package/yt-cast-receiver
https://www.npmjs.com/package/chromecast-device-emulator

I'm "necro'ing" this topic, as I'm also very interested in this feature. This could allow us to make diy Chromecast audio very easily


Create the Design in Figma

Inspirations:
BorrowMe
Stooch - Discover the student world.
Catalog Website
MiniStore

Link to design assets : https://www.figma.com/file/FYZIsFvg1rLu50UnriUN8Y/Student-Store-Project?type=design&node-id=0-1&mode=design&t=KIfUe95XnbE3crKJ-0


ARROW-3678: [Go] Implement Union Arrays

Does not include enabling them in IPC yet, will do that in a subsequent change as this one is large enough already.

Uh, it looks like AppVeyor is complaining for an unrelated issue.

@raceordie690 @wolfeidau Perhaps you can give this a review as well?

Thanks much @pitrou! I'll give it the rest of the day for anyone else to review and if no one else has any comments i'll merge it after that.


Integrate with schema registry && Handle Cassandra/DSE schema changes.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 11

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

KeyValueConstructor uses the "latest schema for topic".
Given that there are calls from multiple threads to CDCProducer#publish(), would this be an issue?
I left other comments below.

The schema evolution will be forward and backward compatible. The forward is a crucial part here: it means that if some of the producer instances will migrate to the new schema (latest) and some do not yet both producers can still publish data that will be readable by consumers. So consumers will be able to read the new field, but ignore it when it is missing.
It is achieved by union with default = null.
My only concern with the latest is the performance of it. Fetching the latest will mean more rest calls to schema-registry. (it should be cached by some time)  But at this point in time, this is probably a premature optimization - I will create a followup ticket in case we will have performance problems.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 10

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

The schema evolution will be forward and backward compatible.

I'm not sure I understand. Consider the following scenario:

Thread A wants to publish a mutation w/ schema version 1
Thread B wants to publish a mutation w/ schema version 1
Thread C wants to publish a mutation w/ schema version 2

In case thread B gets behind thread C in the race, thread B will get version 2 (incorrect).
Could that scenario still occur or am I missing something?

The schema evolution will be forward and backward compatible.

I'm not sure I understand. Consider the following scenario:

Thread A wants to publish a mutation w/ schema version 1
Thread B wants to publish a mutation w/ schema version 1
Thread C wants to publish a mutation w/ schema version 2

In case thread B gets behind thread C in the race, thread B will get version 2 (incorrect).
Could that scenario still occur or am I missing something?

Yes, this scenario is possible - this is a common scenario in the microservices world - where you have N producers. Let's assume that a rolling deployment of the new producer is happening, there will be a point in time, where some producers are publishing events with schema 1 and some with schema 2.
This is why schema-registry has an ability to enforce the schema evolution validation, please see here:
https://docs.confluent.io/current/schema-registry/avro.html
The FULL_TRANSITIVE type of schema evolution means that All previous versions are backward and forward compatible.
It means that a producer can publish data with any version of feature schema. So in your example, the B will get version 2, but it is not problematic - it will leave new fields unset.
This is a common validation type for microservices/multi-thread deployment.
The kafka-producer-extension will use the schema-registry that should be configured to enforce FULL_TRANSITIVE.
Otherwise, keeping the schema in sync between N thread producers and N stargate instances would require a global synchronization.
Now that I think of it more, I see a problem with schema-registry and it's validation using FULL_TRANSITIVE on types that are unions.
There are two changes that we should treat as non-backward compatible:

the rename of a column - if this is happening, we should add a new column to a schema instead of replacing it. Would it be possible to send the new and old column name in the createTableSchemaAsync(TableMetadata)? If yes, we should add a new column to the schema when rename is happening.
delete of a column - this should be basically no-op in the schema; the removed field with a default null must be kept.
When new producers will create an Avro event without the deleted field, they will simply omit setting it.

Right now, they will both be problematic in the scenario that you did describe.
Just to double-check, we need to support both, right?
If yes, we need to find a way how to propagate the rename and delete column event with information that happened to be able to modify schema in a compatible way. Is it possible to have this info?

We need to support both and there's no way (that I can think of) of getting that metadata change "event".
I think some kind of map of TableMetadata and kafka schema id has to be maintained, to use the value for a given table version.

We need to support both and there's no way (that I can think of) of getting that metadata change "event".
I think some kind of map of TableMetadata and kafka schema id has to be maintained, to use the value for a given table version.

I think that map with ids is not solving the problem. The createTableSchemaAsync can be executed on any ONE stargate node, isn't it? If yes, then the new schema will be created and id maintained in one producer instance. But the publish can be sent to N stargate nodes. In such a setup the newest schema will be visible to only one node that gets createTableSchemaAsync.

I think it should work using multiple nodes. Each node will try to obtain a schema version for a given table. Even if schema registry does not support idempotent operations, the nodes will post mutations with different schema identifiers, but those schemas will be valid and submitted beforehand.

I think it should work using multiple nodes. Each node will try to obtain a schema version for a given table. Even if schema registry does not support idempotent operations, the nodes will post mutations with different schema identifiers, but those schemas will be valid and submitted beforehand.

Yes, this is true as long as the createTableSchemaAsync will be executed on all stargate nodes. Is it true?
If yes, then we will have an N version of the same schema - each will have a different id, and each stargate instance will fetch its own version.

that's correct, createTableSchemaAsync() will be invoked in every stargate that gets a mutation.
The guarantee is that, on every node, send() will be invoked only after createTableSchemaAsync() is called (and awaited to complete) for a given table metadata.

that's correct, createTableSchemaAsync() will be invoked in every stargate that gets a mutation.
The guarantee is that, on every node, send() will be invoked only after createTableSchemaAsync() is called (and awaited to complete) for a given table metadata.

It's still problematic because the map of schema id per subject will not be persistent. If we will restart the node, this map will be empty. In such a case we still need to fetch the latest schema and we will risk the race-condition once again. Do we have the ability in CDC core to call the createTableSchemaAsync() always when it starts getting CDC changes? Especially when the node is restarting.

When I think about it more, I think that we must keep the schema consistent and never remove a field in the schema. We should also always treat the rename as adding a new field.
The reason for it is that consumer will read the data using the recent schema, but they might consume data from Kafka from the earliest offset (so data that was written by the producer before some schema change):

if we will rename a field, there will be some records with a new field, but some older records with the older field name. If the consumer will use the latest schema to read this data, the latest schema will not have the field before rename. It will break the consumer logic.
I am proposing this solution in createOrUpdateSchema:

updateSchemaAsync(metadata)
v = getLatest
newSchema = addWithoutDuplicates(allfields(v), allNewFields(metadata))
registerSchema(newSchema)

the addWithoutDuplicates will construct a new schema based on allFIelds in the latest schema appending new fields from metadata. It will not keep duplicates.

The record has the schema id and the consumer can read the schema by id, then there's no need for any specific logic. Am I missing something?

The record has the schema id and the consumer can read the schema by id, then there's no need for any specific logic. Am I missing something?

It depends on the consumer logic. From my experience, some of the clients tend to use only the latest schema to read the data (use.latest.version=ture) instead of fetching the schema by id that is in the Avro field.
If we are ok with restricting our clients from using it, then we should be ok without constructing schema based on the old one.
In that case, there is still an open question about the first start (persistence):
https://github.com/stargate/stargate/pull/187#issuecomment-703693553

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 10

Complexity increasing per file
==============================
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

If we will restart the node, this map will be empty. In such a case we still need to fetch the latest schema and we will risk the race-condition once again.

Restarting a node is not something that occurs every day... We have to manage it gracefully, but its ok to add some overhead because of it.
We can also mitigate having additional schema versions by trying to compare the latest version against the new version (other node might created it already). In any case those should be compatible.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 9

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  5
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 9

Complexity increasing per file
==============================
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

I've implemented what we discussed, please take a look.

We can also mitigate having additional schema versions by trying to compare the latest version against the new version (other node might created it already). In any case those should be compatible.

I agree but I think that this can be done separately if there will be a need for such performance improvement. I can create a followup ticket for it.

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 9

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 6

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryException.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 6

Complexity increasing per file
==============================
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryException.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 7

Complexity increasing per file
==============================
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/EmbeddedSchemaRegistryServer.java  3
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/MappingProviderKeyValueConstructorIntegrationTest.java  1
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryException.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/SchemaRegistryProvider.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1
- producer-kafka/src/main/java/io/stargate/producer/kafka/schema/CqlToAvroTypeConverter.java  4
- producer-kafka/src/test/java/io/stargate/producer/kafka/mapping/MappingServiceTest.java  1

Clones added
============
- producer-kafka/src/test/java/io/stargate/producer/kafka/KafkaCDCProducerIntegrationTest.java  6
- producer-kafka/src/test/java/io/stargate/producer/kafka/schema/SchemaRegistryProviderIntegrationTest.java  1

See the complete overview on Codacy

I need to merge it because it blocks my work.
If someone wants to review it, look at cdc-basic-kafka branch and this commit:
https://github.com/stargate/stargate/pull/171/commits/7ff47f96ecea25abd21bcee861e1a8d6d2aa4a71


Handling animation types in single values (not sequences)

        <AnimatePresence exitBeforeEnter>
            <MotiView
                style={{
                    alignSelf: "start",
                }}
                from={{
                    translateY: -50,
                }}
                animate={{
                    translateY: 0,
                }}
                exit={{
                    translateY: [
                        {
                            value: -50,
                            type: "timing",
                        },
                        {
                            value: -50,
                            type: "timing",
                        },
                    ],
                }}
            >
                <Text style={{fontSize: 50}}>{props.letter}</Text>
            </MotiView>
        </AnimatePresence>

I want this to exit with timing and enter with spring looking at what I had to do, to make this happen makes it obvious what I'm talking about using a
exit={{
     translateY : {
                            value: -50,
                            type: "timing",
                        }
}}

Making a lot more sense but that gave errors so I had to use sequence with same values :( a really bad hack but works.
If we could have that option, this wouldn't happen anymore.
What do you think?

Use the exitTransition prop


load more data

Can realize the load more data ？

Hi @herongZhang,
yes, one way to do this is to use the EndlessOnScrollListener. Inside this listener you have to implement a callback that is reloading new data when the user reaches the end of the table.
Best regards,
Ingo


Sync error IntelliJ: minSdk version should not be declared in the android manifest file

Issue details:
After updating IntelliJ 2018.3.2, there seems to be a sync error with libgdx:

The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file."

The solution was to remove the: (xml tags removed)

"uses-sdk android:minSdkVersion="9" android:targetSdkVersion="28"

from the manifest file and invalidate caches/ restart. This solves the error.
Reproduction steps/code
Create a new project using "gdx-setup.jar" application. Create application using updated api.
Using IntelliJ 2018.3.2 and Gradle 4.6, use "open" in welcome screen and target "app.ipr". Unlinked gradle project event log occurs, and select import gradle project. A window will pop up and prompt for the basic import settings. I've set "auto-import" on and everything else default. After doing so, you will be shown 3 project resolve errors about 'compile' being obsolete and to use implements. I create a Desktop configuration using "Desktop Launcher", "assests", and class path "desktop". Then build the project. After building go to file, click sync and wait. After a minute, a sync tab will show up in the build logs. The sync log has three conflicts, two warnings and one error:
First a warning:

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Second an error:

The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.
and third another warning:

Third another warning:

The targetSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.

Double clicking on the error will open the "build.gradle" within the android folder. Android-main is highlighted. This being the gradle file where our error exists in the manifest file, so we open the android manifest file within the same directory.
Line 5: (xml tags removed)

uses-sdk android:minSdkVersion="9" android:targetSdkVersion="28"

states that it is not used and is always overwritten (mouse on), so I've deleted the line. Save all, invalidate cache and restart. After restarting and indexing, the second (error) and third (warning) are gone.
Version of LibGDX and/or relevant dependencies
IntelliJ IDEA 2018.3.2 (Community Edition)
Build #IC-183.4886.37, built on December 17, 2018
JRE: 1.8.0_152-release-1343-b26 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
Gradle 4.6
JDK: 1.8.0_181
Stacktrace
//None, sync error

Please select the affected platforms

[x] Android
[x] iOS (robovm)
[ ] iOS (MOE)
[ ] HTML/GWT
[x] Windows
[x] Linux
[ ] MacOS

User Notes
Hopefully this can be resolved without users having to do workarounds every time; to sync functioning.
On a side note, the warnings in messages still exist:

Warning:project ':android': Unable to resolve additional project configuration.
Details: java.lang.IllegalStateException: Resolving configuration 'compileOnly' directly is not allowed

But being warnings, I guess those are negligible.

I don't think it affects robovm, linux, or windows.
This is caused because the min and target sdk versions are set in both the manifest and gradle files.
I'd mention this as a comment on the upgrade towards newer gradle versions because imo it's related (it's only left in the manifest as compatibility with older gradle afaik).
I'll link from there to here in a sec.

You are using an old gdx Setup tool.
Since https://github.com/libgdx/libgdx/pull/5335 new projects don't declare minSDK on the manifest.


Gate on AppVeyor in rust-mozjs.

This change is

https://github.com/servo/rust-mozjs/pull/281 appveyor test looked good.
@bors-servo r+

:pushpin: Commit 3db3feb has been approved by larsbergstrom

:hourglass: Testing commit 3db3feb with merge c206cde...

:sunny: Test successful - travis


fix: 🐛 remove legacy component as function check

:tada: This PR is included in version 0.6.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to render several created in admin panel pages into onepager?

I need to combine several pages into one. I get the content of the current with @post.the_content in app/apps/themes/my_theme/views/page.html.erb but how to take the content of another page? Thanks!
PS: Using latest stable version '2.3.6'

@SophiaPetrova in your template you are able to combine contents of multiple pages like:
%hr
= @current_post.the_content
%hr
= @page2.the_content
%hr
= @page3.the_content

Also, you can do it in your editor, like this:

Check more details about data shortcode in your site: http://localhost.com/admin/settings/shortcodes

Thanks for the fast reply, @owen2345!
Still got one thing unclear. Are @page2 and @page3 titles or some keywords I need to set to the pages to use it like this (however I got the content using current_site.the_posts("page").where(id: 4).pluck(:content))?
Getting content in the editor worked after update of the version of the gem from 2.3.6 to <IP_ADDRESS>.
Thanks very much and great work!

@page2 and @page3 are sample variables which can be replace with:
page2 = current_site.the_post(20) # post with id = 20
page2 = current_site.the_post(21) # post with id = 21

Also, my_posts.pluck(:content) can be used but you will need to add the translation, like:
my_posts.pluck(:content).map{|content| content.translate }

Regards!


Add storing to Pandas dataframe pickle file

Hi, thanks for the PR! When handling / storing Pandas data, is using pickle the recommended way? Can you point out some resources regarding this? I like the idea of exporting to pandas, but I'm unsure whether pickle is the way to go. Thanks =)

Yea. So my initial idea was to use HDF, as that is memory mapped and you
don't have to load the entire thing into file if you're pulling gigabytes
of data. Unfortunately, that only support fixed length strings, and so if
you later pull an article with a text body of greater length than
previously stored in the memory mapped file, you get an exception if you
try to append it. You could, of course, decide on a max length up front
then just cut the text body to fit if necessary, but that's no good IMHO.
With pickle files, that's not a problem. It's the most common way of
storing pandas frames, by far. The alternative would be CSV files and Excel
files. I don't see much point in those.
tir. 26. mar. 2019 kl. 20:16 skrev Felix Hamborg<EMAIL_ADDRESS>
Hi, thanks for the PR! When handling / storing Pandas data, is using
pickle the recommended way? Can you point out some resources regarding
this? I like the idea of exporting to pandas, but I'm unsure whether pickle
is the way to go. Thanks =)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fhamborg/news-please/pull/92#issuecomment-476806975,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGd9xFI0amGIOKM-jRo5hTpyFgIKYcc6ks5vanIYgaJpZM4cLbaT
.

Thanks for the clarification! =) I've merged your PR, it's already contained in the latest version available on pip! Thank you


Failed Tests on M1 MacBook Air - macOS 12.3.1

Hey Ben,
I love this project and all of the blogging that you do related to it. I noticed that a couple of tests are failing on my M1 MacBook Air.
How I run the tests:
go build
go test -count=1 ./...

 Perhaps Go handles large integers differently on ARM devices? Both systems (your Linux machine and my laptop) are 64-bit so we have that in common.
Let me know if I'm running into some user error here or if there is anything I can do to gather more info.
Thanks again for the great work!

This is very interesting -- thanks for the report! Can you please let me know what output the following program gives on your M1 Mac, and the Go version you're running? (Playground link.) This is basically what the equivalent code in that first GoAWK test is doing.
package main

import "fmt"

func main() {
	f := -1.0
	fmt.Printf("%d", uint(f))
	// Output:<PHONE_NUMBER>3709551615
}

And what about this one (equivalent to the int32 failure in the second test):
package main

import "fmt"

func main() {
	f :=<PHONE_NUMBER>
	i32 := int32(f)
	f2 := float64(int64(i32))
	fmt.Printf("%d", int(f2))
	// Output: -2147483648
}

It's possible it's a bug in the Go compiler for M1. I wouldn't think that conversions like this -- even at the boundaries -- should be inconsistent across architectures.
Unfortunately GitHub Actions does not currently support M1, but I'll add that to CI as soon as it does.

Oh, it looks like these kinds of floating point conversions are specified as implementation-dependent in the spec under "Conversions between numeric types"

In all non-constant conversions involving floating-point or complex values, if the result type cannot represent the value the conversion succeeds but the result value is implementation-dependent.

In that case I think I'll just remove those tests so we're not testing implementation-dependent behaviour. I'll do that in the next day or two and release a patch version.
See also:

https://github.com/golang/go/issues/19405
https://github.com/golang/go/issues/29468

Nice find! Good to know about that implementation-dependent behavior in case I ever run into it. As expected, the first example you gave printed 0 while the second printed the expected -2147483648.
Removing those specific tests makes sense as the best way to remedy this. Thanks again for all the blogs and code!

No problem. And I've released v1.17.1 with this fix: https://github.com/benhoyt/goawk/releases/tag/v1.17.1 (I've also updated the make_binaries.sh script to add the darwin arm64 build for Mac M1 and added that binary to the new release).


"Could not initiate discovery mode" error (confirmed no relay issue)

Describe the bug
Running a discovery mode session returns an error after about 90 seconds "could not initiate discovery mode, hotspot may be relayed". I have confirmed in my router and checked port 44158 externally, and there are no issues I can see. UptimeRobot says no significant outages on this port for a week.
To Reproduce
Run discovery mode on a sensecap m1 that has ran fine for many weeks, wait for error message within 90 seconds.
Expected behavior
Discovery mode should not fail on a properly configured hotspot, that has been running flawlessly for weeks.
Screenshots
App didn't allow me to take screenshots (blocked by your app).
Smartphone (please complete the following information):

Device: moto g power (2020)
OS: Android v11
App Version v3.8.1

Additional context
This seemed to slowly build up to this over the past 48 hours. I usually can hit hotspots 3 to 9 miles out from me in discovery mode, and I have a witness 9 miles out. Haven't gotten ANY discovery response from hotspots other than my own for over 24 hours, and then this error started earlier today.

Furthermore, your helium explorer website confirms that there is no detected relay issue as well.

Additionally, I forgot to mention I rebooted the sensecap and my router. So I hit this from every angle possible. No more error today, but discovery mode is flatline with no responses, even from myself. Reddit forum seems to indicate alot of other people having the same issue.

I have exactly the same problem on my Nebra indoor. It started about 5 or 6 days ago. At around the same time, perhaps 24-48 hours later my POC and earnings fell off the side off the planet to almost one transaction per 24 hours. I am finding it difficult to  discover how widespread this issue is, but guess it is substantial.Could it be PoC v11 related ?

All of my nearby hotspots are over 7 km away and some are 20km away. I always had good results from my discovery sessions and have kept a record of most of their results so can prove there were no poor noise issues etc

going to close this issue for now. please reopen if this still occurs when we re-enable discovery mode in the future. My initial thoughts are that discovery mode was so popular that it overwhelmed the router instance and state channels, such that some users were unable to see consistent results.
we'll be revisiting the how we can make discovery mode available to users in a better, future-proof, and consistent manner.

Sounds good @cokes518, I'll keep an eye on it and re-open if it acts up again for a prolonged period. Discovery mode is a great feature, hopefully you all can find the right balance of things to not overwhelm the networking. Good luck.


Allow to save FBP file when it is not attached to a project V2

This patch creates a dialog that allow the creation of a new file and project
when the code was developed disattached of a project.
Signed-off-by: Bruno Bottazzini<EMAIL_ADDRESS>Differences from V1 as reviewed by @bdilly :

Open and select the new created project.
New Dialog title
Dialog should close when save is completed.

Thanks!

much better!
thanks


"Run this profile as an administrator" item is missing

Windows Terminal version
1.12.10983.0
Windows build number
10.0.22000.675
Other Software
No response
Steps to reproduce

open settings
profiles
defaults or command prompt
"Run this profile as an administrator" item is missing

Expected Behavior

Actual Behavior

Yep, that feature only landed in 1.13.

Got it, it's a version fix

Got it, it's a version fix. Had Microsoft Store initially not show the "update" button then after it showed. Thanks!

Hello! I also have this exact old version and I wanna update it to latest version, but microsoft store is not showing the update button... how did you make it show? Any idea? I will highly appreciate your reply.

 It finally showed xd. Fixed it myself. Thing is it only shows the update button only after you click on the terminal icon in microsoft store.

 It finally showed xd. Fixed it myself. Thing is it only shows the update button only after you click on the terminal icon in microsoft store.

You're exactly right. for some strange reason, unlike any other apps, i had to actually click in to the Store Page for Terminal. it did not register in the usual Update check.   Thanks!


Fixing the closure capturing issue in expression arrow function body

While creating the parse node for the body of an arrow function we should be using the return statement to create the statement list. Right now we were using the param block scope.

@akroshg @pleath @tcare Can you please take a look?

https://github.com/Microsoft/ChakraCore/issues/2606

:shipit:


Add install options to prevent unplanned reboot and allow vc14 to exit if existing version found

Description
Adds additional install options to prevent reboot and exit code 1638 as valid for vc14 (2015-2019 installs)
Issues Resolved
#30, #36, #37
Check List

[X] All tests pass. See TESTING.md for details.
[X] New functionality includes testing.
[X] New functionality has been documented in the README if applicable.

          1 Warning

:warning:
This Pull Request is probably missing tests.

  Generated by :no_entry_sign: Danger

          1 Warning

:warning:
This Pull Request is probably missing tests.

  Generated by :no_entry_sign: Danger

Released as: 2.2.0

Released as: 2.2.0


Would be usefull to add a configuration parameter to limit the length of the dropdown??

I think this feature may be usefull, especially when options of the dropdown comes from a webservice that may return hunders of data

Added a new parameter maxSuggestions to limit the number of suggestions shown in dropdown.
https://github.com/avcs06/AutoSuggest/commit/8e8014fa188a2616f2447fb1454ce0f085513ace

Hi @avcs06 thanx a lot for beeing so prompt to answer our needs :)