Add mypy checks to github actions

As a canary, a module with no violations (log.py) is picked. The list of files validated will be expanded as the progress is made squashing remaining violations.

Ah the filters on the workflow (*py files only) make the CI on this PR not run the workflow. I guess I'll need to touch some python file to prove it works...

@bjhargrave this is type checker, not linter: https://mypy.readthedocs.io/en/stable/index.html
An example of an error that this would forbid is here: https://github.com/instructlab/instructlab/pull/1234
@leseb there is nothing wrong with log.py. Here I enable the checker for the module because it's one of the rare ones that does NOT have type violations, just to show that the checker works. More modules should be added to the list (after type errors fixed), until eventually we can run mypy with no errors on the complete code base. But the path there is rather long, the code has basic bugs like NameErrors sprinkled all over it. I plan to work on existing issues detected by mypy over the next few months.

For your reference, here is the current violation list I have with no excludes:
mypy: commands[0]> mypy src tests
src/instructlab/train/lora_mlx/models/lora.py:7: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/models/lora.py:7: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/models/lora.py:8: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/models/phi2.py:8: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/models/phi2.py:8: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/models/phi2.py:9: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/models/models.py:14: error: Skipping analyzing "huggingface_hub": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/lora_mlx/models/models.py:15: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/lora_mlx/models/models.py:16: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/models/models.py:16: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/models/models.py:17: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/models/models.py:29: error: Incompatible types in assignment (expression has type "None", variable has type "int")  [assignment]
src/instructlab/train/lora_mlx/models/models.py:32: error: Incompatible types in assignment (expression has type "None", variable has type "str")  [assignment]
src/instructlab/train/lora_mlx/models/models.py:172: error: Unsupported operand types for / ("int" and "str")  [operator]
src/instructlab/train/lora_mlx/models/models.py:172: note: Right operand is of type "Union[float, str]"
src/instructlab/train/lora_mlx/models/mixtral.py:8: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/models/mixtral.py:8: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/models/mixtral.py:9: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/models/mixtral.py:28: error: Name "vocab_size" already defined on line 18  [no-redef]
src/instructlab/train/lora_mlx/models/mixtral.py:31: error: Incompatible types in assignment (expression has type "None", variable has type "str")  [assignment]
src/instructlab/train/lora_mlx/models/llama.py:8: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/models/llama.py:8: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/models/llama.py:9: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/models/llama.py:23: error: Incompatible types in assignment (expression has type "None", variable has type "int")  [assignment]
src/instructlab/train/lora_mlx/models/llama.py:26: error: Incompatible types in assignment (expression has type "None", variable has type "str")  [assignment]
src/instructlab/train/lora_mlx/models/llama.py:75: error: Unsupported operand types for / ("int" and "str")  [operator]
src/instructlab/train/lora_mlx/models/llama.py:75: note: Right operand is of type "Union[float, str]"
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:39: error: Skipping analyzing "sentencepiece": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:49: error: Module "typing" has no attribute "TypeAlias"  [attr-defined]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:49: note: Use `from typing_extensions import TypeAlias` instead
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:49: note: See https://mypy.readthedocs.io/en/stable/runtime_troubles.html#using-new-additions-to-the-typing-module
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:524: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1155: error: "GGUFWriter" has no attribute "add_expert_count"  [attr-defined]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1158: error: "GGUFWriter" has no attribute "add_expert_used_count"  [attr-defined]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1642: error: Incompatible types in assignment (expression has type "Path", variable has type "str")  [assignment]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1648: error: Unsupported left operand type for / ("str")  [operator]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1664: error: Argument 1 to "load_some_model" has incompatible type "str"; expected "Path"  [arg-type]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1667: error: Unsupported left operand type for / ("str")  [operator]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1709: error: Argument 1 to "write_vocab_only" of "OutputFile" has incompatible type "str"; expected "Path"  [arg-type]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1729: error: Incompatible types in assignment (expression has type "Union[str, Path]", variable has type "Optional[str]")  [assignment]
src/instructlab/llamacpp/llamacpp_convert_to_gguf.py:1735: error: Argument 1 to "write_all" of "OutputFile" has incompatible type "Optional[str]"; expected "Path"  [arg-type]
src/instructlab/train/lora_mlx/utils.py:13: error: Skipping analyzing "huggingface_hub": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/lora_mlx/utils.py:15: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/utils.py:15: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/utils.py:16: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/utils.py:17: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/lora_mlx/utils.py:118: error: Need type annotation for "shard" (hint: "shard: dict[<type>, <type>] = ...")  [var-annotated]
src/instructlab/train/lora_mlx/utils.py:130: error: Incompatible types in assignment (expression has type "Path", variable has type "str")  [assignment]
src/instructlab/train/lora_mlx/utils.py:131: error: "str" has no attribute "mkdir"  [attr-defined]
src/instructlab/train/lora_mlx/utils.py:145: error: Unsupported left operand type for / ("str")  [operator]
src/instructlab/train/lora_mlx/utils.py:156: error: Unsupported left operand type for / ("str")  [operator]
src/instructlab/train/lora_mlx/prepare_model.py:7: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/lora_mlx/prepare_model.py:8: error: Cannot find implementation or library stub for module named "fire"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:12: error: Cannot find implementation or library stub for module named "mlx.utils"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:13: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:13: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:14: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:15: error: Cannot find implementation or library stub for module named "mlx.optimizers"  [import-not-found]
src/instructlab/train/lora_mlx/lora.py:37: error: Value of type "Optional[list[Any]]" is not indexable  [index]
src/instructlab/train/lora_mlx/lora.py:272: error: "str" has no attribute "freeze"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:274: error: "str" has no attribute "model"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:284: error: "str" has no attribute "parameters"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:286: error: "str" has no attribute "trainable_parameters"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:295: error: "str" has no attribute "load_weights"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:319: error: "str" has no attribute "trainable_parameters"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:328: error: "str" has no attribute "load_weights"  [attr-defined]
src/instructlab/train/lora_mlx/lora.py:334: error: "str" has no attribute "eval"  [attr-defined]
src/instructlab/train/lora_mlx/fuse.py:9: error: Cannot find implementation or library stub for module named "mlx.utils"  [import-not-found]
src/instructlab/train/lora_mlx/fuse.py:10: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/fuse.py:10: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/fuse.py:11: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/train/lora_mlx/convert.py:9: error: Cannot find implementation or library stub for module named "mlx.utils"  [import-not-found]
src/instructlab/train/lora_mlx/convert.py:10: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/train/lora_mlx/convert.py:10: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/train/lora_mlx/convert.py:11: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/utils.py:22: error: Skipping analyzing "gitdb": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/utils.py:206: error: Argument "repo_url" to "git_clone_checkout" has incompatible type "Union[str, list[str], None]"; expected "str"  [arg-type]
src/instructlab/utils.py:207: error: Argument "commit_hash" to "git_clone_checkout" has incompatible type "Union[str, list[str], None]"; expected "str"  [arg-type]
src/instructlab/utils.py:214: error: Item "None" of "Union[str, list[str], None]" has no attribute "__iter__" (not iterable)  [union-attr]
src/instructlab/utils.py:331: error: Name "importlib" is not defined  [name-defined]
src/instructlab/utils.py:331: error: Name "referencing" is not defined  [name-defined]
src/instructlab/utils.py:355: error: Unexpected keyword argument "ref" for "NoSuchResource"  [call-arg]
src/instructlab/utils.py:380: error: Library stubs not installed for "jsonschema.protocols"  [import-untyped]
src/instructlab/utils.py:380: note: Hint: "python3 -m pip install types-jsonschema"
src/instructlab/utils.py:380: note: (or run "mypy --install-types" to install all missing stub packages)
src/instructlab/utils.py:381: error: Library stubs not installed for "jsonschema.validators"  [import-untyped]
src/instructlab/utils.py:392: error: Argument 1 to "__call__" of "_lru_cache_wrapper" has incompatible type "Traversable"; expected "Hashable"  [arg-type]
src/instructlab/utils.py:406: error: Unexpected keyword argument "retrieve" for "Registry"  [call-arg]
src/instructlab/utils.py:450: error: Incompatible types in assignment (expression has type "Path", variable has type "str")  [assignment]
src/instructlab/utils.py:452: error: "str" has no attribute "suffix"  [attr-defined]
src/instructlab/utils.py:456: error: "str" has no attribute "parts"  [attr-defined]
src/instructlab/utils.py:457: error: "str" has no attribute "parts"  [attr-defined]
src/instructlab/utils.py:458: error: "str" has no attribute "parts"  [attr-defined]
src/instructlab/utils.py:461: error: Incompatible types in assignment (expression has type "str", variable has type "Path")  [assignment]
src/instructlab/utils.py:518: error: "SubprocessError" has no attribute "output"  [attr-defined]
src/instructlab/utils.py:540: error: Item "None" of "Optional[Any]" has no attribute "__iter__" (not iterable)  [union-attr]
src/instructlab/mlx_explore/utils.py:24: error: Skipping analyzing "huggingface_hub": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/mlx_explore/utils.py:26: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/mlx_explore/utils.py:26: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/mlx_explore/utils.py:27: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/mlx_explore/utils.py:28: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/mlx_explore/utils.py:51: error: Need type annotation for "shard" (hint: "shard: dict[<type>, <type>] = ...")  [var-annotated]
src/instructlab/mlx_explore/utils.py:64: error: Incompatible types in assignment (expression has type "Path", variable has type "str")  [assignment]
src/instructlab/mlx_explore/utils.py:65: error: "str" has no attribute "mkdir"  [attr-defined]
src/instructlab/mlx_explore/utils.py:79: error: Unsupported left operand type for / ("str")  [operator]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:10: error: Skipping analyzing "huggingface_hub": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:11: error: Cannot find implementation or library stub for module named "mlx.utils"  [import-not-found]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:12: error: Cannot find implementation or library stub for module named "mlx.core"  [import-not-found]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:12: error: Cannot find implementation or library stub for module named "mlx"  [import-not-found]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:13: error: Cannot find implementation or library stub for module named "mlx.nn"  [import-not-found]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:28: error: Incompatible types in assignment (expression has type "None", variable has type "int")  [assignment]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:31: error: Incompatible types in assignment (expression has type "None", variable has type "str")  [assignment]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:79: error: Unsupported operand types for / ("int" and "str")  [operator]
src/instructlab/mlx_explore/gguf_convert_to_mlx.py:79: note: Right operand is of type "Union[float, str]"
src/instructlab/client.py:36: error: Argument "cert" to "Client" has incompatible type "tuple[str, ...]"; expected "Optional[Union[str, tuple[str, Optional[str]], tuple[str, Optional[str], Optional[str]]]]"  [arg-type]
src/instructlab/generator/utils.py:94: error: Incompatible types in assignment (expression has type "list[Union[Sequence[str], Sequence[dict[str, str]], dict[str, str]]]", variable has type "Union[str, Sequence[str], Sequence[dict[str, str]], dict[str, str]]")  [assignment]
src/instructlab/generator/utils.py:103: error: Invalid index type "slice" for "Union[str, Sequence[str], Sequence[dict[str, str]], dict[str, str]]"; expected type "str"  [index]
src/instructlab/generator/utils.py:159: error: Argument "messages" to "create" of "Completions" has incompatible type "list[dict[str, Any]]"; expected "Iterable[Union[ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam, ChatCompletionAssistantMessageParam, ChatCompletionToolMessageParam, ChatCompletionFunctionMessageParam]]"  [arg-type]
src/instructlab/generator/utils.py:170: error: "Choice" has no attribute "text"  [attr-defined]
src/instructlab/generator/utils.py:174: error: List comprehension has incompatible type List[list[Choice]]; expected List[Choice]  [misc]
src/instructlab/generator/utils.py:179: error: Incompatible types in assignment (expression has type "Choice", variable has type "list[Choice]")  [assignment]
src/instructlab/chat/chat.py:483: error: Argument "cert" to "Client" has incompatible type "tuple[str, ...]"; expected "Optional[Union[str, tuple[str, Optional[str]], tuple[str, Optional[str], Optional[str]]]]"  [arg-type]
src/instructlab/train/linux_train.py:9: error: Skipping analyzing "datasets": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/linux_train.py:12: error: Skipping analyzing "transformers": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/linux_train.py:21: error: Skipping analyzing "trl": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/train/linux_train.py:36: error: Cannot find implementation or library stub for module named "habana_frameworks.torch"  [import-not-found]
src/instructlab/train/linux_train.py:41: error: Cannot find implementation or library stub for module named "optimum.habana"  [import-not-found]
src/instructlab/train/linux_train.py:42: error: Cannot find implementation or library stub for module named "optimum.habana.transformers.generation.configuration_utils"  [import-not-found]
src/instructlab/train/linux_train.py:45: error: Cannot find implementation or library stub for module named "optimum.habana.trl"  [import-not-found]
src/instructlab/generator/generate_data.py:18: error: Skipping analyzing "rouge_score": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/generator/generate_data.py:18: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
src/instructlab/generator/generate_data.py:387: error: Need type annotation for "machine_seed_instruction_data" (hint: "machine_seed_instruction_data: list[<type>] = ...")  [var-annotated]
src/instructlab/generator/generate_data.py:390: error: Argument 1 to "exists" has incompatible type "Optional[str]"; expected "Union[int, Union[str, bytes, PathLike[str], PathLike[bytes]]]"  [arg-type]
src/instructlab/generator/generate_data.py:391: error: Argument 1 to "mkdir" has incompatible type "Optional[str]"; expected "Union[str, bytes, PathLike[str], PathLike[bytes]]"  [arg-type]
src/instructlab/generator/generate_data.py:456: error: Argument 1 to "Path" has incompatible type "Optional[str]"; expected "Union[str, PathLike[str]]"  [arg-type]
src/instructlab/generator/generate_data.py:462: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:464: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:469: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:470: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:501: error: Unsupported operand types for < ("int" and "None")  [operator]
src/instructlab/generator/generate_data.py:501: note: Right operand is of type "Optional[int]"
src/instructlab/generator/generate_data.py:577: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:592: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/generator/generate_data.py:599: error: Argument 1 to "join" has incompatible type "Optional[str]"; expected "str"  [arg-type]
src/instructlab/server.py:44: error: Name "Optional" is not defined  [name-defined]
src/instructlab/server.py:44: note: Did you forget to import it from "typing"? (Suggestion: "from typing import Optional")
src/instructlab/server.py:44: error: Name "FrameType" is not defined  [name-defined]
src/instructlab/lab.py:17: error: Skipping analyzing "click_didyoumean": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/lab.py:19: error: Skipping analyzing "huggingface_hub": module is installed, but missing library stubs or py.typed marker  [import-untyped]
src/instructlab/lab.py:1317: error: Skipping analyzing "instructlab_quantize": module is installed, but missing library stubs or py.typed marker  [import-untyped]
tests/test_lab_download.py:8: error: Skipping analyzing "huggingface_hub.utils": module is installed, but missing library stubs or py.typed marker  [import-untyped]

Some of these may be not about real bugs, but we'll need to go through all of them eventually and decide what should be skipped or handled otherwise.

@leseb @bjhargrave I addressed comments, made the excludes opt-in, not opt-out. I left mypy as a separate workflow action for now, I'd like to understand why it's better to squash with linters (if that's the case).

I'd like to understand why it's better to squash with linters

The workflow added here is mostly a duplicate of the lint workflow. So lets avoid maintaining multiple workflows which are mostly identical. Adding this mypy run as a step in the existing workflow is a minor change and exploits the setup already done by that workflow.

Success: no issues found in 36 source files
  mypy: OK (152.76=setup[114.15]+cmd[38.62] seconds)
  congratulations :) (152.82 seconds)

Seems to work in the lint check.

@Mergifyio rebase

FYI this broke CI check because of the timing of patch merges. This should fix CI: https://github.com/instructlab/instructlab/pull/1269


Session becomes invalid when opening Midea app

If I open the Midea app to control any of the AFB aces options not available through HomeKit, the homebridge process must be restarted for the plug-in to obtain a new valid session.
Is there any way around this?

You can't use Midea app and Homebridge at the same time. But You can use instead NetHome plus app


Lint fixes

This PR fixes a bug with the error message for bad charset on columns, the wrong charset was reported. It also makes sure the lint messages are sorted deterministically (by filename).

Coverage decreased (-0.02%) to 90.603% when pulling 037cf95e187271f535526220928909cd9dee27a4 on johlo:lint-fixes into cc00d727f3f8ce2ea33d195aca1810b67e039e29 on skeema:master.

Looks good, thanks again! Merging momentarily, and I'll aim to make a new release (v1.2.3) this week.


UNI-1058 New design for wallet and activity modal

This should not be deployed until the spruce goose library upgrade has been approved.

Waiting for murfs design review.


Disable subsite filters when running unit tests

If the subsites module is installed when running unit test it causes a number of framework unit tests to fail. This change disables the Subsite filter by default when running tests so they normally.
Having framework needing to know about another module isn't ideal but I can't see another way of doing this right now.

This actually breaks subsites tests in CI. Can we revert this please? Having this kind of interdependency makes testing fragile.
/**
 * Tests the initial state of disable_subsite_filter
 */
function testDisableSubsiteFilter() {
	$this->assertFalse(Subsite::$disable_subsite_filter);
}

If framework tests fail because their behaviour is modified by external modules (such that the context of the tests are substantially different) then it's acceptable to have those tests failed. In our internal testing we mute these with explanations on each.


4th bullet at "Add a class" topic

@aylingumus  commented an hour ago — with docs.microsoft.com •
There is need to add HelloWorld namespace as "using HelloWorld;" to second line to call the method of Class1.
It should be like this:
using System;
using HelloWorld;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 c1 = new Class1();
            Console.WriteLine($"Hello World! {c1.ReturnMessage()}");
        }
    }
}

Best regards,
Aylin

Belge Ayrıntıları
⚠ Bu bölümü düzenlemeyin. docs.microsoft.com ➟ GitHub sorunu bağlantısı için gereklidir.

ID: 8cc2e9c2-f333-f6a1-064e-790d950b684c
Version Independent ID: 25a4c9b9-2808-e296-df03-5837000dcbad
Content: C# ve Visual Studio Code kullanmaya başlama
Content Source: docs/core/tutorials/with-visual-studio-code.md
Product: dotnet-core
GitHub Login: @kendrahavens
Microsoft Alias: mairaw

Since these classes share the same namespace you shouldn't need to add a using directive to Program.cs. It's good to note that the namespace in your Program.cs file is automatically set to the containing folder name. Meaning, if you started the tutorial in a folder not named "HelloWorld" then the copied Class.cs file won't have the same namespace as your Program.cs file. In that case, you would need a using directive.
I'll leave the instructions as is for now. Let me know if there is an issue I'm not seeing or if there is a better way to make this distinction clear.
Thank you for taking the time to log this feedback!

Closing as by design then. @aylingumus please let us know if there is a step that is not clear.


WNDCLASS_STYLES missing

I couldn't get WNDCLASS_STYLES working even though it seems to be present in the metadata.

It's in windows::win32::windows_and_messaging. I think it was in ``windows::win32::system_servicespreviously, so you have to update thebuild!` macro  incocation.

Have a look at the Clock sample:
https://github.com/microsoft/windows-rs/tree/master/examples/clock

I tried it it in windows_and_messaging. But I think it works in 0.6.0.

(I'm updating from 0.3.1 and it is a bit of a rough ride :) )

Sorry, the metadata has changed quite a bit since then. 😜
Let me know if you get stuck!


AttributeError: 'module' object has no attribute 'noValue'

I'm getting this error with both 4.3.5 and 4.3.8. Python version is 2.7.13
Below is a stack trace from a simple app that I wrote which uses pysnmp to read SNMP data (Sorry for the layout -- I tried to insert them as code but that doesn't seem to work):
Traceback (most recent call last):   File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main     "__main__", fname, loader, pkg_name)   File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code     exec code in run_globals   File "/app/empf/lib/python/monitor-0.1.0-py2.7.egg/monitor/__main__.py", line 22, in <module>     app()   File "/app/lib/python/monitor-0.1.0-py2.7.egg/monitor/matrix.py", line 115, in __call__     result = self.run(job)   File "/app/lib/python/monitor-0.1.0-py2.7.egg/monitor/matrix.py", line 48, in run     mod = __import__('monitor.'+job.type, fromlist=[job.type], level=1)   File "/app/lib/python/monitor-0.1.0-py2.7.egg/monitor/AsyncSNMPv1.py", line 16, in <module>     from pysnmp.entity.rfc3413.oneliner import cmdgen   File "/app/lib/python/gevent-1.2.1-py2.7-linux-x86_64.egg/gevent/builtins.py", line 93, in __import__     result = _import(*args, **kwargs)   File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 10, in <module>     from pysnmp.hlapi.asyncore import *   File "/app/lib/python/gevent-1.2.1-py2.7-linux-x86_64.egg/gevent/builtins.py", line 93, in __import__     result = _import(*args, **kwargs)   File "/usr/lib/python2.7/site-packages/pysnmp/hlapi/__init__.py", line 7, in <module>     from pysnmp.proto.rfc1902 import *   File "/app/lib/python/gevent-1.2.1-py2.7-linux-x86_64.egg/gevent/builtins.py", line 93, in __import__     result = _import(*args, **kwargs)   File "/usr/lib/python2.7/site-packages/pysnmp/proto/rfc1902.py", line 563, in <module>     class Bits(OctetString):   File "/usr/lib/python2.7/site-packages/pysnmp/proto/rfc1902.py", line 614, in Bits     def __init__(self, value=univ.noValue, tagSet=None, subtypeSpec=None, AttributeError: 'module' object has no attribute 'noValue'

What is your pyasn1 version? Make sure it's the latest released one.

$ pip search pyasn1
pyasn1-modules (0.0.9)  - A collection of ASN.1-based protocols modules.
pyasn1 (0.2.3)          - ASN.1 types and codecs
  INSTALLED: 0.2.3 (latest)
rfc3161 (1.0.7)         - Python implementation of the RFC3161 specification, using pyasn1

Sorry, my bad! I forgot to check the OS installation of the package.
I removed the OS python-pyasn1 package and reinstalled everything. It works now.
Thank you for your quick response.

Note to self: we should probably rely on the older pyasn1 API to avoid this...


Add ValidatesWebData trait

TODO

[x] validateWebAppData
[x] validateLoginData
[ ] Entities
[x] real tests

[x] webapp
[x] login

[ ] pest tests?

How to use
// $initData MUST BE a query string value like this:
// "user=%7B%22id%22%3A12345678%2C%22first_name%22%3A%22Mario%22%2C%22last_name%22%3A%22Super%22%2C%22username%22%3A%22SuperMario%22%2C%22language_code%22%3A%22en%22%2C%22is_premium%22%3Atrue%2C%22allows_write_to_pm%22%3Atrue%7D&chat_instance=-123456789&chat_type=private&start_param=foo&auth_date=1693264973&hash=1a2b3c4d5e6f"

// how to get $initData from frontend (example):
// $initData = $_GET['initData'] or $_POST['initData']; //initData is an example key

$bot->isWebAppDataValid($initData); // true or false

/*
$initData MUST BE a query string value like this:
"id=12345678&first_name=Mario&last_name=Super&username=SuperMario&photo_url=photourl&auth_date=1693264973&hash=1a2b3c4d5e6f"

how to get $initData from frontend:
$initData = http_build_query([
    'id'=>$_POST['id'],
    'first_name'=>$_POST['first_name'],
    'last_name'=>$_POST['last_name'],
    'username'=>$_POST['username'],
    'photo_url'=>$_POST['photo_url'],
    'auth_date'=>$_POST['auth_date'],
    'hash'=>$_POST['hash'],
]);
*/

$bot->isLoginDataValid($initData); // true or false

Question
How to implement this PR?
Variant 1 (boolean) ❌

isWebAppDataValid and isLoginDataValid will return a boolean value
you need to call getWebAppDataAsArray and getIsLoginDataAsArray after validation to read parsed data

Variant 2 (exception) ✅

rename isWebAppDataValid and isLoginDataValid to validateWebAppData and validateLoginData
validateWebAppData and validateLoginData will return the parsed data otherwise an InvalidDataException

Hi @Lukasss93, could we discuss connecting our tgWebValid library to provide the user validation functionality you need? We have support for working with several bots and all necessary tests

Hi @Lukasss93, could we discuss connecting our tgWebValid library to provide the user validation functionality you need? We have support for working with several bots and all necessary tests

Hello, thanks for the support (I use your library too).
We have a small rule: to have as few dependencies as possible.
Anyway, I'd like some feedback from @SergiX44  to understand what they think.

Hello, thanks for the support (I use your library too). We have a small rule: to have as few dependencies as possible. Anyway, I'd like some feedback from @SergiX44 to understand what they think.

Of course, everyone's opinion is important. And I will accept any decision you make, but could I somehow influence it so that it would be positive, so that you could focus most of all on the development of the functionality of the bot, and I would take care of the rest. If you have any conditions, please tell me, let's talk

TODO

[x]  isWebAppDataValid

[x]  isLoginDataValid

[ ]  getWebAppDataAsArray

[ ]  getIsLoginDataAsArray

[x]  real tests

[x]  webapp
[x]  login

[ ]  pest tests?

How to use
// $initData MUST BE a query string value like this:
// "user=%7B%22id%22%3A12345678%2C%22first_name%22%3A%22Mario%22%2C%22last_name%22%3A%22Super%22%2C%22username%22%3A%22SuperMario%22%2C%22language_code%22%3A%22en%22%2C%22is_premium%22%3Atrue%2C%22allows_write_to_pm%22%3Atrue%7D&chat_instance=-123456789&chat_type=private&start_param=foo&auth_date=1693264973&hash=1a2b3c4d5e6f"

// how to get $initData from frontend (example):
// $initData = $_GET['initData'] or $_POST['initData']; //initData is an example key

$bot->isWebAppDataValid($initData); // true or false

/*
$initData MUST BE a query string value like this:
"id=12345678&first_name=Mario&last_name=Super&username=SuperMario&photo_url=photourl&auth_date=1693264973&hash=1a2b3c4d5e6f"

how to get $initData from frontend:
$initData = http_build_query([
    'id'=>$_POST['id'],
    'first_name'=>$_POST['first_name'],
    'last_name'=>$_POST['last_name'],
    'username'=>$_POST['username'],
    'photo_url'=>$_POST['photo_url'],
    'auth_date'=>$_POST['auth_date'],
    'hash'=>$_POST['hash'],
]);
*/

$bot->isLoginDataValid($initData); // true or false

Question
How to implement this PR?
Variant 1 (boolean)

isWebAppDataValid and isLoginDataValid will return a boolean value
you need to call getWebAppDataAsArray and getIsLoginDataAsArray after validation to read parsed data

Variant 2 (exception)

rename isWebAppDataValid and isLoginDataValid to validateWebAppData and validateLoginData
validateWebAppData and validateLoginData will return the parsed data otherwise an InvalidDataException

2⃣

Hello, thanks for the support (I use your library too). We have a small rule: to have as few dependencies as possible. Anyway, I'd like some feedback from @SergiX44 to understand what they think.

Of course, everyone's opinion is important. And I will accept any decision you make, but could I somehow influence it so that it would be positive, so that you could focus most of all on the development of the functionality of the bot, and I would take care of the rest. If you have any conditions, please tell me, let's talk

For now I would keep the implementation as small as possible, if in the future there is a need for additional features, such as multi bot, the introduction of third-party libraries may be considered.

For now I would keep the implementation as small as possible, if in the future there is a need for additional features, such as multi bot, the introduction of third-party libraries may be considered.

Please note that this is not only about multibot. The library allows you to test both types of users (Telegram Login Widget and Telegram Web App) out of the box. Also, after parsing and checking the data, entities are created so that the user can get all the necessary data and later manipulate, store, and so on. And these entities have 100% autocomplete, which is very convenient for other developers. Another advantage is the ability to retrieve data as an array (which is what @Lukasss93 is trying to achieve in this enhancement). Your library can get all this in a matter of minutes.


how to build 1.0.1?

how to build bin files.

here

Board selection and Verify
In tools menu select board options.
Choose Arduino from the ESP8266 section of the Boards menu.
Next choose Model Uno Wifi.
Flash Size selection should be "4M (1M SPIFFS)"
then i got arduino-firmware-wifilink\ArduinoFirmwareEsp\ArduinoMcuOTA.ino:3:17: fatal error: dfu.h: No such file or directory

build the master branch

@jandrassy thank you very much. i got file ArduinoFirmwareEsp.ino.arduino_uart.bin success.
but ... how can i build ArduinoFirmwareWiFiLink-WEB_PANEL-1.0.0.bin for tag1.0.1

SPIFFS chapter

@jandrassy https://github.com/jandrassy/arduino-firmware-wifilink/blob/ota/UNOWIFI_DEV_ED.md#building-from-source-code
this file have changed, how can i find the old document...

the old document is obsolete. use Uno WiFi Serial1 library with WiFi Link. the instructions are in Serial1 readme.md and in WiFi Link firmware readme.md. use the 1.1.0 version of WiFi Link firmware and library from github repos

@jandrassy thank you very much. I saw two firmware, UNO WiFi with Espressif AT firmware and UNO WiFi with WiFi Link firmware, which one is better? and then I will try flashing my board.

WiFi Link is better. and I support it to some extent. consultation and bugs

@jandrassy  after the steps below, I get nothing to output, is there something wrong.
choose UNO WiFi.
open EspProxy.ino
Uncomment the #define FLASHING line
click Upload.

Choose Arduino from the ESP8266 section of the Boards menu.
Next choose Model UNO WiFi.
Flash Size selection "4M (1M SPIFFS)"

open ArduinoFirmwareEsp.ino
click Upload.

choose UNO WiFi.
open ConnectWithWPA.ino
click Upload.
then nothing show.

is there something wrong.

you didn't uncomment
#include <UnoWiFiDevEdSerial1.h>

@jandrassy My board with UnoWiFiDevEdSerial1 work fun now. and MQTT message receive is more faster then old firmware. But OTA part is to hard for me to follow, more clear document will provide?

you need the dfu library. in the docs there is a link to zip. download it and unzip to your libraries folder.
build the firmware with #define MCU_OTA in config.h and upload it to esp,
and then you need the upload tool and integrate it into IDE.


The battery icon (and Win Defender)  has disappeared from the taskbar

Describe the bug
The battery icon has disappeared from the taskbar (Windows 10). Windows Defender icon too, but I don't really know If It was before the script execution.
To Reproduce
Using laptop optimizations
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
I have tried to enable it from gpedit.msc and regedit and it had no effect, does this happen to more people?

I had the same issue, and it's because of the Telemetry Tweak, because I tested every option, it make the battery icon disappear and there unless you use a restore point, you cannot get it back

With Windows Defender (system antivirus) too. I am seeing the source code...

Hi, I have found that if I disable and re-enable the battery hardware the icon reappears, but until the next boot it disappears again.
https://softwarekeep.com/help-center/how-to-fix-the-battery-icon-missing-or-grayed-out-in-windows-10

I cannot test this solution as I am not in an environment where it is feasible to restore. Thanks anyway!

hey, i already tried all that, believe me i was like 5 hours seeing solutions, some of them work, but it just last until you reboot the computer, or if you log out it's the same. I still use the windows utility, but.. i don't disable telemetry, because that's where the issue is

Okey, so, at the moment, nothing of "disable telemetry". Thanks

i wish i could contribute more to a certain solution but, most of the time i'm using linux, and i barely use windows just for gaming, but there's a tutorial made by chris titus, about disabling windows telemetry, but you know.. manually, and it worked really great at the time, maybe some users can try that as a temporary solution. Maybe, cause idk if that bug happens to me because of the telemetry, and other people have the same issue but with another tweak of the utility, idk, glad we can at least report the issue

I can't believe this is tied into telemetry.

I can't believe this is tied into telemetry.

Hey Chris, I recently update to Windows 11, and I used the utility, with all the Laptop tweaks, including telemetry, and the battery icon didn't disappear + everything working fine, so I guess, that at least in my case, that was specifically a W10 problem.

I ran the laptop tweaks on my friend's laptop and had a big yikes moment when I couldn't get it back, even from group policy settings. But this issue didn't persist after upgrading to Windows 11. Fortunately I found a couple battery indicators that look similar-ish to the one built into Win 10, but yeah very annoying.

Classic Right click menu seems to break bith the time/date and battery/network/sound blocks, you click them and there is no opo up - Using Windows 11 @ChrisTitusTech

I tried it on latest commit,seems to be fixed now.


Extra space at the end of last name steeves

https://github.com/RandomAPI/Randomuser.me-Node/blob/92c811d841648c5ce85d418571b1fd52996ea18a/api/.nextRelease/data/US/lists/last.txt#L264
Hello,
had some repeated test failures due to an extra space at the end of the last name "steeves". I attempted to clone this repo, but was having a bit of difficulty getting everything running, figured this changed was easy enough to just communicate to you all. Is there any chance we can get that space removed?
Thank you for your consideration.

It's been hotfixed, thanks for letting us know


Extend burgers

I though it would be nice to have an example where the classic Riemann problem
$$ \partial_t u + \partial_x(0.5 u^2) = 0, \quad u_0(x) = \begin{cases} u_L &  x < \tilde{x} \ u_R & x \geq \tilde{x} \end{cases} $$
leads to a shock, which can be accurately simulated using the VolumeIntegralShockCapturingHG when the scalar indicator
# For shock capturing
@inline function scalar(u, equations::InviscidBurgersEquation1D)
  return u[1]
end

is added.
For completeness, I also added some numerical fluxes.

From my point of view, the requested changes are adressed - anything I missed?

@DanielDoehring A recommendation for future PRs: If you feel like you have addressed a comment from a reviewer, it is good practice to write something like "done" or (preferably) "done in abc456" (with commit hash). This way it is easier for the reviewers to see that their remarks have been addressed. If it was a simple request and/or your feel that the requested change was obvious and you applied it as intended, you can also mark the conversation as resolved (such that it becomes clear which issues are still open).


Eliminate use of libtxt in engine

Currently we are trying to get the text code weaned off of SkCanvas rendering to fully support Impeller. This is mostly done, but we still support the use of libtxt which requires SkCanvas support. Fixing those dependencies and eliminating that library will put us one step closer to eliminating DisplayListCanvasRecorder and many Skia dependencies in the engine.
(This work is already scheduled, but this issue will provide tracking info for some of the other issues filed against DisplayList.)

This came up a few months ago and at that time @jason-simmons remarked that he sometimes still used the flag to swap backends to check for regressions. This wasn't frequent and I suspect this has gotten even less so in the intervening months. I think we should go ahead with this given the maintenance costs but I'll let @jason-simmons chime in.

Landed https://github.com/flutter/engine/pull/39499


Add mavlink2 support

needs testing?

@peterbarker -  shall we try this PR out on our solos..?

rebased PR on master

@rmackay9

merged both bits of solo mavlink xml to be the same
xml:
/vagrant/modules/mavlink-solo/message_definitions
/vagrant/modules/ardupilot-solo/libraries/GCS_MAVLink/message_definitions

Attemping vagrant build of this PR, will need a lot of testing, and may need mavlink1 still forced on gimbal link after all this?

as-yet-untested build or this PR here: https://drive.google.com/drive/folders/1hy9jLlHVdYpPpewb_FdBi2MeaIyGd3Pn?usp=sharing
Please know how to do a factory-reset of your solo if u install thies, and do NOT use --golden under any curcumstances, as you'll probably want to revert after this totally untested code.

testing :
i have the above solo/tx firmware flashed to my test hardware, and  then on-top, i have a also-test ardu-master .apj for the cube that disables private channels and forces mavlink1 etc from here:  https://github.com/ArduPilot/ardupilot/issues/20923#issuecomment-1219031549
so its a multi-stage update of whole-tx,whole-controller,then Cube-only apj update .
mode changes work -  eg press-hold-A-till-first-rumble  gets STABILISE etc
gimbal tilt control from tx works
"Hold FLY to start" on TX goes thru the motions on the screen, but does not arm/fly
"Arm: Throttle too high" on MP when trying to arm, and not holding throttle to the very bottom.
'FENCE_MARGIN is less than FENCE_RADIUS' - seems that FENCE_MARGIN=2 and  FENCE_RADIUS=0 are incompatible, i set both to zero for this test, we might need to bake these in with different default/s to prevent this message.


incorrect continous color mapping on maps if min and max is same

Version
5.0.0
Steps to reproduce
Navigate to https://echarts.apache.org/examples/en/editor.html?c=map-usa
Change the visualMap and data options to the following and leave the rest as is.

visualMap options

       visualMap: {
            left: 'right',
            min: 4822023,
            max: 4822023,
            inRange: {
                color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
            },
            text: ['High', 'Low'],           // 文本，默认为数值文本
            calculable: true
        },

series data options

                data:[
                    {name: 'Alabama', value: 4822023},
                ]

What is expected?
Expect to see only the single state with data to have the color.
What is actually happening?
Entire map has the same color including the state with the data.

If I set the min and max to be different values, the coloring works fine. However,  in my case the min/max are automatically calculated based on the data and if there is data for a single state, this happens.

I think in this case, the last color should be used instead of the center one, similar to the case of degenerated CSS gradient.

This will make the gradient look like a solid-color image equal to the color of the last color-stop, ...

I think the main issue here is only Alabama should be expected to have color. But instead, all regions have colors now when min, max is same.

@pissang is right. I took the demo as piecewise visualMap by mistake.


Feature/uar 392 youre about to review overseas entity information page

JIRA link
Change description
Work checklist

[ ] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear.  A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

Please add a link to JIRA and a brief change description (in above PR description).


Improve User-Facing Readmes / API Docs

I started documenting libsweep here. Needs some serious polishing.
Other sub-projects are sparse in documentation, too.

Done with

https://github.com/scanse/sweep-sdk/blob/master/libsweep/README.md
https://github.com/scanse/sweep-sdk/blob/master/sweeppy/README.md
https://github.com/scanse/sweep-sdk/blob/master/sweepjs/README.md


[bug] can't make it work with simple use-case.

Describe the bug
Exception: The file where contributors are trying to be written 'README.md' does not have '### Contributors
I've tried with /README.md and README.md, I've tried with just ### Contributors section with just blank line just after. Nothing is working.
To Reproduce
name: Add contributors
on:
  schedule:
    - cron:  '20 20 * * *'
  push:
    branches:
      - dev

jobs:
  add-contributors:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: BobAnkh/add-contributors@master
      with:
        REPO_NAME: 'zoph-io/awscon-onepager'
        CONTRIBUTOR: '### Contributors'
        COLUMN_PER_ROW: '6'
        ACCESS_TOKEN: ${{secrets.GITHUB_TOKEN}}
        IMG_WIDTH: '60'
        FONT_SIZE: '10'
        PATH: 'README.md'
        COMMIT_MESSAGE: 'docs(README): update contributors'
        AVATAR_SHAPE: 'round'

Expected behavior
Update contributors in README.md
Screenshots

Sorry I have been busy in the past few days. I'm looking into this bug now.

I have located the bug. I didn't support other branches like dev in the current version. I will quickly fix it in several hours with a new version.
Sorry for causing you the trouble.

@z0ph
I think I have fixed it. Please check.
You can use PATH: 'dev:/README.md' to specify the file not on default branch.

I didn't set it to detect current branch automatically. That is because the trigger-events have too many kinds, which is not easy to handle. But if you are interested in this work or if you have better ideas, please tell me. I would really like to imporve thie action.

Hi @BobAnkh
Thanks for this update, but it doesn't seem to work for me, maybe I'm wrong:

You can see my branch here: https://github.com/zoph-io/awscon-onepager/tree/dev
Thanks for your help!

@z0ph
Hi, I know what happens. In my action, I'm locating the part by searching something like ## Contributors\n\n, but here in your README.md, this is only one '\n' after ## Contributors.
This is kind of a bug. I will fix it right now. (Simply move this part in the middle of your markdown file will fix the problem, though)
Sorry for causing you the trouble.

@z0ph
Hi, I know what happens. In my action, I'm locating the part by searching something like ## Contributors\n\n, but here in your README.md, this is only one '\n' after ## Contributors.
This is kind of a bug. I will fix it right now. (Simply move this part in the middle of your markdown file will fix the problem, though)
Sorry for causing you the trouble.

It's working! Thanks!

@z0ph
Ok, I just want to tell you that I have fixed the bug just now.


Use a default (but configurable) test file for istio-csr

This will prevent us needing to add a new config file to be able to test a new version of istio
I deleted most of the config files because they were all identical. I kept the two which weren't the same as the others, just for historical reference.

/approve
/lgtm
Makes sense to just have one config file, it has not changed for any of the latest istio versions.


Array does not convert properly into new editor

When converting Latex Code inside an array is not recognized properly. -> see https://de.serlo.org/entity/repository/compare/97605/97614

Cannot reproduce


[FLINK-35868][mongo] Add MongoDB 6.0 & 7.0 tests

This closes FLINK-35868.
It allows Mongo CDC test cases running on 6.0.16 & 7.0.12 (and legacy 5.0.2).
Notice: since JUnit doesn't allow parameterized @ClassRule or static fields, so containers must be created / destroyed before / after each test case, which significantly slows down the. testing (~50 min.). More discussion is required on this.

@leonardBang @Jiabao-Sun PTAL

Shall we bump the driver version from 4.7.1 to 5.1.1 as well?

Shall we bump the driver version from 4.7.1 to 5.1.1 as well?

Done, bumped mongo-kafka version, too.

I'll investigate this.

Seems this commit https://github.com/mongodb/mongo-java-driver/commit/a03649cb24456f53db45e3a332c99d40a124748e changed return type of listCollectionNames and could not work properly with mongo-kafka-connect. Seems it's not 100% safe to use 5.9.1 too, since mongo-kafka still sticks to 5.7.x.
Any thoughts from @Jiabao-Sun?

Thanks @yuxiqian for the investigation.
How about bump the driver version to 4.11?


Add Contributors.md

Define guidelines and rules for contributing to the project.

Hey!!
If it's ok, I would like to work on this issue and add a general contributing.md file

Yes you can open a pull request.


Possible Powercell channel bug?

One of the channels in my Powercell network appears to be bugged.  It is not drawing or sending power.  When I insert the troubled channel card into any powercell, the power indicator disappears and shows a fantastically negative number.  When I remove the card, the power bar returns to normal.
Other things I have tried:
My powercells and other channels appear to be operating normally.
I have also borken and replaced them multiple times.
I have tried relogging completely.
I have plenty of power available.
I have tested it on another isolated system and the channel is still bugged.
I am running the latest version of Age of Engineering.
RFtools 1.1x-1.6.8
Rftools dimensions 1.1x-5.05
Here are some pictures if it helps.
https://imgur.com/gallery/6Zyaa
Incredible mods! Thanks for them!

That's an old version of rftools. This overflow bug has been fixed since. You exceeded 2 billion RF

Ahhh.  OK.  Hey thanks for the quick reply.  Cheers

Are you saying that if I exceed 2 billion accumulated RF transmitted it will bug out?  Or if it tries to remove or add power from a storage source greater than 2billion?

sounds like there was a bug when you exceeded 2billion rf using that old version.

yes and even in the latest version you cannot put more then 2 billion rf in

So the work around is not to have any power STORAGE greater than 2Billion RF?

Yes

Gotcha.  Thank you!


Very bad performance of TS and JS Language Features

Issue Type: Performance
I struggle with a very bad performance (I mean mostly intellisense) in VS Code recently so I started to dig down to find the root cause of the problem.
What I found was:

performance issues go away when I set javascript.validate.enable to false
performance issues go away when I rename my jsconfig.json to tsconfig.json

What's weird is that the problems occur only when using the jsconfig.json configuration file. Here's how it looks like:
{
  "compilerOptions": {
    "baseUrl": "./",
    "target": "es5",
    "paths": {
      "@page/*": ["src/page/*"],
      "@panel/*": ["src/panel/*"],
      "@shared/*": ["src/shared/*"]
    },
    "experimentalDecorators": true
  },
  "exclude": ["node_modules", ".next"]
}

When I rename the same file to tsconfig.json - the problems disappear.
The difference I in both approaches was visible in the TS Server Log - using jsconfig.json, the TS Server parsed ~400 more files than using the tsconfig.json version.
I attached the logs for specific configurations.
jsconfig.json
tsconfig.json
Additional info
VS Code version: Code 1.33.1 (51b0b28134d51361cf996d2f0a1c698247aeabd8, 2019-04-11T08:20:22.771Z)
OS version: Linux x64 4.15.0-47-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz (8 x 4326)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.61GB (3.97GB free)

Process Argv
--disable-extensions

Screen Reader
no

VM
0%

Extensions disabled

@sarneeh Thanks. When using a tsconfig, I believe that js files will not be processes (unless you set allowJS) so that would explain why perf improves when you rename the jsconfig to tsconfig
Can you try upgrading your workspace to use typescript@next by following these instructions. The new TS release fixes a number of performance bugs that could be causing this.
Also, can you share your project so we can try reproducing this on our side?

@mjbvz Unfortunately this is a private project and I can't share it with you. But I'll try to follow your instructions and do whatever I can to help you investigate this issue.

I've just tried the newest typescript version and there's a HUGE difference in performance in my case. I've also reverted back to a jsconfig.json and there's no lag at all.
I'll give myself a few days of work to find out how does it behave in the long-term to confirm that this solution solves this problem. Do you want this issue to be opened or can I close it if everything will work fine?

AFAIK the only difference between jsconfig.json and tsconfig.json is that the former implies allowJs: true by default.

@fatcerberus Yes. I've learned about that after creating this issue. Also, it did make sense that it made VSCode performance even worse (as it parsed much more files than the tsconfig, as my project has only js files). Anyways, I guess that this and many other issues involving VSCode intellisense performance may be related to typescript itself (as upgrading to the @next version helped me to get rid of this problem completely).

Sounds like the issue has been addressed - it's likely a result of the regression we saw with styled-components.

@DanielRosenwasser Yes. Thank you, everyone, for help in my problem :smiley:


Fix Fix distribute hint test with reorder cross join

when checking plan shape of distribute hint test, the shape of it does not changed but projection has changed. So it needed to be updated

run buildall


interpreter.state.can() does not work with createModel

Description
With createModel(), the typing of interpreter.state.can() seems not right.
Expected Result
state.can() should accept the EVENT names from createModel()
Actual Result

Argument of type 'string' is not assignable to parameter of type '{ text: string; type: "TEXT"; }'.ts(2345)

Reproduction
https://codesandbox.io/s/tender-https-vm798?file=/src/index.ts
Additional context
I have tried:
interpreter.state.can('TEXT')
interpreter.state.can(model.events.TEXT)

But without any luck.
type T = Parameters<typeof interpreter.state.can>[0]
// type T = {
//     text: string;
//     type: "TEXT";
// }

This is behaving as expected. state.can(...) accepts an event type of simple events, which are events that have no payloads; otherwise, it requires a full event.
A simple work-around:
interpreter.state.can({ type: 'TEXT', value: '' }) // dummy value

However, it makes sense for a use-case to be "I want to know if this event with any parameter will cause a transition to be selected". We have some changes (#2850) coming in that might permit this.
cc. @Andarist What do you think?

Thank you very much for the quick reply and the clear explanation!
So it seems that the below workaroun works:
interpreter.state.can(model.events.TEXT(''));

"I want to know if this event with any parameter will cause a transition to be selected"

And the above is what exactly I want, it would be great if we can have a compatible can('EVENT') to achieve that!

This has since been fixed.

Fantastic, thank you very much for the fix!


Faster point-correspondence search

The naive algorithm takes O(N^2) for O(N) candidate translations, and results in O(N^3).
A kd-tree-based algorithm will take O(N^2 log N) overall.

Now implemented as default


Integration crashing while communicating with Weidmüller Business (Wallbe backend)

Describe the bug
I am able to connect the Wallbox with your integration just fine - the values are beeing displayed  - then after a few seconds the integration seems to crash and to reboot.
To Reproduce
Hard to tell.
Expected behavior
No crashes :)
Screenshots

Additional context
The Wallbox uses a Wallbe-Backend which claims to be OCPP 1.6 compatible "
A part of the logfile:
2022-12-18 12:58:27.446 ERROR (MainThread) [custom_components.ocpp] Unexpected exception in connection to '': 'argument of type 'int' is not iterable'
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 920, in run
await asyncio.gather(*self.tasks)
File "/config/custom_components/ocpp/api.py", line 451, in post_connect
if prof.SMART in self._attr_supported_features:
TypeError: argument of type 'int' is not iterable
2022-12-18 12:58:27.496 INFO (MainThread) [ocpp] : receive message [3,"e9a5be5f-734e-4b9d-bd68-5c07375afb33",{"status":"Rejected"}]
2022-12-18 12:58:27.499 WARNING (MainThread) [custom_components.ocpp] Rejected while setting MeterValuesSampledData to Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature
2022-12-18 12:58:27.509 INFO (MainThread) [ocpp] : send [2,"d2b65ea1-d04d-47a6-92c6-95ba134c85d5","GetConfiguration",{"key":["MeterValueSampleInterval"]}]
2022-12-18 12:58:27.618 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 419, in post_connect
await self.configure(
File "/config/custom_components/ocpp/api.py", line 813, in configure
resp = await self.call(req)
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 271, in call
await self._send(call.to_json())
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 325, in _send
await self._connection.send(message)
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 635, in send
await self.ensure_open()
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 953, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedOK: sent 1000 (OK); then received 1000 (OK)
2022-12-18 12:58:29.045 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:58:34.047 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:58:39.054 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:58:49.065 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:59:19.080 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:59:24.081 WARNING (MainThread) [homeassistant.helpers.entity] Update of camera.xiaomi_cloud_map_extractor is taking over 10 seconds
2022-12-18 12:59:24.084 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 12:59:24.252 WARNING (SyncWorker_0) [custom_components.xiaomi_cloud_map_extractor.camera] Unable to retrieve map data
2022-12-18 12:59:28.238 INFO (MainThread) [ocpp] : receive message [2,"16","BootNotification",{"chargePointVendor":"wallbe","chargePointModel":"Smart Charge Control","chargePointSerialNumber":"00000000596","firmwareVersion":"BF-01.04.13"}]
2022-12-18 12:59:28.242 INFO (MainThread) [ocpp] : send [3,"16",{"currentTime":"2022-12-18T12:59:28Z","interval":3600,"status":"Accepted"}]
2022-12-18 12:59:28.561 INFO (MainThread) [ocpp] : receive message [2,"17","StatusNotification",{"connectorId":0,"errorCode":"NoError","status":"Available","vendorErrorCode":"0","timestamp":"2022-12-18T12:59:28.002Z"}]
2022-12-18 12:59:28.566 INFO (MainThread) [ocpp] : send [3,"17",{}]
2022-12-18 12:59:28.688 INFO (MainThread) [ocpp] : receive message [2,"18","StatusNotification",{"connectorId":1,"errorCode":"NoError","status":"Preparing","vendorErrorCode":"0","timestamp":"2022-12-18T12:59:28.003Z"}]
2022-12-18 12:59:28.692 INFO (MainThread) [ocpp] : send [3,"18",{}]
2022-12-18 12:59:29.966 INFO (MainThread) [ocpp] : send [2,"78f2bb8c-c5b8-4f00-bc68-bbcb0c354b3c","GetConfiguration",{"key":["SupportedFeatureProfiles"]}]
2022-12-18 12:59:30.032 INFO (MainThread) [ocpp] : receive message [3,"78f2bb8c-c5b8-4f00-bc68-bbcb0c354b3c",{"configurationKey":[{"key":"SupportedFeatureProfiles","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 12:59:30.034 WARNING (MainThread) [custom_components.ocpp] Unknown feature profile detected ignoring: true
2022-12-18 12:59:30.037 INFO (MainThread) [ocpp] : send [2,"a3fb4c6e-d0ad-41af-82b9-4ea3c7124737","GetConfiguration",{"key":["NumberOfConnectors"]}]
2022-12-18 12:59:30.107 INFO (MainThread) [ocpp] : receive message [3,"a3fb4c6e-d0ad-41af-82b9-4ea3c7124737",{"configurationKey":[{"key":"NumberOfConnectors","readonly":true,"value":"1"}],"unknownKey":[]}]
2022-12-18 12:59:30.110 INFO (MainThread) [ocpp] : send [2,"51ec4307-76e1-42d5-8296-083740551d1a","GetConfiguration",{"key":["HeartbeatInterval"]}]
2022-12-18 12:59:30.237 INFO (MainThread) [ocpp] : receive message [3,"51ec4307-76e1-42d5-8296-083740551d1a",{"configurationKey":[{"key":"HeartbeatInterval","readonly":false,"value":"3600"}],"unknownKey":[]}]
2022-12-18 12:59:30.245 INFO (MainThread) [ocpp] : send [2,"728dd2d7-8912-4356-ad74-025887f59bf4","GetConfiguration",{"key":["MeterValuesSampledData"]}]
2022-12-18 12:59:30.363 INFO (MainThread) [ocpp] : receive message [3,"728dd2d7-8912-4356-ad74-025887f59bf4",{"configurationKey":[{"key":"MeterValuesSampledData","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 12:59:30.369 WARNING (MainThread) [custom_components.ocpp] MeterValuesSampledData is a read only setting
2022-12-18 12:59:30.376 INFO (MainThread) [ocpp] : send [2,"e6ab4db5-adb5-40c6-814a-03677678dc27","GetConfiguration",{"key":["SupportedFeatureProfiles"]}]
2022-12-18 12:59:30.437 INFO (MainThread) [ocpp] : receive message [3,"e6ab4db5-adb5-40c6-814a-03677678dc27",{"configurationKey":[{"key":"SupportedFeatureProfiles","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 12:59:30.442 WARNING (MainThread) [custom_components.ocpp] Unknown feature profile detected ignoring: true
2022-12-18 12:59:30.450 INFO (MainThread) [ocpp] : send [2,"02de4bbf-abd0-4a77-91ee-c950f7c84959","ChangeConfiguration",{"key":"MeterValuesSampledData","value":"Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature"}]
2022-12-18 12:59:30.570 INFO (MainThread) [ocpp] : receive message [3,"02de4bbf-abd0-4a77-91ee-c950f7c84959",{"status":"Rejected"}]
2022-12-18 12:59:30.573 WARNING (MainThread) [custom_components.ocpp] Rejected while setting MeterValuesSampledData to Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature
2022-12-18 12:59:30.588 INFO (MainThread) [ocpp] : send [2,"04a5408d-eed5-4fd2-ae07-8c294a9e9368","GetConfiguration",{"key":["NumberOfConnectors"]}]
2022-12-18 12:59:30.694 INFO (MainThread) [ocpp] : receive message [3,"04a5408d-eed5-4fd2-ae07-8c294a9e9368",{"configurationKey":[{"key":"NumberOfConnectors","readonly":true,"value":"1"}],"unknownKey":[]}]
2022-12-18 12:59:30.696 INFO (MainThread) [ocpp] : send [2,"97159642-3e36-4ddd-bd07-3a05bb028249","GetConfiguration",{"key":["MeterValueSampleInterval"]}]
2022-12-18 12:59:30.770 INFO (MainThread) [ocpp] : receive message [3,"97159642-3e36-4ddd-bd07-3a05bb028249",{"configurationKey":[{"key":"MeterValueSampleInterval","readonly":false,"value":"60"}],"unknownKey":[]}]
2022-12-18 12:59:30.772 INFO (MainThread) [ocpp] : send [2,"5ec69f3c-c1a6-423d-9a1d-83bd50d34776","GetConfiguration",{"key":["HeartbeatInterval"]}]
2022-12-18 12:59:30.898 INFO (MainThread) [ocpp] : receive message [3,"5ec69f3c-c1a6-423d-9a1d-83bd50d34776",{"configurationKey":[{"key":"HeartbeatInterval","readonly":false,"value":"3600"}],"unknownKey":[]}]
2022-12-18 12:59:30.912 INFO (MainThread) [ocpp] : send [2,"be70f900-de3d-4683-8f3e-4f4e145ddea7","GetConfiguration",{"key":["ClockAlignedDataInterval"]}]
2022-12-18 12:59:31.024 INFO (MainThread) [ocpp] : receive message [3,"be70f900-de3d-4683-8f3e-4f4e145ddea7",{"configurationKey":[{"key":"ClockAlignedDataInterval","readonly":true,"value":"0"}],"unknownKey":[]}]
2022-12-18 12:59:31.030 WARNING (MainThread) [custom_components.ocpp] ClockAlignedDataInterval is a read only setting
2022-12-18 12:59:31.036 INFO (MainThread) [ocpp] : send [2,"5be84183-1051-4e48-b58e-1110bd118841","GetConfiguration",{"key":["MeterValuesSampledData"]}]
2022-12-18 12:59:31.105 INFO (MainThread) [ocpp] : receive message [3,"5be84183-1051-4e48-b58e-1110bd118841",{"configurationKey":[{"key":"MeterValuesSampledData","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 12:59:31.110 WARNING (MainThread) [custom_components.ocpp] MeterValuesSampledData is a read only setting
2022-12-18 12:59:31.128 INFO (MainThread) [ocpp] : send [2,"0490b01d-1a5f-4e46-9841-3fbfeb5d30d8","ChangeConfiguration",{"key":"ClockAlignedDataInterval","value":"900"}]
2022-12-18 12:59:31.277 INFO (MainThread) [ocpp] : receive message [3,"0490b01d-1a5f-4e46-9841-3fbfeb5d30d8",{"status":"Rejected"}]
2022-12-18 12:59:31.289 WARNING (MainThread) [custom_components.ocpp] Rejected while setting ClockAlignedDataInterval to 900
2022-12-18 12:59:31.299 INFO (MainThread) [ocpp] : send [2,"3cb9692c-ca3c-48cb-ad63-a7e2e1bf7ff6","ChangeConfiguration",{"key":"MeterValuesSampledData","value":"Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature"}]
2022-12-18 12:59:31.310 ERROR (MainThread) [custom_components.ocpp] Unexpected exception in connection to '': 'argument of type 'int' is not iterable'
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 920, in run
await asyncio.gather(*self.tasks)
File "/config/custom_components/ocpp/api.py", line 451, in post_connect
if prof.SMART in self._attr_supported_features:
TypeError: argument of type 'int' is not iterable
2022-12-18 12:59:31.355 INFO (MainThread) [ocpp] : receive message [3,"3cb9692c-ca3c-48cb-ad63-a7e2e1bf7ff6",{"status":"Rejected"}]
2022-12-18 12:59:31.365 WARNING (MainThread) [custom_components.ocpp] Rejected while setting MeterValuesSampledData to Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature
2022-12-18 12:59:31.370 INFO (MainThread) [ocpp] : send [2,"3e13e34e-66e0-47cd-b550-d62996cb4a89","GetConfiguration",{"key":["MeterValueSampleInterval"]}]
2022-12-18 12:59:31.483 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 419, in post_connect
await self.configure(
File "/config/custom_components/ocpp/api.py", line 813, in configure
resp = await self.call(req)
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 271, in call
await self._send(call.to_json())
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 325, in _send
await self._connection.send(message)
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 635, in send
await self.ensure_open()
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 953, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedOK: sent 1000 (OK); then received 1000 (OK)
2022-12-18 13:00:19.141 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2022-12-18 13:00:32.092 INFO (MainThread) [ocpp] : receive message [2,"19","BootNotification",{"chargePointVendor":"wallbe","chargePointModel":"Smart Charge Control","chargePointSerialNumber":"00000000596","firmwareVersion":"BF-01.04.13"}]
2022-12-18 13:00:32.101 INFO (MainThread) [ocpp] : send [3,"19",{"currentTime":"2022-12-18T13:00:32Z","interval":3600,"status":"Accepted"}]
2022-12-18 13:00:32.268 INFO (MainThread) [ocpp] : receive message [2,"20","StatusNotification",{"connectorId":0,"errorCode":"NoError","status":"Available","vendorErrorCode":"0","timestamp":"2022-12-18T13:00:32.002Z"}]
2022-12-18 13:00:32.272 INFO (MainThread) [ocpp] : send [3,"20",{}]
2022-12-18 13:00:32.392 INFO (MainThread) [ocpp] : receive message [2,"21","StatusNotification",{"connectorId":1,"errorCode":"NoError","status":"Preparing","vendorErrorCode":"0","timestamp":"2022-12-18T13:00:32.003Z"}]
2022-12-18 13:00:32.394 INFO (MainThread) [ocpp] : send [3,"21",{}]
2022-12-18 13:00:33.822 INFO (MainThread) [ocpp] : send [2,"535dd3e2-0c3a-44fd-a9e4-e002405667f2","GetConfiguration",{"key":["SupportedFeatureProfiles"]}]
2022-12-18 13:00:33.886 INFO (MainThread) [ocpp] : receive message [3,"535dd3e2-0c3a-44fd-a9e4-e002405667f2",{"configurationKey":[{"key":"SupportedFeatureProfiles","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 13:00:33.891 WARNING (MainThread) [custom_components.ocpp] Unknown feature profile detected ignoring: true
2022-12-18 13:00:33.898 INFO (MainThread) [ocpp] : send [2,"830407a0-232d-49e7-beeb-3df9522b9a75","GetConfiguration",{"key":["NumberOfConnectors"]}]
2022-12-18 13:00:34.012 INFO (MainThread) [ocpp] : receive message [3,"830407a0-232d-49e7-beeb-3df9522b9a75",{"configurationKey":[{"key":"NumberOfConnectors","readonly":true,"value":"1"}],"unknownKey":[]}]
2022-12-18 13:00:34.019 INFO (MainThread) [ocpp] : send [2,"ff79c403-729f-4e83-b6b0-9ee79ba116e4","GetConfiguration",{"key":["HeartbeatInterval"]}]
2022-12-18 13:00:34.089 INFO (MainThread) [ocpp] : receive message [3,"ff79c403-729f-4e83-b6b0-9ee79ba116e4",{"configurationKey":[{"key":"HeartbeatInterval","readonly":false,"value":"3600"}],"unknownKey":[]}]
2022-12-18 13:00:34.096 INFO (MainThread) [ocpp] : send [2,"666f3a1f-77fb-4911-ba7b-00cfaa2e0515","GetConfiguration",{"key":["MeterValuesSampledData"]}]
2022-12-18 13:00:34.214 INFO (MainThread) [ocpp] : receive message [3,"666f3a1f-77fb-4911-ba7b-00cfaa2e0515",{"configurationKey":[{"key":"MeterValuesSampledData","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 13:00:34.219 WARNING (MainThread) [custom_components.ocpp] MeterValuesSampledData is a read only setting
2022-12-18 13:00:34.226 INFO (MainThread) [ocpp] : send [2,"9f7dd331-8d7d-45df-a8c1-473ea5a4cd27","GetConfiguration",{"key":["SupportedFeatureProfiles"]}]
2022-12-18 13:00:34.340 INFO (MainThread) [ocpp] : receive message [3,"9f7dd331-8d7d-45df-a8c1-473ea5a4cd27",{"configurationKey":[{"key":"SupportedFeatureProfiles","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 13:00:34.345 WARNING (MainThread) [custom_components.ocpp] Unknown feature profile detected ignoring: true
2022-12-18 13:00:34.352 INFO (MainThread) [ocpp] : send [2,"39a1dfba-a99f-4517-9fe9-6739505582d9","ChangeConfiguration",{"key":"MeterValuesSampledData","value":"Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature"}]
2022-12-18 13:00:34.420 INFO (MainThread) [ocpp] : receive message [3,"39a1dfba-a99f-4517-9fe9-6739505582d9",{"status":"Rejected"}]
2022-12-18 13:00:34.423 WARNING (MainThread) [custom_components.ocpp] Rejected while setting MeterValuesSampledData to Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature
2022-12-18 13:00:34.428 INFO (MainThread) [ocpp] : send [2,"97d93641-2e28-4eec-b348-bfb260e16035","GetConfiguration",{"key":["NumberOfConnectors"]}]
2022-12-18 13:00:34.545 INFO (MainThread) [ocpp] : receive message [3,"97d93641-2e28-4eec-b348-bfb260e16035",{"configurationKey":[{"key":"NumberOfConnectors","readonly":true,"value":"1"}],"unknownKey":[]}]
2022-12-18 13:00:34.553 INFO (MainThread) [ocpp] : send [2,"f57d0d48-4ae4-4224-a887-df7bdc8babf4","GetConfiguration",{"key":["MeterValueSampleInterval"]}]
2022-12-18 13:00:34.672 INFO (MainThread) [ocpp] : receive message [3,"f57d0d48-4ae4-4224-a887-df7bdc8babf4",{"configurationKey":[{"key":"MeterValueSampleInterval","readonly":false,"value":"60"}],"unknownKey":[]}]
2022-12-18 13:00:34.679 INFO (MainThread) [ocpp] : send [2,"475663ea-fae4-4e37-a6cd-64d5fd809e2e","GetConfiguration",{"key":["HeartbeatInterval"]}]
2022-12-18 13:00:34.748 INFO (MainThread) [ocpp] : receive message [3,"475663ea-fae4-4e37-a6cd-64d5fd809e2e",{"configurationKey":[{"key":"HeartbeatInterval","readonly":false,"value":"3600"}],"unknownKey":[]}]
2022-12-18 13:00:34.756 INFO (MainThread) [ocpp] : send [2,"42139e6a-3a32-437e-9547-e90bbf4e8297","GetConfiguration",{"key":["ClockAlignedDataInterval"]}]
2022-12-18 13:00:34.874 INFO (MainThread) [ocpp] : receive message [3,"42139e6a-3a32-437e-9547-e90bbf4e8297",{"configurationKey":[{"key":"ClockAlignedDataInterval","readonly":true,"value":"0"}],"unknownKey":[]}]
2022-12-18 13:00:34.879 WARNING (MainThread) [custom_components.ocpp] ClockAlignedDataInterval is a read only setting
2022-12-18 13:00:34.886 INFO (MainThread) [ocpp] : send [2,"edfc8665-7987-40e9-9392-754224eaa12e","GetConfiguration",{"key":["MeterValuesSampledData"]}]
2022-12-18 13:00:35.000 INFO (MainThread) [ocpp] : receive message [3,"edfc8665-7987-40e9-9392-754224eaa12e",{"configurationKey":[{"key":"MeterValuesSampledData","readonly":true,"value":"true"}],"unknownKey":[]}]
2022-12-18 13:00:35.004 WARNING (MainThread) [custom_components.ocpp] MeterValuesSampledData is a read only setting
2022-12-18 13:00:35.017 INFO (MainThread) [ocpp] : send [2,"16e5450f-1bfb-4017-8811-a90158165d61","ChangeConfiguration",{"key":"ClockAlignedDataInterval","value":"900"}]
2022-12-18 13:00:35.074 INFO (MainThread) [ocpp] : receive message [3,"16e5450f-1bfb-4017-8811-a90158165d61",{"status":"Rejected"}]
2022-12-18 13:00:35.075 WARNING (MainThread) [custom_components.ocpp] Rejected while setting ClockAlignedDataInterval to 900
2022-12-18 13:00:35.105 INFO (MainThread) [ocpp] : send [2,"08e11d44-2b95-48b5-8b25-f2d0288da05e","ChangeConfiguration",{"key":"MeterValuesSampledData","value":"Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature"}]
2022-12-18 13:00:35.115 ERROR (MainThread) [custom_components.ocpp] Unexpected exception in connection to '': 'argument of type 'int' is not iterable'
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 920, in run
await asyncio.gather(*self.tasks)
File "/config/custom_components/ocpp/api.py", line 451, in post_connect
if prof.SMART in self._attr_supported_features:
TypeError: argument of type 'int' is not iterable
2022-12-18 13:00:35.217 INFO (MainThread) [ocpp] : receive message [3,"08e11d44-2b95-48b5-8b25-f2d0288da05e",{"status":"Rejected"}]
2022-12-18 13:00:35.239 WARNING (MainThread) [custom_components.ocpp] Rejected while setting MeterValuesSampledData to Energy.Active.Import.Register,Energy.Reactive.Import.Register,Energy.Active.Import.Interval,Energy.Reactive.Import.Interval,Power.Active.Import,Power.Reactive.Import,Power.Offered,Power.Factor,Current.Import,Current.Offered,Voltage,Frequency,SoC,Temperature
2022-12-18 13:00:35.276 INFO (MainThread) [ocpp] : send [2,"485407b6-566d-4b2e-8ead-bc53b31b07e2","GetConfiguration",{"key":["MeterValueSampleInterval"]}]
2022-12-18 13:00:35.358 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/ocpp/api.py", line 419, in post_connect
await self.configure(
File "/config/custom_components/ocpp/api.py", line 813, in configure
resp = await self.call(req)
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 271, in call
await self._send(call.to_json())
File "/usr/local/lib/python3.10/site-packages/ocpp/charge_point.py", line 325, in _send
await self._connection.send(message)
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 635, in send
await self.ensure_open()
File "/usr/local/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 953, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedOK: sent 1000 (OK); then received 1000 (OK)

It looks like your charger is not ocpp compliant, read through thread #442 by way of example. You will need to go through and comment out the messages it does not support.

Alright - thank you for pointing me into the right direction.
I also asked the vendor for a firmware upgrade and reported the problems with the OCPP interface - but i doubt, that they will be of much help because they even declined me any additional information about the backend at all - or even a password to access the web frontend (luckily the password was available somewhere on the internet)
I will debug alongsinde your mentioned thread and when I am finished write a guide what to do exactly for others to reproduce to get this one working.
I appreciate your all time for looking into my problem.

You could also try adding self._attr_supported_features |= prof.CORE before line 511 in api.py

I removed the integration altogether and reinstalled it. I chose another version to install "main" and activated the options on the bottom.
I activated the option to skip the OCPP-scheme-validation and to force the Smart-Charging-Profile. (Try and error)
Since then I got the Wallbox functioning without any hassle or reboot so far.
I think with these options this box can be added to the supported devices just fine - when its desired I can summarize which options are available and which are not (e.g. SoC or Frequency are not returned as values so i removed them from the dashboard.
The slider for setting the Maximum Current is available and moveable - I wasn't yet able to confirm, that this is really set in the box though. Controlling the charging and the returning of values works like a charm.
This issue (which wasn't really one) could therefore be closed.
If you need me to collect some data for the inclusion into your documentation please tell me - I will do so immediately.


add dependencies in the .app.src file

Trying to make a release with influx_udp breaks, because its application dependencies are not specified in the influx_udp.app file. After this change, I'm able to run a release that includes influx_udp.

Updated to remove eunit_formatters from the list.

I think that this is still broken because you are using ulitos outside of tests, but you are not including it as part of the application dependency so it won't be included in the release.

ulitos is not an application (as long as poolboy), it should not be included into {applications, ...}. Otherwise you won't be able to start influx_udp receiving {error, {not_started, ulitos}} and {error, {not_started, poolboy}}.


Add lighthouse speed audit to builds, cancel if specific thresholds are not met, document this

@aaronhans has this work started? how will we implement or install? Is there time to work on this during our sprint?


feat: Support different tags per resource.

Description
Add new vars to support different tags per resource:

db_instance_tags
db_option_group_tags
db_parameter_group_tags
db_subnet_group_tags

Motivation and Context
Sometimes we need to add specific tags to DB instances for auditing and security reasons but we can't add the same tags to other resources because of the same reason.
Breaking Changes
N/A
How Has This Been Tested?

[x] I have tested and validated these changes using one or more of the provided examples/* projects

oh shoot, didn't see the pre-commit check fail. @ruben0626 could you run pre-commit run -a on your changes please?

oh shoot, didn't see the pre-commit check fail. @ruben0626 could you run pre-commit run -a on your changes please?

done: https://github.com/terraform-aws-modules/terraform-aws-rds/pull/319/commits/96a113c23a6b735bc7c7f94d4e68cb66401e803d

Thanks, @ruben0626 !
v2.34.0 has been just released.


C# dev kit bug

Type: Bug
Cna't donwload the C# dev kit on mac. It throws the 2023-11-08 16:29:26.653 [error] end of central directory record signature not found: CorruptZip: end of central directory record signature not found error
VS Code version: Code 1.84.1 (Universal) (2b35e1e6d88f1ce073683991d1eff5284a32690f, 2023-11-06T12:37:18.666Z)
OS version: Darwin x64 21.6.0
Modes:

Hi @kipraskrasilnikas
Thank you for opening the issue. Sorry to hear you are experiencing an issue with searching. It appears to be specific to VS Code editor and tools if we are understanding correctly. It is best to reach out VS Code team at  https://github.com/microsoft/vscode/issues.


Speed Inference

Guess opponent mon's speeds based on battle logs

Finished. It still makes some assumptions, but should generally be good to use

https://github.com/caymansimpson/EliteFurretAI/commit/bb9daba74f3b741d394e3feea110e4b5fe4a9575
https://github.com/caymansimpson/EliteFurretAI/commit/0ffa8ee45af77392fde75b05fcbc7602d6e1a58e


DataFrame.drop() takes from 1 to 2 positional arguments but 3 were given

Description of the bug
I get the error "DataFrame.drop() takes from 1 to 2 positional arguments but 3 were given" when i try yo use the pywedge library.
To Reproduce
Paste the following code in jupityer notebook
%pip install pywedge
import pywedge as pw
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
charts = pw.Pywedge_Charts(df, c = None, y = 'embark_town')
charts.make_charts()
Expected behavior
I'm supposed to get the charts
Screenshots

Desktop (please complete the following information):

OS: Windows 11
Browser - Chrome

im having the same issue, did you manage to fix it?


question about sm16208SJ chips

I have a 64x64 panel that has sm16208SJ chips. Are these supported? Or same issue as sm1620B?
Thanks

The driver sm16208SJ is supported.
However, to confirm that your panel will work, we need to know the type of the second driver as well as such a parameter as the “number of scans”

I can confirm that 64x64 panel with SM16208S work as well

I can confirm that 64x64 panel with SM16208S work as well

I'm going to amend my prior comment.  There must be a breaking change or PR that needs to be merged as the current version of ESP32-HUB75-MatrixPanel-DMA libraries do not work with the SM16208S.  There is a version of the library that is being distributed in https://www.waveshare.com/wiki/RGB-Matrix-P4-64x32.  Specifically in this zip https://files.waveshare.com/upload/6/6d/RGB-Matrix-P4-64x32-Demo.zip

64x64 panel with SM16208S

Too little information. As I said earlier, in addition to the number of pixels and the driver type, you need to know, at least, the number of scans and the type of multiplexer.

Specifically in this zip ...  demo that does work with this chip

In your first comment you wrote about 64x64 panel, but the demo is for 64x32. It is a different things. And again, you say nothing about scans and multiplexor. Without this, your message is of little value.

Can't that library just be used then?

Sure, but it won't receive any of your updates, folks that are attempting to use your library and these panels will continually run into the same issue.  Maybe they will find this ticket, but that's a needle in a haystack.
I don't know enough about your library, I haven't dug that deep into it.  What is the down side to adding the lower frequency to the clk_speed array?

If that's the only change to get these panels to run with this library then all you need to do is add the 8mhz option into the enum.
Feel free to raise a pull request.


Update logback-classic to 1.2.8

Updates ch.qos.logback:logback-classic from 1.2.7 to 1.2.8.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (1.2.7).
You might want to review and update them manually.
docs/Gemfile
docs/Gemfile.lock

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.qos.logback", artifactId = "logback-classic" } ]

labels: test-library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #237.


Dropbox: Use a Chooser/Picker instead of showing all files

Context
What we currently do to select a Dropbox file for synchronisation is to read all files from the user account and list the ones with the proper extension for the user to choose which one she wants.
The problem comes when the user has thousands of valid files. Not only listing files might timeout (2 minutes max) but the UI showing thousands of files is far from usable. See https://github.com/CartoDB/support/issues/1192 for an example.
I'm suggesting to use a Chooser instead and let the user explore all her files from Dropbox and simply selecting one using their UI, then use that file id to continue with the import.
This probably requires changes in design, front-end and backend and rethink the flow for providers. Google Drive has also a Picker widget and others providers might too.

It appears editor is already using the Chooser at some points, for example to pick up images:

IMO this is not only way faster but also more easy to navigate once you have a lot of files in your Dropbox account.

This should be implemented to the other connectors: BOX (related to this GIS SE question) and GDrive.


mailisearch

Related product team resources: PRD (internal only)
Related product discussion:
Motivation

Usage

TODO

Reminders when modifying the Setting API

[ ] Ensure the new setting route is at least tested by the test_setting_routes macro
[ ] Ensure Analytics are fully implemented

[ ] /settings/my-new-setting configurated in the make_setting_routes macro
[ ] global /settings route configurated in the update_all function

[ ] Ensure the dump serializing is consistent with the /settings route serializing, e.g., enums case can be different (camelCase in route and PascalCase in the dump)

Special cases when adding a setting for an experimental feature

[ ] ⚠ API stability: The setting does not appear on the main settings route when the feature has never been enabled (e.g. mark it Unset when returned from the index in this situation. See an example)
[ ] The setting cannot be set when the feature is disabled, either by the main settings route or the subroute (see validate_settings function)
[ ] If possible, the setting is reset when the feature is disabled (hard if it requires reindexing)

Impacted teams

Closing, looks like spam


Please update the directions.

[Enter feedback here]
DEPRECATED I think!
MS has changed its UX, docs here don't reflect the changes.
You click on the Virtual network > settings > subnets.  SUBNETS is no longer visible on the column on the left as stated in the document.

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

ID: b8332806-35c4-26e5-56e6-0286d728ad45
Version Independent ID: ce76cee4-5629-7439-309c-9b9705891b57
Content: Add, change, or delete a subnet
Content Source: articles/virtual-network/virtual-network-manage-subnet.md
Service: virtual-network
GitHub Login: @asudbring
Microsoft Alias: allensu

@cslammy
Thanks for your feedback! We will investigate and update as appropriate.

@cslammy
I'm going to assign this to the document author so they can take a look at it accordingly.
@asudbring
Can you please check and add your comments on this doc update request as applicable.

Thanks for your dedication to our documentation. We have created an internal work item in our backlog to resolve this issue. If you determine another possible update to our documentation, please don't hesitate to reach out again.
#please-close


Suggestion: Profile name on the Home page

Perhaps I have too many profiles, but its nice to know who you are about to post as.

I have quite a handful too. PR #28 should help

This is fully fixed in my opinion.


Colour pallete

Hi. I am thinking about colours adiusting / editing options like in TIC - 80 or similiar. It would be nice to make sprites from more than 15 of them.
P.S - Could you make black colour as not transparent also?

There are some plans to allow editing the palette, but not when running your game.
You can make the black color not trasnparent by calling palt(0,false), visit: http://liko-12.readthedocs.io/en/latest/GPU/palt/

Custom palettes support has been added in 6de12327e43cce90ef020fe32da75bc059e0f1f7, It will be available in PRE_06 :tada:


runtime: cgo check ignores type's ptrdata field

The cgo check code in cgoCheckTypedBlock in runtime/cgocheck.go, in the case where kindGCProg is not set, ignores the type's ptrdata field.  It assumes that the gcdata field is valid for the entire size of the type.  I think this means that in some cases cgoCheckTypedBlock might mistake a non-pointer value for a pointer, potentially triggering an incorrect panic.

No actual failure here. While I certainly believe you, maybe this can wait until it happens and be in Go 1.6.3.

@ianlancetaylor do we want this in Go 1.6.3? It hasn't been cherry-picked.

We don't want this in 1.6.3.  Changing the milestone.


Upgrade Kuberntes version to v1.15.0

Upgrade Kuberntes version to v1.15.0, and also change the CRI api to "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" since it has been moved to Kubernetes staging.

applied lgtm label based on https://github.com/kubernetes-sigs/cri-tools/pull/478#pullrequestreview-255019107.


Support the duration type

Support for columns of the duration native type was merged into Scylla in scylladb/scylla@509626fe08a49bf9312d1abb6f888c97cbadba1a.
The corresponding commit to the 3.X branch of Cassandra also updated cqlsh to support the duration type.
This repository needs to be updated to also include this support, though I'm not sure of the best way to do this. @penberg or @duarten?

I'm not sure either. Either cherry-pick those commits to cqlshlib or fast forward the repo, but I'm not sure what, if any, nefarious side-effects this may have.

@hakuch Since the duration type is still in beta, I think we can just wait a bit on this, no? I think we  need to sync up the repository with Apache Cassandra soon anyway, so we'd get support for duration via that.

@penberg Sure. I'll leave this issue open so that we can all get the satisfaction of closing it once the repository is updated. Thanks!


chore: Allow to run tests in parallel using pytest-xdist

pytest-xdist allows to run the test in parallel.
As the test suite will grow, it might be handy for little cost in terms of maintenance.

I used to to use it, nothing against, thanks :).


when adding the new version then throwing the bellow issue.

Resolving dependencies...
Because insta_assets_picker >=1.6.0 depends on extended_image ^8.1.0 which depends on extended_image_library ^3.6.0, insta_assets_picker >=1.6.0 requires extended_image_library ^3.6.0.
And because extended_image_library >=3.5.3 <4.0.0-dev depends on http_client_helper ^3.0.0 which depends on http ^1.0.0, insta_assets_picker >=1.6.0 requires http ^1.0.0.
So, because secondfit depends on both http ^0.13.5 and insta_assets_picker ^2.1.0, version solving failed.
You can try the following suggestion to make the pubspec resolve:

Consider downgrading your constraint on insta_assets_picker: flutter pub add insta_assets_picker:^1.5.2

when change the package version insta_assets_picker:^1.5.2 this thwn issue is gone but throwing the bellow error

Running Gradle task 'assembleDebug'...
../../../.pub-cache/hosted/pub.dev/extended_image-8.0.2/lib/src/image/painting.dart:202:13: Error: 'ImageTilingInfo' isn't a type.
final ImageTilingInfo info =
^^^^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/extended_image-8.0.2/lib/src/image/painting.dart:203:11: Error: Method not found: 'createTilingInfo'.
createTilingInfo(repeat, rect, destinationRect, sourceRect);
^^^^^^^^^^^^^^^^
Target kernel_snapshot failed: Exception
FAILURE: Build failed with an exception.

Where:
Script '/Users/mac/Downloads/flutter/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy' line: 1297

What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.

Process 'command '/Users/mac/Downloads/flutter/bin/flutter'' finished with non-zero exit value 1

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 6s
Exception: Gradle task assembleDebug failed with exit code 1

So, because secondfit depends on both http ^0.13.5 and insta_assets_picker ^2.1.0, version solving failed.

The error is describing the issue, you should upgrade the version of the http package to at least ^1.0.0 in your pubspec


Centralize and unify getSubset error checking

The fix in #523 did not cover all cases, as found by subsequent go-fuzz runs.
@wvanbergen

Looks good :+1:


[Feature Request] Pagination

I personally haven't got to pagination with Strapi yet, but before, I used a Jekyll Plugin that did all the heavy lifting.
I know I will have to remove that plugin and use Strapi for pagination.

I am currently working on a my own solution and will share it at a later date.


Datastore Query returning only 'data' and no 'key'

Environment details

OS: OS X
Node.js version: 4
npm version: 3
google-cloud-node version: 0.43.4 (latest as of writing)

Steps to reproduce

Create a query for Datastore
Run query and log object

The entities returned from a query are no longer in the [ { key, data} ] format. For some reason it now just returns the contents of data.

Sorry for the confusion. Please see #1768.