big file upload above 2G failed.

localstack is running on docker desktop on windows.
here is localstack suspicious log
localStack.txt

What version of localstack-persist are you using?

i have tried 3 3.3.0 latest
every recently version all the same.
and i think this is because of mulitpart upload
i modify configuration of aws s3
s3 =
max_concureent_requests = 1
max_bandwidth = 10MB/s
multipart_threshold = 3GB
now it failed at first time always. and try again sometime completed.
error happen
2024-04-23T11:28:49.288 ERROR --- [ead-4 (_run)] localstack_persist.state   : Error while persisting state of service s3 localstack_container  | Traceback (most recent call last): localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/localstack_persist/state.py", line 114, in save_all_services_state localstack_container  |     self._save_service_state(service_name) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/localstack_persist/state.py", line 165, in _save_service_state localstack_container  |     service.accept_state_visitor(SaveStateVisitor(service_name)) localstack_container  |   File "/opt/code/localstack/localstack/services/plugins.py", line 133, in accept_state_visitor localstack_container  |     self._provider.accept_state_visitor(visitor) localstack_container  |   File "/opt/code/localstack/localstack/services/s3/v3/provider.py", line 312, in accept_state_visitor localstack_container  |     visitor.visit(s3_stores) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/localstack_persist/visitors.py", line 145, in visit localstack_container  |     self._save_state(state_container) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/localstack_persist/visitors.py", line 166, in _save_state localstack_container  |     serializer.serialize(state_container) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/localstack_persist/serialization/jsonpickle/serializer.py", line 30, in serialize localstack_container  |     envelope = {SER_VERSION_KEY: SER_VERSION, DATA_KEY: pickler.flatten(data)} localstack_container  |                                                         ^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 336, in flatten localstack_container  |     return self._flatten(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 675, in _ref_obj_instance localstack_container  |     return self._flatten_obj_instance(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 638, in _flatten_obj_instance localstack_container  |     self._flatten_dict_obj(obj, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 675, in _ref_obj_instance localstack_container  |     return self._flatten_obj_instance(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 638, in _flatten_obj_instance localstack_container  |     self._flatten_dict_obj(obj, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 675, in _ref_obj_instance localstack_container  |     return self._flatten_obj_instance(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 656, in _flatten_obj_instance localstack_container  |     return self._flatten_dict_obj(obj.__dict__, data) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 675, in _ref_obj_instance localstack_container  |     return self._flatten_obj_instance(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 656, in _flatten_obj_instance localstack_container  |     return self._flatten_dict_obj(obj.__dict__, data) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 675, in _ref_obj_instance localstack_container  |     return self._flatten_obj_instance(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 656, in _flatten_obj_instance localstack_container  |     return self._flatten_dict_obj(obj.__dict__, data) localstack_container  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 744, in _flatten_dict_obj localstack_container  |     flatten(k, v, data) localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 730, in _flatten_string_key_value_pair localstack_container  |     data[k] = self._flatten(v) localstack_container  |               ^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 296, in _flatten localstack_container  |     result = self._flatten_impl(obj) localstack_container  |              ^^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 356, in _flatten_impl localstack_container  |     return self._pop(self._flatten_obj(obj)) localstack_container  |                      ^^^^^^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 389, in _flatten_obj localstack_container  |     raise e localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 383, in _flatten_obj localstack_container  |     return flatten_func(obj) localstack_container  |            ^^^^^^^^^^^^^^^^^ localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/pickler.py", line 743, in _flatten_dict_obj localstack_container  |     for k, v in util.items(obj): localstack_container  |   File "/opt/code/localstack/.venv/lib/python3.11/site-packages/jsonpickle/util.py", line 560, in items localstack_container  |     for k, v in obj.items(): localstack_container  | RuntimeError: dictionary changed size during iteration
this is when completed upload happened log
localstack_container  | 2024-04-23T11:31:01.895 ERROR --- [  asgi_gw_15] l.aws.handlers.logging     : exception during call chain: [Errno 2] No such file or directory: '/persisted-data/s3/assets/local-uw2-s3-bg-patch/multiparts/j0WKZXu0zhE3dxwTmG-gTnugZiXvz5uKUEAyftQJ_qJaMruVxDEvA9ndN8HUiNJVSQDlucRvcmWmyGEej4l1MzaK7lWxKiWm6ZEzCpngNQgWvegpQT9RXO-i5UH_sExh/part-127' localstack_container  | 2024-04-23T11:31:01.896  INFO --- [  asgi_gw_15] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 500 (InternalError) localstack_container  | 2024-04-23T11:31:02.365  INFO --- [   asgi_gw_3] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 200 localstack_container  | 2024-04-23T11:31:02.637  INFO --- [  asgi_gw_10] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 404 (NoSuchUpload) localstack_container  | 2024-04-23T11:31:02.650  INFO --- [  asgi_gw_13] localstack.request.aws     : AWS s3.AbortMultipartUpload => 404 (NoSuchUpload) localstack_container  | 2024-04-23T11:31:05.856  INFO --- [ead-4 (_run)] localstack_persist.state   : Persisting state of service s3... localstack_container  | 2024-04-23T11:31:16.513  INFO --- [   asgi_gw_8] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 200 localstack_container  | 2024-04-23T11:31:16.660 ERROR --- [   asgi_gw_1] l.aws.handlers.logging     : exception during call chain: [Errno 2] No such file or directory: '/persisted-data/s3/assets/local-uw2-s3-bg-patch/multiparts/Hmlrlfp0VlEsn1OSmAXiAoYzy8XvwpQhi8ARrHahCOGGZhswxerKjNHG5pCxgGYhECSdUDEX8eJJu5n-IgrMYDLmVJrXLUK7_a1_F7hVi78LbX9kuBMPaWigSVHyJbpa/part-52' localstack_container  | 2024-04-23T11:31:16.662  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 500 (InternalError) localstack_container  | 2024-04-23T11:31:16.920  INFO --- [  asgi_gw_11] localstack.request.aws     : AWS s3.CompleteMultipartUpload => 404 (NoSuchUpload) localstack_container  | 2024-04-23T11:31:16.942  INFO --- [  asgi_gw_16] localstack.request.aws     : AWS s3.AbortMultipartUpload => 404 (NoSuchUpload) localstack_container  | 2024-04-23T11:31:17.780  INFO --- [ead-4 (_run)] localstack_persist.state   : Persisting state of service s3...

Could you run docker inspect gresau/localstack-persist:latest --format "{{.Created}}" and tell me the output? Then I can correlate it with the build that produced it to see what underlying version is being used

here is the result
F:\Docker\infra>docker inspect gresau/localstack-persist:latest --format "{{.Created}}"
2024-04-22T18:39:27.354322895Z

I think there are actually two separate bugs at play here:
1. A service's state can be modified while it's being persisted
This is what causes RuntimeError: dictionary changed size during iteration. It's more likely to occur when making many requests very quickly, which could occur when performing a multipart upload or even when uploading lots of small files. This is definitely a genuine bug in localstack-persist, and I'll try to fix it ASAP by adding some more locking.
2. Completing a multipart upload is slow, which can cause the AWS SDK/CLI to timeout and retry
This is what causes No such file or directory: '/persisted-data/s3/assets/local-uw2-s3-bg-patch/multiparts/...,  AWS s3.CompleteMultipartUpload => 500 (InternalError) and AWS s3.CompleteMultipartUpload => 404 (NoSuchUpload). A CompleteMultipartUpload request may take several minutes to complete in real AWS, so AWS periodically sends whitespace chars over the HTTP response to keep the connection alive. LocalStack does not do this, so the connection may time out, which will typically cause the client to retry the request. The retry may then fail, and the previous attempt may have already completed the multipart and cleaned up the original parts (i.e. the request is not idempotent).
This second bug is much more difficult to fix, especially because it's technically a bug in LocalStack itself, rather than in localstack-persist. But I don't think it affects plain LocalStack as much as it does localstack-persist, for two reasons:

localstack-persist stores S3 files in a docker bind mount, which is much slower than the regular filesystem in a docker container. This causes the CompleteMultipartUpload handling take longer
the default ephemeral S3 storage used by LocalStack (not localstack-persist) does not clean up the parts after a multipart upload is completed (https://github.com/localstack/localstack/blob/fcd5927e16f158ca0449c1194a151a12983f805a/localstack/services/s3/v3/storage/ephemeral.py#L295-L310). This makes it more idempotent, so if a request times out and a retry does occur, then the retry won't fail (unless it also times out, of course!).

However, you can probably work-around this second bug by increasing the client read timeout. e.g. if you're using the AWS CLI, you could set --cli-read-timeout 180 to increase the timeout to 3 min.

localstack-persist:latest and localstack-persist:3.4.0 both now have a fix for the first bug, so if you update your container's image then you should no longer get RuntimeError: dictionary changed size during iteration. Does that fix your problem?

Thanks for detail describe!!!!.
i was avoid this problem by reduce the size of the file. 2G -> 1.5G and it works. i don't know why
and now i pulled your new image. and test it with over 2G file.
yes there is no more  below one
RuntimeError: dictionary changed size during iteration

yes i using WSL2 and it mount windows filesystem. so it must be very slow. i think...
and it failed with
An error occurred (NoSuchUpload) when calling the CompleteMultipartUpload operation: The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed.

i'll add the timeout parameter. test again. omg it worked!!!
no problem.
thanks for your support!


Bump CS CLI version

Signed-off-by: Sven Trieflinger<EMAIL_ADDRESS>

Resolves carbynestack/carbynestack#9.


AssetManager generate css id and class

Hi,
I want to generate some css link like '<link rel="stylesheet" href="style.css" class="main" id="main" />'.

I know  'public $css = ['css/site.css'];' can generate ,
but how can i generate the id and class use the AssetManager?
                                                                                Thank you very much!

Please use forum for questions.


(Possibly) incorrect handling of type comments for non-variadic function with keyword-only parameters

(Discovered upon using bazel_env here: https://github.com/buildbuddy-io/bazel_env.bzl/blob/main/bazel_env.bzl#L339)
Given the function def bazel_env(*, name, tools = {}, toolchains = {}, **kwargs): with the type comment # type: (string, dict[string, string | Label], dict[string, string | Label]) -> None, starpls treats the * as being of type string, name as dict[string, string | Label] etc.
From the Starlark spec on fuction signatures:

A non-variadic function may also declare keyword-only parameters, by using a bare * in place of the *args parameter. This form does not declare a parameter but marks the boundary between the earlier parameters and the keyword-only parameters. This form must be followed by at least one optional parameter.

Ah, I ended up just copying the behavior from Pyright here, which emits an error diagnostic if the bare * parameter isn't annotated, e.g.
def foo(*, x):
    # type: (str) -> None
    pass

yields
Parameter annotation count mismatch: expected 2 but received 1

while
def foo(*, x):
    # type: (None, str) -> None
    pass

seems to make Pyright happy.

I'll take a look through the pep 484 doc again and see if it says anything about annotating * parameters


Add animation to SCNNode

Implements #44

Current coverage is 75.19% (diff: 0.00%)

Merging #45 into master will increase coverage by 0.32%

@@             master        #45   diff @@
==========================================
  Files            11         12     +1
  Lines          1293       1310    +17
  Methods         101        104     +3
  Messages          0          0
  Branches        110        113     +3
==========================================
+ Hits            968        985    +17
- Misses          263        267     +4
+ Partials         62         58     -4

Powered by Codecov. Last update 418d0b1...3c703a9


Thoughts

Why is the cubic<A>() extension a method and not a getter, ergo context.cubic<A>? https://github.com/felangel/cubit/blob/master/packages/flutter_cubit/lib/src/cubit_provider.dart#L148
We should use Object rather than dynamic. (And I just noticed we use dynamic also in Bloc)

https://github.com/felangel/cubit/blob/master/packages/flutter_cubit/lib/src/cubit_provider.dart#L8
https://github.com/felangel/cubit/blob/master/packages/flutter_cubit/lib/src/cubit_provider.dart#L33
https://github.com/felangel/cubit/blob/master/packages/flutter_cubit/lib/src/cubit_provider.dart#L108
https://github.com/felangel/cubit/blob/master/packages/flutter_cubit/lib/src/cubit_provider.dart#L148
Otherwise, I like this idea. It's just like Bloc, but it replaces Events with some kind of action methods. This also simplifies the need to check the type of Event in mapEventToStates. There should be some study etc. about Sink vs methods, but I cannot think any bad case when methods are less valuable. The main part of Bloc/Cubic is that States are immutable & distributed using Stream.

Thanks for the feedback and great point regarding the extension 👍
I'll be making those changes in cubit and hopefully will be able to deprecate and roll them into bloc shortly after 😄

Update the dynamic type in #12 but it doesn't seem extensions with generic getters are supported 😞
The following doesn't compile:
C get cubit<C extends Cubit<Object>> => CubitProvider.of<C>(this);

That actually makes sense... Getters should mimic fields's API, ergo generics are not valid. Hmm. What about late syntax? But that would also have to be field and ergo no generics, right? Damn. Nevermind. xD


Pull WIR to separate package

Start analysis, use lref and rref, test performance for type lookups

Subsumed by #1350 and #1410


Add -tags=example in examples README

What issue is this addressing?
N/A
What type of issue is this addressing?
bug
What this PR does | solves
I tried running:
go run github.com/hajimehoshi/ebiten/v2/examples/rotate@latest

This failed with:
package github.com/hajimehoshi/ebiten/v2/examples/2048: build constraints exclude all Go files in ....

This tiny fix brings the README to match the docs.

This build tag is not required as of v2.5


Is there a way to connect queue as exclusive consumer?

org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer has setExclusive() feature.
This is useful when you need to guarantee the order of messages, when there is multiple consumers.

Related SO question: https://stackoverflow.com/questions/45072016/can-rabbitmq-or-spring-cloud-stream-consume-messages-exclusively

It is not currently supported; we can add it.

@chaeyk Do you expect both exclusivity and load balancing, or are you comfortable with all messages being handled by a single instance. From the original question in SO, it seems like you expect some form of load balancing between consumers, but this setting will effectively result in all messages being received by one and only one consumer (as @garyrussell pointed out here: https://stackoverflow.com/a/45081997/809122 )

What I need is message ordering with multi consumer, so load balancing is not my matter. There are multi consumer because it is included within web api server, and for high availibility.
I worked around by making wrapper of connectionfactory, connection, channel classes. But second consumer's spring application failed to boot because bean initialization failed.
What I really wanted was following.

first consumer connect to queue with exclusive option.
second consumer try to connect queue, but fails because of exclusive option, and trying to connect periodically.
when first consumer dies, second consumer connect to queue.

Simply adding setExclusive() feature would not solve my problem. But I think setExclusive() feature would be useful for someone :)

It would be nice to have some event to be notified when consumer finally connects to queue

Well, there is one already, @Shohou :
 * An event that is published whenever a new consumer is started.
 *
 * @author Gary Russell
 * @since 1.7
 *
 */
@SuppressWarnings("serial")
public class AsyncConsumerStartedEvent extends AmqpEvent {

Implement ApplicationListener<AsyncConsumerStartedEvent> in a Spring bean to receive the event.
or
@EventListener
public void consumerStarts(AsyncConsumerStartedEvent event) { ... }

@Shohou ,
Thank you for feedback!
This issue is closed already with some fix.
If you still have some concerns, please, raise a new one with an appropriate information.
The link to this one would be useful too.


black screen after loading ArkOS on powkiddy rgb 10

Hello, I installed ArkOS on my console. I followed exactly the instructions on the wiki, but when I turn on the console, I see a splash screen and then a black screen. What should I do?
https://user-images.githubusercontent.com/97360001/148656689-844e7466-910a-4fe7-b248-5a23f7cc1719.mp4

What program did you use to image the sd card?
What is your sd card's make?

i used win32diskimager, my sd card is 32 gigabytes, before that it had
emuelec
сб, 8 янв. 2022 г., 11:43 PM christianhaitian @.***>:

What program did you use to image the sd card?
What is your sd card's make?
—
Reply to this email directly, view it on GitHub
https://github.com/christianhaitian/arkos/issues/484#issuecomment-1008147452,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXGZRAIALVIKMYAIXG3AOC3UVCOXZANCNFSM5LQ5SSCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

—
Reply to this email directly, view it on GitHub
https://github.com/christianhaitian/arkos/issues/484#issuecomment-1008252479,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXGZRAKK3IZPZESH3UE52B3UVFAYLANCNFSM5LQ5SSCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

I installed emuelec, the problem doesn't bother me anymore

For future reference, the original sd card should not be used as they are problematic as stated in the installation instructions. Whatever distro you use, please use a quality sd card like Sandisk or Samsung.


[bulk]Validation: Misc. changes to containers-containerregistry-readme

Docs Build status updates of commit e770fa9:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/containers-containerregistry-readme.md
:warning:Warning
View (azure-java-stable)
Details

docs-ref-services/latest/containers-containerregistry-readme.md

Line 2, Column 1: [Warning: ms-prod-missing - See documentation] Missing attribute: 'ms.prod'. If you specify 'ms.technology', you must also specify 'ms.prod'.
Line 11, Column 13: [Warning: ms-service-subservice-invalid - See documentation] Invalid value for 'ms.service': 'containerregistry'.
Line 150, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 151, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 152, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 153, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 154, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 158, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 159, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 160, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 161, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 162, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 31, Column 5: [Suggestion: preserve-view-not-set - See documentation] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: /java/azure/jdk/?view=azure-java-stable. Otherwise, remove the view parameter.
Line 144, Column 33: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-concepts' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 41b2d70:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-services/latest/containers-containerregistry-readme.md
:white_check_mark:Succeeded
View (azure-java-stable)

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

Docs Build status updates of commit 44fd686:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/containers-containerregistry-readme.md
:warning:Warning
View (azure-java-stable)
Details

docs-ref-services/latest/containers-containerregistry-readme.md

Line 149, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 150, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 151, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 152, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 153, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 157, Column 1: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 158, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 159, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 160, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 161, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 24, Column 59: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry' will be broken in isolated environments. Replace with a relative link.
Line 30, Column 5: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable' will be broken in isolated environments. Replace with a relative link.
Line 30, Column 5: [Suggestion: preserve-view-not-set - See documentation] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable. Otherwise, remove the view parameter.
Line 32, Column 3: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-get-started-azure-cli' will be broken in isolated environments. Replace with a relative link.
Line 80, Column 21: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-get-started-portal' will be broken in isolated environments. Replace with a relative link.
Line 100, Column 91: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-authentication' will be broken in isolated environments. Replace with a relative link.
Line 103, Column 38: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/active-directory/develop/authentication-national-cloud' will be broken in isolated environments. Replace with a relative link.
Line 123, Column 34: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-faq#how-do-i-enable-anonymous-pull-access' will be broken in isolated environments. Replace with a relative link.
Line 143, Column 33: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-concepts' will be broken in isolated environments. Replace with a relative link.
Line 293, Column 23: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-intro' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 23e3254:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/containers-containerregistry-readme.md
:warning:Warning
View (azure-java-stable)
Details

docs-ref-services/latest/containers-containerregistry-readme.md

Line 149, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 150, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 151, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 152, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 153, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 157, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 158, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 159, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 160, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 161, Column 3: [Warning: bookmark-not-found] Cannot find bookmark '#samples' in 'docs-ref-services/latest/containers-containerregistry-readme.md', did you mean '#examples'?
Line 24, Column 59: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry' will be broken in isolated environments. Replace with a relative link.
Line 30, Column 5: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable' will be broken in isolated environments. Replace with a relative link.
Line 30, Column 5: [Suggestion: preserve-view-not-set - See documentation] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable. Otherwise, remove the view parameter.
Line 32, Column 3: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-get-started-azure-cli' will be broken in isolated environments. Replace with a relative link.
Line 80, Column 21: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-get-started-portal' will be broken in isolated environments. Replace with a relative link.
Line 100, Column 91: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-authentication' will be broken in isolated environments. Replace with a relative link.
Line 103, Column 38: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/active-directory/develop/authentication-national-cloud' will be broken in isolated environments. Replace with a relative link.
Line 123, Column 34: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-faq#how-do-i-enable-anonymous-pull-access' will be broken in isolated environments. Replace with a relative link.
Line 143, Column 33: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-concepts' will be broken in isolated environments. Replace with a relative link.
Line 293, Column 23: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/azure/container-registry/container-registry-intro' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


error: failed to compile svm-rs v0.2.23, intermediate artifacts can be found at /var/folders/d7/1zb4w94j5fdb7l4vyps_nfz40000gn/T/cargo-installdubCuB

I tried to install svm using cargo but there was an error. The provided hint doesn't help as well.
It seemed a version problem and plz help me. my cargo version is cargo 1.59.0
$cargo install svm-rs
    Updating crates.io index
  Installing svm-rs v0.2.23
error: failed to compile `svm-rs v0.2.23`, intermediate artifacts can be found at `/var/folders/d7/1zb4w94j5fdb7l4vyps_nfz40000gn/T/cargo-installdubCuB`

Caused by:
  failed to select a version for the requirement `clap = "^4.2"`
  candidate versions found which didn't match: 3.2.25, 3.2.24, 3.2.23, ...
  location searched: crates.io index
  required by package `svm-rs v0.2.23`

and the second command didn't work either.
$cargo install --locked --git https://github.com/roynalnaruto/svm-rs

    Updating git repository `https://github.com/roynalnaruto/svm-rs`
  Installing svm-rs v0.2.23 (https://github.com/roynalnaruto/svm-rs#d161e6fc)
    Updating crates.io index

error: failed to select a version for the requirement `clap = "^4.2"`
candidate versions found which didn't match: 3.2.25, 3.2.24, 3.2.23, ...
location searched: crates.io index
required by package `svm-rs v0.2.23 (/Users/dazso/.cargo/git/checkouts/svm-rs-cd2fa967df1e48a1/d161e6f/crates/svm-rs)`

I have the same error:
cargo install svm-rs
    Updating crates.io index
  Installing svm-rs v0.3.4
error: failed to compile `svm-rs v0.3.4`, intermediate artifacts can be found at `/var/folders/4w/t258b59n54gc7jtkqs2755f80000gn/T/cargo-install73dtC6`

Caused by:
  failed to select a version for the requirement `clap = "^4.2"`
  candidate versions found which didn't match: 3.2.25, 3.2.24, 3.2.23, ...
  location searched: crates.io index
  required by package `svm-rs v0.3.4`

Any solution??

You might be on an unsupported rust toolchain, but I'm not sure because I've never seen this error before. Try after rustup update on the latest stable version


Improvement/add development env

Description
Add development environment
I think this environment is able to use to check changes and improve the vue-dropdowns package.
Changes

add new folder - dev
add development environment
add tests for basic functionalities
add readme for development environment
update general readme

Hi @mikerodham,
Could you please take a look at my pull request?

Sorry, but I don't feel it's necessary to add bloating to what should be a simple component.
I only released this because I found myself writing it repeatedly in each project, so I made this. It's literally a v-for with a dropdown, it's nothing crazy difficult I just got bored of writing it over and over.
I have no intention of actively maintaining this simply because it's so small there's nothing really to maintain. If an idea comes to may, maybe I'll add it or if a pull request directly improves the component I'll look at it but I don't feel a whole dev environment is worth installing for what could be simply copy & pasted as it's just one small file. In a bigger package sure, definitely worth it but not for something as simple as this.
I appreciate you've spent your time writing this, I just don't feel it's necessary.


Add unit tests for storage component

Unit tests have been added for the following classes (see checked tasks):

[x] JsonAdaptedRecurrentBooking (Left one test, see note below)
[x] JsonAdaptedVenue
[x] JsonSerializableVenueBook
[x] JsonVenueBookStorage
[x] DataStorageManager
[x] StorageManager

I need help with the JsonAdaptedRecurrentBookingTest::toModelType_validReccurentBookingDetails_returnsRecurrentBooking. It returns the same booking, but a different object. Thought, we could skip this as CodeCov states that the entire file has been tested.

Codecov Report

Merging #201 (517ff37) into master (9570017) will increase coverage by 4.74%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #201      +/-   ##
============================================
+ Coverage     64.01%   68.76%   +4.74%
- Complexity      839      892      +53
============================================
  Files           139      139
  Lines          2907     2907
  Branches        294      294
============================================
+ Hits           1861     1999     +138
+ Misses          940      800     -140
- Partials        106      108       +2

Impacted Files
Coverage Δ

...du/rc4hdb/storage/residentbook/JsonAdaptedTag.java
100.00% <ø> (ø)

...storage/venuebook/JsonAdaptedRecurrentBooking.java
100.00% <ø> (+100.00%)
:arrow_up:

...main/java/seedu/rc4hdb/storage/StorageManager.java
98.27% <100.00%> (+29.31%)
:arrow_up:

...4hdb/storage/residentbook/JsonAdaptedResident.java
100.00% <0.00%> (+1.63%)
:arrow_up:

.../main/java/seedu/rc4hdb/commons/util/FileUtil.java
81.48% <0.00%> (+3.70%)
:arrow_up:

...ava/seedu/rc4hdb/model/venues/booking/Booking.java
42.85% <0.00%> (+14.28%)
:arrow_up:

...ava/seedu/rc4hdb/model/venues/UniqueVenueList.java
33.33% <0.00%> (+16.66%)
:arrow_up:

src/main/java/seedu/rc4hdb/model/VenueBook.java
62.06% <0.00%> (+20.68%)
:arrow_up:

.../java/seedu/rc4hdb/storage/DataStorageManager.java
91.66% <0.00%> (+23.61%)
:arrow_up:

... and 5 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


custom_build_args for swift compiler

As far as I know swift compiler uses different project setting named Other Swift Flags, so probably you could add one more parameter to snapshot in next release.

Finally, I found solution. In my Snapfile I added
custom_build_args "OTHER_SWIFT_FLAGS='-DSNAPSHOT' GCC_PREPROCESSOR_DEFINITIONS='$(inherited) SNAPSHOT=1'"
-D is necessary for OTHER_SWIFT_FLAGS, other way you'll get compiler error. In project I use #ifdef SNAPSHOT in swift and Objective-C as well.
Moreover, since xctool doesn't allow to select specific target, you need operate with schemes. Here becomes a problem with test target in your default scheme. OTHER_SWIFT_FLAGS requires TEST_TARGET value inside. So only solution I found was create separate scheme with only one target inside (MyAppSnapshot) and use it in Snapfile.
This is probably can be automated, but I have no idea how to build only one target with xctool

+1 I'd love if this would have been on the README

Yes, thanks @jondot :+1:


Fix docker login in docker run (build.sh + test.sh)

Added a check to see if the variable $DOCKER_SECRET_AUTH is set (necessary for the tests in our local cluster but not on the ppc64le-cloud cluster) in the build.sh and in the test.sh, where we use this variable in docker run commands
And changed path to make it clearer in the test.sh

Changed the test of the static packages (before, we tested the static packages for every distro, now, we test only for the alpine distro)

/assign @alunsin
/lgtm


Draw up project information

[x] Metadata
[ ] Project justification

Listed in the deliverable 1 pdf

The Google Docs document is up; it's called comp3004-d1_crema. I filled in the "metadata" and pasted the D1 requirements in it.


Refactor getPackUnpackNormalizedPerm method to ensure shape flexibility

Was that itself one issue besides the handling of rank vs perm.size() ?

Thanks for looking into this. Current version of getPackUnpackNormalizedPerm doesn't do any inversion anymore. It now tries to generate the normalized perm list directly.

Was that itself one issue besides the handling of rank vs perm.size() ?

Thanks for looking into this. Current version of getPackUnpackNormalizedPerm doesn't do any inversion anymore. It now tries to generate the normalized perm list directly.

Oh okay. Thanks for this! :D


Playbook ends with PLAY RECAP

I had everything up and running with the Raspberry Pi at my desk.
I wanted to move it down to the network rack in the basement so I shutdown the Pi using the menu command since I had it connected to a monitor and moved it to the basement.
When I did the restart I am now seeing this happen:
pi@raspberrypi:~/internet-pi $ ansible-playbook main.yml
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current
version: 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]. This feature will be removed from ansible-core in version
 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

PLAY [internet_pi] ****************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************
ok: [<IP_ADDRESS>]

TASK [Load configuration.] ********************************************************************************************
ok: [<IP_ADDRESS>]

TASK [Ensure apt cache is up to date.] ********************************************************************************
ok: [<IP_ADDRESS>]

TASK [Check if Docker is already present.] ****************************************************************************
ok: [<IP_ADDRESS>]

TASK [Download Docker install convenience script.] ********************************************************************
skipping: [<IP_ADDRESS>]

TASK [Run Docker install convenience script.] *************************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Docker is started.] **************************************************************************************
ok: [<IP_ADDRESS>]

TASK [Ensure dependencies are installed.] *****************************************************************************
ok: [<IP_ADDRESS>]

TASK [Install Docker Compose using Pip.] ******************************************************************************
ok: [<IP_ADDRESS>]

TASK [Ensure pi user is added to the docker group.] *******************************************************************
ok: [<IP_ADDRESS>]

TASK [Reset connection so docker group is picked up.] *****************************************************************
[WARNING]: Reset is not implemented for this connection

TASK [Gather package facts.] ******************************************************************************************
ok: [<IP_ADDRESS>]

TASK [Add Buster backports apt key.] **********************************************************************************
skipping: [<IP_ADDRESS>] => (item=04EE7237B7D453EC)
skipping: [<IP_ADDRESS>] => (item=648ACFD622F3D138)

TASK [Add Buster backports for fixed libseccomp2.] ********************************************************************
skipping: [<IP_ADDRESS>]

TASK [Install >libseccomp2.4.4 to fix 32-bit OS issue.] ***************************************************************
skipping: [<IP_ADDRESS>]

TASK [Synchronize internet-monitoring directory.] *********************************************************************
ok: [<IP_ADDRESS>]

TASK [Ensure internet-monitoring directory is not a Git repository.] **************************************************
ok: [<IP_ADDRESS>]

TASK [Copy templated internet-monitoring files into place.] ***********************************************************
ok: [<IP_ADDRESS>] => (item={'src': 'grafana-config.monitoring.j2', 'dest': 'grafana/config.monitoring'})
ok: [<IP_ADDRESS>] => (item={'src': 'prometheus.yml.j2', 'dest': 'prometheus/prometheus.yml'})
ok: [<IP_ADDRESS>] => (item={'src': 'prometheus-pinghosts.yaml.j2', 'dest': 'prometheus/pinghosts.yaml'})

TASK [Ensure internet-monitoring environment is running.] *************************************************************
ok: [<IP_ADDRESS>]

TASK [Create Pi-hole folder on Pi.] ***********************************************************************************
ok: [<IP_ADDRESS>]

TASK [Copy Pi-hole docker-compose template to Pi.] ********************************************************************
ok: [<IP_ADDRESS>]

TASK [Ensure Pi-hole is running.] *************************************************************************************
ok: [<IP_ADDRESS>]

TASK [Clone shelly-plug-prometheus repo to Pi.] ***********************************************************************
skipping: [<IP_ADDRESS>]

TASK [Copy Shelly Plug docker-compose template to Pi.] ****************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Shelly Plug Prometheus exporter is running.] *************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Starlink directory exists.] ******************************************************************************
skipping: [<IP_ADDRESS>]

TASK [Copy Starlink docker-compose template to Pi.] *******************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Starlink Prometheus exporter is running.] ****************************************************************
skipping: [<IP_ADDRESS>]

PLAY RECAP ************************************************************************************************************
<IP_ADDRESS>                  : ok=16   changed=0    unreachable=0    failed=0    skipped=11   rescued=0    ignored=0
pi@raspberrypi:~/internet-pi $

Is there a cache or something that needs to be cleared since this was moved? Would something like this happen if the Pi lost power unexpectedly?
Thanks in advance.

That looks normal—when you re-run the playbook, assuming everything is running normally, it would just show that everything is okay, and nothing changed. The playbook should set everything up so it comes up again perfectly after a reboot without you having to do anything.

Thanks so much for this reply.
I got bit by a couple of things.
I didn't see the playbook "finish" the first time so I thought it was a "process" that kept running and didn't return the command prompt.
The other thing that bit me was trying to access the Grafana dashboard too soon after restarting the Pi in its new location because it would not come up but had N/A on all the graphs.
I got home from work today and I have data.
Thanks again.


Renewable Energy Data Analytic in cpp

Describe the project you want to add with tech stack
I want to make a command-line data analytics tool for renewable energy production data. It allows users to analyze historical energy production from solar panels and wind turbines, calculate average energy production, and add new energy data for further analysis.
@MohitGupta121 @TusharKesarwani Sir kindly assigned me these issue

@MohitGupta121 @TusharKesarwani @pranjay-poddar  Sir kindly assigned me these issue

@Vineetg2003 please do not spam msg


NFTStorefront v1 & v2 Cadence 1.0 Refactor

Closes: #87
This PR targets the existing stable-cadence branch, so includes some updates from main. The idea is to use stable-cadence as the working Stable Cadence branch moving forward.
Dependencies pulled from respective repo's stable-cadence branches:

ViewResolver
FungibleToken
NonFungibleToken
MultipleNFT
ExampleNFT

The changes against NFTStorefront and accompanying transactions & scripts have been made to conform to Cadence 1.0 language updates.
Note: It looks like the test suite is running the current version of Cadence as tests are not passing.
TODO:

[x] Merge stable-cadence branch to this one? Picked up from up from #74, so merge might be best way forward.
[ ] Update dependency repos

[ ] flow-ft transactions & scripts on stable cadence feature branch
[ ] flow-nft transactions & scripts on stable cadence feature branch

[ ] Get test cases to pass

Progress on this PR is blocked until flow-ft and flow-nft repos have fully functional stable cadence branches, especially the former.
It appears the transactions from flow-ft are utilized in the test suite and since flow-ft transactions aren't up to Cadence 1.0 in the stable cadence feature branch, they're failing in the NFTStorefront test suite.
Relevant discord discussion: https://discord.com/channels/613813861610684416/621847426201944074/1157425948405280858

@joshuahannan thanks for the comments, newest update should address all of them.
I also removed the go testing entirely which makes the version issue not a problem. The previous go testing was very simple testing targeted only towards storefrontv1, and so I've replaced it with new cadence testing for storefrontv1.

I'm using the stable cadence version of NFTStorefront and borrowNFT is always reverting for me here:
assert(ref.isInstance(self.getDetails().nftType), message: "token has wrong type"), but creating the listing works fine, it would revert on create if type was actually invalid right?
Commenting this line makes it work obviously

I'm using the stable cadence version of NFTStorefront and borrowNFT is always reverting for me here: assert(ref.isInstance(self.getDetails().nftType), message: "token has wrong type"), but creating the listing works fine, it would revert on create if type was actually invalid right?
Commenting this line makes it work obviously

Taking a look at this - In create listing we're using the following code:              assert(nft!.getType() == self.details.nftType, message: "token is not of specified type") which differs from the ref.isInstance(self.getDetails().nftType that's in borrowNFT. I'm not entirely sure why one would work and the other wouldn't, so looking into that.

I'm using the stable cadence version of NFTStorefront and borrowNFT is always reverting for me here: assert(ref.isInstance(self.getDetails().nftType), message: "token has wrong type"), but creating the listing works fine, it would revert on create if type was actually invalid right?
Commenting this line makes it work obviously

Taking a look at this - In create listing we're using the following code:  assert(nft!.getType() == self.details.nftType, message: "token is not of specified type") which differs from the ref.isInstance(self.getDetails().nftType that's in borrowNFT. I'm not entirely sure why one would work and the other wouldn't, so looking into that.

I think a test covering borrowNFT would be sufficient

Thanks for bringing this up.
I added a new script and test case to cover borrowNFT now, also updated the previewnet build to reflect the fix needed to properly check the nft type. If you run into any more issues please keep them coming here!

I updated all the dependencies, addressed all my previous comments on this PR, and got the cadence tests passing. NFTStorefront is staged on testnet, but NFTStorefrontV2 is not staged on testnet because we are still looking for the key information for the account.
Any more reviews here would be much appreciated

@sisyphusSmiling I addressed your comments about the contracts and pushed my changes. I created an issue for the transaction changes that I am going to come back to later


SystemD integration

Sorry for such a delayed response... I got pulled out of town longer than expected. I'll review these as soon as I can!


Output is insensitive to terminal width

The current output width is 106 columns, which by happy coincidence is precisely the width of my usual terminals.
This coincidence seems unlikely to be universal, and some sensitivity to this would seem to be in order.

should be fixed in #22

Fixing overwrite mode fixes height, not width ;)

well fooey then. reopening


[Android-only] check method: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference

Bug summary
I recently moved my permissions checker to a context from a hook, so that the state would persist on update.
Here is my code
const PermissionsContext = React.createContext<PermissionsContextType>({
  ...defaultValues,
  ...defaultSetters,
  ...defaultCallbacks,
});
export const PermissionsProvider: FunctionComponent<
  PermissionsProviderProps
> = ({ children }) => {
  const [cameraPermissionStatus, setCameraPermissionStatus] =
    useState<PermissionStatus>();

  const updateCameraPermissionStatus = useCallback(async () => {
    const newPermissionStatus = await check(getOSSpecificPermission('camera'));
    setCameraPermissionStatus(newPermissionStatus);
    return newPermissionStatus;
  }, []);

  useEffect(() => {
    updateCameraPermissionStatus();
  }, [updateCameraPermissionStatus]);

  return (
    <PermissionsContext.Provider
      value={{
        cameraPermissionStatus,
        setCameraPermissionStatus,
      }}>
      {children}
    </PermissionsContext.Provider>
  );
};

When building via CI (so not deploying via USB connection and wifi), the android app repeatedly crashes on load with an error:
NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference

Any help would be greatly appreciated 🙏🏼
Library version
3.6.1
Environment info
System:
    OS: macOS 13.4.1
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 1.62 GB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.16.0 - ~/.nvm/versions/node/v18.16.0/bin/node
    Yarn: 1.22.18 - /usr/local/bin/yarn
    npm: 9.5.1 - ~/.nvm/versions/node/v18.16.0/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.12.1 - /Users/Jake/.gem/ruby/3.1.3/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    Android SDK: Not Found
  IDEs:
    Android Studio: 4.2 AI-202.76<IP_ADDRESS>51085
    Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
  Languages:
    Java: <IP_ADDRESS> - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2
    react-native: 0.68.6 => 0.68.6
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce
Listed in the description
Reproducible sample code
Listed in the description

This package does not call Double doubleValue method once, I doubt the issue came from this library. I'm closing this because of that (+ there's no clear way to reproduce the issue)
Note that you could simplify your code a bit:
import * as React from 'react';
import {Platform} from 'react-native';
import {check, PERMISSIONS, PermissionStatus} from 'react-native-permissions';

const PermissionsContext = React.createContext<{camera?: PermissionStatus}>({});

export const usePermissions = () => React.useContext(PermissionsContext);

export const PermissionsProvider: React.FC<{children: React.ReactNode}> = ({children}) => {
  const [camera, setCamera] = React.useState<PermissionStatus>();
  const permissions = React.useMemo(() => ({camera}), [camera]);

  React.useEffect(() => {
    check(Platform.select({android: PERMISSIONS.ANDROID.CAMERA, default: PERMISSIONS.IOS.CAMERA}))
      .then((status) => setCamera(status))
      .catch((_error) => setCamera('unavailable'));
  }, []);

  return <PermissionsContext.Provider value={permissions}>{children}</PermissionsContext.Provider>;
};

To understand the need to memo your provider value: https://stackoverflow.com/a/62231233

This repros with the cleaned up code. I will try to get you a repro in the sample app.


Error: No match for [dashExtensions.default.function0] in the global window object.

Hi,
I tried to used the example described at : https://www.dash-leaflet.com/docs/events
The example were not working because of this error showing in the JavaScript console :
Error: No match for [dashExtensions.default.function0] in the global window object.
I found that i needed to add an assets/some.js file alongside my app.py file with this content :
window.dashExtensions = Object.assign({}, window.dashExtensions, {
    default: {
        function0: function(e, ctx) {
            console.log(`You clicked at ${e.latlng}.`)
        }
    }
});

I found this function in the test/assets/dashExtensions_default.js file of the dash-extensions project.
Is this some kind of error ? Or should it only need to be documented in dash-leaflet ?

That file was supposed to be auto generated. What environment are you using?

Python 3.11.7
pipenv, version 2023.11.17
Mac OS Sonoma 14.1
dash==2.17.1; python_version >= '3.8'
dash-auth==2.3.0; python_version >= '3.8'
dash-core-components==2.0.0
dash-extensions==1.0.17; python_version >= '3.9' and python_version < '4'
dash-html-components==2.0.0
dash-leaflet==1.0.15
dash-table==5.0.0

The file is indeed generated but the assets directory is generated in the directory where i'm executing the script, not alongside the app.py file.
I'm lauching :
python src/app.py
Changing the assets_folder to the current execution directory resolves the problem :
app = Dash(__name__, assets_folder=f"{os.getcwd()}/assets")

I have the same problem, I don't understand why it gives an error. I'm trying every solution but it doesn't work.

Seems that this is solved. Otherwise, please re-open.


Exception was thrown when I used multiple PopupMarkerLayers

FlutterMap(   ...,   children: [     ...,     buildPopupMarkers(),     buildStationnementVeloMarkers(),   ], ),
In the code above, buildPopupMarkers() and buildStationnementVeloMarkers() both return PopupMarkerLayers.
When I run the app those exceptions were thrown:
Another exception was thrown: Multiple widgets used the same GlobalKey.
Another exception was thrown: Expected a value of type 'CapteurMarker', but got one of type 'CustomMarker'

We got the exact same problem I think.
We have some marker layer with a popup and some without. If I add two marker layers, one MarkerLayer and one PopupMarkerLayer, the problem is that the marker from the MarkerLayer will always be above the popup from the marker in the PopupMarkerLayer. In order to fix this we use two PopupMarkerLayer and simply just don't display the popup if we don't need it. But when using more than one PopupMarkerLayer we get the  Multiple widgets used the same GlobalKey Error.

@juliaen-dr can you provide a minimal reproducible example?

Sadly I can't share my code here but I tried to build an example. Basically just take a FlutterMap and add two MarkerLayer with popups. Now if you click on a Marker to open the popup you'll get the error.
FlutterMap(
   mapController: _animatedMapController.mapController,
   options: _mapOptions,
   nonRotatedChildren: [],
   children: [
         MarkerClusterLayerWidget(
            options: MarkerClusterLayerOptions(
              maxClusterRadius: 50,
              size: const Size(40, 40),
              anchorPos: AnchorPos.align(AnchorAlign.center),
              markers: _marker,
              onMarkerTap: (marker) {
               _onMarkerTap(marker);
              },
              popupOptions: PopupOptions(
                popupBuilder: (BuildContext context, Marker marker) {
                    return buildMarkerPopup(marker, constraints.maxHeight);
                },
                popupController: _popupController,
                buildPopupOnHover: false,
                markerTapBehavior: MarkerTapBehavior.togglePopupAndHideRest(),
                      popupAnimation: const PopupAnimation.fade(),
               )
             ),
             builder: (context, markers) {
               return Container();
             },
           ),
        ),
         MarkerClusterLayerWidget(
            options: MarkerClusterLayerOptions(
              maxClusterRadius: 50,
              size: const Size(40, 40),
              anchorPos: AnchorPos.align(AnchorAlign.center),
              markers: _marker2,
              onMarkerTap: (marker) {
               _onMarkerTap(marker);
              },
              popupOptions: PopupOptions(
                popupBuilder: (BuildContext context, Marker marker) {
                    return buildMarkerPopup(marker, constraints.maxHeight);
                },
                popupController: _popupController,
                buildPopupOnHover: false,
                markerTapBehavior: MarkerTapBehavior.togglePopupAndHideRest(),
                      popupAnimation: const PopupAnimation.fade(),
               )
             ),
             builder: (context, markers) {
               return Container();
             },
           ),
        ),
   ],
);

@juliaen-dr MarkerClusterLayerWidget is from another package, you should open your issue in that repo. I no longer provide support for that package as I maintain my own marker clustering package with popup support.

If this issue persists when using flutter_map_marker_popup alone I will be happy to look in to it if someone can provide me a minimal runnable reproduction of the error.

Encountering same issue but using two PopupMarkerLayer. Example is the same as provided before except I use the PopupMarkerLayer from this library.

Hey!
I was able to reproduce this bug: For me this happens when multiple PopupMarkerLayers are sharing a single PopupController.
Minimal example:
import 'package:flutter_map/flutter_map.dart';
import 'package:flutter_map_marker_popup/flutter_map_marker_popup.dart';
import 'package:latlong2/latlong.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  MyApp({super.key});

  final _controller = PopupController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: Scaffold(
        body: FlutterMap(
          options: const MapOptions(
            initialZoom: 1,
          ),
          children: [
            TileLayer(
              urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
              userAgentPackageName: 'flutter_map_marker_popup',
            ),
            PopupMarkerLayer(options: _popupMarkerLayerFor(["qwe", "asd"])),
            PopupMarkerLayer(options: _popupMarkerLayerFor(["hjk", "jkl"])),
          ],
        ),
        ),
      );
  }

  PopupMarkerLayerOptions _popupMarkerLayerFor(List<String> list) {
    return PopupMarkerLayerOptions(
      markers: list.map((e) => Marker(point: LatLng(e.hashCode % 90, e.hashCode % 180), child: Text(e))).toList(),
      markerTapBehavior: MarkerTapBehavior.togglePopupAndHideRest(),
      markerCenterAnimation: const MarkerCenterAnimation(),
      popupController: _controller,
      popupDisplayOptions: PopupDisplayOptions(
        builder: (context, Marker marker) {
          return Card(
            child: marker.child,
          );
        },
      ),
    );
  }
}

Thanks for the hard work! :)

Ah interesting, is there a use case for having them share a controller? I can't think of one right now. If there is none I will either document that this is not supported or see if I can add a warning when a shared controller is detected.

I'm using multiple layers to group markers by their type. This allows me to then toggle their visibility by type without the need to iterate over all markers. Sharing one controller also ensures that only one pop up is visible for all types, closing pop ups on certain user actions and so on.
My current implementation uses one controller per layer and helper functions that iterate over all of them and calling the appropriate functions on each controller, which doesn't seem elegant.
If you have a better way to implement this I'd be happy to provide a full example for the documentation.
On 5 November 2023 11:40:08 UTC, Rory Stephenson @.***> wrote:

Ah interesting, is there a use case for having them share a controller? I can't think of one right now. If there is none I will either document that this is not supported or see if I can add a warning when a shared controller is detected.
--
Reply to this email directly or view it on GitHub:
https://github.com/rorystephenson/flutter_map_marker_popup/issues/67#issuecomment-1793712453
You are receiving this because you commented.
Message ID: @.***>

Hi All,
When there are multiple PopupMarkerLayer, as long as PopupDisplayOptions is not added, similar errors will not occur.
Minimal example:
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:flutter_map_marker_popup/flutter_map_marker_popup.dart';
import 'package:latlong2/latlong.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  MyApp({super.key});

  final PopupController _popupController = PopupController();

  static final List<LatLng> _markersA = [
    const LatLng(44.421, 10.404),
    const LatLng(45.683, 10.839),
    const LatLng(45.246, 5.783),
  ];
  static final List<LatLng> _markersB = [
    const LatLng(39.421, 10.404),
    const LatLng(40.683, 10.839),
    const LatLng(40.246, 5.783),
  ];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: Scaffold(
        body: PopupScope(
          popupController: _popupController,
          onPopupEvent: (event, selectedMarkers) {
            debugPrint('$event: $selectedMarkers');
          },
          child: FlutterMap(
            options: const MapOptions(
              initialCenter: LatLng(42.5, 10.51),
              initialZoom: 6.0,
            ),
            children: [
              TileLayer(
                urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
                userAgentPackageName: 'flutter_map_marker_popup',
              ),
              PopupMarkerLayer(options: _popupMarkerLayerFor(_markersA)),
              PopupMarkerLayer(options: _popupMarkerLayerFor(_markersB)),
              PopupLayer(
                popupDisplayOptions: PopupDisplayOptions(
                    builder: (BuildContext context, Marker marker) {
                  return Card(
                    color: Colors.white,
                    child: Padding(
                      padding: const EdgeInsets.all(10),
                      child: GestureDetector(
                        onTap: () => debugPrint('Popup tap!'),
                        child: const Text(
                          'Container popup for marker',
                        ),
                      ),
                    ),
                  );
                }),
              ),
            ],
          ),
        ),
      ),
    );
  }

  PopupMarkerLayerOptions _popupMarkerLayerFor(List<LatLng> list) {
    return PopupMarkerLayerOptions(
      markers: list.map((latLng) {
        return Marker(point: latLng, child: const Icon(Icons.pin_drop));
      }).toList(),
      markerTapBehavior: MarkerTapBehavior.togglePopupAndHideRest(),
      markerCenterAnimation: const MarkerCenterAnimation(),
      popupController: _popupController,
      /*
      // Enabling this will throw an exception:
      // Multiple widgets used the same GlobalKey.
      popupDisplayOptions: PopupDisplayOptions(
       builder: (context, Marker marker) {
         return Card(
           child: marker.child,
         );
       },
      ),
      */
    );
  }
}


Unit Tests

[ ] init
[x] reset_estimator
[ ] process_imbalance_sampler
[ ] calibrateModel
[ ] fit
[x] predict
[ ] predict_proba
[ ] grid_search_param_tuning
[ ] train_val_test_split
[ ] get_best_score_params

Initial unit tests have been merged into the main branch. We have now planned to work on these collaboratively until we reach a high enough coverage.


Updated compat for all 3 Corruption mods

I couldn't fully test them however, as they appear to be broken in 1.3 (including in singleplayer)

Broken standalone?


where is your word vector from?

glove ? or your word2vec pretraining on human annotated data / distant supervised data?

glove 50d uncased

great thanks!


.windows folder: Why based on "first $PATH entry" and not "$OUT_DIR"?

In exploring the feasibility of migrating my Rust bindings for some proprietary, 3rd party software from winapi to windows, I noticed that I would need to turn the .tlb files I  winapi-tlb-bindgen'd before and somehow turn them into .winmd files, per https://github.com/microsoft/windows-rs/issues/928#issuecomment-870848203.
I would prefer to generate the .winmd in a build script, from .tlbs scraped from the actual installation folder of the other software, because their licensing is a bit hazy.  It says "Subject to the license terms for the software, you may redistribute the following .DLL files unmodified:", and it doesn't say anything about redistributing the .tlbs. I think there's a compelling case that translating .Net dlls into .winmd isn't "modifying", since the behavior is the same and just described in a different way. PLUS, the .winmd (and the .tlb before it) are basically glorified header files, describing interfaces (theoretically reconstructable from publicly available API docs) and not containing implementation. Regardless, I'm erring on the side of playing it safe and not redistributing if I don't have to. Preferably, the translation should be done in a way that only uses Rust build-dependencies and/or VS dev tools, so that consuming crates can build without other weird dependencies.
So I wondered if I could generate .winmd files in build.rs,
and stick them where windows could pick them up. Per https://github.com/microsoft/windows-rs/issues/93#issuecomment-765231711, you can stick 3rd party metadata in a ".windows/winmd" subfolder in the folder containing your Cargo.toml. So far so good, only that's outside the transitory "target" folder and I understand that build.rss aren't supposed to modify stuff that isn't a build artifact. (Technically, they shouldn't modify anything outside of $OUT_DIR...) I looked at the implementation of build! to see if I could understand how the ".windows" folder fit into the machinery. Aha! It copies stuff from the source ".windows/winmd" folder to "target/.windows/winmd"! Cool, so hopefully I can dump .winmds in there, put the .dlls in an analogous sibling architecture folder, slap a "cargo:rustc-link-search" on it and call it a day.
But how do you get that folder location?
build! gets it by grabbing the first &PATH path and popping from it. That seemed rather odd to me at first. TIL cargo prepends "target/{profile}/deps" to $PATH when compiling.
Oh wait, the copying happens after windows.rs is already built. Some more digging later, I determined that the actual metadata-finding happens in windows_gen and it defines one of its search paths equivalently to target_dir in build!, but it also defines another search directory in terms of "target" folder. 9 times out of 10, those are going to be the same folder, I think, unless you're cross-compiling (maybe x86 on an x86_64 machine?). Even then, the metadata is platform agnostic. I don't understand why you'd need a copy in there. Unless... does Windows sometimes use the metadata at runtime?

I wrote this issue as I was working through the process of understanding what's going on, and now I can recognize that "cross-compiling" and "path not ending in ;" are super related, even though it's not immediately apparent.

Yes, sorry for the confusion. I plan to address the bigger issue shortly. There was an attempt to support binary packaging transitively but that doesn't work well with Cargo at the moment. So we'll go back to the simpler model of having an explicit .windows folder in each crate/workspace that wishes to contribute binaries. We may revisit this in future. @riverar

Yeah, I was running into a similar complication with gtk-rs. They're using Meson to do the post-cargo resource wrangling.


ci: move docker secrets to enviornment variables

Replaces secrets in docker-compose-test.yml with environment variables.
Modifies test.yml to use the Github environment e2e-test to provide these secrets
Closes AERIE-1696

Merge after https://github.com/NASA-AMMOS/aerie/pull/279 is merged and finished deploying

@Mythicaeda I'd wait for @camargo's approval before merging :) I don't contribute to aerie-ui much.


Provide upper version boundary to exclude pydantic v2.

Fixes #153

Codecov Report
Patch and project coverage have no change.

Comparison is base (19ca2ba) 96.54% compared to head (1b61fed) 96.54%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #154   +/-   ##
=======================================
  Coverage   96.54%   96.54%
=======================================
  Files          12       12
  Lines        1071     1071
=======================================
  Hits         1034     1034
  Misses         37       37

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


Grub count showing on pick up when collecting vanilla grub locations.

Describe the bug
vanilla grub locations append the grub count onto the end of the item that was there
Additional context
repoted in discord by TerraFail, God of Failure, https://discord.com/channels/731205301247803413/959203442570715176/1135992811309781072
needs Investigation.

The issue is purely on the grubnames side


Adding the ability to dynamically create region sections.

This makes it easier when there are quite a number of accounts, with multiple regions for each.

I like the idea here. Could you add some docs about the feature?

I have fixed the PR since there were changes since, also documentation is included now.
One thing to note is the previous config allowed for [default] section which populated other sections, not sure if there is a way to currently do it.


Unsafe deletion during iteration of ics29 channels in DisableAllChannels

Summary
see comment.
Fix:
First iterate over all channels collecting a slice of keys. Then iterate over the slice of keys and delete all the mappings

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

I think this can be closed because it's superseded by #821.


Add edit book

Adding book functionality.
Does not use ownercollection as it seemed like excessive wrappers to the database that wasn't actually needed if we organize the table properly.
When someone decides to add a book, the app checks if all the fields are filled. Error prompts not currently implemented for when they are not. If everything is entered, the book is pushed to the database(assuming there is internet connectivity, currently offline adding does not work properly). The book is added under the "ownerCollection" section of the database. Within that, each user with a book will have an entry keyed by userID(generated by signup, not the actual email). Under that then is the list of books they own.
All added books have by default no borrower and a status of available.
For right now this is a fragment. However, I would like to make it a separate activity just so people cannot access the nav drawer while inside(as it doesn't make sense to? Should just give them save or cancel as options). Will change to activity when I have time, unless you would prefer this change to be made before merging, in which case i will do so.
Intended to complete US 01.01.01

A blank owner page was also added for clicking "owner" in the navigation drawer. Right now only contains placeholder text.

Overall the change looks pretty good to me, I should've marked which things I thing you should change before merging but the rest of the stuff I saw was honestly super minor and I'm okay if you want to let it slide to unblock other people.

Looks good! Feel free to merge it if you think it's ready.


Update sbt to 1.7.1

Updates org.scala-sbt:sbt from 1.7.0-M2-6810fix to 1.7.1.
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!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, commit-count:1

Superseded by #205.


SQL Feature Support in CockroachDB v2.0 Doc Update

Re: SQL Feature Support in CockroachDB v2.0
Issue Description
From https://github.com/cockroachdb/cockroach/issues/2969 it seems like the JSON support should be marked as present in version 2.0. Did something changes and therefore the feature will not land in 2.0?
Suggested Resolution
Mark JSON support as present

Thanks, @Fale. We had this on the plan via https://github.com/cockroachdb/docs/issues/2578. I'll go ahead and make the update real quick.

Thanks :)


Composite Indicator UnsatisfiedDependencyException when health-indicator.enabled=false

There are two properties controlling content of the health check response in CommonsClientAutoConfiguration, These properties are not independent. If you set spring.cloud.discovery.client.health-indicator.enabled=false, then the application fails to start with:
    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'discoveryCompositeHealthIndicator' defined in class path resource [org/springframework/cloud/client/CommonsClientAutoConfiguration.class]: Unsatisfied dependency expressed.

The problem goes away if we also set spring.cloud.discovery.client.composite-indicator.enabled=false. Perhaps disabling health indicator should have the side effect of automatically disabling the composite indicator?

@bryan-helm how are you encountering the problem?


add proposed selectionRange API

This is the proposes extension to the protocol, which looks like it's going to be stabilized soon.
See https://github.com/Microsoft/vscode-languageserver-node/pull/474
Let's not merge the PR until it is set in stone though

@Marwes marked as ready for review: the protocol extension is still provisional, but is released and usable:
https://github.com/Microsoft/language-server-protocol/issues/613#issuecomment-485237411

Good idea, fixed!

Released as 0.57.1

It seems like this is a semver breaking change?  rls can't build with 0.57.1.


peer disconnected when create channel with tor onion node

version: v0.5.2-beta
I try to create channel between 2 lnd nodes, they are using tor (inbound+outbound).
First, "lncli connect", success and no error.
Then, verify by "lncli listpeers", they list each other as peers and no error.
Finally, then i try to create channel between the nodes. lncli always timeout and "peer disconnected" messages are found in the backend log.

[INF] PEER: Disconnecting xxx.onion:9735, reason: unable to start peer: unable to read init msg: EOF

I tried to reset tor by deleting their data directory, but problem still exists.
Any help is appreciated

Check the logs to see why the peers are disconnecting.


$auth->logOut(); kills page

I'm just learning to use PHP-Auth. I'm trying to implement $auth->logOut();
But even if I just add the function call to a simple page, everything after the function calls doesn't get run. Here's an example:
<?php
echo"test 1

";
require __DIR__ . '/vendor/autoload.php';
$db = new \PDO('mysql:dbname=my_db;host=localhost;charset=utf8mb4', 'root', 'root');
$auth = new \Delight\Auth\Auth($db);
echo"test 2

";
if ($auth->isLoggedIn())
	{
	$email = $auth->getEmail();
	echo '
You are signed in as '.$email.'.
';
	}
else
	{
	echo '
You are not signed in.
Please sign in.
';
	}
$auth->logOut();
echo"test 3

";
?>

This code renders:
Test 1
Test 2
You are not signed in. Please sign in.
Nothing after that. No matter what I do, everything after $auth->logOut(); doesn't happen.
Or if I am logged in, it will show "You are signed in..." but nothing after. And the user stays logged in.
Thanks for any help.

That looks like there’s some error that is silently suppressed, so you don’t see it, but it still kills your page.
Could you temporarily turn on full error reporting in the browser, e.g. with something like this?
\error_reporting(\E_ALL);
\ini_set('display_errors', 'stdout');

You may want to use something like this anytime during development, testing or debugging. But of course, it should not be enabled in production.
After that, I guess you’ll see some error message that was previously suppressed. It could be the following, which is a common problem:
“Headers already sent”
In that case, it’s because you must not execute that operation when you have already sent output to the client. So you must either remove any echo statement that is before that operation, or you must use something like \ob_start() at the beginning of your script.
Does that help?

Thank you for the prompt and informative reply. Yes, of course that was the problem: Headers already sent.
So I'm wondering, what is the preferred practice for implementing the logOut function? Let's say there's a link that says, "Log out." The user clicks on it, then what?
Thanks.


Added job_name argument for data preparation in environment using slurm

Motivation
Unable to run the command without additional <job_name> argument for an environment with slurm.
Modification
Added job_name placeholder argument to indicate it has to be added when running the command.
Use Case
sh tools/create_data.sh long create_data kitti

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

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


Mlperf over network rules

Update Inference rules for MLperf over the Network

@tjablin Thanks a lot for investing the effort in presenting the rules in such a coherent way. Please see a few suggestions added.

@liorkhe I don't see any comments. Did you submit them?

@tjablin Sorry I hope now you can see the comments.