🐛 [cloud_firestore] Pagination failure for specific queries if offline

Bug report
Describe the bug
Under specific circumstances, some queries ignore startAfterDocument if device is offline.
Steps to reproduce

Ensure app does not have internet connectivity
add a document to XYZ collection (do not wait for the future)
Query the same collection in a paginated way (using startAfterDocument)

Result: the query completely ignores startAfterDocument when fetching results. In my project, i stop querying the database if an empty result is returned. However, since startAfterDocument is not working, i get an infinite list with same repeating results.

Go online
Query the same collection again

Result: This time the query returns correct results as startAfterDocument behaves as expected
(Optional steps)
6. Go offline again
7. Run the same query
Result: Query works as expected
Expected behavior
Irrespective of online or offline, the query should respect startAfterDocument for any collection

Additional context
Here is the entity document structure when adding to collection
Map<String, dynamic> toDocument() {
    return {
      'details': {
        'userId': userId,
        'username': username,
        'postId': postId,
        'postTitle': postTitle,
        'replyToUserId': replyToUserId,
        'replyToUsername': replyToUsername,
        'body': body,
        'timestamp': FieldValue.serverTimestamp(),
        'commentReviewStatus': commentReviewStatus,
        'isLikedByOp': isLikedByOp,
        'isByAuthor': isByAuthor,
      },
    };
  }

Here is the bugged query
Query query = commentCollection.limit(8).orderBy('details.timestamp', descending: false).startAfterDocument(lastDocument).where('details.postId',
            isEqualTo: postId);

However, I do not see this issue happening for the following
Entity
  Map<String, dynamic> toDocument() {
    return {
      Strings.details: {
        Strings.userId: userId,
        Strings.postId: postId,
        Strings.postUserId: postUserId,
        Strings.postTitle: postTitle,
        Strings.timestamp: FieldValue.serverTimestamp(),
        Strings.isReacted: isReacted,
        Strings.reactorInitials: reactorInitials,
        Strings.reactionType: reactionType,
      }
    };
  }

Query (works as expected)
final query = reactionCollection.limit(8).orderBy('details.timestamp', descending: true).startAfterDocument(lastDocument).where('details.postUserId', isEqualTo: userId);

Flutter doctor
Click To Expand
[√] Flutter (Channel stable, 2.0.2, on Microsoft Windows [Version 10.0.19042.867], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] Connected device (3 available)

• No issues found!

Flutter dependencies
Click To Expand
Dart SDK 2.12.1
Flutter SDK 2.0.2
meyouconnect 4.3.0+15

dependencies:
- cached_network_image 2.5.0 [flutter flutter_cache_manager octo_image]
- carousel_slider 3.0.0 [flutter]
- equatable 2.0.0 [collection meta]
- firebase_analytics 7.0.1 [meta flutter firebase_core firebase_analytics_web firebase_analytics_platform_interface]
- firebase_core 0.7.0 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bloc 6.1.1 [flutter bloc provider]
- flutter_flavor 1.1.3 [flutter]
- get_it 5.0.4 [async meta]
- image_picker 0.6.7+21 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- intl 0.16.1 [path]
- introduction_screen 1.0.9 [flutter dots_indicator]
- package_repository 4.3.0+11 [flutter rxdart equatable firebase_auth cloud_firestore cloud_functions firebase_messaging firebase_storage firebase_remote_config google_sign_in pedantic mime]
- path_provider 2.0.1 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- share 2.0.1 [meta mime flutter]
- shared_preferences 2.0.4 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- step_progress_indicator 0.2.5+8 [flutter]
- url_launcher 6.0.2 [flutter url_launcher_platform_interface url_launcher_linux url_launcher_macos url_launcher_windows url_launcher_web]
- uuid 2.2.2 [crypto convert]
- video_player 1.0.1 [meta video_player_platform_interface video_player_web flutter]
- webview_flutter 1.0.7 [flutter]

dev dependencies:
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph t
yped_data]

transitive dependencies:
- archive 2.0.13 [crypto args path]
- args 1.6.0
- async 2.5.0 [collection]
- bloc 6.1.3 [meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.1.0
- charcode 1.2.0
- clock 1.1.0
- cloud_firestore 0.16.0 [flutter meta quiver firebase_core firebase_core_platform_interface cloud_firestore_platform_interface cloud_firestore_web]
- cloud_firestore_platform_interface 3.0.2 [flutter meta collection firebase_core plugin_platform_interface]
- cloud_firestore_web 0.3.0+2 [flutter flutter_web_plugins http_parser meta firebase_core firebase_core_web cloud_firestore_platform_interface js]
- cloud_functions 0.9.0 [meta flutter firebase_core firebase_core_platform_interface cloud_functions_platform_interface cloud_functions_web]
- cloud_functions_platform_interface 4.0.1 [flutter meta firebase_core plugin_platform_interface]
- cloud_functions_web 3.1.3 [firebase_core firebase_core_web cloud_functions_platform_interface flutter flutter_web_plugins http_parser meta js]
- collection 1.15.0
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- dots_indicator 1.2.0 [flutter]
- fake_async 1.2.0 [clock collection]
- ffi 1.0.0
- file 6.1.0 [meta path]
- firebase 7.3.3 [http http_parser js]
- firebase_analytics_platform_interface 1.1.0 [flutter meta]
- firebase_analytics_web 0.1.1 [flutter flutter_web_plugins firebase firebase_analytics_platform_interface meta]
- firebase_auth 0.20.0+1 [meta firebase_core firebase_core_platform_interface firebase_auth_platform_interface firebase_auth_web flutter]
- firebase_auth_platform_interface 3.1.0 [flutter meta firebase_core plugin_platform_interface]
- firebase_auth_web 0.3.3 [flutter flutter_web_plugins meta http_parser intl firebase_core firebase_core_web firebase_auth_platform_interface js]
- firebase_core_platform_interface 3.0.1 [flutter meta plugin_platform_interface quiver]
- firebase_core_web 0.2.1+3 [firebase_core_platform_interface flutter flutter_web_plugins meta js]
- firebase_messaging 8.0.0-dev.14 [meta flutter firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web]
- firebase_messaging_platform_interface 1.0.0-dev.10 [flutter meta firebase_core plugin_platform_interface]
- firebase_messaging_web 0.1.0-dev.6 [flutter flutter_web_plugins meta firebase_core firebase_core_web firebase_messaging_platform_interface js service_worker]
- firebase_remote_config 0.6.0 [flutter firebase_core]
- firebase_storage 7.0.0 [flutter firebase_core firebase_core_platform_interface firebase_storage_web firebase_storage_platform_interface quiver]
- firebase_storage_platform_interface 1.0.4 [flutter meta collection firebase_core plugin_platform_interface]
- firebase_storage_web 0.1.1+3 [async crypto firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_blurhash 0.5.4-nullsafety.0 [flutter meta pedantic]
- flutter_cache_manager 2.1.2 [flutter path_provider uuid http path sqflite pedantic clock file rxdart image]
- flutter_plugin_android_lifecycle 1.0.11 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- google_sign_in 4.5.6 [google_sign_in_platform_interface flutter meta google_sign_in_web]
- google_sign_in_platform_interface 1.1.2 [flutter meta quiver]
- google_sign_in_web 0.9.2 [google_sign_in_platform_interface flutter flutter_web_plugins meta js]
- http 0.12.2 [http_parser path pedantic]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image 2.1.19 [archive xml meta]
- image_picker_platform_interface 1.1.6 [flutter meta http plugin_platform_interface]
- js 0.6.3
- matcher 0.12.10 [stack_trace]
- meta 1.3.0
- mime 1.0.0
- nested 1.0.0 [flutter]
- octo_image 0.3.0 [flutter flutter_blurhash]
- path 1.8.0
- path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 2.0.0 [flutter]
- path_provider_platform_interface 2.0.0 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.0 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.11.0
- petitparser 3.1.0 [meta]
- platform 3.0.0
- plugin_platform_interface 1.0.3 [meta]
- process 4.1.0 [file path platform]
- provider 4.3.3 [collection flutter nested]
- quiver 2.1.5 [matcher meta]
- rxdart 0.25.0
- service_worker 0.2.4 [js]
- shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows]
- sky_engine 0.0.99
- source_span 1.8.0 [charcode collection path term_glyph]
- sqflite 2.0.0+2 [flutter sqflite_common path]
- sqflite_common 2.0.0+2 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.0 [flutter]
- url_launcher_macos 2.0.0 [flutter]
- url_launcher_platform_interface 2.0.1 [flutter plugin_platform_interface]
- url_launcher_web 2.0.0 [url_launcher_platform_interface meta flutter flutter_web_plugins]
- url_launcher_windows 2.0.0 [flutter]
- vector_math 2.1.0
- video_player_platform_interface 2.2.0 [flutter meta]
- video_player_web 0.1.4+1 [flutter flutter_web_plugins meta video_player_platform_interface]
- win32 2.0.3 [ffi]
- xdg_directories 0.2.0 [meta path process]
- xml 4.5.1 [collection convert meta petitparser]

Hi @vishaldeltech
Does the issue persist if you use the latest versions of the packages?
Thank you

Hi @markusaksli-nc
I updated to the latest versions of the package. Same issue exists in these version too. I am also attaching a screen recording of the same
https://user-images.githubusercontent.com/67492325/111770335-4c52c500-88d0-11eb-82f7-8bcc8029f049.mp4
Updated Flutter dependencies
Click To Expand
Dart SDK 2.12.1
Flutter SDK 2.0.2
meyouconnect 4.4.0+16

dependencies:
- cached_network_image 2.5.0 [flutter flutter_cache_manager octo_image]
- carousel_slider 3.0.0 [flutter]
- equatable 2.0.0 [collection meta]
- firebase_analytics 7.1.1 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_core 1.0.1 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bloc 6.1.1 [flutter bloc provider]
- flutter_flavor 1.1.3 [flutter]
- get_it 5.0.4 [async meta]
- image_picker 0.7.3 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface image_picker_for_web]
- intl 0.17.0 [clock path]
- introduction_screen 1.0.9 [flutter dots_indicator]
- package_repository 4.4.0+12 [flutter rxdart equatable firebase_auth cloud_firestore cloud_functions firebase_messaging firebase_storage firebase_remote_config google_sign_in pedantic mime]
- path_provider 2.0.1 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- share 2.0.1 [meta mime flutter]
- shared_preferences 2.0.4 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- step_progress_indicator 0.2.5+8 [flutter]
- url_launcher 6.0.2 [flutter url_launcher_platform_interface url_launcher_linux url_launcher_macos url_launcher_windows url_launcher_web]
- uuid 2.2.2 [crypto convert]
- video_player 1.0.1 [meta video_player_platform_interface video_player_web flutter]
- webview_flutter 1.0.7 [flutter]

dev dependencies:
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner t
erm_glyph typed_data]

transitive dependencies:
- archive 2.0.13 [crypto args path]
- args 1.6.0
- async 2.5.0 [collection]
- bloc 6.1.3 [meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.1.0
- charcode 1.2.0
- clock 1.1.0
- cloud_firestore 1.0.1 [cloud_firestore_platform_interface cloud_firestore_web firebase_core firebase_core_platform_interface flutter meta]
- cloud_firestore_platform_interface 4.0.0 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 1.0.1 [cloud_firestore_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions 1.0.0 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- cloud_functions_platform_interface 5.0.0 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.0.1 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- collection 1.15.0
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- dots_indicator 1.2.0 [flutter]
- fake_async 1.2.0 [clock collection]
- ffi 1.0.0
- file 6.1.0 [meta path]
- firebase 9.0.0 [http http_parser js]
- firebase_analytics_platform_interface 1.1.0 [flutter meta]
- firebase_analytics_web 0.2.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_auth 1.0.1 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_auth_platform_interface 4.0.0 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 1.0.2 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.0.0 [flutter meta plugin_platform_interface]
- firebase_core_web 1.0.1 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_messaging 9.0.0 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_messaging_platform_interface 2.0.0 [firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 1.0.1 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- firebase_remote_config 0.9.0-dev.0 [flutter firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface]
- firebase_remote_config_platform_interface 0.2.0-dev.0 [flutter meta firebase_core plugin_platform_interface]
- firebase_storage 8.0.0 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- firebase_storage_platform_interface 2.0.0 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 1.0.1 [async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_blurhash 0.5.4-nullsafety.0 [flutter meta pedantic]
- flutter_cache_manager 2.1.2 [flutter path_provider uuid http path sqflite pedantic clock file rxdart image]
- flutter_plugin_android_lifecycle 2.0.0 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- google_sign_in 4.5.6 [google_sign_in_platform_interface flutter meta google_sign_in_web]
- google_sign_in_platform_interface 1.1.2 [flutter meta quiver]
- google_sign_in_web 0.9.2 [google_sign_in_platform_interface flutter flutter_web_plugins meta js]
- http 0.13.0 [http_parser meta path pedantic]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 2.1.19 [archive xml meta]
- image_picker_for_web 2.0.0 [image_picker_platform_interface meta flutter flutter_web_plugins]
- image_picker_platform_interface 2.0.1 [flutter meta http plugin_platform_interface]
- js 0.6.3
- matcher 0.12.10 [stack_trace]
- meta 1.3.0
- mime 1.0.0
- nested 1.0.0 [flutter]
- octo_image 0.3.0 [flutter flutter_blurhash]
- path 1.8.0
- path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 2.0.0 [flutter]
- path_provider_platform_interface 2.0.0 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.0 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.11.0
- petitparser 3.1.0 [meta]
- platform 3.0.0
- plugin_platform_interface 2.0.0 [meta]
- process 4.1.0 [file path platform]
- provider 4.3.3 [collection flutter nested]
- quiver 2.1.5 [matcher meta]
- rxdart 0.25.0
- shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows]
- sky_engine 0.0.99
- source_span 1.8.0 [charcode collection path term_glyph]
- sqflite 2.0.0+2 [flutter sqflite_common path]
- sqflite_common 2.0.0+2 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.0 [flutter]
- url_launcher_macos 2.0.0 [flutter]
- url_launcher_platform_interface 2.0.1 [flutter plugin_platform_interface]
- url_launcher_web 2.0.0 [url_launcher_platform_interface meta flutter flutter_web_plugins]
- url_launcher_windows 2.0.0 [flutter]
- vector_math 2.1.0
- video_player_platform_interface 2.2.0 [flutter meta]
- video_player_web 0.1.4+1 [flutter flutter_web_plugins meta video_player_platform_interface]
- win32 2.0.3 [ffi]
- xdg_directories 0.2.0 [meta path process]
- xml 4.5.1 [collection convert meta petitparser]

Was not able to reproduce this but labeling it for further investigation

flutter doctor -v
[√] Flutter (Channel master, 2.1.0-13.0.pre.175, on Microsoft Windows [Version 10.0.19041.867], locale et-EE)
    • Flutter version 2.1.0-13.0.pre.175 at C:\Development\flutter_master
    • Framework revision efbde443d2 (14 hours ago), 2021-03-18 13:40:08 -0700
    • Engine revision c4628b709c
    • Dart version 2.13.0 (build 2.13.0-149.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.7199119\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.7.7)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.7.30621.155
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.7199119
    • Flutter plugin version 54.0.1
    • Dart plugin version 201.9335
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (4 available)
    • SM G950F (mobile) • ce12171c51cc001c03 • android-arm64  • Android 9 (API 28)
    • Windows (desktop) • windows            • windows-x64    • Microsoft Windows [Version 10.0.19041.867]
    • Chrome (web)      • chrome             • web-javascript • Google Chrome 89.0.4389.90
    • Edge (web)        • edge               • web-javascript • Microsoft Edge 89.0.774.54

• No issues found!

Hi @markusaksli-nc
I think i have identified a much easier way to reproduce the error
The bug happens only under the following circumstances (All steps need to happen without internet connection)

Add document to collection. This document has a timestamp field which is set as FieldValue.serverTimestamp()
launch a paginated query on the same collection with orderBy on the timestamp with descending = false

I feel the issue in pagination is happening because of FieldValue.serverTimestamp()

Hi @markusaksli-nc
I think i have identified a much easier way to reproduce the error
The bug happens only under the following circumstances (All steps need to happen without internet connection)

Add document to collection. This document has a timestamp field which is set as FieldValue.serverTimestamp()
launch a paginated query on the same collection with orderBy on the timestamp with descending = false

I feel the issue in pagination is happening because of FieldValue.serverTimestamp()

Hey @vishaldeltech, I tested this on both iOS & android. You're right, the startAfterDocument is not respected if you're working offline (using cache). If it is happening on both platforms, I can only presume that it is by design. I'll see if I can get an answer to this 👍 .

Hmmm, I've just circled back to this and found that it did work as expected. I can only presume that it has been resolved now. I will reopen if you believe this not to be the case and can provide a small, reproducible sample. Thanks 🙏


WebApp - UI bug in case import by seed phrase

Describe the bug

Version test : https://e86a4f87.subwallet-webapp.pages.dev/

[ ] Seedphrase is reset when responsive changes


upload the filter icon for slack

We can add another additional colors and sizes as needed.
https://s3.amazonaws.com/dynatrace-davis/assets/images/filter_red_15_15.png
https://s3.amazonaws.com/dynatrace-davis/assets/images/filter_grey_15_15.png
https://s3.amazonaws.com/dynatrace-davis/assets/images/filter_blue_15_15.png

This red is actually green

Updated the name to say green instead of red.


feat(start_planner): keep distance back static objects from start pose

Description
Following launcher PR should be merged first
https://github.com/autowarefoundation/autoware_launch/pull/815
keep enough distance between back static object and start pose.
This distance is necessary for avoiding stack which is caused by other module's stop point insertion.
NOTE: margin against front objects can be smaller than margin against back objects, because start_planner expect the other module like avoidance to change the trajectory.

Tests performed

[x] PASS TIERIV INTERNAL SCENARIOS

Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@kosuke55
confirmed no degression with evaluator's result.
Could you review the PR?

@kyoichi-sugahara @kosuke55 could you rebase and work on this PR?


NotifyReturn sends infinite amout of Returns with zero ReplyCode

Seems like NotifyReturn works well with mandatory and not immediate publishing, but wrong with non-mandatory immediate.

Queue declaration:
returns := myChannel.NotifyReturn(make(chan amqp.Return, 1))
go func() {
	for {
		returned := <-returns
		fmt.Printf("Returned: %#v\n", returned)
	}
}()
QueueDeclare(myQueueName, true, false, false, false, nil)

After I publish message with
myChannel.Publish("", myQueueName, false, true, msg)
I see infinite stream of

Returned: amqp.Return{ReplyCode:0x0, ReplyText:"", Exchange:"", RoutingKey:"", ContentType:"", ContentEncoding:"", Headers:amqp.Table(nil), DeliveryMode:0x0, Priority:0x0, CorrelationId:"", ReplyTo:"", Expiration:"", MessageId:"", Timestamp:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, Type:"", UserId:"", AppId:"", Body:[]uint8(nil)}
Returned: amqp.Return{ReplyCode:0x0, ReplyText:"", Exchange:"", RoutingKey:"", ContentType:"", ContentEncoding:"", Headers:amqp.Table(nil), DeliveryMode:0x0, Priority:0x0, CorrelationId:"", ReplyTo:"", Expiration:"", MessageId:"", Timestamp:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, Type:"", UserId:"", AppId:"", Body:[]uint8(nil)}

I checked https://www.rabbitmq.com/amqp-0-9-1-reference.html#domain.reply-code and haven't found zero value. What's happening?
Thanks.

RabbitMQ has stopped supporting the immediate flag years ago in 3.0. It returns an error when a client attempts to use it. The solution is not to use that property.

Arguably this client could return an error when it is used. We'd definitely consider a PR for that, even given this client's extreme stance of backwards incompatible changes :(


Samples from class!

Thanks to the PROF my terminal is fixed!

#Koans

[ ] NORMAL MODE

[ ] AboutExpects.js
[ ] AboutArrays.js
[ ] AboutFunctions.js
[ ] BEAST MODE

[ ] AboutObjects.js
[ ] AboutMutability.js
[ ] AboutHigherOrderFunctions.js

[ ] NIGHTMARE MODE -- ALL KOANS


Fix updating error of ress with moduleDetection=false

npm uninstall ress
Replace ress with modress

ref: https://github.com/mobu-of-the-world/mobu/pull/1617
I think this is relaetd to following issues

https://github.com/tsconfig/bases/pull/284
https://github.com/filipelinhares/ress/pull/17

Before

No Reset

After

Thanks! Looks good solution for me too 👍

:goodpoem:


Use CircleCI workflows

[X] split base images from virtlet and virtlet build images
[X] implement basic CircleCI workflow
[x] push the images to docker hub upon a successful build
[x] test tag-based image pushes
[x] auto-update base image tags in Dockerfiles
[x] update documentation

This change is

Reviewed 41 of 41 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable

Currently it seems that the scenario with pushing images is like:

push images
test them

But what if we pushed images but tests failed? I'm pretty sure that we should have step that would "propagate" image. Like push it first with _test sufix / prefix and then after tests publish it. (or just publish master + tags, and all other in different manner). But that could be done in follow up.
I'm  anyway, because it's already huge improvement.

Reviewed 41 of 41 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


Script Issue for Test Students (minor issue):

The script for generating test students fails due to a timestamp that does not pass schema validation.

resolved by fixxing wrong schema format


commitlog is not deleted, commitlog has tried out the disk

Configuration information:
brokerClusterName=DefaultCluster
brokerName=mdserver-2
brokerId=0
brokerIP1=<IP_ADDRESS>
brokerIP2=<IP_ADDRESS>
deleteWhen=04
fileReservedTime=6
namesrvAddr=<IP_ADDRESS>:55003
defaultTopicQueueNums=12
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
flushCommitLogLeastPages=6400
flushConsumeQueueLeastPages=3200
flushCommitLogThoroughInterval=120000
flushConsumeQueueThoroughInterval=120000
maxCommitLogFilesNumber=100
diskMaxUsedSpaceRatio=75
storePathRootDir=/mnt/syncdata/store
storePathCommitLog=/mnt/syncdata/store/commitlog
storePathConsumeQueue=/mnt/syncdata/store/consumequeue
storePathIndex=/mnt/syncdata/store/index
storeCheckpoint=/mnt/syncdata/store/checkpoint
abortFile=/mnt/syncdata/store/abort
maxMessageSize=5242880
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
listenPort=55100

Here is a Chinese version explaining disk cleanup mechanism, it might help: https://jaskey.github.io/blog/2017/02/16/rocketmq-clean-commitlog/
For other debugging purposes, can you please provide some error log (like if any exception was thrown during clean up) and other useful debugging material you find useful ? Thanks a lot ~

Here is a Chinese version explaining disk cleanup mechanism, it might help: https://jaskey.github.io/blog/2017/02/16/rocketmq-clean-commitlog/
For other debugging purposes, can you please provide some error log (like if any exception was thrown during clean up) and other useful debugging material you find useful ? Thanks a lot ~
Is there any requirement for commitlog file path, currently my path is configured randomly，storePathCommitLog=/mnt/syncdata/store/commitlog

As long as the rocketmq user has write access to that location, then I think it should be fine. However I do want to know how did you find out that the disk is full. If the disk usage is above 75% the log should have some records. Can you find any logging related to this problem ?

As long as the rocketmq user has write access to that location, then I think it should be fine. However I do want to know how did you find out that the disk is full. If the disk usage is above 75% the log should have some records. Can you find any logging related to this problem ?

Use commands to query results
df -h
Filesystem  Size     Used Avail Use% Mounted on
/dev/sda2   493G  492G   0     100% /mnt/syncdata
du -sh /mnt/syncdata/store/*
479G  /mnt/syncdata/store/commitlog

View the source code, the path is hard-coded, and no setting is found
; org.apache.rocketmq.store.config.MessageStoreConfig,
@ImportantField
private String storePathCommitLog = System.getProperty("user.home") + File.separator + "store"
+ File.separator + "commitlog";

As long as the rocketmq user has write access to that location, then I think it should be fine. However I do want to know how did you find out that the disk is full. If the disk usage is above 75% the log should have some records. Can you find any logging related to this problem ?

结果是如何处理的？
我也遇到同样的问题。commitlog没有被自动清理，结果硬盘空间不足引起一次生产事故。


Normalize strings

When searching for some authors (especially non-English ones), there may appear multiple nonnormalized characters such as accents. Sometimes the authors decide to include them or not. To avoid repeating the same author in the author.txt file, normalize all the keywords.

Included in v0.0.2-alpha.


Generate and Sign EKB

The main purpose of this PR was to generate and sign the EKB with your own key that became a requirement with the L4T 35.5.0 release.  But, there are a handful of other fixes included:

cleanup a 'leak' with files created when signing uefi artifacts or uefi capsules
pin to the correct commit hash in kirkstone for the L4T 35.4.1 version of the dockerfile
stage nvflashxmlparse for use in signing requests
minor fix to the docker README markdown

Thanks, @Lexmark-chad !


ensure that nullable is not set for required parameters

nullable was enforced for optional parameters, but not forbidden for
required parameters. This tests and enforces the latter case.
What issue does this pull request resolve?
fixes #2030
at least partially
What changes did you make?
add nullable?: false and tests
Is there anything that requires more attention while reviewing?
nope

I should note that typescript 4.8 causes errors with the JTD schema type, so I restricted the typescript version too.

Fixed the error in 4.8 now, so made it >= 4.8


Auto-regression

It would be interesting to see if we can implement HMMs where the emission also depends on the previous emission

Hi @fausto-mpj, glad to hear you're using HiddenMarkovModels.jl!
It should be possible to adapt my code and take into account the previous observation obs_seq[t-1] when computing likelihoods. That way we could support AR(1)-HMM(1). If you want to give it a try, I can guide you.
After that, I don't know whether the jump in complexity from memory-1 to memory-k is justified. In practice, you can always simulate memory-k with memory-k by encoding the state (or the observation, or both) as a tuple including previous values.
What do you think?

To be honest, I didn't check if your package supported sparse matrices, but I just found out that it does. Nice!
Definitely, a higher-order MC ${X_{t}}$ with lag $l$ and support $H$, such that $P(X_{t} \vert X_{[1:t-1]}) = P(X_{t} \vert X_{t-1},\ldots,X_{t-l})$, is equivalent to a first-order MC ${Z_{t}}$, $Z_{t} = (X_{t-l+1},\ldots,X_{t})$ on $M^{l}$. The main issue is that transition matrix for $Z_{t}$ grows exponentially, but by using sparse matrices this is not a huge problem, as most entries are $0$. Langrock, MacDonalds & Zucchinni (2016) also briefly mention Raftery's MTD to efficiently infer the parameters for this higher-order MC, but I don't know if it is straightforward to implement, nor how to adapt the emission matrix (or any equivalent construct) and its serial dependency to work with $Z_{t}$ transition matrix.
In a AR(n)-HMM(m) model, with ${X_{t}}$ the parameter process and ${Y_{t}}$ the state process, we have that, for $t > m,n$:
$$
P(X_{t}\vert X_{[1:t-1]}, Y_{[1:t]}) = P(X_{t}\vert X_{t-1},\ldots,X_{t-m}), \qquad P(Y_{t}\vert X_{[1:t]}, Y_{[1:t-1]}) = P(Y_{t}\vert X_{t}, X_{t-1}, \ldots,X_{t-n})
$$
For a sequence with length N, the Factorization Theorem tell us that
$$
\begin{array}{l}
P(X_{[1:N]}, Y_{[1:N]}) = P(X_{1}) \times P(Y_{1}\vert X_{1}) \times \prod_{i=2}^{m} P(X_{i}) \vert X_{[1:i-1]}) \times \prod_{i=2}^{n} P(Y_{i} \vert X_{i}, Y_{[1:i-1]}) \ \times \prod_{i = m+1}^{N} P(X_{i} \vert X_{[1:i-m]}) \times \prod_{i = n+1}^{N} P(Y_{i} \vert X_{i}, Y_{[1:i-n]}).
\end{array}
$$
For some of these quantities the estimation is quite similar to what Forward and Forward-Backward are doing. However, I don't know if $P(Y_{1}\vert X_{1})$, $\prod_{i=2}^{m} P(X_{i}) \vert X_{[1:i-1]})$, and $\prod_{i=2}^{n} P(Y_{i} \vert X_{i}, Y_{[1:i-1]})$ are correct without any further adjustment to the algorithms. And, of course, the EM for this is probably a different beast. Maybe it's better to begin with AR(1)-HMM(1), and then AR(2)-HMM(1) or AR(1)-HMM(2), just to do a sanity test before doing for $n,m$.
Right now I'm using the previous observation as control variable, but I will look into your suggestion to use obs_seq[t-1], which would at least save me from using a control variable for a information that is already there.
I'm going to read Aston & Martin (2009) higher-order HMM and Boys & Henderson (2004) Bayesian HMM right now to see what kind of adjustment is more viable to your preexisting code.
Afterwards, I have some questions to ask, because I'm getting a slightly different $\alpha_{t}$ and I'm pretty sure I'm missing something, such as a normalizing constant or something like that. I tried to create a trellis graph and find the k-shortest paths using Yen's algorithm (just to use as a "base truth" for the n-best Viterbi), but I'm getting a different answer from both the sequence of that maximizes the local decoding for each step or the global decoding.

My proposal is to handle the AR(1)-HMM(1) case in the package itself, and then let users translate from AR(n)-HMM(m) to AR(1)-HMM(1) by tuple-ifying whatever they need to do.
We will be able to do this for inference without too much trouble. The only requirement is to generalize obs_distributions(hmm, control) into obs_distributions(hmm, control, previous_obs). Ideally I'd like this generalization to be optional, so as to avoid bothering most users, who don't care about the AR part.
I don't think we'll be able to code a generic learning function though, for the same reason as with controls: the M update is no longer explicit with AR dependencies, except in very special cases (discrete observations would probably work). So we might have to accept that the user needs to write fit! themselves.

Right, I've been tinkering with the code and got some obstacles, so I might need some help. I've added an optional parameter for HMM, l<:Bool, with default value ar::l = false. So, for every case in which the user doesn't want to use AR-HMM, the whole code goes as usual.
The main problem I'm facing is with obs_distributions. Here things are wildly different if the observation process ${Y_{t}}$ has a finite support or not. If ar is false, then we need a vector dists with $\vert X_{t} \vert$ components, in which the $i$-eth component is a distribution for $Y_{t} \vert X_{t} = i$. All nice and quiet, and it doesn't matter if $supp(Y_{t})$ is finite or not.
However, for ar equal to true, the first problem is that we don't have a generic default way to determine $P(Y_{1} \vert X_{1})$ for the AR-HMM at the initial conditions, thus the user should provide $\vert X_{t} \vert$ extra observation distributions. But how? This question led me to the second problem.
If $supp(Y_{t}$ is finite, then dists is a vector of $\vert X_{t} \vert$ components, in which the $i$-eth component is also a vector of $\vert Y_{t} \vert + 1$ sub-components, and the $j$-eth sub-component is a distribution for $Y_{t} \vert X_{t} = i, Y_{t-1} = j$ (except for $j = \vert Y_{t} \vert + 1$, which is a distribution for $Y_{t} \vert X_{t} = i$). For this case, obs_distributions is simply managing the indices based on the value or existence of a previous observation.
If $supp(Y_{t})$ is infinite, then dists is a vector of $\vert X_{t} \vert$ components, in which the $i$-eth component is a distribution for $Y_{t} \vert X_{t} = i, Y_{t-1}$. For this case, obs_distributions must be specified to do something with the previous_obs, as there is no generic default way to use the previous observation. For example, in a Normal distribution it could use the previous observation to alter the mean parameter. In this case, there is no need for the extra observation distributions, because we can assume that the previous value was nothing and then adjust the function so that it would do its job.
But this is too confusing. Ideally, there should be a way that works for both cases. I was looking at Distributions.jl MixtureModel type, unifying every case as a mixture and using its inbuilt functions ncomponents, component and probs to do whatever inside obs_distributions... but this would add a dependency. Do you have any other idea? Any suggestion?

As you might have noticed, the inference code in this package is completely agnostic to whether $Y$ has discrete or continuous values. Only the learning part is specific to the observation distribution. Thus I think we should strive to maintain this level of generality.
I also don't think we should modify the built-in HMM, because it is the simplest model and should not be overcomplicated. Instead, anyone using an AutoRegressive HMM will have to subtype AbstractHMM manually, if only because the dependency $\mathbb{P}(Y_t | X_t, Y_{t-1})$ cannot be captured by a one-size-fits-all struct.
I created a branch gd/ar with some initial suggestions to get you started. Essentially, I propose to add a type parameter to AbstractHMM{ar} with possible values true and false. I also add a positional argument to obs_distributions, whose signature is now
obs_distributions(hmm, control, prev_obs)

with sensible fallbacks. I have started to adapt the main inference routines to pass the previous observation to obs_distributions, but I have probably missed a lot of spots (I didn't run the code).
I don't have a good answer yet for what happens at the first time step. What do they usually do in the literature?

Nice. I've just cloned the branch and will look into it.
In the literature, I got the following:

Autoregressive Hidden Markov Models for the Early Detection of Neonatal Sepsis (2014): The observation process is finite and discrete, so they modeled it as a first-order MC with transition matrix $(t_{i,j}^{(k)}) = P(Y_{t} = j \vert Y_{t-1} = i, X_{t} = k)$, and initial distribution $u_{i}^{k}(1) = P(Y_{1} = i \vert X_{1} = k)$. For these quantities, they used a symmetric Dirichlet as a priori distribution, and obtained MAP estimates via Dirichlet-Categorical conjugacy. They made a small adjustment to $\alpha_{t}$ and $\beta_{t}$ in the Forward and Forward-Backward algorithms... but the adjustment is just adding the dependency, no additional terms or anything like this. However, this doesn't work in continuous cases...

Autoregressive Higher-Order Hidden Markov Models: Exploiting Local Chromosomal Dependencies in the Analysis of Tumor Expression Profiles (2014): The observation process is continuous, so they modeled it as $M$-order autoregressive Normal distribution, with mean $\mu_{t}^{(i)} = \mu^{(i)} + \sum_{m=1}^{M} c_{i,m} \cdot o_{t-m} \cdot \delta_{t, m}$, for $x_{t} = i$, where the $c_{i,k}$ are the weights that measure the impact of the previous observations and $\delta_{t,k}$ is an indicator function which assumes the value $0$ if $t-k <1$, and $1$ otherwise. Pretty standard stuff: when there is no previous observation, just truncate it.

Stochastic models for heterogeneous DNA sequences (1989): The observation process is finite and discrete, so he modeled it as a counting process and avoided the problem of estimating $P(Y_{1} \vert X_{1})$ by assuming that the sequence is circular: $y_{0} \equiv y_{N}, x_{0} \equiv x_{N}$. For a long enough sequence, this is good enough, I guess... but it does feel like gambiarra (an untranslatable word).

Mining Bacillus subtilis chromosome heterogeneities using hidden Markov models (2002): The observation process is finite and discrete, so they modeled it as a $M$-order counting process. However, they simply used EM for the estimation of the emission parameters, using the MLEs for the categorical distributions (given the first $M$ observations) as the initial estimates. Again, when there is no previous observations, they just truncate it and then let the EM complete the missing parts.

Mixture and Hidden Markov Models with R (2022): In Chapter 4, Section 4.8.3, the authors argue that truncating is not that simple when it is not due to Missing at Random. They exhibit an example where including a simple model for the missing value gives better estimates for the parameters.

I believe that encouraging the user to provide a distribution for $P(Y_{1} \vert X_{1})$ is the best choice. If the user fails to do so, maybe a fallback to truncation. Or maybe a special case for discrete/categorical distributions... But then, how to do the truncation after he gave the parameters of the model? A simple solution is to begin from $X_{2}$ (but having observed $y_{1}$ and $y_{2}$), so the initial distribution is updated to $u^{}(1) = u(1) \cdot T$, and then it goes exactly as it already is, with the first step in Forward being $u_{i}^{}(1) \cdot e_{i,j}^{k}$. Any suggestion?


Platform request - Windows on arm64

Is a current build available for Windows arm64?

Sadly no, if you have machine that can run that, feel free to build wstunnel and share it. I will put it in the release


feat: As a user, I want to check attestations from all networks via the Explorer

What does this PR do?
Related ticket
Fixes #601
Type of change

[ ] Chore
[ ] Bug fix
[X] New feature
[ ] Documentation update

Check list

[ ] Unit tests for any smart contract change
[ ] Contracts and functions are documented

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.53%. Comparing base (9d8c288) to head (56a5641).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #602   +/-   ##
=======================================
  Coverage   92.53%   92.53%
=======================================
  Files          30       30
  Lines         482      482
  Branches      114      114
=======================================
  Hits          446      446
  Misses         24       24
  Partials       12       12

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


SA1516 reports violation between fields if the first one has an attribute

I don't think the following code should cause an SA1516 violation.
public class SomeClass
{
  [CanBeNull]
  private Foo foo;
  private bool bar;
}

@oatkins @vweijsters Is this a regression from StyleCop "classic"?

Yes. Legacy StyleCop doesn't report anything here.


ADD CUSTOM SCROLLBAR

Description
It will be great to add custom scrollbar for the website.
Screenshots

Additional information
No response

@narayan954 I would like work on this issue


HDDS-7726. EC: Enhance datanode reconstruction log message

What changes were proposed in this pull request?
Include more information in messages from ECReconstructionCoordinatorTask.  Source/target datanodes are identified by UUID.
To facilitate the change, move some logic from ECReconstructionCoordinatorTask to ECReconstructionCommandInfo.
https://issues.apache.org/jira/browse/HDDS-7726
How was this patch tested?
$ mvn -Dtest=TestECContainerRecovery clean test
...

$ grep ECReconstructionCommand hadoop-ozone/integration-test/target/surefire-reports/org.apache.hadoop.ozone.container.TestECContainerRecovery-output.txt
... INFO  reconstruction.ECReconstructionCoordinatorTask (ECReconstructionCoordinatorTask.java:run(97)) - Completed ECReconstructionCommand{containerID=1, replication=rs-3-2-1024, missingIndexes=[1], sources={2:dcaef49d-a60e-42a7-91d8-740a95ae2403,3:fa4feb1a-bb51-4c8b-9a79-ba0dae67a626,4:0af75ffe-7d73-4d6f-859d-14da589f77ba,5:770b81eb-e1a4-478e-83ea-2cb8ce8876f1}, targets={1:ca9c6427-8e00-426f-a28b-138bf9583c8e}} in 241 ms
... WARN  reconstruction.ECReconstructionCoordinatorTask (ECReconstructionCoordinatorTask.java:run(99)) - Failed ECReconstructionCommand{containerID=2, replication=rs-3-2-1024, missingIndexes=[1], sources={2:a9005b92-4153-4535-b3c2-6c1d774e586a,3:b29d4ce4-0416-4ff7-afb9-b8968068d7ab,4:edacb8d4-c8b9-424e-8b1c-f2c9be0858a3,5:4cb977e9-d7ed-4833-92b5-c1181ce1db2e}, targets={1:0af75ffe-7d73-4d6f-859d-14da589f77ba}}

Regular CI:
https://github.com/adoroszlai/hadoop-ozone/actions/runs/3861802806

This change looks basically good. I just had one suggestion about adding the elapsed time to the fail message too.
I also wonder about logging the DN UUID. Logging DatanodeDetails.toString() is really too verbose and make the logs quite long, so its a good idea to avoid it. In #4153 I went with logging "DN host / IP" to make it less verbose. If someone is debugging an issue, it might be easier to work with that rather than a UUID, as it saves another lookup to find the host you may want to look at, but it could be argued either way I think. I am fine to leave it as it is I think.

I went with logging "DN host / IP" to make it less verbose. If someone is debugging an issue, it might be easier to work with that rather than a UUID, as it saves another lookup to find the host you may want to look at, but it could be argued either way I think. I am fine to leave it as it is I think.

In normal usage hostname is better.  UUID might be better for integration tests with mini cluster, where all nodes are on the same host.  I guess I'll go with your solution, and maybe we can add a test-specific check later.

Thanks @sodonnel for reviewing and merging this.


Improve copilot-sample-app exception handling when handling speechToken

By default, the appsettings config leaves Region parameter blank for AzureSpeech.

The webapp makes a call by default to fetch a speech token.

No validation is in place and, because the param is blank by default, it will result in a malformed URL.

It's really a trivial thing for a sample app but perhaps a way I could contribute to help improve provided this sample app has been very helpful to get me going.
Is there any appetite to contribute back to the sample apps in efforts to improve experience ?

@cchighman , thanks for catching this, we would love a PR to help catch this blank scenario. @amsacha

We merged in a fix for this 2 days ago, https://github.com/microsoft/semantic-kernel/pull/652. But yes we would love contributions from the community.


NIFI-7840: Upgrade to Groovy 3.0.8 and Spock 2.1

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Upgrades Spock version to 2.1 and Groovy version to 3.0.8 (to match Spock's Groovy version, even though 3.0.9 has been released). Since one of the motivations for this upgrade is to reduce the number of illegal reflective access errors, I noticed the version of Mockito in MiNiFi Java is ancient so I upgraded that too.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[x] Have you verified that the full build is successful on JDK 8?
[x] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Thanks for the upgrade @mattyb149! Unfortunately it looks like a couple Spock-based tests failed on the Windows build. Also recommend removing the test methods currently marked as ignored.


docs(SsrSite): generalise attachPermissions

The other SSR frameworks that extend the attachPermissions method has the mention of Astro, even though they are not using Astro. See SvelteKit as example:
https://docs.sst.dev/constructs/SvelteKitSite#attachpermissions
This simply generalises to "framework" instead in the docstring

Thanks!


Fix e2e ext-net socket permission denied error

The e2e, external-net tests, are failing in CI and there seems to be multiple problems. One of them is related to the port 80 that is currently used by the test which is the reason for Permission denied error when the pod is scheduled in a cluster. This PR changes the port to the default port we use in other e2e tests, which is 1234.
Error seen in pod logs:
socket.error: [Errno 13 Permission denied
Signed-off-by: Sridhar Gaddam<EMAIL_ADDRESS>

Sample log from the pod when the error is noticed:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib64/python2.7/SimpleHTTPServer.py", line 220, in <module>
    test()
  File "/usr/lib64/python2.7/SimpleHTTPServer.py", line 216, in test
    BaseHTTPServer.test(HandlerClass, ServerClass)
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 595, in test
    httpd = ServerClass(server_address, HandlerClass)
  File "/usr/lib64/python2.7/SocketServer.py", line 419, in __init__
    self.server_bind()
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/lib64/python2.7/SocketServer.py", line 430, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 13 Permission denied

Waiting for the e2e jobs to finish, will look into the unit test failures.

all external-net tests for Globalnet job [...] are passing

They seem to have failed on the last run.

all external-net tests for Globalnet job [...] are passing

They seem to have failed on the last run.

Right, looks like there are some timing issues. I'll fix it in a follow up PR.

@sridhargaddam - this had the backport label, are you planning to backport this?

@sridhargaddam - this had the backport label, are you planning to backport this?

Backport PR: https://github.com/submariner-io/submariner/pull/2219


Business Pop Up More Detail

It would be nice if it had more in the pop up. Something like...

A photo showing what it looks like
More of a description of the place
A button to link out to google maps directions

Note: this entire issue and PR was raised and fixed by my 12 year old, using Copilot Workspaces!!


I am getting an error when I try to install

Hi, I have been using the Balboa integration that is native to Home Assitant, but its a bit limited so I want to uses yours, however even though I have removed the HA Native Balboa Integration, I am getting an error when I try to add your version that states, "Config flow could not be loaded: {"message":"Invalid handler specified"}"

can you please advise?

I just wanted to try this Balboa integration as well. Got the exact same problem.

Same here.


rkt: add the cp command

rkt cp copies files from or into running pods.
Fixes #3531

The build failed on
build-rkt-1.25.0+git/gopath/src/github.com/rkt/rkt/rkt/cp.go:26:2: cannot find package "github.com/coreos/rkt/common"
This does not happen when I use the coreos.com/rkt/builder:1.2.0 image to build rkt on my machine.

build-rkt-1.25.0+git/gopath/src/github.com/rkt/rkt/rkt/cp.go:26:2: cannot find package "github.com/coreos/rkt/common"

We recently moved the repo from coreos/rkt to rkt/rkt, it looks like you may just need to fix your imports.

ok to test

I fixed the merge, added the no-clobber and fixed the exit codes.
The test for KVM seems to work, I'm not sure whether that cover KVM completely.
About the namespaces, what would be the best way to test this ? Where could I find some code that shows how to break into the namespace ?

Apologies for letting this fall off my radar for a couple weeks, @fryckbos
So, the namespace bit:
The easiest way to show what doesn't work is something like this:
$ rkt run --uuid-file-save=/tmp/uuid --volume host-tmp,kind=host,source=/tmp docker://busybox --mount volume=host-tmp,target=/tmp -- -c 'while sleep 1; do echo "-----"; ls /tmp; done'

# The container prints that it sees the host `/tmp`. If you have files/dirs in /tmp, they'll be displayed but can't be copied out

$ echo 'hello world' > test
$ rkt cp ./test $(cat /tmp/uuid):/tmp/

# The container doesn't print the new '/tmp/test' file

$ ls /var/lib/rkt/pods/run/$(cat /tmp/uuid)/stage1/rootfs/opt/stage2/busybox/rootfs/tmp

# the right path, but in the host's mount namespace, does have that file. In the pod's mount namespace it's masked, so e.g. `rkt exec` and the container itself see a different view

Fixing this is actually quite hard!
On entering into a mount namespace, you have to pick a file present in that namespace to execute.. so if the container doesn't have any code that can do the copy, you're basically sunk.
The options are basically:

Mandate that the container has tar available for cp to work (this is what kubectl cp does btw)
Attempt to re-create the mount setup the container (e.g. in the host's or stage1's mount namespace), and then copy from that. This is what docker does I think!
Document that cp operations across mount namespaces won't work. This is obviously the easiest ;)

Hopefully that explanation made sense. I don't really like any of the options. A second opinion or opinions would be welcome, cc @lucab


Backport "HBASE-26521 Name RPC spans as $package.$service/$method (#4024)" to branch-2.5

Signed-off-by: Duo Zhang<EMAIL_ADDRESS>

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 15s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
0m 22s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
4m  9s
branch-2.5 passed

+1 :green_heart:
compile
9m 52s
branch-2.5 passed

+1 :green_heart:
checkstyle
2m 27s
branch-2.5 passed

+1 :green_heart:
spotbugs
14m  6s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 18s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
3m 55s
the patch passed

+1 :green_heart:
compile
9m 48s
the patch passed

+1 :green_heart:
javac
9m 48s
the patch passed

+1 :green_heart:
checkstyle
2m 26s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
xml
0m  2s
The patch has no ill-formed XML file.

+1 :green_heart:
hadoopcheck
20m 28s
Patch does not cause any errors with Hadoop 2.10.0 or 3.1.2 3.2.1.

+1 :green_heart:
spotbugs
14m 59s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 49s
The patch does not generate ASF License warnings.

94m 45s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4104

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile xml

uname
Linux 1b8832e1a2d2 4.15.0-162-generic #170-Ubuntu SMP Mon Oct 18 11:38:05 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 4e15101fa1

Default Java
AdoptOpenJDK-1.8.0_282-b08

Max. process+thread count
126 (vs. ulimit of 12500)

modules
C: hbase-common hbase-client hbase-server . U: .

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 35s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
0m 27s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
4m 51s
branch-2.5 passed

+1 :green_heart:
compile
3m  9s
branch-2.5 passed

+1 :green_heart:
shadedjars
7m 50s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
4m 30s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 22s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
4m 14s
the patch passed

+1 :green_heart:
compile
3m  0s
the patch passed

+1 :green_heart:
javac
3m  0s
the patch passed

+1 :green_heart:
shadedjars
7m 17s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
4m 22s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
171m 23s
root in the patch passed.

215m 42s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4104

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 3eec805b4d52 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 4e15101fa1

Default Java
AdoptOpenJDK-11.0.10+9

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/testReport/

Max. process+thread count
5915 (vs. ulimit of 12500)

modules
C: hbase-common hbase-client hbase-server . U: .

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
4m  8s
Docker mode activated.

-0 :warning:
yetus
0m  7s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
0m 25s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
3m 45s
branch-2.5 passed

+1 :green_heart:
compile
2m 25s
branch-2.5 passed

+1 :green_heart:
shadedjars
6m 30s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
3m 38s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 22s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
3m 29s
the patch passed

+1 :green_heart:
compile
2m 26s
the patch passed

+1 :green_heart:
javac
2m 26s
the patch passed

+1 :green_heart:
shadedjars
6m 30s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
3m 43s
the patch passed

_ Other Tests _

-1 :x:
unit
355m 22s
root in the patch failed.

396m  3s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4104

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 12469baf639e 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 4e15101fa1

Default Java
AdoptOpenJDK-1.8.0_282-b08

unit
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/artifact/yetus-jdk8-hadoop2-check/output/patch-unit-root.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/testReport/

Max. process+thread count
4446 (vs. ulimit of 12500)

modules
C: hbase-common hbase-client hbase-server . U: .

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-4104/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


Using "$ref: '#/definitions/...'" for responses has been deprecated.

All the examples in the test suite have API definitions similar to
   responses: {     default: {       $ref: '#/definitions/Error'     }   }
These are flagged as errors in the Swagger Editor.
A valid alternative is to use
 responses: {     default: {       description: "Unexpected error",       schema: {         $ref: '#/definitions/Error'       }     }   }

closed by #80


[UPGRADE] useConsumable should take multiple IDs and quantities

Initially I believe we decided to restrict useConsumable to only one item, but to help users save gas it makes more sense to allow multiple items. So let's change it back to taking an array of IDs and quantities.
Let's make this change as an upgrade to the currently deployed AavegotchiDiamond contract: 0xDdC64462aEBA340cBE52E2B64eef20D0B23B5126.

Done. Commit: bd9436f9e1b77248bd6c0b243a7f615189497295
Yes, this can be change in an upgrade.

Great, closed.


[FE+version control] Surface feature in Stable and update DevHome.Helpers to 1.0.20240910-x0103

Detailed description of the pull request / Additional comments
This removes some older workaround code that was used for internal validation in the helpers package. There are some older internal Windows builds we'll start excluding by reporting the feature as not present. But I think we're fine at this point. This will also allow us to be more selective about which public, external Windows builds we'll report the feature present on.
Between this cleanup, using the featurePresenceCheck, and the increasingly stable state of the FE+git integration, I believe we're ready to make this feature visible but disabled by default in the stable build. This will make it even easier for internal selfhosters to try out the feature and for Windows Beta seekers to try it out as we start rolling out the Windows infrastructure publicly.
Validation steps performed
Ran the registration/unregistration flows with the new package and validated that everything still works as expected, just to rule out any silly mistakes.

I believe we discussed that surfacing in stable would allow us to mark #679 as done. Are we still good to do that?

I'm probably fine with it, but maybe consider waiting until we're ready to set it to enabled by default? I know there's some finishing touches we're still working on, and even though it's enable-able in Stable, it's still off by default and won't even be visible unless the OS features are active.
What's Dev Home's typical bar to meet for this sort of thing?

What's Dev Home's typical bar to meet for this sort of thing?

We've been deciding on a case-by-case basis. Happy to wait for until it's enabled by default, I'll move it out a couple milestones and put a note in the issue that it is available to be turned on.


Clean optional dependencies

Currently we still list a lot of dependencies in our pyproject.toml:
[project.optional-dependencies]
test = [
    "coverage",
    "codecov",
    "pre-commit",
    "pytest",
    "pytest-cov",
    "pytest-xdist",
]
lint = ["mypy", "flake8", "isort", "pre-commit", "autopep8", "pydocstyle"]
docs = ["sphinx", "sphinx_rtd_theme", "sphinx-pyproject"]
notebook = [
    "zenodo_get",
    "ipykernel",
    "ipywidgets",
    "jupytext",
    "matplotlib",
    "pip-tools",
]

Some of these like flake8, isort etc should not be needed anymore, because we do everything with ruff now. We should remove everything that is not really needed.

..and add ruff?


Docker files and fixing a spelling mistake

This beautiful but cursed PR adds files needed by docker to build it and of course a docker compose file to use it with compose. Although the dockerfile is pretty cursed, it works.

Allegedly there's a way to break out the typescript compilation, and JS running steps. If you could do that that would be great and I'd be down to merge. Also thanks for catching the typo!

Allegedly there's a way to break out the typescript compilation, and JS running steps. If you could do that that would be great and I'd be down to merge. Also thanks for catching the typo!

yeah shouldn't be too hard to do, on it

Thought I would charm in here, with an example of how "breaking out" can be done. The last CMD [ "app.js" ] in the example should probably be replaced by a node app.js, or using a distroless docker image.
It might also be an idea to use a GitHub action to automatically publish to the GitHub Package Repository, alternatively DockerHub (Example).

Recently, netmountcc switched to Bun. This pull request should be switched to use Bun instead.


Zip broken?

julia> Zip(collect(1:10), collect(0:9)) |> collect
ERROR: MethodError: no method matching length(::Transducers.Composition{Map{typeof(Transducers._zip_init)}, Transducers.Composition{Transducers.ZipSource{ComposedFunction{Vector{Int64}, Map{typeof(first)}}}, Transducers.Composition{Map{typeof(Transducers._zip_between)}, Transducers.Composition{Transducers.ZipSource{ComposedFunction{Vector{Int64}, Map{typeof(first)}}}, Transducers.Composition{Map{typeof(Transducers._zip_between)}, Map{typeof(last)}}}}}})

Closest candidates are:
  length(::ExponentialBackOff)
   @ Base error.jl:267
  length(::Highlights.Format.TokenIterator)
   @ Highlights ~/.julia/packages/Highlights/AOis2/src/Format.jl:170
  length(::Core.SimpleVector)
   @ Base essentials.jl:765
  ...

Stacktrace:
 [1] _similar_shape(itr::Transducers.Composition{Map{…}, Transducers.Composition{…}}, ::Base.HasLength)
   @ Base ./array.jl:708
 [2] _collect(cont::UnitRange{…}, itr::Transducers.Composition{…}, ::Base.HasEltype, isz::Base.HasLength)
   @ Base ./array.jl:763
 [3] collect(itr::Transducers.Composition{Map{…}, Transducers.Composition{…}})
   @ Base ./array.jl:757
 [4] |>(x::Transducers.Composition{Map{…}, Transducers.Composition{…}}, f::typeof(collect))
   @ Base ./operators.jl:915
 [5] top-level scope
   @ REPL[111]:1
Some type information was truncated. Use `show(err)` to see complete types.

I'm actually not sure how Zip is supposed to work, if things that work with zip error.

The bug may also be in collect, given it assumes a known iterator size. If that's intended behavior, that's fine, but the error message should clarify that collect requires a known iterator size.

Zip expects Transducers in its arguments and gives a new combined transducer. So the use case is something like this
1:10 |> Zip(Map(x -> x + 1), Map(x -> x - 1)) |> collect

that is is starting with data, we feed it into a transducer and finally collect results.
I am not sure if Transducers has its own way to zip sources but plain zip from Base may work for you
zip(1:10, 0:9) |> Map(sum) |> collect

Zip expects Transducers in its arguments and gives a new combined transducer. So the use case is something like this

OK, so in that case, it probably makes sense to error when we call Zip (I'm guessing the arguments for Zip don't have type annotations), and that should probably be reflected in the documentation. (Possibly even in a new/different name and deprecating Zip?)
I think it might make sense to just allow generic collections as well, since they correspond to the degenerate case where we're ignoring the input.


Migrate to ESM

[ ] Verify that the generated output is still fine
[ ] Check that inclusion of package still works when installed
[ ] Fix broken test "supports resolve root paths in webpack config"

@pahen This change was necessary in order to update some of the very outdated dependencies. Non-ESM projects will not be able to import "madge" anymore via "require". Hopefully, that is not a blocker, as CJS should be already abandoned by a large majority, especially as even more popular libs such as "chalk" have gone this path a long time ago.
What do you think?
And, do you have maybe an idea why the one remaining test might fail?

@pahen Any feedback from your site? Before investing more time into the PR, I wanted to make sure you agree with this step.

@pahen Any feedback from your site? Before investing more time into the PR, I wanted to make sure you agree with this step.

Note sure about this. The fact that non-ESM projects can't use madge is a big blocker to me.

@pahen You are the decision maker. In that case, we will need to keep the long time outdated "chalk" dependency or replace it by e.g. picocolors.
What would you prefer?

@pahen You are the decision maker. In that case, we will need to keep the long time outdated "chalk" dependency or replace it by e.g. picocolors.
What would you prefer?

Replacing chalk with picocolors sounds good to me if it provides the same functionally that madge uses.

Will see when I can find the time :P


Update the ugorji json/msgpack library

I wouldn't ordinarily pick a beta version, but it seems the library is about to make a breaking change to the msgpack encoding.
Benchmarks are about the same, after some work:
Master:
BenchmarkReportUnmarshal-2   	       1<PHONE_NUMBER> ns/op	458396816 B/op	 3477329 allocs/op
BenchmarkDecode-2            	     100	  14350934 ns/op	  3005481 B/op	   51906 allocs/op
BenchmarkEncode-2            	     100	  16523432 ns/op	  6290948 B/op	   29857 allocs/op

This PR:
BenchmarkReportUnmarshal-2   	       1<PHONE_NUMBER> ns/op	458262800 B/op	 3477360 allocs/op
BenchmarkDecode-2            	     100	  15738725 ns/op	  3003764 B/op	   51905 allocs/op
BenchmarkEncode-2            	     100	  16321384 ns/op	  6318272 B/op	   29857 allocs/op

I wouldn't ordinarily pick a beta version, but it seems the library is about to make a breaking change to the msgpack encoding.

Why update at all?

Why update at all?

I started down this rabbit-hole to try to get rid of the memory allocations from time.Time.MarshalBinary encoding; this turns out to be inordinately hard and I wondered if the newer codec library would help.
It didn't, but it did trigger a discussion which fixed the omitempty for NodeSet etc.  Sadly this went in after the breaking change to time.Time encoding. I should be able to work something out with that.
So, this PR is a step along the way to somewhere better; not particularly worth merging today but useful to have on file.

@bboreham Are you planning to finish up this work anytime soon? Otherwise I would like to close it (I am cleaning up the lingering PRs)

Yeah, close it: the next ugorji update will have to deal with the change in Time encoding.
Bryan

On 29 May 2018, at 09:22, Alfonso Acosta<EMAIL_ADDRESS>wrote:
@bboreham Are you planning to finish up this work anytime soon? Otherwise I would like to close it (I am cleaning up the lingering PRs)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Fix: Cloudinary URL encoding

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1


[Question]: Multipart/form-data is not rerouted (error 404). Plans to support?

Expected Behavior
A multipart/form-data http POST request is redirected to the desired endpoint.
Actual Behavior
An error 404 - not found http response is given.
Description
I won't include steps to reproduce the problem etc, because I'm pretty sure the feature is just not implemented (yet - or intentional).
Question
Is rerouting a file upload using multipart/form-data desired functionality, or is in an intentionally left out thing?
I could imagine you'd not want to reroute such a file upload because of the overhead - why not just upload the file directly to the API?
However, if the overhead is as little as the normal http requests are (about 1 ms), then I'd think it would be preferable to support multipart/form-data http post requests in reroutes.
Edit:
The reason I'm certain that I haven't just incorrectly configured the reroute, is as follows:
When I send the request with no file in the parameter, the reroute works and gets into my other API.
When I send the request with a file in the parameter, error 404 occurs, thrown by Ocelot presumably.

@EdwinVanRooij
You can contribute.
I guess this issue can be fixed by PR #1372 . But it should be developed more...


Dryrun mode does not report errors on missing variable definitions

If a keyword uses a variable not defined the dryrun mode doesn't report the error but the execution test fails.
It's possible to add this feature?
I'm using the robotframework version 2.8.6 but I didn't see this feature in the later versions.
Expected: Test should fails in dryrun mode
Actual behavior: dryrun PASS, test run FAIL
Simple example:
$ cat Suites/MyTestSuite.robot
*** Settings ***
Resource          ../BusinessObjs/MyTest.robot

*** Test Cases ***
MyTestCase
    mykeyword

$ cat BusinessObjs/MyTest.robot
*** Keywords ***
mykeyword
    Run Keyword If    ${VARIABLE_NOT_DEFINED}    otherkeyword

otherkeyword
    log    test

$ pybot --dryrun Suites/MyTestSuite.robot
==============================================================================
MyTestSuite
==============================================================================
MyTestCase                                                            | PASS |
------------------------------------------------------------------------------
MyTestSuite                                                           | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================

$ pybot Suites/MyTestSuite.robot
==============================================================================
MyTestSuite
==============================================================================
MyTestCase                                                            | FAIL |
Variable '${VARIABLE_NOT_DEFINED}' not found.
------------------------------------------------------------------------------
MyTestSuite                                                           | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================

Unfortunately variables can come from so many different sources that detecting do they really exist in dry-run mode is pretty impossible without a huge effort. I'm afraid any kind of a simple implementation would cause so many false positives that the analysis wouldn't be useful. I don't have anything against someone trying to implement this, though. Anyone interested?

Thank you for your response. I understand that variables can come from so many different sources but is possible consider only source code?
So, for dryrun, we will have the same behavior of the pybot execution without external input variables but only with the variables definied into the code.
If the test fails without external input variables,in my opinion, also the dryrun should fail.

Could you clarify what you mean with considering only source code? The problem with variables is that if you have just ${VAR} somewhere in test data, it could originate from the command line or be somehow set dynamically during execution.
Many variable usages could be analyzed correctly, so probably there would be some value from inspecting variables too. If it would be configurable, then users could also easily opt in or out. It's impossible to know for sure unless someone is interested either to implement this or willing to pay for me to look at it. I don't personally consider this so important that I would spent my own unpaid time for it.

For "source code" I mean variables defined in test data (in the "*** Variables ***" session) and not originated from command line or set dynamically.

Could could Robot know is a variable ${foo} set dynamically or just not defined at all? Obviously there could be a guideline that all variables are defined in *** Variables *** so at least some value is always available. If such a guideline was used, validating variables would probably be pretty useful. Validation should be configurable somehow to allow opting out (or opting in) if needed.
After thinking this a bit more, I can see this could be implemented in a way that makes variable validation actually useful. Now we just need someone to implement it. =)


json::contains usage to find a path

Describe what you want to achieve.

I want to test whether a path exists in a json file. For example, "/root/settings/logging".

Describe what you've tried.

auto jPtr = json::json_pointer("/root/settings/logging"_json_pointer);
auto exists1 = jsonfile.contains(jPtr);

auto exists2 = jsonfile.contains(json::json_pointer("/root/settings/logging"_json_pointer));

exists1 is false and exists2 is true.
I expected both of these to be true. Is this a bug or is this expected behaviour?
UPDATE: There are two contains functions. One which takes an rvalue reference to a KeyT and one which takes a reference to a json_pointer.  Both do different things. This seems inconsistent to me. If I std::move jPtr it works but I don't want to move the pointer.

Describe which system (OS, compiler) you are using.

g++ (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0

Describe which version of the library you are using (release version, develop branch).

v3.7.0

auto jPtr = json::json_pointer("/root/settings/logging"_json_pointer);

There is maybe one _json_pointer too much here?
Isn't it either
auto jPtr = json::json_pointer("/root/settings/logging");

or
auto jPtr = "/root/settings/logging"_json_pointer;

What do you see when printing your jPtr?

Thanks for replying but I've tested your suggestions and neither of them work.

at seems to behave correctly. I haven't tested it fully yet but the code below works (outputsExists). I'd prefer to use contains though as it isn't mean't to throw an exception.
    try
    {
        json::json_pointer p {"/root/settings/logging"};
        jsonfile.at(p);
        std::cout << "Exists" << std::endl;
    }
    catch (const json::exception &e)
    {
        std::cout << "Doesn't exist" << std::endl;
    }

Indeed there is a double invocation of the JSON Pointer constructor if you call
json::json_pointer("/root/settings/logging"_json_pointer)

For your example, this code works:
#include "json.hpp"
#include <iostream>

using json = nlohmann::json;

int main()
{
    json j;
    j["root"]["settings"]["logging"] = true;

    std::cout << std::boolalpha
        << j.contains("/root/settings/logging"_json_pointer) << '\n'
        << j.contains("/no/value/here"_json_pointer)
        << std::endl;
}

Thanks but my question was about passing an instance of json::json_pointer and not hard coded paths.
It is related to the contains function and it's different implementations for const and non-const json_pointers.
auto jp1 = "/root/settings/logging"_json_pointer;
auto jp2 = json::json_pointer{"/root/settings/logging"};

std::cout << std::boolalpha << j.contains(jptr1);
std::cout << std::boolalpha << j.contains(jptr2);

....both return false.  But if I make them both const, they return true!
const auto jp1 = "/root/settings/logging"_json_pointer;
const auto jp2 = json::json_pointer{"/root/settings/logging"};

std::cout << std::boolalpha << j.contains(jptr1);
std::cout << std::boolalpha << j.contains(jptr2);

Is this a bug because this really caught me out.

I see.
Calling contains with a non-const json_pointer calls
template<typename KeyT, typename std::enable_if<
             not std::is_same<KeyT, json_pointer>::value, int>::type = 0>
bool contains(KeyT && key) const
{
    return is_object() and m_value.object->find(std::forward<KeyT>(key)) != m_value.object->end();
}

which is wrong, whereas calling it with a const json_pointer calls
bool contains(const json_pointer& ptr) const
{
    return ptr.contains(this);
}

which is correct.
I am puzzled. Any ideas?

I'm not familiar enough with the codebase to suggest a fix but I added a contains function which accepts a non const json_pointer and it fixes the issue:
bool contains(json_pointer& ptr) const
{
    return ptr.contains(this);
}

I believe the function below is being called incorrectly by the non-const call. Could you explain to me what the std::enable_if is mean't to achieve? Is it to prevent calls passing a json_pointer parameter because it does not do this. Is this a bug?
template<typename KeyT, typename std::enable_if<
             not std::is_same<KeyT, json_pointer>::value, int>::type = 0>
bool contains(KeyT && key) const
{
    return is_object() and m_value.object->find(std::forward<KeyT>(key)) != m_value.object->end();
}

Hey @devhandle I have explained why this wasn't working in the pull requests but if you need more explanation from my side, don't doubt into dropping me a message :)

Thanks @tete17!
I've tested your change and it fixes my issue.  Also, thanks for the explanation - much appreciated.


Updated fix for bug 314 (previously pull request 190).

See https://github.com/D-Programming-Language/dmd/pull/190

It looks like std.datetime should import std.utf. It worked previously because std.datetime imports std.windows.registry which has a private selective import for toUTF16.

It looks like std.datetime should import std.utf. It worked previously because std.datetime imports std.windows.registry which has a private selective import for toUTF16.

Note that the original pull on this included no test cases, which means when it was reverted that the test suite still passed, but the bugzilla example now fails again.


Swift compatible enums

Change all enum definitions in OctoKit to use NS_ENUM or NS_OPTIONS where appropriate to resolve #187.
I’ve also changed the type of all the enums which were just that, enumerations, to be backed by NSInteger as that is what Apple recommends. The options enum is still being backed by a NSUInteger as recommended by Apple.
/cc @joeljfischer

I hate that this is necessary but thanks for taking it on!


Add tests to tabs and events pagination

closes TryGhost/Team#2128

@lenabaidakova Good to merge this once the admin tests succeed. Now it is throwing a expected div.event-id to have trimmed text '5', but the trimmed text was '1'


install-macos-nix-grpc: link libgpr too

This is needed to build grpc-haskell on my environment

Thank you!

For a reason I cannot divine, the test suite appears to diverge on the macos tester...

@fumieval are you using Nix to build grpc-haskell? If so, I believe #145 will fix the linking problems you're encountering when building grpc-haskell from within a Nix shell.

No I'm not; I was simply trying to build it with plain cabal-install and --extra-lib-dirs

By linking, I mean creating a symbolic link to libgpr.dylib

@riz0id @ixmatus Is there anything I should do here? Is the build failure on Mac a blocker?

@fumieval we're pretty bogged down ATM and haven't had time to look at this. I don't think this is a blocker but something has happened recently causing the test to diverge on GitHub Action's macos builder.

@ixmatus I understand your situation, but this is merely a one-line change to link libgpr.dylib. It doesn't affect anything but those who run bin/install-macos-nix-grpc.sh locally, so it would be nice if you could take a look and merge this.


Implement new --show-dirs command

The command prints out the different directories (config, cache, etc) used by tealdeer, and the reason why this directory path was chosen.
$ ./tldr --show-paths
Config dir:  /home/danilo/.config/tealdeer/ (OS convention)
Config path: /home/danilo/.config/tealdeer/config.toml
Cache dir:   /mnt/data/Caches/.cache/tealdeer/ (OS convention)
Pages dir:   /mnt/data/Caches/.cache/tealdeer/tldr-master/

$ TEALDEER_CONFIG_DIR=/tmp/conf ./tldr --show-paths
Config dir:  /tmp/conf/ (env variable)
Config path: /tmp/conf/config.toml
Cache dir:   /mnt/data/Caches/.cache/tealdeer/ (OS convention)
Pages dir:   /mnt/data/Caches/.cache/tealdeer/tldr-master/

CC @niklasmohrin

I think it would be a bit risky to assume anything to be an "OS convention", because some people may have strong opinions on conventions and they might be subject to change (I, for one, always thought that the tealdeer cache is in $HOME/.cache aka $XDG_CACHE_HOME, but I stand corrected 😄 ). Maybe something more defensive like "default" would be more appropriate?
Apart from that (and the clippy suggestions), this looks good to me 👍

I think it would be a bit risky to assume anything to be an "OS convention", because some people may have strong opinions on conventions and they might be subject to change (I, for one, always thought that the tealdeer cache is in $HOME/.cache aka $XDG_CACHE_HOME, but I stand corrected 😄 ). Maybe something more defensive like "default" would be more appropriate?
Apart from that (and the clippy suggestions), this looks good to me 👍

Hm, what do you mean?The tealdeer cache is at $XDG_CACHE_HOME/tealdeer, on my computer I actually override the $XDG_CACHE_HOME variable. And I'd say that XDG is the de-facto Linux OS convention for directory paths.

Hm, what do you mean?The tealdeer cache is at $XDG_CACHE_HOME/tealdeer, on my computer I actually override the $XDG_CACHE_HOME variable. And I'd say that XDG is the de-facto Linux OS convention for directory paths.

Ohhhh, I was just thrown off by the location of the cache in the example from the description and thought that /mnt/data/Caches was a convention I hadn't heard about, my bad 😄. In that case, I totally agree with what tealdeer is doing here.
What I wanted to say is, that I would not include anything that someone may disagree with (such as conventions / good practices) if it is not necessary. Also, if (for some reason) someone would use tealdeer on an OS that does not have this convention (I don't know any though), this would be conflicting with the output. This is why I would opt for the label "default" or something that explains what OS convention is meant to not display it as the convention and instead make it clear, maybe "XDG" or so.
This is of course only my opinion as an external viewer and it is your decision after all. 🤷♂

Ohhhh, I was just thrown off by the location of the cache in the example from the description and thought that /mnt/data/Caches was a convention I hadn't heard about, my bad 😄. In that case, I totally agree with what tealdeer is doing here.
What I wanted to say is, that I would not include anything that someone may disagree with (such as conventions / good practices) if it is not necessary. Also, if (for some reason) someone would use tealdeer on an OS that does not have this convention (I don't know any though), this would be conflicting with the output. This is why I would opt for the label "default" or something that explains what OS convention is meant to not display it as the convention and instead make it clear, maybe "XDG" or so.
This is of course only my opinion as an external viewer and it is your decision after all. 🤷♂

No worries 🙂 Yeah, I agree with your general statement. I also wondered whether it would be better to write "XDG" instead of "OS convention" on Linux systems. Should be easy (I mainly feared that people might not know what XDG is). By the way, for determining "OS conventions" we use the https://docs.rs/app_dirs/ crate.
À propos "external viewer", are you interested in becoming a collaborator? I'm looking for someone to help maintaining this crate (reviewing contributions and occasionally implementing new features). The workflow would be PR based, just as before (but with someone else helping I could ask you for reviews).
Of course, feel free to decline if you don't have time or motivation 🙂

No worries 🙂 Yeah, I agree with your general statement. I also wondered whether it would be better to write "XDG" instead of "OS convention" on Linux systems. Should be easy (I mainly feared that people might not know what XDG is). By the way, for determining "OS conventions" we use the https://docs.rs/app_dirs/ crate.
À propos "external viewer", are you interested in becoming a collaborator? I'm looking for someone to help maintaining this crate (reviewing contributions and occasionally implementing new features). The workflow would be PR based, just as before (but with someone else helping I could ask you for reviews).
Of course, feel free to decline if you don't have time or motivation 🙂

This would be my first time maintaining software, but I guess I could try it. Since I am still stuying full time, I might not find time for a couple of days, depending on my other responsibilities. If that's okay for you, feel free to request reviews or tag me and I will try my best to help 😄

Sure, you already know my response times, this is not a commercial project with deadlines 😄
Great, I'll invite you to this repository! Reviews of pull requests are very welcome. (Branch protection will remain active, so please use pull requests and not pushes to master.)


Form Mod

Some sorta form mod that PHPifies the form handling.
You generate a form through PHP on both front and backend through a mod.
It'll be ossom.

I see this feature in a lot of frameworks but i never end up using it because it can be quite the hassle.
I abandon this issue.

+1


Why don't you update shape code when editing shape

As is mentioned in your paper, you update F_rad and color code z^c when editing colors, while you only update F_fuse and F_dens when editing shape.
I'm wondering why don't you also update shape code z^s when editing shape.

Hi! We find that updating the shape code as well doesn't improve the edit quality noticeably. Also, updating the shape code would make the optimization process slower: because the shape code is fed into the beginning of the network, you can't cache intermediate features during optimization, and you need to backprop through the whole network.


Add precise types for BackendJWT and Interceptor configs in vscode schema

Purpose
$subject

Closing this PR since the changes are added via https://github.com/wso2/apk/pull/1356


Implement gRPC plugin for Dart Protobuf protoc plugin

Plugin is out for review: dart-lang/dart-protoc-plugin#79.


Failed removeChild function for parent when parentSelector is changed

Hi guys
In our project when we have player in fullscreen mode we want to show some modals on user actions. For showing modal in fullscreen I use parentSelector to change parent from body to player component. But when user leaves player in fullscreen mode with opened modal I get some error
Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

because parent doesn't exist anymore (player) and removeChild function fails
Can be it fixed somehow? Thank you!

@roman-mateush Can you make a reproducible example, please?

This happens for me too. I am on 3.10.1
I have this (simplified) in my App:
// OuterParent -> Parent -> Modal
const OuterParent = props => props.show && (<Parent />)

function Parent() {
  const root = useRef(null);
  return (
    <div ref={root}>
      <Modal parentSelector={() => root.current}
    </div>
  );
}

When the Parent is unmounted from OuterParent The app crashes with error:

Because the Parent is already unmounted and returns null when parent.removeChild get called
I had to use a hack as a temp fix
         parentSelector={() => {
              return this.root.current || {removeChild: () => {}}
         }}

Perhaps add a sanity check to removePortal is the fix
const parent = getParentElement(this.props.parentSelector);
if (parent) parent.removeChild(this.node);

@heshan0131 props.show && (<Parent />) this conditional render seems what can cause the problem, because it will unconditionaly unmount Parent  when show becomes false. Than you no longer have the parent element.
Additionally to if (parent), we can add an extra log, just so we know what happened.
More info
The reason this exception will raise is that react-modal schedules the removing of the modal on setTimeout (to allow the animation to finish before removing itself), this can be enough time to the parent to be removed.

Just so that no one who arrives here is confused by a typo in the above comment, v3.11.2 is the version that fixes this issue. I can confirm that


Ssc sport

Ssc 3
Ssc 4
Ssc 6
No signal

This looks like an automatically created issue, please re-open if you need something in particular

Channel playback is not working
في الجمعة، ٢٢ يوليو ٢٠٢٢, ٥:٣٤ م Brian I. Martínez Estrada <
@.***> كتب:

This looks like an automatically created issue, please re-open if you need
something in particular
—
Reply to this email directly, view it on GitHub
https://github.com/zencoder/m3uzi/issues/4#issuecomment-1192637986, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A2FPEDLH6ZOAOXDQHEM7Y23VVKWNZANCNFSM54JTX6XA
.
You are receiving this because you authored the thread.Message ID:
@.***>

http://live.multies.net/category/sports-ch/ssc-sprot/
في الجمعة، ٢٢ يوليو ٢٠٢٢ ٦:٥٦ م Werl Bee @.***> كتب:

Channel playback is not working
في الجمعة، ٢٢ يوليو ٢٠٢٢, ٥:٣٤ م Brian I. Martínez Estrada <
@.***> كتب:

This looks like an automatically created issue, please re-open if you
need something in particular
—
Reply to this email directly, view it on GitHub
https://github.com/zencoder/m3uzi/issues/4#issuecomment-1192637986, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A2FPEDLH6ZOAOXDQHEM7Y23VVKWNZANCNFSM54JTX6XA
.
You are receiving this because you authored the thread.Message ID:
@.***>