Parallel message handling

Hey,
we are using 3rd party multi-threaded libraries and would like to be able to handle messages in parallel and only commit once a message was handled successfully.
These parallel handles might have different running time.
Going over your example, I have a few questions:

If a higher offset finishes processing before a lower one ,and we resolveOffset, will this offset be committed immediately (causing the all lower offsets that might have not finished processing be committed as well)?

If we fail processing a message, and use the retry mechanism, will the message be committed before actually processed successfully? What happens if process crashes before a successful retry?

If we pause a consumer due to back-pressure, and a re-balance occurs before we resume, will the consumer maintain its paused state?

Thanks.

Hi @yonigoyhman, answering your questions:

If a higher offset finishes processing before a lower one ,and we resolveOffset, will this offset be committed immediately (causing the all lower offsets that might have not finished processing be committed as well)?

resolveOffset will never commit; it only keeps a checkpoint of the offsets that should be committed. One thing to keep in mind is that you should never resolve offsets out of order, like, resolve 5, then 1, then 3. You can also only resolve the highest offset; you don't have to resolve every offset you process. The advantage of resolving every offset is that you can commit the results frequently, instead of only once. I'm assuming you are using eachBatch, so the best course of action is only to resolve once all processes finish.

If we fail processing a message, and use the retry mechanism, will the message be committed before actually processed successfully? What happens if process crashes before a successful retry?

No. If it crashes, the resolved offsets will be committed, and the unresolved ones will come back again on the next batch. You should only resolve the offsets once they have been processed.

If we pause a consumer due to back-pressure, and a re-balance occurs before we resume, will the consumer maintain its paused state?

Yes. Rebalances won't affect the paused state so that it will remain paused, but if the consumer crashes for some reason (usually connectivity issues, or issues on your callbacks), the consumer will be resumed. I think we can improve this and keep the consumer paused, but this is the current state.
We have a pattern for processing messages in parellel in our systems, we usually use a custom function called promiseAllInBatches, and the code looks like this:
consumer.run({
  eachBatch: async ({ batch, resolveOffset, resolveOffset, commitOffsetsIfNecessary, heartbeat, isRunning }) => {
    const promises = batch.messages.map(message => () => processMessage(topic, partition, message))

    const shouldContinue = async (processedMessages, chunk, numberOfChunks) => {
      const lastMessage = processedMessages.pop()

      await resolveOffset(lastMessage.offset)
      await commitOffsetsIfNecessary()
      await heartbeat()

      return isRunning()
    }

    await promiseAllInBatches({ batchSize: 20, shouldContinue }, promises)
  }
})

promiseAllInBatches will process all messages in parallel in chunks of X.

Thanks for the super quick response @tulios !
We have a similar solution using async.queue where we define a maxParallelHandles,  maxQueueSize, and we pause consumption if we reach maxQueueSize.
We do however manage offsets manually (tracking each successful message handle , and periodically committing first un-handled message).
Looks like we will need to keep this mechanism even with kafka.js. (We are currently using node-rdkafka, but experiencing some difficulties..).
Thanks.

Not sure if this would be applicable to the problem discussed here. We have implemented a variation on this directly on our kafkajs fork that allows for batches to be processed in parallel rather than in series as they are now with the for loop. This allows for the batches (which are tied to partitions) to be process in parallel while still keeping the messages inside of each batch in order.
https://github.com/ambyint/kafkajs/commit/c214feb6664ba0de636d5b20cb72e7065cb58251

@rdbenoit: This is a great idea, and something I think we should enable both through eachMessage and eachBatch. We have users with hundreds of partitions, so maybe a simple boolean flag is not quite enough, but I think this is something we should for sure do upstream. I will open up an issue to track this.

@rdbenoit I just created a PR addressing this issue: #332


Attribute Error with populate_nitf_information_into_sicd()

Tested on Python 3.7.10, with sarpy 1.3.9. If this has been fixed since 1.3.9, I apologize but I do not have access to any newer version.
Example code:
from sarpy.io.complex.sicd import SICDReader, SICDWriter
reader = SICDReader("the_sicd_file.sicd")
reader.populate_nitf_information_into_sicd()

Provides the following error:
AttributeError                            Traceback (most recent call last)
/tmp/ipykernel_4088966/3690750003.py in <module>
      1 from sarpy.io.complex.sicd import SICDReader, SICDWriter
      2 reader = SICDReader("the_sicd_file.sicd")
----> 3 reader.populate_nitf_information_into_sicd()

.../lib/python3.7/site-packages/sarpy/io/complex/sicd.py in populate_nitf_information_into_sicd(self)
    339         """
    340
--> 341         self._sicd_meta.NITF = self.get_nitf_dict()
    342
    343     def depopulate_nitf_information(self):

.../lib/python3.7/site-packages/sarpy/io/xml/base.py in __setattr__(self, key, value)    714                 'Class {} instance receiving unexpected attribute {}.\n\t'
    715                 'Ensure that this is not a typo of an expected field name.'.format(self.__class__.__name__, key))
--> 716         object.__setattr__(self, key, value)
    717
    718     def __getstate__(self):

AttributeError: can't set attribute

The issue seems to originate here: https://github.com/ngageoint/sarpy/blob/master/sarpy/io/complex/sicd_elements/SICD.py#L224
There is no setter for NITF(). Simply adding a basic setter below the @property definition for NITF() in SICD.py seems solves the issue:
    @NITF.setter
    def NITF(self, value):
        self._NITF = value

Thank you for the feedback, will look into this issue.

pull request #358 should alleviate this issue. Thank you.


Added autocomplete, suggestions, and hover to html files

Added autocompletion, dropdown suggestions and hover tool tips. Currently added for .html files only but can be expanded.
I plan to continue to build on this but based on the feedback I've gotten I wanted to get an early version out so we can start rolling these features out.

Hey @tylerablake ,
Thank you very much for this PR. In order to build a package and run some tests on our side, can you please fix the linting errors, you can run npm run tslint in your repository to check the state.

Hi @rosen-vladimirov,
Thank you for reviewing! I have fixed the linter errors. Let me know if you need anything else!

Thank you for your suggestions! My intent was primarily to just get some of these features out so they could start being used. It's my understanding that these things don't exist yet in the extension.
I will work on updating the PR.


question: searching scans entire model

When searching for "t1" on this plunkr:
http://plnkr.co/edit/2agivY9m6eOxudJxHmeh?p=preview
all results return. Is there a way we can just get it to search certain fields, such as key/value fields only?

In my use case, most of my models have a true/false value in the model. if they search for the word true, even though it is not a key/value field, all results show.

You need to build a Observer function for that. Please take a look at 'Observer Source' example for tha.


Typofix for @Consumption.valueHelpDefinition in unit4.md

 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.

Hi,
Thank you for your feedback.
The document has already been updated.
Kind regards,
Carine


In Subutai Console, "updates available" makes no sense

The "Bell" icon in upper right corner on the Subutai Console, says "Updates Available" and a time stamp of the Resource Host's update time, and a button to a page that is empty list.
It doesn't make sense.

Yeah we can remove that button from Notifications

Fixed.


Remove deprecated string interpolation syntax #7148

This removes support for the older string interpolation syntax:
"x is \(x)"

The preferred syntax is
"x is $(x)"

The CI failure on start-nix-macos-apple-silicon-tests / nix-apple-silicon looks like a flake and unrelated to this change. I will restart this test and see if it resolves.
We've got a lot of changes in the roc_cli tests coming in #6859 so it's not something we should investigate too much here I think.
failures:

---- cli_run::module_params stdout ----
thread 'cli_run::module_params' panicked at crates/cli/tests/cli_run.rs:159:13:

___________
The roc command:

  "/Users/m1ci/actions-runner2/_work/roc/roc/target/release/roc --optimize --max-threads=1 /Users/m1ci/actions-runner2/_work/roc/roc/crates/cli/tests/module_params/app.roc --"

had unexpected stderr:

  🔨 Rebuilding platform...
Undefined symbols for architecture arm64:
  "_main", referenced from:
     implicit entry/start for main executable
     (maybe you meant: _roc__mainForHost_1_exposed_size, _roc__mainForHost_1_exposed_generic , _roc__mainForHost_1_exposed )
  "_roc_alloc", referenced from:
      _roc_builtins.str.from_int.u32 in roc_appxjVjyP.o
      _roc_builtins.utils.allocate_with_refcount in roc_appxjVjyP.o
      l_str.RocStr.reallocateFresh in roc_appxjVjyP.o
      _List_withCapacity_392aebc0773ca1163ead8eb210e2c2aabca4fe4ded9f2b122a7dab30d082d98b in roc_appxjVjyP.o
  "_roc_dealloc", referenced from:
      l_str.RocStr.reallocateFresh in roc_appxjVjyP.o
      _List_withCapacity_392aebc0773ca1163ead8eb210e2c2aabca4fe4ded9f2b122a7dab30d082d98b in roc_appxjVjyP.o
      l_#Attr_#dec_3 in roc_appxjVjyP.o
      _decrement_refcounted_ptr_8 in roc_appxjVjyP.o
      l_#Attr_#dec_4 in roc_appxjVjyP.o
  "_roc_realloc", referenced from:
      l_str.RocStr.reallocate in roc_appxjVjyP.o
      _List_withCapacity_392aebc0773ca1163ead8eb210e2c2aabca4fe4ded9f2b122a7dab30d082d98b in roc_appxjVjyP.o
ld: symbol(s) not found for architecture arm64


.../meta-resin/meta-resin-common/classes/resin-go.bbclass:1: Could not inherit file classes/go.bbclass

Hello,
I have been trying to add meta-resin to a fork of the GENIVI Development Platform, a Yocto distro currently based on morty.
I did git submodule add https://github.com/resin-os/meta-resin then added  meta-resin/meta-resin-common and meta-resin/meta-resin-morty to BBLAYERS in conf/layers.conf, but when I try to bitbake my custom image I receive the following error:
+ bitbake rokers-image-base
Parsing recipes...ERROR: ParseError at /var/jenkins_home/workspace/dev-platform_wip-add-docker-RN5PWYXJBMW7YIYKXAV7CAJHUYXGQ74ZGGLPQYJRPF6G5G47BFJA/gdp-src-build/../meta-resin/meta-resin-common/classes/resin-go.bbclass:1: Could not inherit file classes/go.bbclass

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Any suggestions about what I did wrong?

The error seems caused by resin.go.bbclass which cannot inherit file classes/go.bbclass.
My distro already includes the poky layer (branch morty).
Unfortunately poky/meta/classes/go.bbclass only exists on https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/classes/go.bbclass
but is not present on the morty branch which I have been using so far.
Notice that I cannot update the branch of poky right now.

At the moment the Go support recipes are taken from the oe-meta-go repository e.g. see https://github.com/resin-os/resin-raspberrypi/tree/master/layers

Also, please checkout the oe-meta-go at commit a15be494a64c36fd7dc4d1808c9d13d0fbee56bf

Hi @gmacario ,
This is because there is a dependency on oe-meta-go layer which is not documented properly. I opened a PR to add this information in the README.
Regards,
Andrei

Thanks @agherzan, I will add oe-meta-go per your suggestion and will update the ticket as soon as the build completes successfully

I confirm that adding submodule oe-meta-go (commit a15be494a64c36fd7dc4d1808c9d13d0fbee56bf) as suggested fixed the issue for me.


🐛 [firebase_storage] Plugin does not honor FirebaseStorage.setMaxOperationRetryTime(...)

Bug report
On Android, setting either FirebaseStorage.setMaxOperationRetryTime(...) or FirebaseStorage.setMaxUploadRetryTime(...) does not seem to cause an upload to stop even after it exceeds the specified duration. Instead, it just keeps printing W/ExponenentialBackoff( 7064): network unavailable, sleeping. constantly in console. It only stops around approximately the default timeout of 10 minutes.
Inspecting the returned UploadTask.snapshotEvents, it emits only a single event with a TaskState.running.
Steps to reproduce
Steps to reproduce the behavior:

Initialize FirebaseStorage with a max retry time.
Turn on airplane mode
Try upload a file.

Expected behavior
Attempting to upload an image should stop after the specified retry time.
Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.4 21F79 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
dependencies:
- auto_route 4.0.1 [flutter path collection meta universal_html]
- bridgette 1.1.0 [auto_route firebase_auth firebase_core flutter flutter_hooks flutter_svg google_sign_in grpc in_app_review lottie meta protobuf provider rxdart shared_preferences sign_in_with_apple sqflite sugar]
- connectivity_plus 2.3.3 [flutter connectivity_plus_platform_interface connectivity_plus_linux connectivity_plus_macos connectivity_plus_web connectivity_plus_windows]
- cupertino_icons 1.0.5
- dotted_border 2.0.0+2 [flutter path_drawing]
- essential 1.0.0 [auto_route bridgette essential_assets flutter flutter_hooks]
- firebase_core 1.17.1 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_storage 10.2.17 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- fixnum 1.0.1
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_hooks 0.18.4 [flutter]
- flutter_launcher_icons 0.9.3 [args image path yaml]
- image_picker 0.8.5+3 [flutter image_picker_android image_picker_for_web image_picker_ios image_picker_platform_interface]
- journal_grpc 1.0.0 [protobuf]
- mime 1.0.2
- shared_preferences 2.0.15 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- sqflite 2.0.2+1 [flutter sqflite_common path]
- url_launcher 6.1.3 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 3.0.6 [crypto]

dev dependencies:
- auto_route_generator 4.0.0 [build source_gen analyzer path build_runner code_builder dart_style auto_route]
- bridgette_runner 1.0.0 [build code_builder dart_style io path sugar yaml]
- build_runner 2.1.11 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flint 2.4.0
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]
- grpc 3.0.2 [archive async crypto fixnum googleapis_auth meta http http2 protobuf]
- import_sorter 4.6.0 [args tint yaml]
- mockito 5.2.0 [analyzer build code_builder collection dart_style matcher meta path source_gen test_api]
- sqflite_common_ffi 2.1.1 [sqlite3 sqflite_common synchronized path meta]

transitive dependencies:
- _fe_analyzer_shared 38.0.0 [meta]
- analyzer 3.4.1 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 3.3.0 [crypto path]
- args 2.3.1
- async 2.8.2 [collection meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.3.0 [analyzer async convert crypto glob logging meta path]
- build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.1.0 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.9 [analyzer async build crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.3 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.3.2 [built_collection collection fixnum meta]
- characters 1.2.0
- charcode 1.3.1
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- clock 1.1.0
- code_builder 4.1.0 [built_collection built_value collection matcher meta]
- collection 1.16.0
- connectivity_plus_linux 1.3.1 [flutter connectivity_plus_platform_interface meta nm]
- connectivity_plus_macos 1.2.3 [connectivity_plus_platform_interface flutter]
- connectivity_plus_platform_interface 1.2.1 [flutter meta plugin_platform_interface]
- connectivity_plus_web 1.2.1 [connectivity_plus_platform_interface flutter_web_plugins flutter]
- connectivity_plus_windows 1.2.2 [connectivity_plus_platform_interface flutter]
- convert 3.0.2 [typed_data]
- cross_file 0.3.3+1 [js meta]
- crypto 3.0.2 [typed_data]
- csslib 0.17.2 [source_span]
- dart_style 2.2.3 [analyzer args path pub_semver source_span]
- dbus 0.7.4 [args ffi meta xml]
- essential_assets 1.0.0 [bridgette flutter]
- fake_async 1.3.0 [clock collection]
- ffi 1.2.1
- file 6.1.2 [meta path]
- firebase_auth 3.3.19 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_auth_platform_interface 6.2.7 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.3.16 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.4.0 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.6.4 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_storage_platform_interface 4.1.7 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.2.16 [async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_plugin_android_lifecycle 2.0.6 [flutter]
- flutter_svg 1.1.0 [flutter meta path_drawing vector_math xml]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- frontend_server_client 2.1.3 [async path]
- glob 2.0.2 [async collection file path string_scanner]
- google_sign_in 5.3.3 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- google_sign_in_android 5.2.8 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 5.3.1 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 2.1.3 [flutter quiver]
- google_sign_in_web 0.10.1+3 [flutter flutter_web_plugins google_sign_in_platform_interface js]
- googleapis_auth 1.3.1 [crypto http http_parser]
- graphs 2.1.0 [collection]
- html 0.15.0 [csslib source_span]
- http 0.13.4 [async http_parser meta path]
- http2 2.0.0
- http_multi_server 3.2.0 [async]
- http_parser 4.0.1 [collection source_span string_scanner typed_data]
- image 3.2.0 [archive meta xml]
- image_picker_android 0.8.5 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- image_picker_for_web 2.1.8 [flutter flutter_web_plugins image_picker_platform_interface]
- image_picker_ios 0.8.5+5 [flutter image_picker_platform_interface]
- image_picker_platform_interface 2.5.0 [cross_file flutter http plugin_platform_interface]
- in_app_review 2.0.4 [flutter in_app_review_platform_interface]
- in_app_review_platform_interface 2.0.3 [flutter url_launcher plugin_platform_interface platform]
- intl 0.17.0 [clock path]
- io 1.0.3 [meta path string_scanner]
- js 0.6.4
- json_annotation 4.5.0 [meta]
- logging 1.0.2
- lottie 1.3.0 [archive flutter path vector_math]
- matcher 0.12.11 [stack_trace]
- material_color_utilities 0.1.4
- meta 1.7.0
- nested 1.0.0 [flutter]
- nm 0.5.0 [dbus]
- package_config 2.0.2 [path]
- path 1.8.1
- path_drawing 1.0.0 [vector_math meta path_parsing flutter]
- path_parsing 1.0.0 [vector_math meta]
- path_provider_linux 2.1.7 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.0.4 [flutter platform plugin_platform_interface]
- path_provider_windows 2.0.7 [ffi flutter path path_provider_platform_interface win32]
- petitparser 5.0.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.2 [meta]
- pool 1.5.0 [async stack_trace]
- process 4.2.4 [file path platform]
- protobuf 2.0.1 [fixnum collection]
- provider 6.0.3 [collection flutter nested]
- pub_semver 2.1.1 [collection meta]
- pubspec_parse 1.2.0 [checked_yaml collection json_annotation pub_semver yaml]
- quiver 3.1.0 [matcher]
- rxdart 0.27.4
- shared_preferences_android 2.0.12 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.1.1 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.1.1 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_macos 2.0.4 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.4 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.1.1 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.3.0 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel]
- sign_in_with_apple 3.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_gen 1.2.2 [analyzer async build dart_style glob meta path source_span yaml]
- source_span 1.8.2 [collection path term_glyph]
- sqflite_common 2.2.1+1 [synchronized path meta]
- sqlite3 1.7.1 [collection ffi js meta path]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- sugar 2.4.0 [crypto meta]
- synchronized 3.0.0+2
- term_glyph 1.2.0
- test_api 0.4.9 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 1.0.0 [json_annotation]
- tint 2.0.0
- typed_data 1.3.1 [collection]
- universal_html 2.0.8 [async csslib charcode collection html meta source_span typed_data universal_io]
- universal_io 2.0.4 [collection crypto meta typed_data]
- url_launcher_android 6.0.17 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.17 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.0.1 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.0.1 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.11 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 3.0.1 [flutter url_launcher_platform_interface]
- vector_math 2.1.2
- watcher 1.0.1 [async path]
- web_socket_channel 2.2.0 [async crypto stream_channel]
- win32 2.6.1 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 6.1.0 [collection meta petitparser]
- yaml 3.1.1 [collection source_span string_scanner]

Seems like I misunderstood what this field does. I thought it meant that the task will be cancelled after the given time.


Bring extension out of preview.

Hiya Guys,
Writing this issue as tracking issue for any thoughts / idea which might suggest otherwise, we are planing to drop Preview out of this extension which means that in this line wihtin package.jsonw ill be gone https://github.com/Azure/vscode-aks-tools/blob/master/package.json#L6 along with all the preview reference if any fro documentation and the version will sit at 1.0.0
Thank you for taking time and taking a look at this, ❤🙏☕ cc: @rzhang628 , @squillace , @itowlson and @peterbom please plus one if you all agree.

👍 🎉 🚀 💯 ❤

I love this feature! Please move forward :)


vi-timeline is not moving while the video is playing

So i have this problem, I'm using vi-timeline directive to see where I'm currently at in the video, but as the video is playing, the slider doesn't move an inch.
If i click on it and slide it right and left, the video does go back and forth but again while the video is playing, the slider doesn't move.
Is there something I'm missing?
Thank you.

Is your vi-timeline directive a child of the vi-feedback directive? As it needs to be :+1: The current version relies heavily on the structure of your document.

Thank you @Wildhoney, that was it.
I'll close down the issue.


islandora_fits not D9 ready

While testing the new D9 islandora parts I stumbled across this error when attempting to view a FITS record: Error: Call to undefined method Drupal\file\Entity\File::url() in Drupal\islandora_fits\Plugin\Field\FieldFormatter\FitsFormatter->viewValue() (line 79 of /var/www/html/drupal/web/modules/contrib/islandora_fits/src/Plugin/Field/FieldFormatter/FitsFormatter.php). The url function was deprecated in D8 and was removed in D9.
We should update the offending line and check for any other deprecated code.
Tagging #1680 and @ajstanley.

An easy one-liner.  Change has been pushed and tested in 8 & 9

An easy one-liner.  Change has been pushed and tested in 8 & 9

Rebuilt the D9 site and all is well!

Rebuilt the D9 site and all is well!


left_sidebar: Adjust lefthand padding, gridded row values.

This PR opens the next phase of the redesigned left sidebar as articulated in @terpimost's design at https://terpimost.github.io/zulip-sidebar/
Fixes #27565
CZO discussion
It removes the awkwardly named --left-sidebar-collapse-widget-gutter value and replaces it with --left-sidebar-padding-left. Negative-margin values that pulled expand/collapse toggles and otherwise worked around the larger-than-necessary "widget gutter" have also been adjusted.
Note that the width of the left sidebar has been preserved here (2px from the old value have been added to the width of the sidebar itself). Eagle-eyed reviewers may notice a very slight shift in some of the screenshots below, but that is owing to a rounding error on the --left-sidebar-max-width value's em conversion.
Additionally, gridded left sidebar rows and their relationship to the left edge of the viewport have been reworked to match Vlad's design. The PR at this stage will appear to show excess whitespace to the left of the left sidebar rows, but those will eventually be occupied by more generous row highlights as well as a proposed curvature for grouping topics under their respective active channels.
Finally, more of the spacing concerns in the left sidebar have been offloaded to the gridded rows. That paves the way for changing up the elements on which colors and borders are declared for highlighting purposes, and should maintain or even enhance control over clickable/hoverable areas to uniformly match content.
(Note that Vlad's design calls for narrower highlights on topic rows compared to other rows in the left sidebar; those have been left as-is for now, as they won't make visual sense until the grouping curvature is in place.)
This PR now also includes styles for the curvature to group channels and topics. Brackets are tuned based on the terminating topic row: an ordinary topic, a resolved topic, or the "show all topics" control:

Ordinary topic
Resolved topic
Show all topics

The curvature is not shown on zoomed-in channels, in concord with Vlad's design. Highlights on topic rows now also conform to the space marked by the curvature, making them narrower than the highlights on their stream-row counterparts.

Left sidebar curvature
Zoomed-in view

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

The alignments look much cleaner!

I've updated the PR after having checked left-sidebar variables, as well as making sure there weren't now any exact duplicate grid-template-column definitions (I did not spot any). Additionally, I added an adjustment to the stream subheaders (Pinned, Inactive, etc.) which is documented in one set of updated screenshots.
I'm planning to continue to build on the contents of this PR, but I've removed its DRAFT designation and added the integration review label.

We're definitely going to test-deploy on chat.zulip.org; I'm not sure it's going to be a mergeable checkpoint. Two things need testing:

The increased space between the icons and the channel names are a thing I'm a bit worried about; I know it's in the design, but it might reduce clarity to detach it from the privacy icon, and so deserves careful examination. The current main left sidebar spacing matches how we display a recipient in the compose box, which is one of the more visible places for it.
The topic alignment change also comes with some risk; the reason we aligned topics differently was for them to stand out from the channel names, and without the other indicators planned in the design, this might not feel great.

Can you post in #design about those changes for discussion? Probably just copying the text and the top pair of before/after images from this PR would be a decent draft of that.

I'm test-deploying this on chat.zulip.org.

This was test-deployed on chat.zulip.org for feedback last night.

Caught a missed grid-row rewrite in the logged out view, on Channels. That fix is now included with this PR.

Merged, thanks @karlstolley!


oData Contains, StartsWith, EndsWith?

Any plans to add these?
Looks like StartsWIth and EndsWith are anbled. substringof also is enabled but I think the parameters are in the wrong order.  Adding contains should just be the same as substringof with the corrected parameters I would think?

substringof is OData2 and, as unintuitive as it feels, the parameters are defined in that order. contains is OData4 which is why it was never implemented
It may make sense to make a OData4FilterLanguage and rename the existing one to OData2FilterLanguage.
Would need to go through the spec thoroughly to determine what other parts have changed. As it looks like there are a number of changes with dates and durations
Would also need setup test cases a bit differently. Currently I run another OData2 parser and ensure the results are the same. Would have to write out each case seperatly for OData4
I am more than happy to accept PRs, or if there is only a subset of OData4 you need to support you can create the provider in your own project. Most of the changes you should be able to do by defining new definitions

Thanks for the example to support the contains canonic function of OData4.
I was missing this  as well as the In operator of OData4.
Any ideas on how to support this one?

If it helps (I don't have a use for this) this should be able to be implemented as a simple expression of Contains which EF translates to IN (SELECT)

Another workaround would be to handle the IN operator as function instead.
Instead of writing Property in ('B','C') like in the OData Specification we would write in(Property,'B','C') as in other functions like contains.
Here is an implementation that works only for string values as is:
    /// <summary>
    /// Provides helper functions for finding Members of Types.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public static class Type<T>
    {
        /// <summary>
        /// Finds a MethodInfo based on an expression.
        /// </summary>
        /// <param name="methodSelector">expression selecting a method.</param>
        /// <returns>Method selected by the expression.</returns>
        public static MethodInfo Method(Expression<Action<T>> methodSelector)
        {
            if (methodSelector == null)
                throw new ArgumentNullException(nameof(methodSelector));

            var exp = methodSelector.Body;

            //loop through to get rid of converts
            while (exp is UnaryExpression)
                exp = ((UnaryExpression)exp).Operand;

            var methodExpression = exp as MethodCallExpression;
            if (methodExpression == null)
                throw new ArgumentException($"{nameof(methodSelector)} is a not a valid method");
            return methodExpression.Method;
        }
    }

    /// <summary>
    /// Provides the base class for parsing OData filter parameters while adding new function definitions.
    /// </summary>
    public class ExtendedODataFilterLanguage : ODataFilterLanguage
    {
        /// <summary>
        /// Access to common List of String Members.
        /// </summary>
        protected static class StringListMembers
        {
            /// <summary>
            /// The MethodInfo for the Contains method
            /// </summary>
            public static MethodInfo Contains => Type<List<string>>.Method(x => x.Contains(default));
            /// <summary>
            /// The MethodInfo for the Add method
            /// </summary>
            public static MethodInfo Add => Type<List<string>>.Method(x => x.Add(default));
        }

        /// <summary>
        /// Returns the definitions for functions used within the language while adding a few new ones.
        /// </summary>
        protected override IEnumerable<FunctionCallDefinition> FunctionDefinitions()
        {
            var defs = new List<FunctionCallDefinition>(base.FunctionDefinitions())
            {
                new FunctionCallDefinition(
                    name: "FN_CONTAINS",
                    regex: @"contains\(",
                    argumentTypes: new[] { typeof(string), typeof(string) },
                    expressionBuilder: (parameters) =>
                    {
                        return Expression.Call(
                            instance: parameters[0],
                            method: StringMembers.Contains,
                            arguments: new[] { parameters[1] });
                    }),
                new FunctionCallDefinition(
                    name: "FN_IN",
                    regex: @"in +\(",
                    expressionBuilder: (parameters) =>
                    {
                        List<ElementInit> elementInits = new List<ElementInit>();
                        foreach(var parameter in parameters.Skip(1)){
                            elementInits.Add(Expression.ElementInit(StringListMembers.Add, parameter));
                        }
                        NewExpression newListExpression = Expression.New(typeof(List<string>));
                        ListInitExpression values = Expression.ListInit(newListExpression, elementInits);
                        return Expression.Call(
                            instance: values,
                            method: StringListMembers.Contains,
                            arguments: new[] { parameters[0] });
                    })
            };

            return defs;
        }
    }

We can provide any number of values but in order to do that we cannot use the argumentTypes parameter in the FunctionCallDefinition so no type validation is done while parsing.
Also, we should make this generic to any supported type like int, etc.

Here is a working implementation for the IN operator that conforms to the OData syntax (for strings only at the moment):
    /// <summary>
    /// Provides helper functions for finding Members of Types.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public static class Type<T>
    {
        /// <summary>
        /// Finds a MethodInfo based on an expression.
        /// </summary>
        /// <param name="methodSelector">expression selecting a method.</param>
        /// <returns>Method selected by the expression.</returns>
        public static MethodInfo Method(Expression<Action<T>> methodSelector)
        {
            if (methodSelector == null)
                throw new ArgumentNullException(nameof(methodSelector));

            var exp = methodSelector.Body;

            //loop through to get rid of converts
            while (exp is UnaryExpression)
                exp = ((UnaryExpression)exp).Operand;

            var methodExpression = exp as MethodCallExpression;
            if (methodExpression == null)
                throw new ArgumentException($"{nameof(methodSelector)} is a not a valid method");
            return methodExpression.Method;
        }
    }

    /// <summary>
    /// Access to common List of String Members.
    /// </summary>
    public static class StringListMembers
    {
        /// <summary>
        /// The MethodInfo for the Contains method
        /// </summary>
        public static MethodInfo Contains => Type<List<string>>.Method(x => x.Contains(default));
        /// <summary>
        /// The MethodInfo for the Add method
        /// </summary>
        public static MethodInfo Add => Type<List<string>>.Method(x => x.Add(default));
    }

    /// <summary>
    /// Represents an extended opening bracket.
    /// </summary>
    /// <seealso cref="StringToExpression.GrammerDefinitions.GrammerDefinition" />
    public class ExtendedBracketOpenDefinition : BracketOpenDefinition
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ExtendedBracketOpenDefinition"/> class.
        /// </summary>
        /// <param name="name">The name of the definition.</param>
        /// <param name="regex">The regex to match tokens.</param>
        public ExtendedBracketOpenDefinition(string name, string regex)
            : base(name, regex)
        {
        }

        /// <summary>
        /// Applies the bracket operands. Adds the evaluated operand within the bracket to the state.
        /// </summary>
        /// <param name="bracketOpen">The operator that opened the bracket.</param>
        /// <param name="bracketOperands">The list of operands within the brackets.</param>
        /// <param name="bracketClose">The operator that closed the bracket.</param>
        /// <param name="state">The current parse state.</param>
        /// <exception cref="OperandExpectedException">When brackets are empty.</exception>
        public override void ApplyBracketOperands(Operator bracketOpen, Stack<Operand> bracketOperands, Operator bracketClose, ParseState state)
        {
            if (bracketOperands.Count == 0)
            {
                var insideBrackets = StringSegment.Between(bracketOpen.SourceMap, bracketClose.SourceMap);
                throw new OperandExpectedException(insideBrackets);
            }
            else if (bracketOperands.Count > 1)
            {
                List<StringSegment> sourceMapSegments = new List<StringSegment>() { bracketOpen.SourceMap };

                List<ElementInit> elementInits = new List<ElementInit>();
                foreach (var bracketOperand in bracketOperands)
                {
                    elementInits.Add(Expression.ElementInit(StringListMembers.Add, bracketOperand.Expression));
                    sourceMapSegments.Add(bracketOperand.SourceMap);
                }
                NewExpression newListExpression = Expression.New(typeof(List<string>)); // TODO handle other data types
                ListInitExpression values = Expression.ListInit(newListExpression, elementInits);

                sourceMapSegments.Add(bracketClose.SourceMap);
                var sourceMap = StringSegment.Encompass(sourceMapSegments);

                state.Operands.Push(new Operand(values, sourceMap));
            }
            else
            {
                var bracketOperand = bracketOperands.Pop();
                var sourceMap = StringSegment.Encompass(new[] { bracketOpen.SourceMap, bracketOperand.SourceMap, bracketClose.SourceMap });

                state.Operands.Push(new Operand(bracketOperand.Expression, sourceMap));
            }
        }
    }

    /// <summary>
    /// Extends the base class for parsing OData filter parameters by adding new function and logic operator definitions and by replacing default bracket definitions to use the <see cref="ExtendedBracketOpenDefinition"/>.
    /// </summary>
    public class ExtendedODataFilterLanguage : ODataFilterLanguage
    {
        /// <summary>
        /// Returns the definitions for functions used within the language while adding a few new ones.
        /// </summary>
        protected override IEnumerable<FunctionCallDefinition> FunctionDefinitions()
        {
            var defs = new List<FunctionCallDefinition>(base.FunctionDefinitions())
            {
                new FunctionCallDefinition(
                    name: "FN_CONTAINS",
                    regex: @"contains\(",
                    argumentTypes: new[] { typeof(string), typeof(string) },
                    expressionBuilder: (parameters) =>
                    {
                        return Expression.Call(
                            instance: parameters[0],
                            method: StringMembers.Contains,
                            arguments: new[] { parameters[1] });
                    })
            };

            return defs;
        }

        /// <summary>
        /// Returns the definitions for logic operators used within the language while adding a few new ones.
        /// </summary>
        /// <returns></returns>
        protected override IEnumerable<GrammerDefinition> LogicalOperatorDefinitions()
        {
            var defs = new List<GrammerDefinition>(base.LogicalOperatorDefinitions())
            {
                new BinaryOperatorDefinition(
                    name: "IN",
                    regex: @"in",
                    orderOfPrecedence: 1,
                    expressionBuilder: (left, right) => {
                        return Expression.Call(
                            instance: right,
                            method: StringListMembers.Contains,
                            arguments: new[] { left });
                    })
            };

            return defs;
        }

        /// <summary>
        /// Returns the definitions for brackets used within the language using the <see cref="ExtendedBracketOpenDefinition"/>
        /// </summary>
        /// <param name="functionCalls">The function calls in the language. (used as opening brackets)</param>
        protected override IEnumerable<GrammerDefinition> BracketDefinitions(IEnumerable<FunctionCallDefinition> functionCalls)
        {
            ExtendedBracketOpenDefinition openBracket = new ExtendedBracketOpenDefinition(
                    name: "OPEN_BRACKET",
                    regex: @"\(");
            ListDelimiterDefinition delimeter = new ListDelimiterDefinition(
                    name: "COMMA",
                    regex: ",");
            return new GrammerDefinition[] {
                openBracket,
                delimeter,
                new BracketCloseDefinition(
                    name: "CLOSE_BRACKET",
                    regex: @"\)",
                    bracketOpenDefinitions: new BracketOpenDefinition[] { openBracket }.Concat(functionCalls),
                    listDelimeterDefinition: delimeter)
            };
        }
    }

can any one please help with a sample usage of the Contains🥺🥺


Not download npm automaticly

let moment = require('moment');

Error:  Cannot find module 'moment'

I think it will download the npm package automaticly, is it a BUG?

I'll test it once I have access to my machine

@cloudqq  It works fine for me. Can you increase execution timeout preferences and try again?

I've adjusted the "excution Timout“ to 600000, but nothing happened. How to enable debug log?

@cloudqq Got same error? Can you join in gitter to discuss further?

Automatic download path

Platform
Download Path

Windows
C:\Users%USERNAME%\AppData\Local\mancy\node_modules

OS X
~/Library/Application Support/mancy/node_modules

Linux
~/.config/mancy/node_modules

it doesn't download on demand on my machine too.
require('whatwg-fetch')
Error:  Cannot find module 'whatwg-fetch'
  at Function.Module._resolveFilename (module.js:338:15)
  at Module._load (module.js:289:25)
  at Function._module3.default._load (/Users/fibric/Applications/Mancy.app/Contents/Resources/app/common/ReplContext.js:117:14)
  at Module.require (module.js:366:17)
  at require (module.js:385:17)
  at mancy-repl:1:1
  at ContextifyScript.cxt.runInContext (/Users/fibric/Applications/Mancy.app/Contents/Resources/app/common/ReplContext.js:203:18)
  at Object.runInContext (/Users/fibric/Applications/Mancy.app/Contents/Resources/app/common/ReplCommon.js:427:23)
  at ReplActiveInput.transpileAndExecute (/Users/fibric/Applications/Mancy.app/Contents/Resources/app/components/ReplActiveInput.js:678:32)
  at /Users/fibric/Applications/Mancy.app/Contents/Resources/app/components/ReplActiveInput.js:843:20

I had to install it manually. Maybe it doesn't install because node_modules doesn't exist.
# fibric @ fibrics-Mac-Pro in ~/Library/Application Support/mancy [2:04:58]
$ ls
DevTools Extensions GPUCache            Local Storage

# fibric @ fibrics-Mac-Pro in ~/Library/Application Support/mancy [2:04:59]
$ npm i whatwg-fetch
/Users/fibric/Library/Application Support/mancy
└──<EMAIL_ADDRESS>
npm WARN enoent ENOENT: no such file or directory, open '/Users/fibric/Library/Application Support/mancy/package.json'
npm WARN mancy No description
npm WARN mancy No repository field.
npm WARN mancy No README data
npm WARN mancy No license field.

require('whatwg-fetch');  Object {} __proto__ :   Object {}

@fibric
can you try adding below log and debug here ?
console.log('request' , request, 'paths', parent.path, 'path', path)
console.log(ex)

@princejwesley In debug mode it downloads automatically without any error. I had this error only once after packaging an OSX build, but this electron build doesn't open the devTools. Don't see the log outputs, nothing logged in console.app.

@fibric  context.console.log logs to application. we have to pass --debug flag to enable chrome dev tool.

Mancy 🙈 ₹ git:(master) dist/Mancy-darwin-x64/Mancy.app/Contents/MacOS/Electron . --debug

I had this happen to me too.
I didn't have a node_modules folder inside " ~/Library/Application Support/mancy/node_modules". Once I created it everything started working fine. I guess it just expects the folder to exist.


Bundler: Mimic Bundler 2.x default of using HTTPS for GitHub dependencies

Bundler 2.x uses https when fetching dependencies specified using github: ..... We need to mimic that in the LockfileUpdater so that we generate lockfiles correctly, but also everywhere else so that we don't accidentally unlock git dependencies.
Fixes https://github.com/dependabot/dependabot-core/issues/1295.

Nice work on this @rebelagentm !


Preset live updates / hot reloading

Clear and concise description of the problem
I'm using presets to organize my complicated unocss config. However, presets do not live update in my astro project. This means if I change a theme value for example, I have to reset the dev server
Suggested solution
Make it so that updates in a preset (or just ts files that get imported into uno.config) reflect live in the project/ui
Alternative
Have not found one yet
Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the README.md of using the package.
[X] Already used the Interactive Docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Found solution here: https://github.com/unocss/unocss/issues/2613


broken npm package v1.0.7

Hi ! when doing a yarn add<EMAIL_ADDRESS>we get an almost empty dependency without a dist folder. Is this release actually broken?

Noticing the same thing here for all versions.

Sorry about this, I've been away for a while, will check to see what might have happened

Version 1.0.9 is now pushed that includes the right files. Sorry about the mixup @euphocat and @markhicken - thanks for letting me know.


(colpalidemo) Bugfix: rename and reverse token_to_idx

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
1. Bugfix on repeated tokens
🤦♂ Note to self: Think twice before assuming keys in a dictionary are unique.
Solves the issue with missing similarity maps for "_the".
The underlying issue was actually because it was repeated (and the subsequent update overwrites the first).
2. Improve token filtering
See comment in should_filter_token for what now matches.

😄


Fix ARN issues mentioned in #12

Description of change

Pull-Request Checklist

[x] Code is up-to-date with the main branch
[x] yarn lint passes with this change
[x] yarn test passes with this change
[x] This pull request links relevant issues as Fixes #12 https://github.com/distinction-dev/serverless-pipes/issues/12
[x] There are new or updated unit tests validating the change
[x] Documentation has been updated to reflect this change
[x] The new commits follow conventions outlined in the conventional commit spec

Related to https://github.com/distinction-dev/serverless-pipes/issues/12

Fixes https://github.com/distinction-dev/serverless-pipes/issues/12


Handle "file://" URLs in package cache

The default reqwest client doesn't seem to handle file URLs. I think we could fix that in the package cache implementation (or should we make a client wrapper?)

Yeah solving that in the PackageCache implementation sounds like a good plan.


Problem visualizing PointCloud2

Greetings.
I am simulating a quadrotor with a depth camera on Gazebo and I am trying to see the data published by the simulation on RViz2.
The problem is that when I tried to visualize the point cloud of the camera from the fixed frame "map": I got the error message
Message Filter dropping message: frame 'camera_link' at time<PHONE_NUMBER>.527 for reason 'Unknown'

As far as I understood, this error message is associated with the inability of RViz to find the transformation from the static frame "map" to the frame "camera_link".
So, I started playing a bit around, trying to understand what was happening.
I was publishing 3 transformations through a ROS2 node:

"map" to "odom" (static tf)
"odom" to "drone" (dynamic tf)
"drone" to "camera_link" (static tf)
All of them were being published simultaneously at the same timestamps.

I was able to see all the transformations correctly published on the topics /tf_static and /tf through the command
ros2 topic echo <topic_name>

Moreover, I was able to visualize them in RViz2 using the TF tool, all of them connected in the three as reported in the above list. So RViz2 can correctly read them, and I was able to select each of the 4 four frames as the fixed frame.
So I started changing the fixed frame to see if anything happened.
When I selected either "drone" or "camera_link" as the fixed frame, I was able to visualize the point cloud of the camera.
When I selected either "map" or "odom" I got the error message.
My conclusion, for now, is that there could be some problems I am not aware of when using dynamic tf in RViz or when mixing static and dynamic tf.
I was not able to find a solution looking on the web, so I hoped some of you could help me in debugging this issue.
Some more info, if useful:
I am using ROS2 Foxy with Ubuntu 20.04 LTS on a Docker Container with the Docker Image "osrf/ros:foxy-desktop".

I did some other tests.
Replacing the tf from "odom" to "drone" with a static tf makes RViz2 able to display the PointCloud2.
Replacing all the tfs with dynamic ones, make it impossible to visualize the PointCloud2 from any starting fixed frame except for "camera_frame".
Could the issue be related to https://github.com/ros2/rviz/issues/484?

In the end, I solved it.
I did not set the "use_time_parameter" of the node that was publishing the various tf. After setting it to True I was able to visualize the point cloud without problems.


Investigate using quickcheck

Kind of like a fuzzer. Not sure if it would be useful for this library? Worth investigating; I hear great things.

What sort of properties would we test?

Honestly, I'm not sure.

Now that we have some write support, I guess some round-trip checks would work... given an input, parse it, then checking that writing it and parsing it again gives the same result. Still not sure this is worth the effort though.


nicknames/hosts file for more user-friendly transactions

We've discussed this in the Voyager UI/UX meeting. I'm making an issue so we don't forget about it.

Let users send to people, not bech32 addresses
Like an /etc/hosts file
May have security implications: creates an attack vector
Maybe use bech32 with custom prefixes per address
Maybe use autocomplete to select addresses

"hosts file" sounds weird. Isn't is just a contact-list the user can create? So more of an address book?
The user could create contacts in a custom bech32 format and store them.
Or users MUST create a contact first before sending. This is how some exchanges do it.

Can we close this as validators have monikers already ?

Users don't have monikers though.

and more broadly, peng is talking about a contact list feature which is not in our roadmap (wallet 2 anyone?)


Problems with hip implementing atomic on AMD GPU

Hello,everyone.
I have some questions about atomic while using HIP.When I want to use atomic.load() in a device function based on the hip:rocm-4.0.0 version, error like ：
../bucket.cuh:48:44: error: no matching member function for call to 'load'
lane_pair_ = ptr_[tile_.thread_rank()].load(order);
/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/atomic:246:7: note: candidate function not viable: call to host function from device function
load(memory_order __m = memory_order_seq_cst) const noexcept
^
/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/atomic:255:7: note: candidate function not viable: call to host function from device function
load(memory_order __m = memory_order_seq_cst) const volatile noexcept
So I have the below questions:

Have you ever encountered such a problem and how to solve it?
Can I override device struct atomic{...} in HIP like cuda/atomic?

Hi @frobnitzem , Thanks for your reply, I got it..


CommandNotFoundException

Type: Performance Issue
Hello,
I´m having a issue as described below. I tried some google-fixes but didn´t help. Also tried these ones: https://stackoverflow.com/questions/48602324/the-term-go-is-not-recognized-as-the-name-of-a-cmdlet-function-script-file
Does anyone please have any fixes?
PS C:\Users\xxx\booking-app> main.go
main.go : The term 'main.go' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spe
lling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1

main.go

  + CategoryInfo          : ObjectNotFound: (main.go:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

Suggestion [3,General]: The command main.go was not found, but does exist in the current location. Windows PowerShell does not load commands from the current location by default. If you trust this command, instead type: ".\main.go". See "get-help about_Command_Precedence" for more details.

Maybe https://github.com/microsoft/vscode/issues/189183#issuecomment-1656781045 will help you.

Maybe #189183 (comment) will help you.

Thanks, but unfortunately that didn´t make any difference. I had CMD already set as default profile, tried to switch PS just in case as well but still same error. I see that arg387 posted recently too, so might be a fresh bug?

@hermakab can you send a screenshot of the terminal in vscode?

Did you type that in the terminal or are you using the Go extension?

You will have to type the name of a program before the file name, I suggest checking the Go docs


Tidy up documentation.

Thought I'd tidy up the docs while reading through them. Hope you don't mind!
For the most part, I just made the formatting consistent through-out and added a few words here and there. Also updated the language server install graphic.

bors r+
Thanks!

<3
On Friday, 21 February 2020, bors[bot]<EMAIL_ADDRESS>wrote:

Merged #3264 https://github.com/rust-analyzer/rust-analyzer/pull/3264
into master.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/pull/3264?email_source=notifications&email_token=AANB3MZNC6UTXXMTN4TZVYLREA3DLA5CNFSM4KZJMMUKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOWZ76EWA#event-3061834328,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M2V4KECMHXPSXKZ43LREA3DLANCNFSM4KZJMMUA
.


Unreleased Resource: Synchronization

usr/local/share/agentWork/app/App_iOS-2/Pods/FirebaseCrashlytics/Crashlytics/Crashlytics/Handlers/FIRCLSMachException.c : 109
The function FIRCLSMachExceptionThreadStart() in FIRCLSMachException.c fails to release a lock it acquires on line 109, which might lead to deadlock.The program fails to release a lock it holds, which might lead to deadlock.
Explanation -
The program can potentially fail to release a system resource.
In this case, there are program paths on which the resource allocated in FIRCLSMachException.c on line 109 is not always released.
Resource leaks have at least two common causes:
- Error conditions and other exceptional circumstances.
- Confusion over which part of the program is responsible for releasing the resource.
Most unreleased resource issues result in general software reliability problems. However, if an attacker can intentionally trigger a resource leak, the attacker may be able to launch a denial of service by depleting the resource pool.

if(ois,) Or the other person who knows

The attr pointer is deinitialized in all code paths in the method: https://cs.opensource.google/firebase-sdk/firebase-ios-sdk/+/main:Crashlytics/Crashlytics/Handlers/FIRCLSMachException.c;l=106?q=FIRCLSMachException.c
If you have an instruments trace demonstrating the leak of this pointer, please reopen the issue.


Is there any no-op implementation already?

Does this library wouldn't be crashed if we only define the debugImplementation? The initialization class will be red in releaseImplementation

cc @amitshekhariitbhu @balsikandar @janishar

I have been making quite some changes to a fork of this library here as a part of it, thanks to your issue, I implemented no-op.
Please note, the readme is still to be updated and maybe a wiki in future. But, you can use
'com.orpheusdroid.crashreporter:crashreporter:1.0.3' for full implementation and
'com.orpheusdroid.crashreporter:crashreporter-no-op:1.0.3' for the no-op implementation.
Further, while using no-op make sure you wrap CrashReporterActivity with BuildConfig.debug condition if you are using it. Since the no-op version's CrashReporterActivity is an empty class while the actual one is an activity.
Refer to this example if still not clear.

will leave this issue open for future reader

I have been making quite some changes to a fork of this library here as a part of it, thanks to your issue, I implemented no-op.
Please note, the readme is still to be updated and maybe a wiki in future. But, you can use
'com.orpheusdroid.crashreporter:crashreporter:1.0.3' for full implementation and
'com.orpheusdroid.crashreporter:crashreporter-no-op:1.0.3' for the no-op implementation.
Further, while using no-op make sure you wrap CrashReporterActivity with BuildConfig.debug condition if you are using it. Since the no-op version's CrashReporterActivity is an empty class while the actual one is an activity.
Refer to this example if still not clear.

thank you so much @vijai1996


 I'm sorry to see that you've had an issue getting set up on Cloud. We'd love to help you get bloop up and running smoothly.
A couple of things to note:

We do not charge until the end of the 7 day trial period
If you'd like to cancel just get in touch at<EMAIL_ADDRESS>
We're a small startup working hard to build a great product - we try to fix bugs like this as soon as we're alerted to them!

I emailed the contact, thank you. when can i expect a follow up?


Missing dependsOn using modules and subcsription scope

Bicep version
Bicep CLI version 0.1.226-alpha (eb3d221626)
Describe the bug
When creating a template with the targetScope set to subscription I get issues with missing dependsOn. I have a template that creates a resource group and then I deploy an VNet to that newly created resource group.
To Reproduce
vnet.bicep
param location string
param name string

resource vnet 'Microsoft.Network/virtualNetworks@2020-06-01' = {
    location: location
    name: name
    properties:{
        addressSpace: {
            addressPrefixes: [
                '<IP_ADDRESS>/20'
            ]
        }
        subnets: [
            {
                name: 'snet-apim'
                properties: {
                    addressPrefix: '<IP_ADDRESS>/24'
                }
            }
        ]
    }
}

output vnetId string = vnet.id
output vnetstate string = vnet.properties.provisioningState

main.bicep
targetScope = 'subscription'

resource rg 'Microsoft.Resources/resourceGroups@2020-06-01' = {
    location: 'eastus'
    name: 'vnet-rg'
}

module vnet './vnet.bicep' = {
    scope: resourceGroup('vnet-rg')
    name: 'vnet'
    params: {
        location: 'eastus'
        name: 'myVnet'
    }
}

Error
No dependsOn is added to the nested deploy in main.json which is causing the deployment to fail.
PS C:\Temp\bicep\vnet> New-AzDeployment -Location westeurope -Name bicep9 -TemplateFile .\main.json
New-AzDeployment: 10:00:55 - The deployment 'bicep9' failed with error(s). Showing 1 out of 1 error(s).
Status Message: Resource group 'vnet-rg' could not be found. (Code:ResourceGroupNotFound)
CorrelationId: a5fe8112-5cb8-4607-a007-92a95ca4e148

Workaround
I need to manually add the dependsOn to the main.bicep file to get it working.
targetScope = 'subscription'

resource rg 'Microsoft.Resources/resourceGroups@2020-06-01' = {
    location: 'eastus'
    name: 'vnet-rg'
}

module vnet './vnet.bicep' = {
    scope: resourceGroup('vnet-rg')
    name: 'vnet'
    params: {
        location: 'eastus'
        name: 'myVnet'
    }
    dependsOn: [
        rg
    ]
}

Got the same problem

This better fix is to finish #822, but this can be solved by changing the scope declaration to:
module vnet './vnet.bicep' = {
    scope: resourceGroup(rg.name) // this reference to symbolic name 'rg' tells bicep to generate the dependency
    name: 'vnet'
    params: {
        location: 'eastus'
        name: 'myVnet'
    }
}

Can you check if this solves it for you?

@alex-frankel thanks! Changing the scope declaration works.


Active Storage 7 raises incomplete transaction warnings in the newrelic_agent.log file

When uploading an image using Action Text, Active Storage 7 raises incomplete transaction warnings in the newrelic_agent.logs like:
WARN : Segment: Nested/Controller/active_storage/blobs/redirect/show was unfinished at the end of transaction. Timing information for this segment'sparent Middleware/Rack/ActionDispatch::Routing::RouteSet/call in Controller/active_storage/blobs/redirect/show may be inaccurate.

The same warning is not raised when uploading an image using Active Storage 6.
Debugging strategy proposal:

Point bundler to a relative local path for Active Storage and use git bisect to step through the commits between Rails 6 and Rails 7 and determine when the change was introduced that raises the warning

We have yet to discover the root cause of this issue. We have been able to determine the scope is within only nested controller calls to ActiveStorage 7 paths. ActiveStorage 7 instrumentation and measurement is not effected.
This warning was raised while using the local disk as the storage service. We are not aware if this warning is likely to pop up when other storage solutions are used (ex: S3, AzureStorage, GCS).
This warning indicates the timing for the displayed segment was unfinished when its parent transaction was finished. This may lead to inaccurate durations for the named segments. Use duration data for segments that have this warning with the awareness that they could be longer or shorter than the displayed time.
We'll pick this issue back up when we begin working on instrumenting new Rails 7.0 features.

This is not ready for t-shirt size, as the root cause for the warning has yet to be established.
This is likely caused by timing/concurrency, so the multi-threading work on the agent may resolve this issue for us.
Value to the customer would be providing accurate timing information for multi-threaded transactions that are built into normal Rails processes.

@kaylareopelle I'm seeing this on production (Rails 7.0.3, Ruby 2.7.6) with an AWS S3 storage backend, what information would be most useful to share?
Here's a sample from our NewRelic dashboard for the ActiveStorage proxy controller (bucket names redacted).

As you can see, the response time (blue) is drastically lower than the total - presumably that's a symptom of this issue?

Hello @developius! Thanks for reaching out!
I think the response time is a symptom of this issue. Do you have access to the application's newrelic_agent.log file? It would be nice to know if you're getting warnings like the one in the initial issue description:
WARN : Segment: Nested/Controller/active_storage/blobs/redirect/show was unfinished at the end of transaction. Timing information for this segment's parent <parent segment> may be inaccurate.
I believe WARN-level logs should be printed by default.
Also, which version of the agent are you using?

@kaylareopelle sharing the warning I was getting would've been sensible 😆
We're using newrelic_rpm v8.7.0 (I see we're due for an update).
Here's what we're seeing:
WARN : Segment: Nested/Controller/active_storage/representations/proxy/show was unfinished at the end of transaction. Timing information for this segment'sparent Middleware/Rack/ActionDispatch::Routing::RouteSet/call in Controller/active_storage/representations/proxy/show may be inaccurate.
Interestingly, we didn't see this warning when using the redirection mode of ActiveStorage. When we switched to proxy mode, these started showing up.

Thank you, @developius! This is really helpful information. I think the next best step would be to escalate this issue to our Global Technical Support team. This will also give us a secure space to share more sensitive information like your Gemfile, code snippets and debug-level logs. It will also help our team more quickly address the fix.
To submit a ticket to support, we have two strategies depending on your New Relic account level:

If you have a paid account that allows you to submit support tickets, please open one on our Support Portal with a link to this GitHub issue
If you're on the free tier or a paid level without support, please post a question on the New Relic Explorer's Hub with a link to this GitHub issue

Please let me know when you're finished submitting your ticket and/or if you need any help!

@kaylareopelle I've opened a new topic on the Explorer's Hub here: https://discuss.newrelic.com/t/activestorage-controllers-in-rails-have-misrepresented-timing-in-new-relic/188839

Thank you! Our team is off through August 12. I'll get back in touch on Monday!

Hi @developius,
My apologies for the delay in getting a response back to you. I really wanted to be able to come back to you with very good news about a definitive "fix" for any unwanted behavior you're seeing, but unfortunately all that I am able to offer at the moment is more of an explanation for you and others.
There are a few items that this GitHub Issue touches on, and I'll address what our team knows so far about each. You may not be experiencing all of these.
ActionDispatch::Routing::RouteSet#call
Users sometimes wonder about ActionDispatch::Routing::RouteSet#call appearing in their New Relic web UI views, and how much time is reported for it. Essentially everything that the New Relic observed Ruby on Rails web application is doing in response to a web client accessing a given route falls under this RouteSet#call section. Even though the MVC (model, view, and controller) portion of handling a route call might be very quick to finish, there can be other asynchronously running operations and middleware involved that contribute to time being spent in RouteSet#call. One of our customers provided us with an excellent writeup of this issue. If the time spent in RouteSet#call is considered to be problematic, that writeup offers the suggestion of using New Relic Ruby agent custom instrumentation to provide more granular timing for individual middleware calls.

WARN : <TRANSACTION NAME> was unfinished at the end of transaction
The New Relic Ruby agent log file (located at log/newrelic_agent.log by default) may contain WARN entries such as the following:
WARN : Segment: Nested/Controller/active_storage/blobs/redirect/show was unfinished at the end of transaction. Timing information for this segment'sparent Middleware/Rack/ActionDispatch::Routing::RouteSet/call in Controller/active_storage/blobs/redirect/show may be inaccurate.

What this warning means is that the New Relic Ruby agent is about to finish up reporting on a RouteSet#call transaction and stop the stopwatch, even though the agent realizes that the underlying Ruby on Rails application may still be involved in completing various asynchronously conducted operations that could technically be considered a part of the same transaction.
Note the following:

While the example above refers to Nested/Controller/active_storage/blobs/redirect/show, this warning is not at all ActiveStorage specific and can appear for any type of transaction
The "may" part of this warning represents some pretty cautious behavior on the part of the agent. We have been able to produce this warning when the timing information is indeed complete and accurate.
This warning is more likely to appear when there are multiple Ruby threads involved in handling a given operation. In our case we were able to reproduce this warning by spawning a new Thread and calling join on it and making sure its work was complete. Even though the thread has been joined and is effectively done working, the New Relic Ruby agent is aware that the joined thread has not yet been garbage collected. At this time, the agent is not able to differentiate between threads that are done processing / waiting to be reaped and threads that are still active and unfinished when it comes time to stop the stopwatch.
For ActiveStorage in particular, the warning may be more likely to appear if one underlying asynchronous process either takes more time or utilizes more threads than another. For example, in switching between a local storage based setup to an AWS S3 one, the AWS S3 one would be more likely to see the warning.

Given these items, these warnings can safely be ignored by the Rails application we used to investigate this issue, as the timing info was always correct. But for real world production applications, it remains possible that this warning could indicate that the Rails application is still busy working on something at the time the stopwatch is stopped. For any individual application whose RouteSet#call timing is thought to be inaccurate, users can work with New Relic support on the specifics of their situation.

"Response time" is lower than the overall transaction time
From the screenshot that @developius shared, there is a "Response time" metric (represented by the darkest of the blues on the graph) that is notably lower than the largest amount of time shown for an overall operation (in the case of the screenshot, the overall operation was an ActiveStorage ProxyController call.
In our testing, this situation of having "Response time" not be the largest timing number is correct and expected; while admittedly it can come across as confusing and perhaps even subjectively not what is desired.
What is happening is that "Response time" measures wall clock time. In the context of a Ruby on Rails action being carried out, how much human observed time elapsed before a response came back?
The other values on the graph measure total system and/or CPU time. If 3 threads were involved in a Rails operation and all ran asynchronously and each took 1 second to complete, the wall clock time would be 1 second while the system time would be 3 seconds. This is why the "Response time" value can show up as having a smaller value on the web UI graphs when asynchronous logic is involved by the observed application.
To demonstrate this issue, here is an example Ruby on Rails controller method:
  def index
    threads = []
    3.times do
      threads << Thread.new { sleep 1 }
    end
    threads.each(&:join)

    @cogs = Cog.all
  end

Assuming that the ActiveRecord Cog.all operation takes 1 second to complete, the New Relic Ruby agent will report that a single invocation of this controller method...

Took 2 seconds in the "Response time" part of the graph. The threading work took 1 second, and the ActiveRecord call took 1 second, and the client had a response back in 2 seconds total.
Took 4 seconds in the "RouteSet#call` part of the graph. The threading work took 3 x 1 second and the ActiveRecord call took 1 second. There was 4 seconds spent on engaging the system/CPU even though the controller responded in 2 seconds.

Interestingly, this trivial controller code is also capable of reproducing the WARN message in the logs mentioned in the previous section, because the New Relic transaction is finishing up while the individual Thread instances still exist even though they are done working.
Note that by default the "Response time" value is produced from an average of multiple sets of data.
For any observed application that appears to have any incorrect timing values beyond the difference between wall clock and CPU/system time, users can work with New Relic support to go over the specifics.

The Future of the New Relic Ruby agent
As the Ruby community itself continues to progress by having its applications be more asynchronous and concurrent in nature, we are constantly looking into ways for the New Relic Ruby agent to better operate within and measure these contexts. The Ruby agent dev team is staffed exclusively by individuals who are passionate about Ruby, participate in conferences (check out our recordings from the recent RailsConf 2022!), and engage actively and passively with the Ruby community as much as possible.
The items described here in this Issue all pertain to an observed application doing multiple things concurrently. As we continue to improve how the agent behaves in and reports on concurrent environments, we hope to continue to drive relevant aggregation / UI changes in the future.
We very much encourage and celebrate feedback that helps us know where our users would most prefer that we focus our efforts.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v4.9.291",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b1ffc16ec05ae40d82b6e373322d62e9d6b54fbc"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "b1ffc16ec05ae40d82b6e373322d62e9d6b54fbc",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.9.291 by commit b1ffc16ec05ae40d82b6e373322d62e9d6b54fbc. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1002229


Left-hand operands are fellback to right-hand ones for type mismatching

Fixes #844.
Include some other refactorings:

 SlotSetter is refactored not to have skipped_setters field.
py_ternary_num_func macros are removed since they are just called once.
#[macro_export] for macros in class/macros.rs are removed.

And I changed right hand methods to use extract_or_return_not_implemented, so now we can write tests that confirm that NotImplemented is correctly returned when both of __add__ and __radd__ is defined. cc: @mvaled

Sigh, coverage decreased after I added some tests... :sweat:


Any updates to this?

Just curious if you plan to further update this project as I think its really cool!

sorry, but no.
I've moved on to doing other interesting things. :-)

Ah gotcha! Totally understand!


Error since 0.4.2, " Failed to execute 'postMessage' on 'BroadcastChannel': # could not be cloned."

First of all, let me say thank you for creating and maintaining this awesome project. It saved our behinds on a pinia store issue where we use pinia-plugin-persisted-state to cache the stores in localstorage, and users were logging into two separate accounts in different tabs, corrupting the stores states!
I'm using Vue 3.3.4 with pinia 2.1.4. This exception started appearing recently. I believe it was today after updating to 0.4.2 from 0.3.0. It's repeatable on the vue-date-picker component inside a vuetify dialog, for us. Whenever the date value changes the exception occurs. To add to this, we use rrule and computed properties to calculate quite a few things, so it could be anywhere in that chain.
I can't see any immediate impact to our app, but I suspect that something may be wrong with the shared state. For now it's not urgent for us, since we have no side effects. Let me know if you need anything else to help debug.
native.js:24 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'BroadcastChannel': #<Object> could not be cloned.
    at Object.postMessage (http://localhost:5173/node_modules/.vite/deps/pinia-shared-state.js?v=24bbf7a2:67:21)
    at http://localhost:5173/node_modules/.vite/deps/pinia-shared-state.js?v=24bbf7a2:760:47
postMessage @ native.js:24
(anonymous) @ broadcast-channel.js:187
Show 2 more frames

Hi, thanks for reporting! Glad you liked it.
Can you try 0.4.4?

I tried 0.4.4 but still getting same error as mentioned above,(url)

Can you try 0.4.4?

@wobsoriano I am also still getting the same error

@sk-tjdownes but when you go back to 0.3.0, it works?

Thanks @sk-tjdownes! Should be working now. Rolled back to 0.3.0 proxy unwrapping.

@wobsoriano this appears resolved in 0.4.5. Thanks for your speedy attention!


Add StokesCube that's <4D

Right now, we can handle 4D stokes cubes, where we have (spatial, spatial, spectral, stokes).  We should also support continuum stokes, i.e., (spatial, spatial, stokes).   This is related to https://github.com/radio-astro-tools/spectral-cube/issues/732

Hello, I am trying to use spectralcube to open a 4D cube, where the stokes parameter is basically null, but is present. I think it should be fine, has the hdu info is ok. But SpectralCube.read gives an error. What can I do about this? Thanks
hdul = fits.open('rift-13co-all-3d--28-28_hr.fits')

hdul.info()
Filename: rift-13co-all-3d--28-28_hr.fits
No.    Name      Ver    Type      Cards   Dimensions   Format
0  PRIMARY       1 PrimaryHDU      46   (1183, 1446, 282, 1)   int32 (rescales to float64)

Later...
Traceback (most recent call last):
File "cubehandler.py", line 17, in
cube=SpectralCube.read('rift-13co-all-3d--28-28_hr.fits', 'spectral_cube')
File "/media/croman/DATA/anaconda3/lib/python3.8/site-packages/spectral_cube/io/core.py", line 118, in call
return registry.read(BaseSpectralCube, filename, *args, **kwargs)
File "/media/croman/DATA/anaconda3/lib/python3.8/site-packages/astropy/io/registry/compat.py", line 43, in wrapper
return getattr(registry, method_name)(*args, **kwargs)
File "/media/croman/DATA/anaconda3/lib/python3.8/site-packages/astropy/io/registry/core.py", line 199, in read
data = reader(*args, **kwargs)
File "/media/croman/DATA/anaconda3/lib/python3.8/site-packages/spectral_cube/io/fits.py", line 204, in load_fits_cube
wcs = WCS(header)
File "/media/croman/DATA/anaconda3/lib/python3.8/site-packages/astropy/wcs/wcs.py", line 531, in init
self.wcs.set()
astropy.wcs._wcs.SingularMatrixError: ERROR 3 in wcsset() at line 2739 of file cextern/wcslib/C/wcs.c:
Linear transformation matrix is singular.
ERROR 3 in linset() at line 674 of file cextern/wcslib/C/lin.c:
PCi_ja matrix is singular.

Hi @chukus  -- This may be an issue with the header in the file.
Do you get the same error with:
from astropy.wcs import WCS
mywcs = WCS(hdul[0])

?

Dang!. Found I had a similar problem before and I have no memory of it! #445. I set cdelt4=1.0 instead of 0.0 and it works now. Thanks, sorry for the lapsus.


[Bug]: Post-purchase UI extension not working

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Extension
Expected behavior
CLI not working for Post-purchase UI
I tried creating a new Shopify app. After that, I added Post-purchase UI extension.
In the console I see:
To view this extension:
 1. Install Shopify’s post-purchase Chrome extension...
 2. Open the Chrome extension and paste this URL into it...
 3. Run a test purchase on your store to view your extension...

I create a test product, and create a test checkout: https://help.shopify.com/en/manual/checkout-settings/test-orders
Again. It's a simple app, with a simple extension, without any changes, only a fresh project, created from CLI.
App working and I can see it in the admin dashboard.
But this extension is not.
Issue number one: I don't see anything after checkout, and before thank you page.
Issue number two: I tried to deploy this extension.
And I see this:

Actual behavior
Errors in the console.
hieroglyphs
Stack trace
No response
Reproduction steps

Install cli v3
create a Shopify react node app
add a post purchase ui extension
use chrome extension/use npm deploy

Operating System
Windows 10 x64
Shopify CLI version (check your project's package.json if you're not sure)
3
Shell
No response
Node version (run node -v if you're not sure)
No response
What language and version are you using in your application?
No response

Hello, @shauns. Thanks for your reply.
As I wrote above, I am using a new project.
In a new project, package.json uses @shopify/cli": "3.2.0 as dependency
I can update to 3.3.2, but I see the same errors.

I'm using Windows 10, as the main OS.
For NPM command - Windows PowerShell or ConEmu terminal emulator.

@SerhiDi what's your processor's architecture? You can obtain it by running:
node -e "console.log(os.arch())"

x64

Thanks @SerhiDi. It seems an internal binary that we use is not compatible with your shell or architecture but I can't figure out why. Could you try pulling the Windows binaries from this GitHub release (on the assets) section, unzip them, and try to run it from your Powershell terminal? I'll continue investigating on my end in the meantime.

This error when I run the binary file.
If I tried to delete v0.20.2-windows-amd64.exe and run the command npm run deploy inside the Shopify project.
The binary file is being restored, and I see the error as in first message.

Thanks 🙏🏼. I have the issue narrowed down. The uncompressing of the binary that the CLI does leads to a corrupted binary. Until we can provide a fix, you can replace the binary at this path:

With the one that you manually downloaded and uncompressed. Make sure it has the path is the same. After that, running npm run deploy should work.

These files v0.20.2-windows-amd64 and shopify-extensions-windows-amd64 are the same size.
I download again shopify-extensions-windows-amd64.exe, move to ...binaries\extensions, and rename it to v0.20.2-windows-amd64. Nothing changed, error after npm run deploy.

Thanks for sharing the context @SerhiDi. We are looking into it and we'll provide you with a solution as soon as possible.

Would you mind trying it with the most recent version of Node, 18.6.0? You can use a tool like nvm to manage different Node versions if you are not doing it already.

So, there are problems with folder names in the library.
Old folder name: Shopify Apps/{project name}. Please check this naming - Shopify Apps. I'm confusing, why is this name not working for the Post-purchase UI extension.
My project was moved to another folder but that didn't help.
Currently app on the disk W and extension binary trying to create a folder with the wrong command.

Also, the app works but I don't see the extension after checkout.

@SerhiDi Here are the steps I'm using to create the app + extension and then serve (dev) them both. The screenshots indicate how I responded to prompts. The only times this has not worked was when I messed up either step 5 or 6, but when done correctly, the Post-Purchase Extension consistently renders for me. Would you please try this and let us know if you still have an issue? Thanks for your patience.

Create an app:
Powershell>  npm init @shopify/app@latest

Scaffold an extension:
Powershell>  cd flat-block-app-3784
Powershell>  npm run scaffold extension

Serve the app + extension:
Powershell>  npm run dev

Copy/paste the Install the App (from the image above) into your browser, clicking the Install app button:

Copy/paste the Configure Chrome Extension (from the image above) into the Chrome extension, clicking Save:

Navigate to your store in a normal Chrome browser tab, adding an item to your cart and checking out normally:

After checkout, observe the Post-Purchase Extension render:

@dmhenry, hello. Thanks for your reply.
Always followed these steps before.
As I see in today's updates extensionsBinary changed from v0.20.2 to v0.20.5.
And yes, with this binary I can see Post-purchase extension.


Added (deep) copy function for graph

You can make a deep copy of graph like this :
PESGraph *anotherGraph = [graph copy];

And any modification on graph won't affect anotherGraph.

Welcome! Thanks for the fast merge!


[roles-0.1.0] Add tooltip copy and 'Learn more' Link to Payroll form

This exists in the "Payment Stream" section of the Edit page of a Role.

The green "Learn More" link needs a target
the tooltip (displayed in screenshot above) needs copy

@decentdao/design @decentdao/product Do we have copy/links for these?

Re; Learn More links - This should lead to our docs on the stream page @Da-Colon / @adamgall . i.e. Link for you to use here . However, this is text is incomplete so @SpookyAction-BTC lets DM about timelines for this today.
Re; Tooltip - My take: we take pieces of copy from the Sablier site but tweaked to our needs
E.g.
- For add payment tooltip - 'Payments on a per-second basis; powered by Sablier'.
- For Cliff tooltip - 'Assets continue to accrue but aren't yet claimable here.'
For the middle one, we can draft something new
- For Schedule tooltip - 'Use either duration periods or the Date Range Picker'
@nicolaus-sherrill / @xraystyle1980 / @xanaramoss we need copy for the three tooltips in the above. Could you look at my very brief draft and tweak if its needed

Closed via #2235


Make the helm charts as a base template to scaffold the artifacts

/hold cancel
Images have been bumped in https://github.com/knative/infra/pull/154

/cherry-pick release-1.11


Custom button symbols

It would be nice to be able to create custom buttons, perhaps with a function that can be fed CGPathRefs:
let startCustomButton = DynamicButton(startLine1, startLine2, startLine3, startLine4)
let endCustomButton = DynamicButton(endLine1, endLine2, endLine3, endLine4)

startCustomButton.setStyle(endCustomButton.style, animated: true)

( maybe even use ASCIImage  - https://github.com/cparnot/ASCIImage/issues/12 )

This is a good idea! 👍
I don't have time for the moment, but I'll see during the next w-e what I can do. (Of course, If you have time, you are welcomed)

You can now create your own symbols! You have to use the v2.x branch however.

great, looks good.


Add roman numerals and mathematical operator font sprites

add 2100.png

Thank you, although I'm curious as to how this will be used in the future. Merging now.


[WIP] Cloudflare bypass

This PR implements cloudflare-bypass from https://github.com/KyranRana/cloudflare-bypass
Please do not merge yet, there are a few things to discuss first!
Sites with Cloudflare protection generally prevent services like RSS-Bridge from accessing contents by putting the site in UAM (Under Attack Mode). Regular browsers will go through a process to enter the site by executing some JavaScript that stores cookies on the machine for subsequent requests. In general this procedure takes a few seconds during which the user is presented a waiting page.
cloudflare-bypass basically goes through the same procedure via PHP. That way the contents are made available again for RSS-Bridge to collect.
Notice: The way cloudflare-bypass is implemented, it will have no effect on "regular" connections without Cloudflare protection.
With this PR I have fixed two bridges (Cpasbien and Torrent9) which were previously blocked by Cloudflare. They now work fine on my machine, so if you want to try it yourself, those bridges are prepared.
cloudflare-bypass currently doesn't provide a license, even though it's being discussed (possibly Unlicense). So this is another point to consider. Additionally the library is currenly copied manually into the 'vendors' folder but could also be installed automatically via composer (which I'm not sure how this would work to be honest).
Please let me know what you think about this PR

Do we want this to be part of RSS-Bridge?
Is there any reason to keep this from being part of master? (too far into gray zone?)
Should this feature be made optional (via settings or based on the bridge)?
Further ideas or suggestions?

🤔 In my opinion:
Usually, CloudFlare users activate IAUA mode temporarily until a DDoS attack or unexpected load surge is finished, to prioritize human visitors (may it affect normal operation of bots, crawlers, thumbnail-generators, indexers, .. RSS-Bridge).
For a CloudFlare user to constantly enable IAUA mode like in the case of CPasBien and Torrent9, it's less about DDoS attack and more about somewhat preventing RIAA/MPAA/ALPA crawlers from gathering "proof of copyright infringement" (I guess).
Should RSS-Bridge use any means possible to access data ? That's something to consider carefully because at some point it can legally constitute an "unauthorized intrusion into an information system". CloudFlare's wall is one thing, but if we implement a circumvention.. would we also do one for CloudFlare's competitors ? (Incapsula, Neustar, MyraCloud, ...)
'cause yeah cloudflare-bypass is quite a chunk of code added to the project, and my guess is that CloudFlare is going to make a cat-and-mouse game if/once abusers exploit cloudflare-bypass. And we'll have to limp behind or throw the towel on an otherwise neat feature. ...   Or work into a solution directly in partnership with CloudFlare, like being whitelisted as harmless indexing-bots ?
I have strong doubts but I can be proven wrong 😎

Thanks for your thoughts, this is exactly what I was hoping for :heart:

For a CloudFlare user to constantly enable IAUA mode like in the case of CPasBien and Torrent9, it's less about DDoS attack and more about somewhat preventing RIAA/MPAA/ALPA crawlers from gathering "proof of copyright infringement" (I guess).

Your guess sounds very reasonable to me. Maybe we should take the hint, detect it and show appropriate error messages to users? That way, if the UAM is enabled temporarily, there is nothing to worry about. RSS-Bridge will continue working again after the attack has finished.

Should RSS-Bridge use any means possible to access data ?

If we are talking about using illegal methods to gain access to (possibly sensitive) data, thats an absolute no. If the data is otherwise made available to regular visitors by means of some JS delayed script, this is a different story. This is similar to accessing an "hidden" RSS feed that is not made visible to the user (like most WordPress sites do). That being said, UAM tells us that the site is under attack right now and, like I said before, maybe we should just take the hint :thinking:

... at some point it can legally constitute an "unauthorized intrusion into an information system"

Good point. I just checked what Cloudflare has to say about UAM (somewhat proves your point from earlier):

"I'm Under Attack" will add additional protections to a site that is under attack and needs DDoS protection and mitigation. If you're under attack and have this feature enabled during the attack, visitors will receive an interstitial page for about five seconds while we analyze the traffic to make sure it is a legitimate human visitor."
-- https://support.cloudflare.com/hc/en-us/articles/200170076-What-does-I-m-Under-Attack-Mode-do-

Of course RSS-Bridge is not a human visitor. Tthey do, however, mention something about not blocking search engine crawlers and whitelisting:

[...] We've also designed the new checks to not block search engine crawlers, your existing whitelists, and other pre-vetted traffic [...]
-- https://blog.cloudflare.com/introducing-im-under-attack-mode/

To me it sounds like this whitelist is managed on a per-site basis, but search engines are on a more global scale.

Or work into a solution directly in partnership with CloudFlare, like being whitelisted as harmless indexing-bots ?

I'm in, where do we sign up? :smile: (honestly I couldn't come up with any resource on this)

One, the proxy settings are probably not enforced using this.

I haven't tested it, so there is a high chance.

The second concern I have is that the code is relatively straightforward, but is duplicating a lot of our existing code (especially all the cache management)
The third is the license, that you mentioned. I wonder if it is not simpler to just write our own function to bypass CloudFlare's cache.

I agree, good arguments!
The goal of this PR is to get it up and running with little effort as possible. I'm actually split between having this in RSS-Bridge and accepting bridges breaking for as long as UAM is active (possibly removing bridges where it is enabled indefinitely). This could be a point where we lay out a few rules to what is acceptable for RSS-Bridge and what isn't.

Having put some more thought into it, I'll scrap this project for now. A better solution is to simply detect if a site is under attack and notify users (likely via some error code).
Thanks for the feedback @mitsukarenai @teromene!


Feature Request : Convert All links to Wikilinks and move resources to common folder

I just came to obsidian from Evernote for its clipper
OneNote for school notes,
StandAlone MD Files for notes,
Quiver Programming Notes,
IAwriter for scripts
My folders are a complete mess with different kind of links for each set of notes.
It would be great to batch convert links to obsidian links

I would love this in addition too!

this plugin's philosophy is discourage from using Wikilinks. See README for more details.
Closing this FR


Version Update indicator does not work as expected

The "new version is available" indicator that displays bottom left side bar menu should display whenever a new version of Portainer is released.
However, browser caching may break this functionality as i have just tested and proved. I deployed Portainer 1.23.1 manually to validate users were prompted to upgrade to 1.23.2, however the message did not display. I had to go into Firefox options and clear cached data in order to get the message to display.
We need this notice to display regardless of any caching.

@MaximeBajeux I believe that an easy fix here is to remove the UpdateAvailable from the local storage.

Closing this issue as unable to reproduce it.


[Target] Avoid an unneeded function call. Pointed out by Fred.

@swift-ci test and merge

Did you add the code above that as well?  It looks a little weird.  ExecutionContextScope::CalculateStackFrame() returns a StackFrameSP.  It's odd to set that to a StackFrameWP and then lock it.  If the StackFrame isn't good any more, the SP will be empty, so this seems unnecessary.

PerformAutoImport wants a wp. Is there a better way of expressing that?