🐛[flutter_messaging] getInitialMessage() returns null

Bug report
Describe the bug
FirebaseMessaging.instance.getInitialMessage().notification will be null if the app is open while i'm receive a notification and close it before open the notification.
Steps to reproduce
Steps to reproduce the behavior:
This happen on the android only, iOS work's fine.

Open application and leave it at the background
Notification received
Close the application
if you open the aplication again, the FirebaseMessaging.instance.getInitialMessage().notification will be null

Expected behavior
The message of FirebaseMessaging.instance.getInitialMessage().notification not be null
Sample project
This step is a bit hard to do, because have to do alot of things to make notifications work.
But the functions that make the Firebase initialize are bellow:
`Firebase.initializeApp().whenComplete(() async {
      setupInteractedMessage();

  FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    print('Got a message whilst in the foreground!');
    print('Message data: ${message.data}');

    if (message.notification != null) {
      print(
          'Message also contained a notification: ${message.notification}');
      String title = message.notification.title;
      String body = message.notification.body;
      codigoTopico = title.split(":").last;
      if (double.parse(codigoTopico, (e) => null) != null) {
        showDialog(
            context: context,
            builder: (_) => AlertDialog(
                  title: Text(title),
                  content: Text(body),
                  elevation: 10,
                  actions: [
                    ElevatedButton(
                      onPressed: () {
                        Navigator.pop(context);
                        getTopic();
                      },
                      child: Text(
                        'Ver Tópico',
                        style: TextStyle(fontSize: 20),
                      ),
                    ),
                    ElevatedButton(
                      onPressed: () => Navigator.pop(context),
                      child: Text(
                        'FECHAR',
                        style: TextStyle(fontSize: 20),
                      ),
                    )
                  ],
                ));
      } else {
        showDialog(
            context: context,
            builder: (_) => AlertDialog(
                  title: Text(title),
                  content: Text(body),
                  elevation: 10,
                  actions: [
                    ElevatedButton(
                      onPressed: () => Navigator.pop(context),
                      child: Text(
                        'FECHAR',
                        style: TextStyle(fontSize: 20),
                      ),
                    )
                  ],
                ));
      }
    }
  });

  setState(() {});
});`

Future<void> setupInteractedMessage() async {
    // Get any messages which caused the application to open from
    // a terminated state.
    RemoteMessage initialMessage =
        await FirebaseMessaging.instance.getInitialMessage();

    // If the message also contains a data property with a "type" of "chat",
    // navigate to a chat screen
    if (initialMessage != null) {
      _handleMessage(initialMessage);
    }

    // Also handle any interaction when the app is in the background via a
    // Stream listener
    FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage);
  }

void _handleMessage(RemoteMessage message) {
    //print("ABERTO PELA NOTIFICAÇÃO!");
    String title = message.notification.title;
    codigoTopico = title.split(":").last;

    getTopic();
  }

Additional context
This happend only on the Android version, on iOS works fine.
ERROR:
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: NoSuchMethodError: The getter 'title' was called on null.
                                                                                Receiver: null
                                                                                Tried calling: title

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[√] Flutter (Channel stable, 3.7.5, on Microsoft Windows [versÆo 10.0.22621.1555], locale pt-BR)
[X] Windows Version (Unable to confirm if installed Windows version is 10 or greater)
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components
[!] Android Studio (version 2022.1)
    X Unable to find bundled Java version.
[√] Connected device (5 available)
[√] HTTP Host Availability

! Doctor found issues in 4 categories.

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.19.2
Flutter SDK 3.7.5

dependencies:
- after_layout 1.2.0 [flutter]
- cached_network_image 3.2.3 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- cupertino_icons 1.0.5
- date_format 2.0.7
- device_info_plus 8.1.0 [device_info_plus_platform_interface ffi file flutter flutter_web_plugins meta win32]
- firebase_core 1.24.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_core_platform_interface 4.5.1 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_messaging 11.4.4 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine]
- flutter_datetime_picker 1.5.1 [flutter]
- flutter_html 2.2.1 [html csslib flutter_layout_grid video_player chewie webview_flutter chewie_audio flutter_svg flutter_math_fork collection numerus flutter]
- flutter_local_notifications 8.1.1+1 [flutter flutter_local_notifications_platform_interface platform timezone]
- fluttertoast 8.2.1 [flutter flutter_web_plugins]
- html 0.15.1 [csslib source_span]
- http 0.13.5 [async http_parser meta path]
- image_picker 0.8.6+4 [flutter image_picker_android image_picker_for_web image_picker_ios image_picker_platform_interface]
- intl 0.17.0 [clock path]
- modal_progress_hud 0.1.3 [flutter]
- package_info_plus 1.4.3+1 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- permission_handler 10.2.0 [flutter meta permission_handler_android permission_handler_apple permission_handler_windows permission_handler_platform_interface]
- shared_preferences 2.0.18 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- timezone 0.7.0 [path]
- uni_links 0.5.1 [flutter uni_links_platform_interface uni_links_web]
- url_launcher 6.1.10 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]

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

dependency overrides:
- image_picker_android 0.8.4+13 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]

transitive dependencies:
- async 2.10.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- cached_network_image_platform_interface 2.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.2 [flutter flutter_cache_manager cached_network_image_platform_interface]
- characters 1.2.1
- chewie 1.4.0 [cupertino_icons flutter provider video_player wakelock]
- chewie_audio 1.3.0 [cupertino_icons flutter video_player]
- clock 1.1.1
- collection 1.17.0
- cross_file 0.3.3+4 [js meta]
- crypto 3.0.2 [typed_data]
- csslib 0.17.2 [source_span]
- device_info_plus_platform_interface 7.0.0 [flutter meta plugin_platform_interface]
- fake_async 1.3.1 [clock collection]
- ffi 2.0.1
- file 6.1.4 [meta path]
- firebase_core_web 1.7.3 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_messaging_platform_interface 3.5.4 [firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 2.4.4 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- flutter_blurhash 0.7.0 [flutter]
- flutter_cache_manager 3.3.0 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_layout_grid 1.0.6 [flutter collection meta quiver]
- flutter_local_notifications_platform_interface 4.0.1 [flutter plugin_platform_interface]
- flutter_math_fork 0.5.0 [flutter flutter_svg provider meta collection tuple]
- flutter_plugin_android_lifecycle 2.0.8 [flutter]
- flutter_svg 0.23.0+1 [flutter meta path_drawing vector_math xml]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- http_parser 4.0.2 [collection source_span string_scanner typed_data]
- image_picker_for_web 2.1.11 [flutter flutter_web_plugins image_picker_platform_interface]
- image_picker_ios 0.8.7 [flutter image_picker_platform_interface]
- image_picker_platform_interface 2.6.3 [cross_file flutter http plugin_platform_interface]
- js 0.6.5 [meta]
- matcher 0.12.13 [meta stack_trace]
- material_color_utilities 0.2.0
- meta 1.8.0
- nested 1.0.0 [flutter]
- numerus 1.1.1
- octo_image 1.0.2 [flutter flutter_blurhash]
- package_info_plus_linux 1.0.5 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.6 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 2.1.0 [package_info_plus_platform_interface ffi flutter win32]
- path 1.8.2
- path_drawing 0.5.1+1 [vector_math meta path_parsing flutter]
- path_parsing 0.2.1 [vector_math meta]
- path_provider 2.0.13 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows]
- path_provider_android 2.0.23 [flutter path_provider_platform_interface]
- path_provider_foundation 2.1.2 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.9 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.0.6 [flutter platform plugin_platform_interface]
- path_provider_windows 2.1.4 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- permission_handler_android 10.2.0 [flutter permission_handler_platform_interface]
- permission_handler_apple 9.0.7 [flutter permission_handler_platform_interface]
- permission_handler_platform_interface 3.9.0 [flutter meta plugin_platform_interface]
- permission_handler_windows 0.1.2 [flutter permission_handler_platform_interface]
- petitparser 5.1.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.4 [meta]
- process 4.2.4 [file path platform]
- provider 6.0.5 [collection flutter nested]
- quiver 3.2.1 [matcher]
- rxdart 0.27.7
- shared_preferences_android 2.0.16 [flutter shared_preferences_platform_interface]
- shared_preferences_foundation 2.1.4 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.1.4 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.1.1 [flutter plugin_platform_interface]
- shared_preferences_web 2.0.5 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.1.4 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- sky_engine 0.0.99
- source_span 1.9.1 [collection path term_glyph]
- sqflite 2.2.5 [flutter sqflite_common path]
- sqflite_common 2.4.2+2 [synchronized path meta]
- stack_trace 1.11.0 [path]
- stream_channel 2.1.1 [async]
- string_scanner 1.2.0 [source_span]
- synchronized 3.0.1
- term_glyph 1.2.1
- test_api 0.4.16 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- tuple 2.0.1
- typed_data 1.3.1 [collection]
- uni_links_platform_interface 1.0.0 [flutter plugin_platform_interface]
- uni_links_web 0.1.0 [flutter flutter_web_plugins uni_links_platform_interface]
- url_launcher_android 6.0.24 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.1.1 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.0.3 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.0.3 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.1.2 [flutter plugin_platform_interface]
- wakelock_macos 0.4.0 [flutter flutter_web_plugins wakelock_platform_interface]
- wakelock_platform_interface 0.3.0 [flutter meta]
- wakelock_web 0.4.0 [flutter flutter_web_plugins js wakelock_platform_interface]
- wakelock_windows 0.2.1 [flutter wakelock_platform_interface win32]
- webview_flutter 2.8.0 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]
- webview_flutter_android 2.10.4 [flutter webview_flutter_platform_interface]
- webview_flutter_platform_interface 1.9.5 [flutter meta plugin_platform_interface]
- webview_flutter_wkwebview 2.9.5 [flutter path webview_flutter_platform_interface]
- win32 3.1.3 [ffi]
- xdg_directories 1.0.0 [meta path process]
- xml 5.4.1 [collection meta petitparser]

Hi @OM-Tecnologia, this is a duplicate of https://github.com/firebase/flutterfire/issues/10768.
Kindly follow up in the issue linked above for updates.
Closing from here as duplicate.
Thank you


Websocket disconnect results in "crash" page

https://odysee.com/$/notifications.
Disconnect LAN cable.

I think the 2 instances seen with Swap is the same problem, as they share the same websocket.
Probably not a good idea to show that page, since the user might be in the middle of something important or editing something.

This happens most likely from the background sync service - right now we hard fail this way to prevent loss of sync data which was happening before.


[FEATURE] Editable probabilities

First off loving this, super handy during my last session.
Second, a really neat feature I'd love to see is the ability to tweak probabilities for each option in the JSON. Probably the simplest way would be to add a custom "probability" key, although that's just a thought.
The ability to tweak it so it's accurate for the city/region's demographics would make this way more useful, so I can generate, for example, 80% dwarves in a dwarven capitol.
EDIT: Or even better (although maybe more difficult), allow it to roll on a table for a given value.

I'll take a look at it after i finish my current project!


Slow accessing files

When I first open brackets, saving files, or especially when I Quick Edit (accessing multiple css files), Brackets is very slow with Brackets Helper at more than 100% CPU until the files load. Restarting without extensions is about the same.
I'm currently using:
Release 1.6 build 1.6.0-16680 (release 3df0ac6fa)
build timestamp: Tue Jan 12 2016 05:35:00 GMT-0800

How big is your project? You could try excluding some common third party folders and temporary files with https://github.com/zaggino/brackets-file-tree-exclude to see if the performance improves.
If the project you are working in on is relatively small, could you post your Health Report (Help -> Health Report)

@petetnt I've been using brackets-file-tree-exclude for a few months now, mostly excluding /node_modules/. I agree that ever since this last release as mentioned above (I'm using release 3df0ac6fa), brackets response has been shady (i use brackets because response its fast).

if you have files open in the Working Files section, CMD-W is a great way to clear them away. Since this release, there is a delay for them to close. Sometimes, the code-view will clear but the file persists under Working Files and takes seconds to be removed. Previous versions never had this problem. Test: Try opening about 10 files so they exist in Working Files then tap CMD-W 10 times as quick as you normally would.

i have noticed that sometimes the delay (mentioned above) will sort of freeze everything and I can not open new files until I quite brackets and re-open.

    "uuid": "c130ea79-abde-4272-a4e9-dea636e80e32",
    "snapshotTime":<PHONE_NUMBER>854,
    "os": "mac",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Brackets/1.6.0 Chrome/39.0.2171.36 Safari/537.36",
    "osLanguage": "en",
    "bracketsLanguage": "en",
    "bracketsVersion": "1.6.0-16680",
    "fileStats": {
        "openedFileExt": {
            "js": 145,
            "less": 3,
            "json": 14,
            "jade": 82,
            "html": 73,
            "jshintrc": 2,
            "coffee": 1,
            "md": 9
        },
        "workingSetFileExt": {
            "less": 3,
            "js": 43,
            "jade": 21,
            "html": 15,
            "jshintrc": 1,
            "json": 4,
            "md": 3
        }
    },
    "ProjectDetails": {
        "prj-964862823": {
            "numFiles": 266,
            "cacheSize": 18697406
        },
        "prj1361413784": {
            "numFiles": 240,
            "cacheSize": 977012
        },
        "prj-103463679": {
            "numFiles": 117,
            "cacheSize": 385528
        },
        "prj-762735872": {
            "numFiles": 48,
            "cacheSize": 133251
        }
    },
    "searchDetails": {
        "searchNew": 8,
        "searchInstant": 14,
        "searchOnReturnKey": 5
    },
    "projectLoadTimes": ":205",
    "fileOpenTimes": ":645:46(102)158[56]:98(166)234[68]:174",
    "ModuleDepsResolved": 588835,
    "AppStartupTime": 590543,
    "prefNodeSearchDisabled": false,
    "prefInstantSearchDisabled": false,
    "installedExtensions": [
        {
            "name": "globexdesigns.brackets-jscs",
            "version": "0.7.5"
        },
        {
            "name": "jade",
            "version": "2.0.0"
        },
        {
            "name": "brackets-file-tree-exclude",
            "version": "1.0.4"
        },
        {
            "name": "lonelystorm.newline",
            "version": "0.0.1"
        }
    ],
    "bracketsTheme": "light-theme"
}```

@geooogle For the CTRL+W issue there's a fix tracking at #12145

@petetnt Thank you!

So the exclude plugin helps if I exclude all of my css and javascript but then I'm left without the ability to see anything useful in Quick Edit. Each time I include a subset of style files from an existing template, it still slows way down for any file access actions.
I'll try to pair down my template files for only what I'm using but it'd be nice if there was some other way to improve performance.

A build refresh is scheduled by his week or next for 1.6 and after that the new installers posted will contain the fix for the ctrl-w issue.
Please close this issue if this works after the release refresh is out..

1.7 has been released. @Bloom-web can you verify if this is still an issue?

Closing long pending issue. Please feel free to reopen if you still face the problem.


Fix shebang line

Does this really run for you with sh? I get this error:
./fetch.sh: 6: ./fetch.sh: Syntax error: "(" unexpected

Thanks!


Improve the styling of the headings

I would like to change the style of the headings in the Categories and Hygiene sections

And change them to -

@RIKI-05 Please assign this issue to me under the Hacktoberfest tag.

@RIKI-05  I'm able to solve this issue, so if you  could assign me this task, under the Hacktoberfest tag.

Can I please do it under Hacktoberfest tag??

i'm ready to Improve the styling of the headings
Please assign  me this issue
the Hacktoberfest tag.

@mchirag2002 the change isn't required


New icon request

Can you provide these icons
Mobile,Tablet, Exclamation  icons

Already there are:
screen-smartphone
screen-tablet


feat(tools): add visability of auth0 rules

In looking into the accountLinkId issue described in #107, I found it was as simple as adding uuid() inside the rule

Quick query are you using the webtask integration (natively provided by auth0) for this? We move this to "Auth0 Management API + Lambda" in future for more complex actions.

Whilst trying to access the app_metadat from the token, I stumbled across this comment which lead me to this rule


Security policy

The maximum length of byte arrays and strings should be limited, because there's no sensible thing for a decoder to do other than read the maximum length, allocate a buffer of that length, and then read data into it. It only takes one stream that contains a large integer to allocate gigabytes of heap.

Depends on #3

Limiting is easy. Communicating those limits between the two communicating parties is less so.

To be clear: The actual problem is that a stream can declare a size but doesn't actually need to supply that data. The issue is allocating eagerly upon receiving a size. We can therefore avoid this problem by not allocating eagerly: Build a byte array or stream an element at a time. This means that if someone wants you to consume gigabytes of memory, they actually have to send you gigabytes of data.

I think this can be closed. We don't allocate eagerly. You only consume heap space proportional to data you actually received.


Confusion in the README

Quote from your ReadMe:
We currently support .tsv, .csv and SQL as the data-types you can use as datasets for the Model Builder. The files should have a header row. For this preview Model Builder does not support *.txt files or ';' separated or ',' separated files
Perhaps there is a subtle difference between CSV files and ',' separated files in the ML/Model Builder world that I'm not getting. Is it possible to clarify what this means as CSV and ',' separated are the same thing to me :)

https://github.com/dotnet/machinelearning-samples/blob/master/modelbuilder/readme.md#Data
@keyedit, I agree it's confusing. The readme is trying to describe that we support .csv and .tsv files but we don't support files with a .TXT extension that for example AppleTypes.txt that happens to have csv-like format in it.
@rustd, Can we update our documentation?

As a quick fix, I've updated the wording to make it more clear (and now we support .txt files):
"We currently support .tsv, .csv, .txt, and SQL as the data types you can use as datasets for Model Builder. If you have a .txt file, columns should be separated with ',' or ';' or '/t'. The files must have a header row."
I am going to update the whole README with our most recent feature updates, including for image classification.


Create optimize_code.ts

I hope I did this right.
First pull request ever.
The file should allow you to select the text you want to optimize and refactor it accordingly.

ok i updated the other 2 files. I think it right


Fix JavaDoc issues to be compatible with Java 8

Coverage decreased (-0.05%) to 95.7% when pulling 708f396d796199fb2b7bbd0a20ecdff818107693 on java8-javadoc into f25de577076091f4e36404825cfb96f7b8e250f7 on master.


Add rates/v1

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

98 of 108 (90.74%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.9%) to 83.519%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

rates/v1/projects/requests.go
32
42
76.19%

Totals

Change from base Build<PHONE_NUMBER>:
0.9%

Covered Lines:
1277

Relevant Lines:
1529

💛  - Coveralls


Night mode: Category pages

Summary:
When clicking on a category in night mode, the app does not show the "Parent Categories", there's a blank space instead.
Steps to reproduce:
How can we reproduce the issue?
Settings > Night Mode;
Explore > Click any image > Click on a random categorie > Parent Categories
What did you expect the app to do, and what did you see instead?
The names of the parent categories should be shown.
Device and Android version:
Found on Xiaomi A1, Android 8.1.0
Commons app version:
2.8.5
Screen-shots:

Would you like to work on the issue?
Yess.

Hey!!
Have you made any changes to your code. My app crashes while trying to open this activity. It gives null pointer exception.
java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentActivity android.support.v4.app.Fragment.getActivity()' on a null object reference
at fr.free.nrw.commons.media.MediaDetailPagerFragment$MediaDetailAdapter.getItem(MediaDetailPagerFragment.java:401)

@vanshikaarora I think that's unrelated. I fixed that in 46db38b8e902b4f81333ea54de41f861407c0e3c

Just checked, this also happens in subcategories. So basically any categories page

Ok @domdomegg  I'll check that out

@vanshikaarora are you working on this? Just want it to be clear for other developers looking at issues.

I am working on this issue

Okay. I'm going to do the tabs separately in #2186, so please don't change them if possible (to avoid merge conflicts)

Sure
I'll talk to you before changing or creating pull request

@domdomegg I have created a pull request look into the files changed to avoid merge conflicts


Official Savage Worlds Character Sheet v1.00.10

Updated sheet.json with legacy support.
Will re-implement these changes so we can potentially better troubleshoot the issue.
Added the legacy key to the sheet.json
Changes / Comments
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[x] Is this a bug fix?
[x] Does this add functional enhancements (new features or extending existing features) ?
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

Resolving conflicts.


CLI init command should return meaningful message instead of "exit status 1" when kubectl is not installed/configured

CLI init command should return meaningful message instead of "exit status 1" when kubectl is not installed/configured

I can work on this issue if no one has it.

@Haishi2016 Does this still repros? I see a linked issue closed with a PR which hnadled multiple kubeconfigs.

We can close this one. The error message is now surfaced.


require generates warning for stdlib libraries

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Reproduction steps:

Place the following in a Fastfile:

require 'yaml'

lane :test do
end

You will see the following warning:
[18:23:43]: You have required a gem, if this is a third party gem, please use `fastlane_require 'yaml'` to ensure the gem is installed locally.

This warning should not display on Ruby core or Ruby stdlib files.

Run bundle exec fastlane test

Command executed
bundle exec fastlane test

Complete output when running fastlane, including the stack trace and command used

bundle exec fastlane test
 [✔] �
[18:23:43]: You have required a gem, if this is a third party gem, please use `fastlane_require 'yaml'` to ensure the gem is installed locally.
[18:23:43]: ------------------------------
[18:23:43]: --- Step: default_platform ---
[18:23:43]: ------------------------------
[18:23:43]: Driving the lane 'test' �
+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
+------+------------------+-------------+
[18:23:43]: fastlane.tools finished successfully �

Environment
≡ƒÜ½ fastlane environment ≡ƒÜ½
Stack

Key
Value

OS
UNKNOWN

Ruby
2.6.1

Bundler?
true

Git
git version 2.19.1.windows.1

Installation Source
C:/tools/ruby26/bin/fastlane

Host
Unknown  ()

Ruby Lib Dir
C:/tools/ruby26/lib

OpenSSL Version
OpenSSL 1.1.1a  20 Nov 2018

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

System Locale

Error

No Locale with UTF8 found ≡ƒÜ½

fastlane files:
`./fastlane/Fastfile`
require 'yaml'

lane :test do
end

`./fastlane/Appfile`

fastlane gems

Gem
Version
Update-Status

fastlane
2.129.0
Γ£à Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.3.0

bundler
2.0.2

CFPropertyList
3.0.0

public_suffix
2.0.5

addressable
2.6.0

atomos
0.1.3

babosa
1.0.2

claide
1.0.3

colored
1.2

colored2
3.1.2

highline
1.7.10

commander-fastlane
4.4.6

declarative
0.0.10

declarative-option
0.1.0

digest-crc
0.4.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.7.5

emoji_regex
1.0.1

excon
0.66.0

multipart-post
2.0.0

faraday
0.15.4

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

faraday_middleware
0.13.1

fastimage
2.1.5

gh_inspector
1.1.3

jwt
2.1.0

memoist
0.16.0

multi_json
1.13.1

os
1.0.1

signet
0.11.0

googleauth
0.6.7

httpclient
2.8.3

mime-types-data
3.2019.0331

mime-types
3.2.2

uber
0.1.0

representable
3.0.4

retriable
3.1.2

google-api-client
0.23.9

google-cloud-env
1.2.0

google-cloud-core
1.3.0

google-cloud-storage
1.16.0

json
2.2.0

mini_magick
4.9.5

multi_xml
0.6.0

plist
3.5.0

rubyzip
1.2.3

security
0.1.3

naturally
2.2.0

simctl
1.6.5

slack-notifier
2.3.2

terminal-notifier
2.0.0

unicode-display_width
1.6.0

terminal-table
1.8.0

tty-screen
0.7.0

tty-cursor
0.7.0

tty-spinner
0.9.1

word_wrap
1.0.0

nanaimo
0.2.6

xcodeproj
1.12.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.0

generated on: 2019-08-20

Code is here:
https://github.com/fastlane/fastlane/blob/f892ca98af7ee316e563d07a93a54c96c58b6a47/fastlane/lib/fastlane/fast_file.rb#L29-L33
How can one differentiate between third party and standard libraries?
Is there a definitive list to use for that check?

How can one differentiate between third party and standard libraries?

You realistically cannot, and should not try to differentiate. There are many ways to confuse any kind of check, like $LOAD_PATH modifications which can pre-empt the loading of a RubyGem, or trigger it, depending.

Is there a definitive list to use for that check?

No. Don't maintain a list of white listed libraries to require. These depend on Ruby version, the OS you're on, the specific configure flags you used to compile Ruby, your Gemfile, etc. (i.e. sometimes rdoc is a stdlib sometimes it's a gem, same for json and more).
IMO you should not warn for normal require usage. The easy fix here is to disable the warning because it provides no value and only confuses users and actually recommends an action that will break, not fix, their setup.
If you really need to do this, the only "reliable" way would be to either monkeypatch into RubyGems' require implementation or basically reimplement the full lookup semantics for how RubyGems decides whether a path is a gem or just a normal Ruby file. Reliable is in quotes because both of these things will need you to maintain compatibility across RubyGems versions, Ruby version, and it's quite a bit of work and will break over time.
So you really shouldn't.

I see.

Whose reply do we need for this to move forward?

Any reply keeps this open.
Only a PR can really move this forward.

Would you accept a PR to remove this warning?

Removing the warning doesn't seem like a solution to the actual problem, as this is a useful feature in normal usage of fastlane.

@janpio can you provide information about when this warning is actually useful? I can't think of any case where warning a user about a missing gem is useful. If the gem is actually missing they will get an error instead of the warning, and the error will be more accurate.
But if this is a nonstarter, can you provide some guidance on what type of PR would be accepted to resolve this? I'm all for doing the work if the fastlane team doesn't want to, but if y'all are also setting restrictions on how this is resolved it would be useful to know what those are up front-- again my approach would have be to rip out the false-positive-prone warning, and that seems to be problematic.

This is not about missing gems, but about using require ... to use one in a Fastfile. Here is the documentation for fastlane_require: https://docs.fastlane.tools/advanced/Fastfile/#using-fastlane_require I don't know all the reasoning behind this feature and how and where it is useful, but I am aware it exists and sets the context where this warning is useful.

PR opened to resolve this in #15354 without changing any existing behaviors.


Can't write consecutive if let statements within the same scope.

Reproduction Steps
The following code fails:
if let a = null {
}
if let b = [] {
}

With the error
error: Uncaught SyntaxError: Identifier '__coil_if_let_temp' has already been declared
let __coil_if_let_temp = [];

Theories
This is because when we emit an if let we also declare a temporary variable to hold the expression, so we don't evaluate it twice. The problem is that we can't use let twice in a scope in javascript.
Solutions
We need to not use "let" to declare the temporary variable __coil_if_let_temp

use var as it allows redeclarations
make these global variables
~detect if its been used already in this scope~

Of these solutions, var is likely to be the best

fixed


Text not displaying properly

Hi @flatsiedatsie,
On Fenix and Fennec Firefox on Android the text isn't displaying properly for me:

Nothing obvious in the internal logs and I've got debug logs on.
Cheers 🙂

Thanks. Probably just a CSS issue. I'll look into it.

Hi @flatsiedatsie,
After more checking I can see that this is only happening with the native WebThings connected via the things-url-adapter. All the WebThings are written with the Arduino libraries but of various versions.
Maybe there's a problem with the adapter, the library or my code?
Cheers 🙂

If it only happens with one type of device, then that's strange. Other things do have a normally populated list?
It could be that the thing or property ID's of those devices are leading to a problem. They may have stange characters in them, for example. Could you give an example of what the URL bar looks like when you look at one of these devices? And what are the properties supposed to be?

Hi @flatsiedatsie,
This is an example of one: /things/http---<IP_ADDRESS>-things-bme280wbattery
And another: /things/http---<IP_ADDRESS>-things-heater
Looking at that, the problem is probably the full stops "." or the dashes "-" as your extension might not be expecting to see code like that.
Cheers 🙂

Yes that might be it.

I did a test by creating a device with dots in the thing ID, property ID and titles. And it worked just as normal.

Hi @flatsiedatsie,
Then it might be an issue with how the Arduino library presents the names of thing properties, maybe @mrstegeman has an idea about it.
Cheers 🙂

Perhaps the addon still sends 'name' instead of 'title'.

Try clearing your browser's cache too.

Older versions of the library used label rather than title. Perhaps that’s the issue?

A new version has been released that, in theory, should also check for 'label' if it can't find a 'title'.

Hi @flatsiedatsie,
The new version brings improvement! There is now text for these native WebThings' properties but it all just says "unknown".
My latest WebThings are from about two months ago which i think is after the change from title to label isn't it @mrstegeman? My code is here: https://github.com/madb1lly/ESP8266-BME280-WebThing/blob/master/bme280wbattery.ino
Cheers 🙂

Hi @flatsiedatsie,
For info,  the Macros extension doesn't show the thing properties as Unknown, so maybe you'll find the answer in that code.
Cheers 🙂

Macros uses javascript instead of python

Hello @flatsiedatsie, okay, but you can ignore me anyway, I got mixed up - Macros also shows "unknown" for these properties on these native webthings.

If two addons do this, then it's a pattern. Perhaps @mrstegeman should be informed.

You should log what you're passing into each new Option() call. I'm guessing the first field is null/undefined/empty.


LAB_02a_Manage_Subscriptions_and_RBAC.md

Current Translation:
Anda tidak memiliki penyimpanan yang terpasang
Suggested Translation:
Anda tidak memiliki penyimpanan yang terinstal

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

The Locfile state is PreHandoff.

This lang is not listed now for id-id in CAICritical - out of scope
Can be closed

Run bugfix tool, waiting for result. ICMS QUERY
https://github.com/MicrosoftLearning/AZ-104-MicrosoftAzureAdministrator.id-id/blob/OLPRODLOC/Instructions/Labs/LAB_02a_Manage_Subscriptions_and_RBAC.md

fixed in locfile


Fixing External Endpoints of exposed applications on Azure Stack Edge

This issue is related to using the existing document in real-world scenario.
On ASE reboot, the webserver app could be on any Kubernetes worker node and so external IP of the exposed webserver app module could change. Then the client application (web browser in the document) will fail as it is not aware of new IP. Is there a means to associate the external endpoint to a domain name?
The problem is correctly explained in related Kubernets networking doc, but how to apply Load balancer IP service via IoT Edge Deployment manifest is not provided. IoT Edge Deployment manifest is preferred over kubectl yaml as it allows cloud control.

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

ID: c0de523e-2d43-ce8d-ae0d-d4fb73a3a6ca
Version Independent ID: ab2aca5f-2fa4-0902-b779-3b4aca0e8ea8
Content: Deploy Kubernetes stateless app on Azure Stack Edge Pro GPU via IoT Edge module
Content Source: articles/databox-online/azure-stack-edge-gpu-deploy-stateless-application-iot-edge-module.md
Service: databox
Sub-service: edge
GitHub Login: @alkohli
Microsoft Alias: alkohli

@kiranpradeep Thanks for the feedback. I have assigned the issue to the content author to investigate further and update the document as appropriate.

With the current roadmap of the product, this is not relevant. #please-close


Unable to control Linak Desk - CBD6S Control Unit

I have a desk bought from a commercial furniture here in NZ, they are custom built to the user's requirements. It's not an "off the shelf" unit like an Ikea.
Note: I understand this is not on the list of supported devices. Just hoping there is something I can do to help get support added
The desk is using the following:

Linak CBD6SP00020A-009 (Controller)
LINAK DL6101BNE650560 (3-stage lifting column)
LINAK DPG1C32-000006 (Control)

I have SSH'd into my Homebridge where I have the idasen-controller setup and I tried to move the desk
stargate@stargate:~ $ idasen-controller --move-to 750 Connected E9:76:49:9A:08:DA Height:  794mm Moving to height: 750 Height:  794mm Speed:  0mm/s Final height:  794mm (Target:  750mm) Disconnected
I can also see when using BlueZ that the desk is connected:
[bluetooth]# paired-devices Device E9:76:49:9A:08:DA DESK 2266
config.yaml
mac_address: E9:76:49:9A:08:DA base_height: 690 movement_range: 340 scan_timeout: 5 connection_timeout: 10 movement_timeout: 30 adapter_name: hci0 server_address: "<IP_ADDRESS>" server_port: 9123 favourites:   sit: 690   stand: 1030

I may be wrong but this looks like a duplicated of https://github.com/rhyst/idasen-controller/issues/32
Feel free to reopen if thats not true, but thats where the info about the DPG1C is. The short answer is that I do not have one so can't test anything and it really requires someone who has the desk to play around with the different commands.


reduce our compression

as this can take so much time compared to using more network

Where is this variable documented? It's not in the man page, either on Linux, or BSD (Mac). It seems to work, of course, but it would be nice to know the reference.

https://superuser.com/questions/305128/how-to-specify-level-of-compression-when-using-tar-zcvf


Sync with upstream MetalLB

syncing commits merged to upstream metallb repo between 9.12 to 14.12

/ok-to-test

I have one more merge for local pref support pls include it as well if its not too late ?

/retest

/lgtm
/approve

/override ci/prow/metallb-e2e-metal-ipi

/override ci/prow/metallb-e2e-metal-ipi-ovn


[$1000] Chat - Several images at once are skipped when switching attachments with arrows

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open staging.new.expensify.com with Safari
Login in any account
Go to any chat with multiple attachments
Select any attachment
Switch attachments with on-screen arrows

Expected Result:
Only the next attachment is loaded by clicking on the on-screen arrow
Actual Result:
Several images at once are skipped when switching attachments with on-screen arrows
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/788b44a2-3d0e-4ab4-acab-9894019f42d4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f9c0565b91f7e6d4
Upwork Job ID:<PHONE_NUMBER>685763584
Last Price Increase: 2023-07-06

Was able to recreate, so going to get eyes on this 👍

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Several images at once are skipped when switching attachments with arrows
What is the root cause of that problem?
The prop maxToRenderPerBatch of FlastList cause this issue. As mentioned in official React Native documentation, this prop maxToRenderPerBatch is a VicualizedList prop that can be passed through. The current modal attachment list is horizontal, so don't need this one.
What changes do you think we should make in order to solve the problem?

Removing prop maxToRenderPerBatch is a solution here .
What alternative solutions did you explore? (Optional)
N/A
Here is a video link after fixed:
https://www.loom.com/share/bc5bb3fd5ec54a7daa52b405971688f1

@lanitochka17 maybe this issue is related to this one https://github.com/Expensify/App/issues/21177
@univalchemist as I understand Removing prop maxToRenderPerBatch is setting it to default value. And after this there is that default Safari bug anyway. You can find it in your Loom video too. When you click on any image, 1st one displayed is image with cat (last image in your attachments) and then loaded correct image.

@mkarkachov , removing prop maxToRenderPerBatch is not setting it to the default value. It does not have any default value and removing it means undefined. Yes, this is just issue on Safari and it is related with this prop. Also notice that this prop affects in only the virtual list.

Not overdue 👍

The maxToRenderPerBatch parameter is not added by accident; the chosen value plays a crucial role. Despite the fact that we only see one item at a time, two additional items are rendered on each side (outside of view). This effectively preloads the subsequent and previous attachments, preparing the content that the user is likely to interact with next.
The list's orientation, horizontal in this case, does not provide a valid reason for eliminating this property. The maxToRenderPerBatch parameter is a vital part of virtualization, and it operates irrespective of the type of the list.
Furthermore, this property has a default value of 10 (see maxToRenderPerBatchOrDefault). This implies that removing the property would not solve the issue but merely displace it. It might also degrade loading as we'll start loading 10 images shortly after the carousel is opened
Erasing the property or augmenting the value of maxToRenderPerBatch only masks the issue. This is because the problem would then only surface for conversations encompassing more than 10 attachments.

Not overdue

The maxToRenderPerBatch parameter is not added by accident; the chosen value plays a crucial role. Despite the fact that we only see one item at a time, two additional items are rendered on each side (outside of view). This effectively preloads the subsequent and previous attachments, preparing the content that the user is likely to interact with next.
The list's orientation, horizontal in this case, does not provide a valid reason for eliminating this property. The maxToRenderPerBatch parameter is a vital part of virtualization, and it operates irrespective of the type of the list.
Furthermore, this property has a default value of 10 (see maxToRenderPerBatchOrDefault). This implies that removing the property would not solve the issue but merely displace it. It might also degrade loading as we'll start loading 10 images shortly after the carousel is opened
Erasing the property or augmenting the value of maxToRenderPerBatch only masks the issue. This is because the problem would then only surface for conversations encompassing more than 10 attachments.

Ok, let's see who suggests another solution then!

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: http://upwork.com/freelancers/asheniranda99

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~016480a0e1383ea286

In response to: https://github.com/Expensify/App/issues/22318#issuecomment-1634256318
@AshenI99, we utilize the pagingEnabled property to facilitate the horizontal pagination of attachments, displaying them one at a time.
The existing documentation for this property might be somewhat terse, but it serves a key purpose: it allows for a portion of the view to be scrolled through. In our scenario, we scroll through exactly one page (equivalent to one ScrollView size), and this functions correctly most of the time.
What leads you to the conclusion that removing pagingEnabled would resolve the issue? Wouldn't this modification also disrupt the current paging behavior?

Hi @kidroca,
You are right about that paging behavior when it comes to mobile devices. So, if we completely remove that, it'll affect the paging behavior of the mobile devices. However, when it comes to non-touch screens, paging behavior won't be an issue as a user is switching through attachments with arrows. So, it'll only switch one image at a time.
Therefore, we need to disable the pagingEnabled only when it is a non-touchscreen such as desktops and laptops. So it'll be as follows,
pagingEnabled={this.canUseTouchScreen}
https://github.com/Expensify/App/assets/73756207/8fa9ecdc-eb18-4cdf-afc0-4e8dbd94d28d

Proposal
Updated

@AshenI99

You are right about that paging behavior when it comes to mobile devices. So, if we completely remove that, it'll affect the paging behavior of the mobile devices. However, when it comes to non-touch screens, paging behavior won't be an issue as a user is switching through attachments with arrows. So, it'll only switch one image at a time.

I appreciate your observations. However, I need a bit more clarification on the specific role of pagingEnabled in causing the issue at hand. You've pinpointed it as the root of the problem, yet an in-depth explanation is missing.
Could you shed light on the exact purpose of pagingEnabled and why you believe it is only relevant to touch screens? Also, it's worth noting that even on touch screen devices, we still offer the arrow buttons to facilitate navigation. Wouldn't those users be susceptible to encountering the same bug as well?
From my perspective, this is beginning to appear like a bug with how pagingEnabled functions in react-native-web, or perhaps it's related to our particular blend of property settings in conjunction with pagingEnabled.

@kidroca
Yes. I think you are right. It could be either bug with how pagingEnabled functions in react-native-web, or it could related to our particular blend of property settings in conjunction with pagingEnabled.
Also this issue is happening in mobile browsers too. That case it is happening when we use swipe action to swipe through images instead of using arrows.

Seems the following react-native-web bug might be related

https://github.com/necolas/react-native-web/issues/2026

The video provided in the issue description depicts a behavior with content jumping to the start of the list as the user scrolls to the right. I think it's similar to what happens in our case. The content seem to jump to the start of the virtual list

@rushatgabhane Bump ^^^

@rushatgabhane any update on the above?

Agree! It looks like it's an underlying issue with react native web https://github.com/necolas/react-native-web/issues/2026

@rushatgabhane Do we think any of the proposals above could help with this, or do we still need some new ones?

See here?
No anyone suggests a good solution than this
I am sure there is not any good way to fix this issue than my proposal.

Heading OoO until 8/14, so reassigning BZ to keep an eye on this.
@rushatgabhane bump on the proposals above ^^^^

waiting for proposals

Is this still the latest on this one @rushatgabhane ?

waiting for proposals to fix

https://github.com/necolas/react-native-web/issues/2026

Friendly bump on this question @rushatgabhane

@MitchExpensify yes! this is the latest - https://github.com/Expensify/App/issues/22318#issuecomment-1660967959

Hi @MitchExpensify -- back from OoO so I can take this back over. Thanks for holding down the fort while I was gone 👍

Sounds gooood! Thanks, @CortneyOfstad

No updates yet 👍

@rushatgabhane Just checking to see where we're at with this — TIA!

Still no proposals for the upstream issue 👍

Hey, I am from the Software Mansion expert's agency.
Proposal
Please re-state the problem that we are trying to solve in this issue.
On desktop browsers images skip out of control when going next/previous attachment when there is more that 5 attachments available.
What is the root cause of that problem?
Bug in react-native-web Flatlist implementation.
What changes do you think we should make in order to solve the problem?
Since issue exist in reaxt-native-web library since 2021 and it doesn't look like anybody will take care of it anytime soon I think it's reasonable to create separate solution to solve the issue without FlatList, because not being able to go through attachments on web is pretty serious issue IMO, and when FlatList issue will be fixed we can always go back.
Since it only happens on Desktop Web we can make it conditional only for those platforms, while still using flatlist anywhere else.
Simple Carousel I wrote still preloads 5 images at the time and behaves pretty much the same as FlatList
https://github.com/Expensify/App/assets/42337257/561eb675-86e8-46e5-a26a-d3754777c8e2
What alternative solutions did you explore? (Optional)
Tried to fix the bug in react-native-web but failed

@rushatgabhane thoughts?

Bump @rushatgabhane

Yeah I think that we should try to make a fix upstream if its a valid bug which is repro in their demo app or a simple set up
at the same time I agree that this is a higher value bug so we should prefer fixing this earlier maybe even using some simple carousel

@rushatgabhane

@wojtus7 what's stopping us from using the solution on all platforms?

The problem here is that on desktop web it's pretty straight forward with only going previous and next, and some simple zoom capability onClick. With all platforms we have to take care  of some more complicated gesture handling, zooming, panning, swiping and all kind of interactions that intersect with each other.
Adding solution for all platforms would give a lot of complexity to the app we probably don't want to maintain, that's why my solution was barely ~30 lines of code only focusing on the broken part and being easy to understand and maintain without possibility for much edge cases and strange bugs.
But, yes - overall I agree that fixing the bug in react-native-web would be the perfect solution

@rushatgabhane bump ^^^

Unfortunately as I was testing all different platforms before creating a PR I realised same thing happens not only for desktop web as initially suggested in the bug report but the mobile web is also broken so I removed if for desktop and used only simple carousel for all attachments on web.
Unfortunately as it removes swipes ability from mobile web, I don't know if my solution still makes as much sense since it's less comfortable to use being able to go next/previous only using buttons but for sure it makes this bug even more troublesome.
https://github.com/Expensify/App/assets/42337257/8ba0c318-679a-49e5-89f8-4e57dba4ed87
Created a PR this way or another so you can take a look at the code, but feel free to close it

If you want me to I can add swiping functionality to my carousel, if solves the problem here, but it will greatly increase complexity of the solution
In the meantime I will go once again in react-native-web and try to find a solution inside the library with a fresh look but I'm afraid there's little chance I will succeed 🫠
This way or another I am eager to help solve this issue 🙏

@joelbettner bump on the comments above

Heading OoO until Oct. 25, so reassigning BZ to keep an eye on this while I am gone 👍

@dylanexpensify — I'm back from OoO, so I can take this over again. Thanks for keeping an eye on things!

Wooot! Welcome back!

@dylanexpensify — I'm back from OoO, so I can take this over again. Thanks for keeping an eye on things!

Welcome back! I'd like to push that from SWM side :)
I believe we were blocked by waiting on WishList implementation in hopes that it would make matters better. Since this didn't happen I believe we should consider @wojtus7's PR as a valid solution for the problem.
I believe it is very serious issue since it makes attachment modal non usable on web for any conversation with more than 4 attachments (so virtually any active conversation)

@joelbettner any thoughts on @mczernek's comment above? Thanks!

Hey, I'm Jakub from Software Mansion.
Can I ask for any response to the @mczernek comment? Please let me know if we should proceed with the already prepared solution by @wojtus7.
cc @CortneyOfstad

Hey, today I tried to reproduce it (both on main and on staging). But it looks like this issue doesn't occur anymore. Can someone test it and confirm, or am I doing anything wrong?
https://github.com/Expensify/App/assets/104823336/5952c8f5-7a3d-426b-97d2-538f4927d7b2
cc @CortneyOfstad, @rushatgabhane

Replacing FlatList with Flashlist is also an option
I think I've found a related ticket, fixing the current problem, by either coding our own minimal replacement, or using something other than FlatList would fix the other bug as well

#31166

@kidroca if using Flashlist instead of Flatlist fixes the problem, I think that is the way to go.

Hi team,
I've been following the discussion regarding the issue with switching attachments in Safari and the potential switch from FlatList to Flashlist.
It seems we've come to an agreement that if possible we should use Flashlist.
I'd like to propose conducting a test to evaluate Flashlist as a replacement. My aim is to rigorously test its functionality to ensure it resolves the current issue without introducing new ones. However, before proceeding, I need confirmation and approval from the team.
If given the green light, I plan to track this as an hourly item and provide the results here. This test will help us determine if Flashlist is the right way forward and potentially make the rest of the ticket actionable.
Looking forward to your feedback and hoping for the go-ahead to start this task.

Hey @kidroca, thanks for your answer!
I've consulted it with the SWM team, as we were previously responsible for this issue, and we have nothing against it (especially since we are busy with other issues).
cc @CortneyOfstad, @joelbettner, @rushatgabhane for final decision

sounds good! @joelbettner let's assign @kidroca to this issue then

Hi, I hope you all had a wonderful holiday season!
A quick update: there haven't been any new developments due to the Christmas holidays.
I'll be resuming work and will keep you all informed of any updates or changes as soon as they occur.
Thank you for your understanding and patience.

Hi team,
I've completed the evaluation of FlashList as a potential replacement for FlatList in our chat attachment viewer. The results are mixed: FlashList solves certain existing issues but introduces new challenges. For specific code changes, refer to the PR: Expensify/App#34639.
Key Findings:

Resolution of Previous Issues: FlashList effectively addresses several known problems:

Image Skipping Issue: Successfully resolves the problem of skipping images when switching attachments.
Safari Image Opening: Fixes the issue reported in Issue #23546.
Protected PDF Viewing on Mobile Web: Addresses the challenge detailed in Issue #31166.

Introduction of New Challenges:

Snap-to-Interval Alignment: On mobile, FlashList doesn't adequately support this feature, crucial for intuitively centering images in our carousel. The current implementation results in an abrupt stop of the scroll position, impacting the user experience.
Reloading on View Resizing: Mirroring an issue with FlatList (referenced in PR #26543), FlashList needs to reload for size updates when the view is resized. The previously implemented fix for FlatList doesn't apply here.

Beta Status of FlashList for Web: The FlashList implementation for web is in beta, as noted in the FlashList documentation. This may be contributing to the observed challenges.

I'd like to note recent changes to the attachment carousel code, presently we have a separate implementation for iOS and Android (index.native.js), with that in mind a simpler ScrollView implementation might be more apt for web and desktop, now that index.js serves only them.
Proposal: I suggest exploring the ScrollView option for web and desktop, anticipating a simplified and more efficient solution.
Additionally, during this investigation, I've linked this issue to 3 other tickets with similar underlying problems. My findings are detailed in this comment: Issue #23546 Comment.
I look forward to your thoughts on proceeding with the ScrollView approach.

Thanks @kidroca! @joelbettner any thoughts ^^^ ?

@kidroca I think proceeding with the ScrollView approach sounds good.

@kidroca any updates? Thanks!

Currently focused on other urgent tasks, so I haven't made any progress yet. I plan to come back to this ticket by the end of the week. Thanks for your patience.

@CortneyOfstad @joelbettner @rushatgabhane I do have proposal that might resolve the issue as I understand the issue is related to the AttachmentCarousel not loading the proper page index. I have proposed solution for issue #23546 which would potentially also apply to the current issue. The AttachmentCarousel page index bug is only appearing in safari and has also affected password protected pdfs(after entering the password, pdf with wrong page index is opened in the carousel) The #23546 has been opened since Jul 25, 2023 and I am curious to find out if what I have proposed resolves the safari related bug(s).

@kidroca any updates?
Also, @sourcecodedeveloper, we have someone assigned already, but thank you for reaching out!

Hi team,
I wanted to provide a quick status update on the ticket regarding the carousel bug we've been tackling. Despite implementing the ScrollView strategy I previously proposed, the issue persisted, leading me to conduct a deeper investigation. It became clear that the problem wasn't specific to the use of ScrollView or FlatList; rather, it was rooted in how Safari on iOS manages snap alignment when cycling through attachments. I've shared a detailed analysis on a related ticket, given its relevance to the discussion there.
Ticket History Summary:

My initial investigation pointed towards react-native-web as the culprit: https://github.com/Expensify/App/issues/22318#issuecomment-1637856598
Current ticket was linked to several similar issues

https://github.com/Expensify/App/issues/23546#issuecomment-1895677762

We experimented with replacing FlatList with FlashList, which introduced a different set of challenges: FlashList Attempt Summary.
Presently: Substituting FlatList with a plain ScrollView also failed to resolve the bug

The core of the issue has been identified as CSS snap alignment of scroll items, as elaborated in my recent analysis

https://github.com/Expensify/App/issues/23546#issuecomment-1957900164

I'm currently exploring alternatives and keeping an eye on proposals in related tickets. I'll ensure to keep everyone updated with any new developments or insights.
Thank you for your patience and collaboration as we work through this complex issue.

Thank you @kidroca for the detailed explanation! This is incredibly thorough, and if there is anything that we can do to help in support, do not hesitate to ask! Within BZ, I will also keep an eye out for anything related that could help 👍

Hi team,
I'm reaching out to share an important update on the carousel bug across several related tickets. I realized I might not have communicated this breakthrough in all relevant discussions, so I wanted to ensure everyone is on the same page.
Exciting news: I've found and proposed a straightforward solution that effectively tackles the attachment carousel issue and simultaneously addresses the related challenges we encountered. For a detailed account of the steps taken and the rationale behind them, please refer to my comprehensive summary here: Issue Summary and Solution, which is currently pending a C+ review.
The essence of the solution lies in our ability to manually manage scroll and panning interactions, thereby circumventing the pitfalls associated with scroll snap alignment in virtual lists. This approach has shown promising results in our initial tests, offering a solid fix for the issues we've been diligently working to resolve.
Thank you for your continued patience and collaborative spirit as we navigate these challenges together. I'll keep you all updated with any further developments.

Bumped the on-hold GH here. Will follow-up as soon as they respond 👍

Draft PR was created here! 🎉

PR is still in draft but there is a stale PR in the on-hold GH, so reaching out to Scott (engineer on the main GH) to help move this along here

Just bumped the on-hold issue, as the PR is ready for review!

Bumped here

On the on-hold GH, it was indicated that the PR would be merged early next week — will continue to keep an eye on that 👍

Bumped the on-hold GH to see if we're still on pace for this week — will follow up as soon as I hear back 👍

Merge freeze in place, so having to wait a bit for the on-hold issue

We're in a merge freeze right now, so this will be delayed a bit 👍

Merge freeze ends today! 🤞

Was deployed to production 4 days ago 😍

Set to be out of the 7-day window tomorrow 🥳

This can be closed as the on-hold issue has been resolved/completed! Wahooo!


[BUG] Not able to query to the sql plugin using the js client

I am trying to query the data using the SQL plugin but getting 400 bad request errors. Is it possible to query using SQL?
While setting my client I was using SQL plugin URL like below
https://admin:admin@open_search_server_host_name/_plugins/_sql
await client.search({
      body: {
        query:
          "select * from abcd", // abcd is my index
      },
      method: "POST",
    });

Is there any documentation around the search method signature?
From the Dashboard Dev Tool I can query data successfully using SQL, please find below the sample curl request for your reference,
curl -u "admin:admin" -XPOST "https://open_search_server_host_name/_plugins/_sql" -H 'Content-Type: application/json' -d '{ "query": "select * from abcd "}'

The found solution here - https://discuss.opendistrocommunity.dev/t/nodejs-opensearch-client-how-to-usesql/7682/2


expose apiserver_port

expose apiserver_port so users can set it back to 443 if they chose to not use 6443
I've booted this to validate it works

Typhoon v1.10.5 switched kube-apiserver (along with load balancers, firewall rules, and security groups) from using 443 to 6443 across bare-metal, AWS, and DigitalOcean. The terraform-render-bootkube module only has an "unofficial, temporary, may be removed without notice" apiserver_port variable since Google Cloud TCP proxies still whitelist only certain ports (and don't include the Kubernetes default 6443). Otherwise, you shouldn't have trouble using 6443 now.
Once there is a solution on Google Cloud, the terraform-render-bootkube apiserver_port will be dropped. Typhoon clusters will all use 6443. kube-apiserver manifests can drop privileges that were only for low port binding. There's no intention of supporting a configuration option here.
Also, this move wasn't taken lightly or just to cause trouble. It helped enable the load balancer consolidations in v1.10.5 that reduced costs of running clusters. Alignment with upstream and consistency across DO and bare-metal were nice-to-have's.

https://github.com/poseidon/typhoon/pull/248
https://github.com/poseidon/terraform-render-bootkube/pull/67

it makes sense when you have a native LB service available to you but this its semi non existent in bare metal at the moment unless you use something like metallb which has its own issues with calico.

Hm, switching bare-metal clusters was without difficulty for me. In the simple case, Typhoon only asks that there be some record resolving to controllers so no changes are needed.
When using your own software or hardware load balancer, the configuration change depends what you're using. But ordinary load balancing software is perfectly fine for balancing across some backends (nginx, haproxy, etc) - there's nothing special or Kubernetes-centric about the problem. Just N backend servers with a TCP service on 6443.
If you still require 443, you can keep this fork around. There's some time before https://github.com/poseidon/terraform-render-bootkube/blob/master/variables.tf#L108 is removed.

Right, its not the functionality of the change, it's the practicality in this use case.
Cloud providers have a tight integration with LB services which typhoon can configure directly. With metal there's now a dependency to use an external LB service managed outside of typhoon which needs to be maintained in sidestep.
This very well may be worth the extra work for the added benefit of load balancing if you have LB infrastructure available to you, but not everyone does.
Additionally changing from 443 to use 6443 directly without an LB in-between can be cumbersome in physical networks with various layers of firewalls and access restrictions.

With metal there's now a dependency to use an external LB service managed outside of typhoon which needs to be maintained in sidestep.

Changing the port did not introduce any new requirement to load balance apiservers.

Those who just use the bare-bones DNS approach in the tutorial change nothing.
Those who have been using their own custom load balancing, continue to use that custom load balancing. For new clusters beyond v1.10.5, configure the balanced port to be 6443 instead of 443 and adjust any firewall rules. Its true there's an assumption here - that those opting to load balance with a custom approach are able to configure that.

maybe workaround is a better phrase than dependency.
the option to control what port is used is being removed, so going forward it must be 6443.
6443 isn't a standard port (which is understandable as its not meant to be public). Along these same lines 6443 wont be open in most physical/corporate firewalls and justification to open it could be challenging.
I do use the bare-bones DNS approach, but can't access the new port due to the above reasons.
So the last option is to use a LB or NAT to translate the ports.
On the other hand I do totally agree with the drive to drop privileges where applicable, in an ideal world it would be nice to have the flexibility for either configuration.

Ah ok bare-bones DNS and your company's network prevents 6443 traffic.
In your shoes, I'd try to avoid introducing new load balancing infrastructure to workaround what is ultimately a policy / people problem. Perhaps, try to impress upon security/networking folks that kubernetes#34719 made the decision a while ago (~Oct 2016). Its by no means required, but certainly seems to be the expectation today. You might also mention that your network doesn't block flannel / Calico traffic (depending on which you use) and a number of other Kubernetes centric, but not necessarily standardized ports.
I totally sympathize with the slow moving corporations plights (got plenty of that sorta thing at work too) but I think if there are still those internal blockers, its best you use the patch you've proposed here and carry it until the port changes are permitted. I want to draw the line somewhere and I think merging the option would discourage switching and drag this out further. I do apologize for the change as I try to avoid them.
In the v1.10.5 release notes, I should have also that 6443 had to be permitted:

Users who exposed kube-apiserver on a WAN via their router/load-balancer will need to adjust its configuration (e.g. DNAT 6443). Most apiservers are on a LAN (internal, VPN-only, etc) so if you didn't specially configure network gear for 443, no change is needed. (possible action required


document so large,else ways to pull container

docker pull is so large have else  to download docker container?

@5859wang You can install the environment locally. Because CUDA and other environments are included in Docker, it is normal for Docker to be relatively large.

@5859wang Hi, I will close this issue if there is no problem.

@5859wang Hi, I will close this issue if there is no problem.


[Optimization]: Speed up the function inside VectorIndexRetriever class (_build_node_list_from_query_result)

Bug Description
System Info

OS: Darwin CFH00509436 22.4.0 Darwin Kernel Version 22.4.0: Mon Mar  6 21:00:17 PST 2023; root:xnu-8796.101.5~3/RELEASE_X86_64 x86_64
Python version: 3.8.12
package version: llama-index==0.8.12

Situation

Slow when running query_engine.query() and found out the bottleneck in VectorIndexRetriever._build_node_list_from_query_result
Need 30 seconds when running self._docstore.docs (it'll load all the articles from database or local index directory)

Solution
Revise to
if (not self._vector_store.stores_text) or (
    isinstance(query_result.nodes[i], (ImageNode, IndexNode))
):

solution as the same in https://github.com/jerryjliu/llama_index/pull/3435/commits/51bec97118c10dbc2fd7e98e3181a69de5b3e302
after revising the code, it became fast and almost finished in 1 second:

Version
0.8.12
Steps to Reproduce
query_engine = RetrieverQueryEngine.from_args(
    retriever=retriever,
    response_synthesizer=response_synthesizer,
    response_mode="simple_summarize",
    text_qa_template=my_template,
    service_context=service_context,
    streaming=True,
)
query_engine.query("some text...")

Relevant Logs/Tracbacks
Before
Slow when running query_engine.query() and found out the bottleneck in VectorIndexRetriever._build_node_list_from_query_result

After
Became fast and almost finished in 1 second

@A-baoYang Thanks for the analysis here! I definitely encourage you to open a PR 💪🏻

@logan-markewich  Yes, I opened a PR here: https://github.com/jerryjliu/llama_index/pull/7516


Update min version of DotNetWinRT to latest (0.5.1049)

This change instructs MSBuild for Unity to the latest version, as of 2020-05-04. This version adds new functionality.

/azp run

Should we update it in the nuspec too?
https://github.com/microsoft/MixedRealityToolkit-Unity/blob/274399fed1fb9fa2f29ec05d73f359ba4e8ec640/Assets/MixedReality.Toolkit.Foundation.nuspec#L17

Should we update it in the nuspec too?

We should. Thanks for the catch!

/azp run

@davidkline-ms can you add a few notes here about what you're doing to test these upgrades? i.e. should we be trying the remoting (or any other scenarios) each time we do something like this

I confirmed that the adapter successfully downloads and that it is dated at leat 04/14/2020 (the publication date).
For those with a sufficiently strong GPU, please confirm that remoting of hands continues to work on HoloLens 2.

Can also check the holographic reprojection settings on-device, which depend on DotNetWinRT

@davidkline-ms I think going forward we should make sure that we've done some verification on the core scenarios this powers before submitting - in case there are regressions in the plugin itself or in our usage of it.


A11Y in React Router core

At the moment React Router does a great job of emulating browser behaviour to give the user a great experience e.g. keeping scroll position, history etc.
However one pitfall is accessibility, right now when changing views a screenreader user will not get the same indications they would when performing a full page reload.
Do you think accessibility should be considered something that is in core?
However to do this seamlessly is not so simple:

Include title updates as part of routing
Include an 'announcer' (for example https://github.com/patrickfox/a11y_kit#announce---say-anything)
Announce a page update when the router is updated 'title page has loaded'

You could argue that this should be done in userland, however if it were not an a11y issue I imagine this would be considered very broken - if scrolling were not persisted for example.
It'd be great if this were in core because it'd mean react-router projects would be more accessible out of the box and show the react communities commitment to accessibility.
(I'm not an expert in accessibility so feel free to correct anything I've misunderstood :smile:)

More I think about this the more I think this should be userland, maybe we could include a11y docs but not include it in core?

Yeah – judging by the things you have there, I think this has to be in userland; there doesn't seem to be a good generic solution that we can just pull into core.

How about resetting the focus on the route changes?
I have the feeling that every time that the route changes, the focus should be reset (emulating a page refresh).
Do you guys have any recommendation on this?

+1  I'm looking into a11y issues with the focus not being reset on route changes.

Any update on resetting the focus on the route changes? @iamrandys @alansouzati

Discussion seems to have moved to #5210.


win: tcp-shutdown-after-write.c on line 69: r == 0

win10 vs 2012, the error msg is:
tcp-shutdown-after-write.c on line 69: r == 0
r = uv_write(&write_req, (uv_stream_t*)&conn, &buf, 1, write_cb);
ASSERT(r == 0);//the r is -4047

As the program connect a tcp handle without listen and accept.
I think this couldn't work on windows

Our CI runs Windows 7 and 2012 and we see no failures. Does it only happen on Windows 10 for you?

All right then, and there is no need to use it like that.>_<

I'm confused. Use it like what? It's possible that a test fails on a given version of Windows, but it's not clear to me how the test is failing for you...

I think tha there is no server in this test case :
connect without a listen and accept
So, I think there is no need to do this .

I found that in test-tcp-connect-error-after-write.c
there is a comment:
/*
 * Try to connect to an address on which nothing listens, get ECONNREFUSED
 * (uv errno 12) and get connect_cb() called once with status != 0.
 * Related issue: https://github.com/joyent/libuv/issues/443
 */

I think the situaton is the same:
Try to connect to an address on which nothing listens

The test passes on platforms we test on. On what specific platform are you having problems?

win10 pro ,VS2012 ultimate(update 5)

No error when using the run-test program, I just test it manualy.
I will check the conf in the project.

No follow-up, closing.


Add @endpoint.response_model with not_found_on_none support

Also display correct info when using hug.

Performance cost:
def get_snake_legacy(name):
    return {"name": name}
get_snake_legacy.not_found_on_none = True

@ep.response_model(dict)
def get_snake(name) -> Optional[dict]:
    return {"name": name}

class Snake(BaseModel):
    name: str

@ep.response_model(Snake)
def get_snake_validated(name) -> Optional[dict]:
    return {"name": name}

➜  apphelpers git:(minor-changes) ✗ wrk http://<IP_ADDRESS>:8000/snakes-legacy/foo
Running 10s test @ http://<IP_ADDRESS>:8000/snakes-legacy/foo
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.28ms    1.64ms  45.89ms   98.19%
    Req/Sec     1.55k   177.96     3.74k    96.52%
  30952 requests in 10.10s, 5.17MB read
Requests/sec:   3064.49
Transfer/sec:    523.75KB

➜  apphelpers git:(minor-changes) ✗ wrk http://<IP_ADDRESS>:8000/snakes/foo
Running 10s test @ http://<IP_ADDRESS>:8000/snakes/foo
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.22ms  376.69us  11.85ms   85.93%
    Req/Sec     1.54k   176.92     2.42k    91.00%
  30639 requests in 10.00s, 5.11MB read
Requests/sec:   3062.66
Transfer/sec:    523.40KB

➜  apphelpers git:(minor-changes) ✗ wrk http://<IP_ADDRESS>:8000/snakes-validated/foo
Running 10s test @ http://<IP_ADDRESS>:8000/snakes-validated/foo
  2 threads and 10 connections Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.40ms  245.42us  11.72ms   89.69%
    Req/Sec     1.46k    58.47     1.82k    92.50%
  28996 requests in 10.00s, 4.84MB read
Requests/sec:   2898.76
Transfer/sec:    495.42KB


What do you mean by "app pre-warmed on a specified number of instances, up to your minimum plan size"

In the follwoing section of the document: https://docs.microsoft.com/en-us/azure/azure-functions/functions-premium-plan#pre-warmed-instances
it is mentioned as
"app pre-warmed on a specified number of instances, up to your minimum plan size"
what do you mean by minimum plan size? i always see the  prewarmed instances show as maximum count 1.. not able to adjust beyond it.. tried all plans(EP1/EP2/EP3)

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

ID: 3847e16b-92ae-0202-c7e1-ca9a8474e65f
Version Independent ID: a25b6b5b-05ab-b3b2-616c-5d06eadb928d
Content: Azure Functions Premium plan (preview)
Content Source: articles/azure-functions/functions-premium-plan.md
Service: azure-functions
GitHub Login: @jeffhollan
Microsoft Alias: jehollan

Hi @mganeshphani Thank you for your feedback! We will review and update as appropriate.

@mganeshphani This is the known issue . Product team is aware of this . You can track this https://github.com/Azure/Azure-Functions/wiki/Premium-plan-known-issues#known-issues-and-limitations

@mganeshphani For now I will proceed with closure of this and If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue


drop rxjava and completableFuture api

This pr is to drop rxjava and CompletableFuture support in spring cloud for azure messaging modules.

/azp run java - spring - tests

/azp run java - spring - tests

/azp run java - spring - tests

/azp run java - spring - tests


Write a number-guessing game in which the computer selects a random n…

…umber in the range 1 to 100, and users get a maximum

Write a number-guessing game in which the computer selects a random number in the range 1 to 100, and users get a maximum
of 20 attempts to guess it.
After each guess there should be some hint given to the player as to how close that guess was. If the guess was only 1 away print
a hint like "That guess was hot". If the guess was within 5 points (high or low) print a hint like "You're getting warm". If the guess
was within 10 points print a hint like "Your guess is still cool". If the guess was more than 10 points away print a hint like "You're
guess is cold".
At the end of each game, users should be told whether they won or lost, and how many guesses it took if they got it correct. To
make the game more interesting, the program should vary the wording of the messages that it outputs for winning, for losing, and
for asking for another game. Create as many as 5 different messages for each of these cases and use random numbers to choose
among them. You should put this functionality in two functions called SayYouWon and SayYouLost..........

For C langaug programming assignment contect with me.
thanks


Invalid geom in some tiles (GeoJSON)

We've seen this a few times, and while Tangram mostly handles it okay, other tools barf on invalid geometries.
Seems like the data is being transformed during vector tile creation (I suspect it's fine in PostGIS) and that transform results in self-intersecting geoms.
@wboykinm reported this on Twitter last week. He's been testing Mapzen vector tiles with Turf.js and found recurring examples of geometry errors for many metro areas. Superficially, he suspects feature simplification is causing some of this.
Here's an example:

http://vector.mapzen.com/osm/water/13/1916/3387.json?api_key=vector-tiles-TE70otI. (The feature in question is id=362822667)

More about the app:

https://github.com/wboykinm/tribes.

Bill is trying to erase US census geometry with the Mapzen water geom using turf.js, see https://github.com/wboykinm/tribes/blob/mapzen/processing/water/piranha.js.
PostGIS has ST_Makevalid() but Turf.js doesn't have a similar function so simple errors like self-intersecting polygons and non-noded intersections throw big unrecoverable errors that result in data loss.
Looks like Mapnik does some OGC validation in their tiles:

http://mapnik.org/node-mapnik/documentation/3.5/#VectorTile.reportGeometryValidity

To find more invalid examples, Bill built a tool that tosses out self-intersecting polygons: https://www.npmjs.com/package/turf-bathwater. it'll also log the features that get thrown out.

It turns out that this is due to precision loss when we write the json out. @zerebubuth: what do you think we should do here?

@rmarianski Are you guys writing to a standardized decimal precision or is it zoom-dependent?

The precision depends on the format and the zoom level. For GeoJSON (.json tiles), we change the number of digits of precision by zoom level. For TopoJSON, MVT and OpenScienceMap, the coordinates within the tile are integers, so are inherently bounded by zoom level.
This is, indeed, a well travelled path, and I'm not entirely sure what the best option is.
If we want only valid features in the tiles (which seems like a sensible thing to want), then we must do the validity checks after any encoding steps which would simplify or truncate precision (e.g: rounding to integers, truncating decimal places, dropping points due to movement tolerances). However, these steps are different for each output format, so we might end up dropping different features for each format, which could be confusing. Alternatively, we could encode all features in all formats and only output those features which are present in all formats - but this seems like a great deal of effort.

Related: http://www.angusj.com/delphi/clipper.php

#missioncreep

Based on a previous discussion, it sounds like we are willing to accept that different formats can contain differences in terms of content.
In this particular case of geojson encoding though, do we want to:

encode with truncated precisions based off zoom, make a decoding pass, and re-encode the invalid geometries with full precision?
encode with truncated precisions based off zoom, make a decoding pass, and drop the invalid geometries?
encode with truncated precisions based off zoom, try a decoding pass, and re-encode invalid geometries with buffer(0)?
always encode all features with full precision? (I'm assuming this option will never generate invalid features. But can it still with default json encoding?)

@rmarianski In hacking away at these geoms, I haven't actually had any luck with buffer(0) on the client side (turf.buffer, and the topology remains invalid). Do you mean to try that with PostGIS? And if so, is ST_Makevalid() too slow?
More broadly, I would encourage you folks to consider whether you even want to support a javascript, heavy-geoprocessing use case with your vector tiles. I'm within a few thrown errors of giving up on turf and moving my processing to PostGIS anyway, and you may not encounter this line of inquiry again for months/years.

@rmarianski UPDATE: I caved and tried using PostGIS to fix topology on this particularly problematic water polygon from this Mapzen VT, but neither ST_Makevalid() nor ST_Buffer(0) (or 100m for that matter) resolved the feature into a usable geometry. Some of these might just be intractable.

@nvkelso Does the merged PR above address the original problem? I can try running turf over it again if it'd be helpful.

It should address it yes. Running turf on it again would be helpful to know if it actually helped.

To set expectation, the fix will probably address many geom validity problems (and hopefully yours!) but not all geom problems. That is a Hard Problem (tm).

On Aug 5, 2016, at 14:02, Robert Marianski<EMAIL_ADDRESS>wrote:
It should address it yes. Running turf on it again would be helpful to know if it actually helped.
―
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@rmarianski Anything more to test with this one before taking it to prod?

Should be good to go here.


Add run_attempt to npmjs package tag

If published package has been downloaded,
npm doesn't allow to unpublish it.

Suffixing npmjs package version with github.run_attempt to produce unique package name for each run.
Attempting to unpublish previous run version to avoid spamming npmjs.

Prompted by: https://balena.zulipchat.com/#narrow/stream/345890-loop.2Fbalena-io/topic/Test.20docker.20on.20open-balena-api
Change-type: patch

@balena-ci I self-certify!


fix: Add missing test requirements

They are part of tox.ini, but when running tests outside of tox, without
those, pytest will not run tests in tests/integrations/asgi.
Surprinsingly, running pytest in a parent directory collects other tests
and skips asgi tests, without error.

Starlette will not install on Python 2 which is why I am resorting to tox here. I don't think there's an easy way to run tests for integrations outside of tox.
The asgi/__init__.py is responsible for skipping those tests as I do not want pytest to even import those files as they are invalid Python 2 due to the use of async.
I saw that tox is not properly running those asgi tests which I am intending to fix in #707

@untitaker I tried to run the tests based on what we document in CONTRIBUTING.md. No tests are run. I'm using Python 3.7.
Good point that if a dependency cannot install under Python 2, then it cannot be in the shared test-requirements.txt.
We could:

Update the contribution guide

Specify that only tox is supported, if that's the case

Split test-requirements.txt into test-requirements-py2.txt and test-requirements-py3.txt (and IIRC they could reference a common set of dependencies with a line -r test-requirements.txt.
All of the above

Thoughts?

Specify that only tox is supported, if that's the case

I would like that specifically for the tests in tests/integrations/. We could point out that the user can still use the pytest installation of the individual tox env.

@rhcarvalho I am closing this for now but generally we would need much more test-requirements files for integrations, probably one for each minor Python version


Add Back includeIfNullOnInput build options

We planned to migrate to Graphql Codegen from Artemis, a discontinued project to using GraphQL options.
For query/mutations variables, GraphQL Codegen will remove all fields with NULL value during processing, this introduce risks and workload for our backend engineers to migrate while maintaining the behaviour for older releases and our website. Therefore, We would like to see that includeIfNullOnInput build options is available again.
Thanks you for your consideration.

So just to make sure I understand your request.
You are migrating your code base and would like a way to declare input where null values are sent to the server instead of being omitted.
You can declare null values to be sent using the copyWith as demonstrated here, but I recon that is too verbose?

yup, sry for my bad English.
Yup, I considered to declaring  to adding copyWith for each query/mutation. But it would be good to have a consistent and predictable way to sending null params to server.

Your English is fine. Would you consider a new constructor, e.g.
Input.withNull(…) as a reasonable alternative?
On Fri, 1 Mar 2024 at 08:45, YUHANG ANG @.***> wrote:

yup, sry for my bad English.
Yup, I considered to declaring to adding copyWith for each
query/mutation. But it would be good to have a consistent and predictable
way to sending null params to server.
—
Reply to this email directly, view it on GitHub
https://github.com/heftapp/graphql_codegen/issues/339#issuecomment-1972760515,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2UFSYK2FIHBG7FMRDRODDYWA52JAVCNFSM6AAAAABEBCYA22VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZSG43DANJRGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yup, that would be more predictable compared to manual handling  for each fields

Everything is possible 🌈
Why do you prefer this option?

Think it benefits project where there are multiple query/mutation arguments that allows null values, as it omits the need to manually add the withNull operator at multiple parts of the code

Having a better solution for this would be preferable!  Have you considered trying to use sentinel values? I'm not sure how viable that is though.

@Kaelten, can you give me an example of what you had in mind?

@Kaelten, can you give me an example of what you had in mind?

Note I'm fairly new to dart, so I'm not sure how crazy of an idea this actually is.  I did come up with a few options but they all have draw backs and tradeoffs.   I think there are other riffs on these options but they all seem to come back to some version of the following:
Optional Wrappers
In this version we have to wrap valid values with an object, not great, but it maintains perfect type safety.
class Optional<T> {
  final T? value;
  final bool isUndefined;

  Optional(this.value) : isUndefined = false {}

  const Optional.undefined()
      : value = null,
        isUndefined = true;
}

class Input$ProfileInput {
  final Optional<String?> displayName;
  final Optional<int?> age;
  final Optional<String?> email;

  Input$ProfileInput({
    Optional<String?> displayName = const Optional.undefined(),
    Optional<int?> age = const Optional.undefined(),
    Optional<String?> email = const Optional.undefined(),
  })  : this.displayName = displayName,
        this.age = age,
        this.email = email;

  Map<String, Object?> toMap() {
    return {
      if (!this.displayName.isUndefined) 'displayName': displayName.value,
      if (!this.age.isUndefined) 'age': age.value,
      if (!this.email.isUndefined) 'email': email.value,
    };
  }
}

void main() {
  var input = Input$ProfileInput(
    displayName: Optional('John Doe'),
    email: Optional(null),
  );

  print(input.toMap());
}

Leveraging an Object constant
This method avoids having to wrap every value with an object, but it looses compile time type safety on the constructor while maintaining it within the class at least.
class _Undefined {
  const _Undefined();

  static const instance = _Undefined();
}

class Input$ProfileInput {
  final String? displayName;
  final int? age;
  final String? email;
  final Set<String> _definedFields;

  Input$ProfileInput({
    Object? displayName = _Undefined.instance,
    Object? age = _Undefined.instance,
    Object? email = _Undefined.instance,
  })  : this.displayName =
            displayName == _Undefined.instance ? null : displayName as String?,
        this.age = age == _Undefined.instance ? null : age as int?,
        this.email = email == _Undefined.instance ? null : email as String?,
        _definedFields = {
          if (displayName != _Undefined.instance) 'displayName',
          if (age != _Undefined.instance) 'age',
          if (email != _Undefined.instance) 'email',
        };

  Map<String, Object?> toMap() {
    return {
      if (_definedFields.contains('displayName')) 'displayName': displayName,
      if (_definedFields.contains('age')) 'age': age,
      if (_definedFields.contains('email')) 'email': email,
    };
  }
}

void main() {
  var input = Input$ProfileInput(
    displayName: 'John Doe',
    email: null,
  );

  print(input.toMap());
}

Magic Values
This version relies on magic constants to represent undefined values.
On the plus side we have perfect type saftey without any cruft, but the con is that we have to have a valid value for all possible fields.  In some cases, you might be able to make use of null, but in others config options could be used to specify sentinel values in case negative max int or similar is in fact a valid value.
class Input$ProfileInput {
  final String? displayName;
  final int? age;
  final String? email;

  static const _undefinedString = r'Input$ProfileInput$__undefined_string';
  static const _undefinedInt = -(1 << 53); // max neg int on dart web

  Input$ProfileInput({
    String? displayName = _undefinedString,
    int? age = _undefinedInt,
    String? email = _undefinedString,
  })  : this.displayName = displayName,
        this.age = age,
        this.email = email;

  Map<String, Object?> toMap() {
    return {
      if (displayName != _undefinedString) 'displayName': displayName,
      if (age != _undefinedInt) 'age': age,
      if (email != _undefinedString) 'email': email,
    };
  }
}

Thanks, @Kaelten  - these are good, well-presented suggestions.
I have added a variation of version two, which follows how the copyWith is currently implemented.
When the configuration is enabled by setting EXPERIMENTAL_enable_input_builders: true in the config and upgrading to version 1.1.0, the input constructor takes a function that takes a builder function as its first argument and returns an instance of the input.
Given the schema

input Foo {

  requiredValue: String!
  optionalValue1: String
  optionalValue2
}

the generated class will be

final input = Input$Foo((builder) => builder(
  requiredValue: "value a",
  optionalValue1: "value b"
));

and the generated JSON will be
{ "requiredValue": "value a", "optionalValue1": "value b"}

Please take if for a spin and let me know how it works out.


Added published_at column to submission (CSGN-165)

Submission now has a published_at field

@jo-rs - is there a JIRA ticket associated with this? Mind adding to the PR description?


Update baseline.md

Typo correction

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

approved thank you!


Update cats-core to 2.1.1

Updates org.typelevel:cats-core from 2.1.0 to 2.1.1.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

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

labels: library-update, semver-patch

Codecov Report

Merging #432 into master will decrease coverage by 0.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #432      +/-   ##
==========================================
- Coverage   82.32%   82.18%   -0.15%
==========================================
  Files          84       84
  Lines        2756     2756
  Branches       72       72
==========================================
- Hits         2269     2265       -4
- Misses        487      491       +4

Impacted Files
Coverage Δ

...e/akka/actor/process_index/ProcessIndexProto.scala
98% <0%> (-1.5%)
:arrow_down:

.../akka/actor/process_instance/ProcessInstance.scala
85.81% <0%> (-0.68%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 18d1411...1b975d5. Read the comment docs.


Add option to run docker containers inside this container

maybe adding
 -v /var/run/docker.sock:/var/run/docker.sock
to docker run command is fine
but should be tested and documented

merged


Added prefixes to the generated global identifiers of the added code

Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/568

Coverage decreased (-0.0009%) to 98.738% when pulling 6d03a2bacfced1b292ccdcdf94c80736f0f72e4c on global-identifiers-prefixes into e36138d40d3a13f151ad17016220ba32f27c3add on master.