#39005 - Polish items for Transfer owner flow

Details

This PR fixes some issues that left after merging the main Transfer Owner Flow feature.
Fixed Issues

$ https://github.com/Expensify/App/issues/39005
PROPOSAL: n/a
Tests

Log in to the App
Open paid workspace where you are an admin but not an owner
Go to the members screen
Press on the owner member
Press the Transfer owner button
After adding payment card and there is no more errors, make sure it shows the success page
Go through error screens and see if there is no glitches (it should show correct copy immediately)
On the Outstanding balance error page, make sure it shows the amount value correctly formatted

[x] Verify that no errors appear in the JS console

Offline tests

The Transfer owner functionality should be unavailable in the offline mode.
QA Steps

Same as in Tests section.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
n/a

Android: mWeb Chrome
n/a

iOS: Native
n/a

iOS: mWeb Safari
n/a

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/7771498/e4e5ddb7-5817-4ae2-93e4-266c4f044c29
https://github.com/Expensify/App/assets/7771498/f39f8d28-de08-44e3-a09b-29fa4c5b2d03

MacOS: Desktop
https://github.com/Expensify/App/assets/7771498/f8c9e693-c5a5-4dc8-99ae-25fcbd4ac6e2
https://github.com/Expensify/App/assets/7771498/077dd20f-8bda-4764-bf4a-ec37d3be520a

@luacmartins I've published the PR, but I couldn't add videos for all platforms... I've encountered an error (I think) on all mobile devices, where I can't open any workspace on the workspaces list page - it's just not reacting on pressing on the item. Please see the video below:
https://github.com/Expensify/App/assets/7771498/197f86cb-c17a-4f91-ba40-42035c8b644f

@burczu yes, seems like a regression from this PR

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

This flow is tricky to test as C+ so I'll do the checklist here. @burczu I checked off those platform videos since we're blocked from testing in those platforms. Gonna go ahead and merge this.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Tests were passing

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.4.58-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@luacmartins @burczu We don't see the option Transfer Owner in public domain accounts. In the applause.expensifail.com domain subscription is not charged. We don't have account with outstanding balance.

@kavimuru I think it's ok to skip the outstanding balance check in that case.

🚀 Deployed to production by https://github.com/Beamanator in version: 1.4.58-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Live stream and #EXT-X-ENDLIST problem

Pay attention how flash version is working. Then I put #EXT-X-ENDLIST at the end of m3u8 file - this playlist not loaded any more. This is how it should work. And the html5 version is still requesting the playlist file
Flash version: https://youtu.be/-8MwEnrjIPM
HTML5 version: https://youtu.be/KuyV2kggwAQ

Here is some functionaliti in https://github.com/dailymotion/hls.js/blob/master/src/loader/playlist-loader.js#L128

What you're asking for specifically is support for event playlists: https://developer.apple.com/library/ios/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-EVENT_PLAYLIST with #EXT-X-PLAYLIST-TYPE:EVENT
Did you check whether this works in hls.js alone: http://dailymotion.github.io/hls.js/demo/ ?
On a more general note: What is certainly missing from the plugin is integration of the hls.js API, whether its methods or events.
We are currently discussing the best ways to do this, not only for this plugin. Once we have fleshed out a concept which adapts itself best to the core player and is not bound to break at the next turn of core development, this will be added step by step to the plugin.
It's the next step, but it will take a while.

@FDiskas - can you check with the latest plugin version?
The hls.js code you referenced was not yet in the packed version of the plugin (very recent).

Perfect. Works. Thanks

Good to hear.
Out ouf curiousity: Do you have server statistics how this behaves in generic HLS? Safari doesn't reveal this in the network console, maybe your server statistics tell you?
And, to rub it in: if you happen to have a live stream with the right CORS settings server side and which we are allowed to use in a demo, do not hesitate to contact us ;-)
Thanks.

Sorry - all stream urls are private.
About network requests - try using Google Chrome. It shows flash and html5 requests.

@FDiskas - no prob, but I'd better ask ;-)
Nah, Google Chrome doesn't show me generic HLS. I wanted to check how that behaves.
Anyway, closing this.

You could try this<EMAIL_ADDRESS>

Been there, but: https://github.com/dailymotion/hls.js/issues/23

Currently it seems to work (famous last words), thanks for reminding me. Will check a bit more.

Nah, Firefox still a problem: https://bugzilla.mozilla.org/show_bug.cgi?id=1208035


Broken links, stale references to Azure AD instead of Entra, and wrong Auth guidance

Reporting three (3) issues

[ ] The Java libraries, drivers, and Spring modules page instructs users to install MSAL for Authentication. This should change to point users to Azure Identity SDK.
[x] the link to Microsoft Entra Spring Boot Starter is broken
[x] References to Azure AD and Azure Active Directory need to be changed to Microsoft Entra ID (/cc @scottaddie)

Originally reported here - https://github.com/MicrosoftDocs/azure-dev-docs/issues/1314

The original issue link is gone as far as I can tell. @scottaddie do you know how we can get back what data was in that issue?

@billwert Issues have been disabled in that repo, so there's no easy way to recover it. The issue is for https://learn.microsoft.com/azure/developer/java/sdk/libraries-drivers-modules. I've addressed items 2 and 3 already.

Ah, now I understand. Thanks for the pointer.
Looks like we need to rewrite some samples too. I was looking through issues and hoped this was a quick fix. Alas.

Identity doesn't have the flow in the MSAL docs here. I did update the doc to a more recent version of their samples.


"cdn.statically.io" times out in Mainland China

"cdn.statically.io" times out in Mainland China, but "cdn.staticaly.com" can be accessed normally in Mainland China. This may be because Great Firewall of China blocks "cdn.statically.io"
Solution: Continue to support "cdn.staticaly.com" or register a new domain other than ".io" and ".app"
Tips: ".com "".cn" domains are recommended, as these are not easily blocked by the Great Firewall of China
What is Great Firewall of China?
Unusual grammar or statements may occur due to the use of translation software

If you turn a blind eye to this, you will lose the Chinese market just like Google

but .cn domain must is a ltd

but .cn domain must is a ltd

Maybe can continue to support "cdn.staticaly.com"
Because the domain name has not yet been blocked by the GFW

cdn.staticaly.com can no longer be accessed.
It is prompted cdn.staticaly.com has expired and the cdn.statically.io can't be accessed in China
Is there any solution?


[bug] Python virtual environment installation does not need python version number

Hi,
I just followed the description to install the CWL runner in the WSL on Windows11:
https://nfdi4plants.org/nfdi4plants.knowledgebase/docs/guides/ComputationalWorkflows/cwl_runner_installation.html
Not sure if this is only the case for me but for I did not need to use the version number for the python virtual environment installation:

Maybe someone else could test this.
Thanks!
Best,
Micha

Thanks for the note.
This is somewhat setup-specific. If your default python is python3, it will work as you suggested.
Since the first step suggests to install python3, I'd suggest to leave as is; hoping that's less error prone.


Event Categories missing if MOC name added first

But if Event category selected first, the full categories are there.

Ah, I see. I think the specific issue here was that "Gun Safety Activist Event" was not showing up as an option, probably since it's newer than this feature.
Mostly moot now that August is over (and with it the Gun Safety events) but can we add "Gun Safety Activist Event" to the drop-down for both in-office and candidates?


Can you change the download link or display the progress bar?

As we all know, China has a hateful GFW, which led to the download speed is very slow or simply can not download.
So can you put this file on some large sites (such as github, onedrive), or display a progress bar to let people see whether it is in the download.

See #39


add toggle for check-in/check-out on app

this way we don't have to worry about mixing up logic between check-in/check-out, there should just be a toggle near the top that lets you pick

Closed in 1660aaad4b85e1eb2cc99d3d2fee90f067a7daa7


Visit 2.0.2 behaving badly from LC to X-Win32 PC

User Scott Wilks does not use client server because logging in to LC compute resources via VisIt's login process is too much of a hassle. He displays X back to a PC running X-Win32 (version 9.0 from 2007). 1. When he applies project operator (z radial) to a thin wedge dataset, it disappears off the screen. If he deletes and reinstantiates plot, it reappears fine. I asked him to try re-setting view too. No word on that yet. 2. When he takes lineout, gets window 2 and then deletes window 2, window 1 becomes non-responsive. Won't update. No new plots will display, etc. He has to exit VisIt and restart. I can't duplicate either problem displaying HIS dataset back to a Linux desktop. I noticed a bunch of tiny viewer core files from viewer in his dir where the data he was viewing is. I've requested X-Win32 be installed in WCI Citrix servers to duplicate.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 338
Status: Pending
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: Visit 2.0.2 behaving badly from LC to X-Win32 PC
Assigned to: Eric Brugger
Category: -
Target version: -
Author: Mark Miller
Start: 08/10/2010
Due date:
% Done: 0%
Estimated time:
Created: 08/10/2010 01:37 pm
Updated: 08/17/2010 04:06 pm
Likelihood: 3 - Occasional
Severity: 4 - Crash / Wrong Results
Found in version: 2.0.2
Impact:
Expected Use:
OS: All
Support Group: DOE/ASC
Description:
User Scott Wilks does not use client server because logging in to LC compute resources via VisIt's login process is too much of a hassle. He displays X back to a PC running X-Win32 (version 9.0 from 2007). 1. When he applies project operator (z radial) to a thin wedge dataset, it disappears off the screen. If he deletes and reinstantiates plot, it reappears fine. I asked him to try re-setting view too. No word on that yet. 2. When he takes lineout, gets window 2 and then deletes window 2, window 1 becomes non-responsive. Won't update. No new plots will display, etc. He has to exit VisIt and restart. I can't duplicate either problem displaying HIS dataset back to a Linux desktop. I noticed a bunch of tiny viewer core files from viewer in his dir where the data he was viewing is. I've requested X-Win32 be installed in WCI Citrix servers to duplicate.
Comments:
Eric agreed to download (using LanDesk portal) X-Win32 on his Windows laptop and see if he can replicate the problem.

closing, we have xwin32 stuff documented , vnc, etc


Robot test for basic content editing. Overhaul of the login test case.

Coverage remained the same at 51.786% when pulling 68c6d54054a0eb5467a3e1ae76df41621c7ac66b on robot-login into 7bf67b069216d320dcc7b387aae6de414504289b on master.

@datakurre was that so? :)
I added some best practices for BDD keywords to the repo: https://github.com/plone/plone-react/blob/71b3e8dc3439595e370ceec63eba2261361caa07/tests/keywords.robot#L58
Let me know what you think...

@tisto
about
A logged in site-administrator
  Go to  ${FRONTEND_URL}
  I log in

I’d prefer to use “BDD keywords” only on the top level and never mix them with generic library keywords.

@datakurre I fully agree. I just want to make things work first and then refactor. We need an auto-login functionality as well. Given keywords should not contain any Selenium code.


aws help submenu not implemented

currently it just prints halp
https://github.com/zeit/now-cli/blob/3e677e3a34e480c1ba07d780721d239b266869f9/src/providers/aws/help.js

We have concluded that we are not going to maintain any of the third party platforms (Google Cloud Platform or Amazon Web Services) and are therefore removing them from Now CLI.
Since the third-party providers were not functioning properly anyways, we are hard-deprecating them as of now (there will not be a replacement).
They are removed in https://github.com/zeit/now-cli/pull/1601.


Cheap isFill check and add --skip-filled-tiles option

Implement a cheap isFill() check for whether an encoded vector geometry only contains fill polygons and expose --skip-filled-tiles command line option that you can use to omit those from the output (for example if your client over-zooms parent tiles in this case).
Also switch to use isFill instead of the feature count heuristic to decide whether to compute a tile hash in --compact-db mode (#219).  This will be useful as part of pmtiles writer #98 to decide which  tiles to attempt to deduplicate.

Testing on the planet:
0:27:21 INF -   mbtiles          6m18s cpu:5h24m14s gc:27s avg:51.5
0:27:21 INF -     read    2x(52% 3m16s sys:50s wait:29s done:2s)
0:27:21 INF -     merge   1x(78% 4m55s sys:8s wait:45s)
0:27:21 INF -     encode 62x(74% 4m39s sys:6s wait:1m11s)
0:27:21 INF -     write   1x(67% 4m12s sys:1m2s wait:1m30s)
0:27:21 INF - ----------------------------------------
0:27:21 INF -   features        183GB
0:27:21 INF -   mbtiles 75GB


Vagrant vbguest guest additions not installing onto centos7

See https://github.com/dotless-de/vagrant-vbguest/issues/298
Could be causing or related to #89

After fighting with the official centos7 box, I'm opting to use bento/centos-7.4 instead. It appears to work wtihout issues. Commit coming soon.


Fix refresher issue

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

Project coverage is 54.83%. Comparing base (2e48e2b) to head (e62d0fb).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #341   +/-   ##
=======================================
  Coverage   54.83%   54.83%
=======================================
  Files         166      166
  Lines        3669     3669
=======================================
  Hits         2012     2012
  Misses       1657     1657

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


Unable to get latest release

Hi, I have an installation issue with this command:
curl -sL http://git.io/vtf5N | sudo bash -s steam
It output Unable to get latest release
Any idea?
Thanks

What does the following command give you:
curl -s "https://api.github.com/repos/FezVrasta/ark-server-tools/releases/latest" | sed -n 's/^  "\([^"]*\)": "*\([^"]*\)"*,*/\1\t\2/p' | (while IFS=$'\t' read -r n v; do case "${n}" in "tag_name") tagname="${v}"; ;; "body") desc="${v}"; ;; esac; done; echo "${tagname}"; echo -e "${desc}")

It should give:
v1.6.45
* Add wait command
* Replace `su` with `runuser`

This command returns an empty output.
My server is on Ubuntu server 16.04.3


pin openapi-generator-cli to 7.0.1

@longquanzheng seems we use 6.6.0 before, and changing to 7.0.1 is a breaking change


[JS] using apache arrow in pure js

Greetings,
I would like to use apache arrow in grafana to visualize some paquet files.
is this a valid js file I can point to in order to do my thing?
<EMAIL_ADDRESS>from here
https://www.jsdelivr.com/package/npm/apache-arrow
Thanks!
Component(s)
JavaScript

@domoritz Could you take a look at this?

Arrow JS does not support Parquet right now but only arrow IPC.


[BEAM-4772] Make CompressedSource honor sourceDelegates emptyMatchTreatment.

CompressedSource does not currently honor its sourceDelegates emptyMatchTreatment resulting in things that rely on CompressedSource such as TextIO.Read to not properly handle emptyMatchTreatment.
SDK Java Core Code Owner: @lukecwik

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---
---
---
---
---

Java

Python

---

---
---
---
---

Looks like a oversight caused by keeping around the old FileBasedSource constructor when emptyMatchTreatment was added. LGTM.


Removed old restriction on socket types.

This is documented elsewhere -- you can have up to 16 sockets

@PeterSmithRedmond : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Task 7, Task 8, Task 9

SourceCode/2024/May 2024/Rajendra/Task7/project.json
main.xaml
WriteLine activity usage at Display item in a message box: Write Line activity can be replaced with tracepoints during debug. They should be removed before publishing. Consider also changing WriteLine to Log Message if it is really needed for debugging purposes.
No suggestions provided
Score: 5/5

SourceCode/2024/May 2024/Rajendra/Task8/project.json
Main.xaml
Please use Log Message activities throughout your workflow, Main. This will help you understand the flow path and identify the source and cause of any errors during development and after release.
Variable Array_list_names
Please make sure this variable follows the set pattern `^(dt_)?(A-Z|a-z)+(0-9)$|out[A-Za-z][A-Za-z0-9]$. This is a naming convention for all variables in your project.

SourceCode/2024/May 2024/Rajendra/Task9/project.json
Main.xaml
WriteLine activity usage at Write Line: Write Line activity can be replaced with tracepoints during debug. They should be removed before publishing. Consider also changing WriteLine to Log Message if it is really needed for debugging purposes.
No issues found
Score: 5/5
Please remove the unused Write Line activities and consider using Log Message activities instead for better debugging purposes.

@rajendrayarlagaddausa333
Task – 7
Code verified.
Task – 8
Code verified.
Task – 9
Code verified.


API Feature - Implement GZIP for POST/PUT

The engine is introducing a new feature allowing to optionally compress request
payloads (ie.  POST/PUT body, http or https).
To test it:
Perform a saveObject with the content encoded with GZIP
Don't forget to add: "Content-Encoding: gzip" as a header.
We will discuss a specification for a more detailed implementation.
Like adding a enableGZIP flag in client's configuration.

the flag should be contentEncoding: 'gzip' IMO :)

For node: this is doable and could be beneficial for sure especially for big batches.
is there a native way to encode gzip in browsers?

I think that as well, preferably no flag at all, but if necessary the flag shouldn't be specific to gzip :)
I've looked around, and couldn't find a good way to send gz via the browser, so it should just be disabled there I think

Referencing our main task to keep track of this issue' status. https://github.com/algolia/algoliasearch-client-specs/issues/30

This feature is really important as soon as anybody expect to use the
Atomic Reindexing - https://www.algolia.com/doc/api-reference/api-methods/replace-all-objects/.
For example, we would need to upload about 100MB of json and following that rule of thumb - https://gist.github.com/jordansissel/3044155 - we would only need to upload between 20 and 30 MB if gzip content. This is day and night.
This issue is going to manifest more as people approach the size limit of 1 GB on the total request.
https://www.algolia.com/doc/api-reference/api-methods/add-objects/#about-this-method


ECONNREFUSED: Connection refused

Hi all,

Linux distro : Ubuntu 18.04.2 LTS (Bionic Beaver)
Kernel version: Linux 4.15.0-47-generic #50-Ubuntu SMP Wed Mar 13 10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

dmesg | grep -i bluetooth
[    2.750304] Bluetooth: Core ver 2.22
[    2.750318] Bluetooth: HCI device and connection manager initialized
[    2.750320] Bluetooth: HCI socket layer initialized
[    2.750322] Bluetooth: L2CAP socket layer initialized
[    2.750326] Bluetooth: SCO socket layer initialized
[    2.771778] Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00000302.bin
[    2.771780] Bluetooth: hci0: QCA: patch rome 0x302 build 0x3e8, firmware rome 0x302 build 0x111
[    2.851976] Bluetooth: hci0: using NVM file: qca/nvm_usb_00000302.bin
[    4.933220] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.933221] Bluetooth: BNEP filters: protocol multicast
[    4.933223] Bluetooth: BNEP socket layer initialized
[   21.849736] Bluetooth: RFCOMM TTY layer initialized
[   21.849741] Bluetooth: RFCOMM socket layer initialized
[   21.849744] Bluetooth: RFCOMM ver 1.11

With this code:
extern crate rumble;
extern crate rand;

use std::thread;
use std::time::Duration;
use rand::{Rng, thread_rng};
use rumble::bluez::manager::Manager;
use rumble::api::{UUID, Central, Peripheral};

pub fn main() {
    let manager = Manager::new().unwrap();

    // get the first bluetooth adapter
    let adapters = manager.adapters().unwrap();
    let mut adapter = adapters.into_iter().nth(0).unwrap();

    // reset the adapter -- clears out any errant state
    adapter = manager.down(&adapter).unwrap();
    adapter = manager.up(&adapter).unwrap();

    // connect to the adapter
    let central = adapter.connect().unwrap();

    // start scanning for devices
    central.start_scan().unwrap();
    // instead of waiting, you can use central.on_event to be notified of
    // new devices
    thread::sleep(Duration::from_secs(2));

    // find the device we're interested in
    let sphero_mini = central.peripherals().into_iter()
        .find(|p| p.properties().local_name.iter()
            .any(|name| name.contains("SM-"))).unwrap();

    println!("{:?}", sphero_mini);

    // connect to the device
    sphero_mini.connect().unwrap();

    println!("Is sphero connected: {:?}", sphero_mini.is_connected());

    // discover characteristics
    sphero_mini.discover_characteristics().unwrap();

    // find the characteristic we want
    let chars = sphero_mini.characteristics();

    for c in chars {
        println!("{:?}", c);
    }
}

I have this message:
$ ./test
C1:44:3B:21:3D:9C properties: PeripheralProperties { address: C1:44:3B:21:3D:9C, address_type: Random, local_name: Some("SM-3D9C"), tx_power_level: None, manufacturer_data: None, discovery_count: 2, has_scan_response: true }, characteristics: {}
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Other("ECONNREFUSED: Connection refused")', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

If I write same code in Javascript using noble, it's working.
The difference is l2_bdaddr_type value.
Rumble set to 1 (BDADDR_LE_PUBLIC) where Noble set to 2 (BDADDR_LE_RANDOM).
In peripheral.rs file if I change:
let addr = SockaddrL2 {
    l2_family: libc::AF_BLUETOOTH as u16,
    l2_psm: 0,
    l2_bdaddr: self.address,
    l2_cid: ATT_CID,
    l2_bdaddr_type: 1,
};

to
let addr = SockaddrL2 {
    l2_family: libc::AF_BLUETOOTH as u16,
    l2_psm: 0,
    l2_bdaddr: self.address,
    l2_cid: ATT_CID,
    l2_bdaddr_type: 2,
};

It's work nice.
C1:44:3B:21:3D:9C properties: PeripheralProperties { address: C1:44:3B:21:3D:9C, address_type: Random, local_name: Some("SM-3D9C"), tx_power_level: None, manufacturer_data: None, discovery_count: 7, has_scan_response: false }, characteristics: {}
SockaddrL2 { l2_family: 31, l2_psm: 0, l2_bdaddr: 9C:B6:D0:E7:F3:64, l2_cid: 4, l2_bdaddr_type: 0 }
Bind socket ok
Cfg socket ok
Connect socket ok
Is sphero connected: true
Characteristic { start_handle: 2, end_handle: 65535, value_handle: 3, uuid: 2A:00, properties: READ }
Characteristic { start_handle: 4, end_handle: 65535, value_handle: 5, uuid: 2A:01, properties: READ }
Characteristic { start_handle: 6, end_handle: 65535, value_handle: 7, uuid: 2A:04, properties: READ }
Characteristic { start_handle: 9, end_handle: 65535, value_handle: 10, uuid: 2A:05, properties: INDICATE }
Characteristic { start_handle: 13, end_handle: 65535, value_handle: 14, uuid: 00:02:00:03:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: WRITE_WITHOUT_RESPONSE }
Characteristic { start_handle: 15, end_handle: 65535, value_handle: 16, uuid: 00:02:00:02:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: WRITE | NOTIFY }
Characteristic { start_handle: 18, end_handle: 65535, value_handle: 19, uuid: 00:02:00:04:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: READ }
Characteristic { start_handle: 20, end_handle: 65535, value_handle: 21, uuid: 00:02:00:05:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: WRITE_WITHOUT_RESPONSE | WRITE }
Characteristic { start_handle: 23, end_handle: 65535, value_handle: 24, uuid: 2A:19, properties: READ | NOTIFY }
Characteristic { start_handle: 27, end_handle: 65535, value_handle: 28, uuid: 00:01:00:02:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: WRITE_WITHOUT_RESPONSE | WRITE | NOTIFY }
Characteristic { start_handle: 30, end_handle: 65535, value_handle: 31, uuid: 00:01:00:03:57:4F:4F:20:53:70:68:65:72:6F:21:21, properties: WRITE_WITHOUT_RESPONSE | WRITE | NOTIFY }

Regards,

This change did allow me to be able to connect (indicator LED on my peripheral for connection came on), however I am still unable to discover characteristics.


Bugfix in wait condition for unstable test (#7390)

Pull request opened by the merge tool on behalf of #7390

Merged into branches iso7 in 072cc20b7a6639190a029b45fb23d84cdfa1428c


use DoctrineFixturesBundle

When using a demo application or having integration tests, the application should be filled with some data.
In order to handle this, the DoctrineFixturesBundle is in my opinion the best solution: http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html

Thanks for your recommendation.


An idea for an improvement/clarification could be: (explain what and why)

I think you should improve the printed results. Instead of just printing " (x1A,x2A) = (0.3334, 0.6666) -> uA = 0.5291". You could print something like "The optimal allocation is x1A = 0.33 and x2A = 0.66 which yields a utility of uA = 0.52". I think you should do something like this in all of your results. E.g in Q3 where you just print 3 numbers and don't show, what they are equal to.
I also think you can improve your code, by making more comments on what/why you do it. It is quit hard to understand your code sometimes.
In the last question where you use the Exchange Economy Class, I think you should insert the code into the other py file. Otherwise, your code gets very long.
In the last question, I also think that you should improve your graph. I don't know what unit is on the axis, and I don't know what the graph shows.

As mentioned before, clarifying what the printed results represent would improve the project. Moreover, writing more of the code in the model .py file and referencing to the .py file would reduce the amount of code in the results notebook, in turn creating an easier to read project. Something such as defining the loops in the .py file, and the printing the results directly from the .py file.
As mentioned before, add a few markdown lines explaining what's being answered and how the code functions. I think you can remove a lot of text from the code lines by doing so.
Lastly, adding an edgeworth box for Q1 and defining axis labels in Q8.

As I mentioned in point 1, you should improve your graph on question8, by adding what x-axis and y-axis are.
And also it would be nice if you arrange the answer of question 7 : it is sometimes hard to get the information at once.


AppSync Condition Update doesn't work with mock

Note: If your issue/bug is regarding the AWS Amplify Console service, please log it in the
Amplify Console GitHub Issue Tracker

Describe the bug
AppSync Condition Update doesn't work in mock.
Schema
type Billing
  @model
  @auth(
    rules: [
      { allow: owner, operations: [create, update, delete, read] }
      {
        allow: public
        provider: apiKey
        operations: [create, update, delete, read]
      }
    ]
  )
  @key(fields: ["owner"]) {
  owner: String!
  stripCustomerId: String
  paymentMethod: String
}

Mutation
export const updateBilling = /* GraphQL */ `
  mutation UpdateBilling(
    $input: UpdateBillingInput!
    $condition: ModelBillingConditionInput
  ) {
    updateBilling(input: $input, condition: $condition) {
      owner
      stripCustomerId
      paymentMethod
      createdAt
      updatedAt
    }
  }
`;

Run the query to list all the existing data
query MyQuery {
  listBillings {
    items {
      createdAt
      paymentMethod
      owner
      stripCustomerId
      updatedAt
    }
  }
}

Response:
{
  "data": {
    "listBillings": {
      "items": [
        {
          "createdAt": "2020-06-13T19:19:22.092Z",
          "paymentMethod": "test",
          "owner": "test",
          "stripCustomerId": "test",
          "updatedAt": "2020-06-13T19:19:22.092Z"
        }
      ]
    }
  }
}

Run the update mutation in AppSync mock console
mutation MyMutation {
  updateBilling(input: {owner: "test", paymentMethod: "test2", stripCustomerId: "test2"}, condition: {stripCustomerId: {attributeExists: true, eq: "test"}}) {
    stripCustomerId
    paymentMethod
  }
}

response:
{
  "data": {
    "updateBilling": null
  },
  "errors": [
    {}
  ]
}

Checked the data again. It was not updated
The same queries work in the cloud
Response in the cloud when running the same update mutation above
{
  "data": {
    "updateBilling": {
      "stripCustomerId": "test2",
      "paymentMethod": "test2"
    }
  }
}

Amplify CLI Version
4.21.1
To Reproduce
see description
Expected behavior
Condition update works with mock as it does in cloud
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS:Mac
Node Version. 10

Additional context
Add any other context about the problem here.

@gaochenyue upon checking the condition you try to use, that seems to be invalid. You specify 2 conditions within one expression object, you need an and enclosure for the checks.
condition: {
  and: [
    stripCustomerId: { eq: "test"}
    stripCustomerId: { attributeExists: true }
   ]
}

But the eq also covers the attribute existence, no need for that, a pure equality condition is enough based on the expression you defined.
As the question has been answered I'm closing the issue if something new comes up, feel free to reopen the issue.

Hello @attilah, I also get this in the mock server. I don't think what you mentioned in your answer is what was causing the problem. Here are screenshots for the same mutation in the mock server and on the appsync console:

I'm seeing the same issue with Amplify CLI 4.27.2. Do we need to open a new issue?


tests: drivers: dac loopback test on stm32 boards

Add configuration to run the tests/drivers/dac/dac_loopback on more stm32 platform
Adapting the ADC input channels for running the testcase tests/drivers/dac/dac_loopback on

nucleo_l073rz adc1 input read from A0 --> connect to A2 on CN8
nucleo_f091rc adc1 input read from A0 --> connect to A2 on CN8
nucleo_g474re adc1 input read from A0 --> connect to A2 on CN8
stm32l562e_dk adc1 input 13 from A4 --> connect to A2 on CN19

Add the connection on the hw board and the dac_adc_loopback fixture to Pass the test.
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

$ west build -p auto -b nucleo_g474re tests/drivers/dac/dac_loopback
Running TESTSUITE dac_loopback
===================================================================
START - test_dac_loopback
 PASS - test_dac_loopback in 0.011 seconds
===================================================================
TESTSUITE dac_loopback succeeded

------ TESTSUITE SUMMARY START ------

SUITE PASS - 100.00% [dac_loopback]: pass = 1, fail = 0, skip = 0, total = 1 dus
 - PASS - [dac_loopback.test_dac_loopback] duration = 0.011 seconds

------ TESTSUITE SUMMARY END ------

===================================================================
PROJECT EXECUTION SUCCESSFUL


Binding updates on "visible" attributes of internal controls within XMLComposite controls are not working

OpenUI5 version: 1.58.0
Browser/version (+device/version): Chrome Canery v70 on latest macOS
Any other tested browsers/devices(OK/FAIL): –
URL (minimal example if possible): –
User/password (if required and possible - do not post any confidential information here): –
Steps to reproduce the problem:

change an exposed property of the XMLComposite control binded internally to a visible attribute of an internal control (e.g. sap.m.Text, sap.m.FlexBox or any other control)

What is the expected result?
The visibility of the internal control should be toggled any time the input property changes.
What happens instead?
Only the first state of the property is taken into account for the visible attribute of any internal control used in the XMLComposite control. Bindings on the visible attribute behave like a one-time binding.
Any other information? (attach screenshot if possible)
I'm aware of the binding limitations described in the docs: https://openui5nightly.hana.ondemand.com/#/topic/c6e0122ca9874844a214018bec02e74a
But also when using simple property binding within the XML composite control, the visible attribute can not be changed anymore after the first assignment.

Hello @fuchsvomwalde ,
Can you provide us with an example?
Best Regards,
Gergana

@GerganaKremenska
Sure! Here is a detailed example: http://plnkr.co/edit/JXohbxXlwCeoPcave2Gs?p=preview
I used three different patterns how to toggle the visibility of a sap.m.Label. As you can se it works everytime within the XML view, but only in one case when the same patterns are used in an XML composite control. I hope the example is self explaining, please don't hesitate to contact me, if you have any further questions.

Hi any updates on that?

Hi Fuchs,
I adapted your example.
The issue is the following:
The first working Control has the label that when changing an Attribute automatically invalidates the VBox and triggers a rerendering. Thus it works.
The other examples do not work due to one root cause you should set invalidate: true on the show property. This is due to save Performance as we want to avoid a rerendering on any Control part.
For all other controls than the XMLComposite such Invalidation was done by Default.
Now this makes the Control with only the label as root also to work.
Unfortunately the VBox does not work as this has no Attribute visible.
For you Information. If not done by yourself each XMLComposite has already a visible Attribute. You can try that.
If there are further Questions, stay in touch.
Regards
Silke


【ios】utils::PostconditionPanic: (null) libc++abi.dylib __ZSt11__terminatePFvvE . Need Help!!!

Describe the bug
crash on iPhone 13 Pro 、 iPhone 13 Pro Max、iPhone 11、iPhone 10
To Reproduce
crashed randomly
Logs
#0 FEngine::loop
utils::PostconditionPanic
(null)

Smartphone (please complete the following information):

Device: [iPhone]
OS: [e.g. 13、13 pro 、11、10]

Additional context
Does Anyone have idea?

Are you running a particular iOS sample?

HI, the answer is yes.I  run my own demo which is based on the official hello-pbr demo . However, there is something different from the hello-pbr demo :

I use UIIMage and CFDataRef to decode the jpg file which is needed by creating texture
I release CFDataRef in the PixelBufferDescriptor callback.
I initialize a CVPixelBuffer for recording video, but i never use it
There is a enter animation added when i enter the rendering scene.

additional contex
I use an AB test to keep the code affects  the user online. Until now, there is 3000 users use the engine, and the crash happened 9 times.

If you can upload a complete sample that reproduces the issue consistently, I can take a look.

Sorry, i can't reproduce this problem consistently. There is almost no description  about the crash printed, close it first.

I still can't figure out the reason why it crashed and no message useful to print. If i set the Panic::Mode to throw, the crash will not happen? I just want to know how to fix or avoid this weried crash. I will upload my code later, open this question again~

What backend are you using? Is this the same issue as https://github.com/google/filament/issues/5027?

No. These two question is different, i use metal backend.

Are you able to upload your code? You could also try with a debug build of Filament to get a more verbose error message.

I think the (null) message is not reported by filament. It is reported by the crash logger developed by the company i work at, and it can only report the crash stack. So the crash logger i uses cannot report the detail message about PostConditionPanic. After i fix a crash happened in ios device, the crash with (null) message is obviously less. By the way the crash i fix also happened in android device, but the crash in android device can report detail message.
In conclusion, this crash with (null) message is probably made up of some other crash, and the message report nothing because the crash logger i use cannot catch filament panic. Close this problem,  because the crash with (null) message is not related to filament. Thanks your time~ @bejado


Speed up "Increase fee" interaction

The buttons to increase fee in the wallet are slow - I thought they were just not working at first but seems like if you wait a bit the numbers do change. It feels unclear if the page is responding when trying to click the different fee options (1x, 2x, 5x) as nothing happens and there is no hover reaction (in some instances it just seemed like 2x remained highlighted when clicking 5x).

@GinaAbrams I'm closing this out, but please comment if these interactions still feel slow to you and I'll reopen 🙏


PowerToys Keyboard manager with keyboard specific settings

Description of the new feature / enhancement
If I have a keyboard that is azerty and one that is qwerty (I use it for different reason but this is an easy example) i would want to change Q <-> A and W <-> Z, but only on 1 keyboard, so they match (because globally changing the keys wouldn't really help much).
Scenario when this would be used?
I'm not good at forms, but basically the qwerty azerty example is one, what I currently use keyboard manager for is, I used to play games a lot with a razor orbweaver (its basically a keypad where you can customly bind all the keys). They kept breaking on me (because razer is really not that durable), so I bought a really cheap keypad, I use keyboard manager to change the keybinds for the game I use (because the keypad doesnt have software that allows me to do that). The main issue is that changing keys for the keypad will cause my normal keys to also be changed, so I have to toggle it every time I switch to a different game (where I dont use the keypad, or at least with those binds) or if I decide to do anything else on my computer.
The other examples I can think of for this would be a gaming mouse that has the side buttons but they are all digits so your not really getting more keys, just more inputs for the same keys, this could allow mice to be reprogrammable if it doesn't have software while not messing up keyboard's settings.
Supporting information
No response

/dup https://github.com/microsoft/PowerToys/issues/1460


Swift 3 changes

90%+ complete
Addresses #3

@huynguyencong would be address if you can help me implement the last two errors. Couldn't get them myself.


Kotlin Codegen Set Default Null Value

I haven't found a way to do this yet.  I want to have the generated code for Kotlin data classes to have a set null on a nullable field i.e.  ( extra caveat would be to have it recognize the type and set the default but I'd be happy with it as null for any and all fields with ?)
  public data class Reviews(
    public val averageRating: String? = null,
    public val ratingsBreakdown: List<RatingsBreakdown>? = emptyList(),
    public val reviewCount: Int? = 0,
    public val totalRecommended: Double? = 0.0
  )

Instead it generates this and then it is very hard to work with when creating a new data class because you have to set every field when calling Reviews( null, null, null, null) when the data class looks like this:
  public data class Reviews(
    public val averageRating: Double?,
    public val ratingsBreakdown: List<RatingsBreakdown>?,
    public val reviewCount: Int?,
    public val totalRecommended: Double?
  )

Yeah I hope they address this as it is writing kotlin so it should account for a developers wanting fields set to default values, I mean its an option for Kotlin methods for either
val myVariable // non null
val myVariable? // potential null
val myVariable? = someValue // could be "null"  or its set to some val.

Hopefully this gets addressed for Kotlin since its not an option for Java.

So I wanted to try and use reflection and have that set the default values by being able to copy a mock and insert values for the whenever in the mock on the copy.  Not quite there but maybe this can spark something your team wants to do to help us write test cases and insert mocked Apollo data.
@Suppress("UNCHECKED_CAST")
fun <T : Any> clone (obj: T): T? {
    if (!obj::class.isData) {
        println(obj)
        throw Error("clone is only supported for data classes")
    }

    val copy = obj::class.memberFunctions.first { it.name == "copy" }
    val instanceParam = copy.instanceParameter!!
    val map = mapOf<KParameter, Any?>(instanceParam to obj)
    return copy.callBy(map) as T?
}

Here I wanted to use it in a test but I was only able to get this working where I created a real object with a mocked inventory class.  I'd like do mock(SomeDataClass) with specific whenever and then be able to copy that but the clone turns out to be null and fails the first assertion.
    @Test
    fun genericDataClasses() {
        val someDataClass = SomeQuery.SomeDataClass("1234", true, "", mock{
            on { price }.thenReturn(10000)
        })

        val cloned = clone(someDataClass)
        assertNotNull(cloned)
        cloned?.let {
            assertEquals("1234", it.id)
            assertEquals(true, it.mybool)
            assertEquals("", it.badge)
            it.inventory?.let { p ->
                assertEquals(10000, p.listPrice)
                assertEquals(null, p.soldPrice)
            }
        }
    }

@grndvl1 3.6.0 introduces data builders: https://www.apollographql.com/docs/kotlin/testing/data-builders
It uses a builtin FakeResolver by default, providing default values for all fields so you can do something as simple as:
  val data = SomeQuery.Data()

And it will return a valid data instance. If you need control over some values, you can do so:
val data = SomeQuery.Data {
  price = 10000
}

And it will use 10000 for price and fake values for everything else

@grndvl1 did you get a chance to look at data builders?

Sorry man seems my notifications was off and in the process of changing my life from house to RV life.  We just upgraded to 3.6.0 so I will take a look and report back.

No worries, let us know how that goes!

Yeah did not work. I went a more complex object and it lets me only mock the first field the rest it can't even find the reference.

it lets me only mock the first field the rest it can't even find the reference.

I'm guessing you bumped into this?
Note: this only works for the top-level Data field for now.

I'll investigate another solution based on low level compiler APIs. I'll update this thread if it turns out promising

@grndvl1  You can know use the KotlinCompilerHooks API from 3.7.0 to do so. You can find an example in the integration tests: https://github.com/apollographql/apollo-kotlin/blob/fb51dafaa4b02a55b6926546927d176078513543/tests/compiler-hooks/build.gradle.kts#L79
Let us know how that works for you!


fetch and push ImageList

Implemented first iteration. Include all <none> images, to allow the parent-relation.
Maybe it's to much... hmm...

Include #20

#20 was done with #34

DIfferentiate between parent (layer in Dockerfile) and FROM (logical parent of Dockerfile)

done in #36


UI doesn't update when setting SelectedIndex binding mode to OneWay

When setting SelectedIndex property binding mode to OneWay, the Carousel doesn't update it's position when the ViewModel property is set to a different value.
One Way Binding:

TwoWay Binding (default):

CardsCarouselSample.zip

Hey @InquisitorJax after investigation I realized that it's is not supposed to be workin in non TwoWay binding mode.
Because of SelectedIndex is set by CardsView what causes clearing your binding (cuz it's not TwoWay).

if you wish, I can expose additional command property NavigateToCommand + NavigateTo method (so you will be able to call this command with desired index and that index will be set to SelectedIndex)

Would the property change event that's fired for SelectedIndex not be the same as a request for NavigateTo?
I could probably work around the issue by not updating other bindings when SelectedIndex property changes - I'll give that a try.
I think there'll be an expectation for SelectedIndex to work in both Binding Modes - if that's really not possible, you should probably mention something about that in the documentation / readme.

Just leaving the explanation here:
TwoWay binding wasn't working, because on Android CarouselView would set SelectedIndex halfway through the swipe animation.
We were setting a SelectedItem property in the setter of SelectedIndex ViewModel property - which other UI elements are bound to. This was causing the swipe animation not to be smooth as the other UI updates would take up CPU cycles on the UI thread.
Since SelectedIndex OneWay does not work as expected - we reverted back to TwoWay binding (which works great!), and just removed the SelectedItem code logic from the setter of SelectedIndex ViewModel property, and updated that separately.
We update the SelectedItem from user swiping by hooking into the ItemAppeared event - which fires after the swipe animation has completed.

@InquisitorJax thanks for posting that :)


Aerial does not install

Howdy.
Newbie here.  I just installed, er, attempted to install Aerial.  Open the dmg file, drag to applications, go to my screensavers file, it is NOT there.  I tried all of the suggestions on the troubleshooting forums: opening/closing system preferences, restarting, multiple tries...it does NOT install.  I do not have any other savers installed besides the stock ones.  I do not have little snitch.
Odd thing is I then gave up and went in to remove the app (which is indeed in the applications folder).  But it will not let me delete it and says it is "Open."  It does not show up on a force quit list.  If I try to move it to the trash, I get the same message:  It is "Open" and cannot delete.
Mac OS 12.3.1
2019 iMac Retina 4k 21.5"
Gist: it is in the applications folder but NOT in the screensaver folder.  It claims to be "open" but it is NOT.
Any idea?  Thanks.

Hey there.
Sorry about the issue. I assume that after dragging Aerial Companion.appto Applications, you launched it ?
Companion should show up in your menu bar here :

It's likely why it says it's "open", because it's there.
If you click it, you'll see a menu that should prompt you to install the screensaver and that should solve your original issue (not seeing it in the screen saver panel).
To uninstall, click the menu then exit at the bottom (or quit, I'm not sure I remember which). Then you'll be able to trash the app.
If after uninstall, you want to still give it a shot, you can try manual install by downloading this file, then double clicking the Aerial.saver in your Downloads folder.
Let me know if that's any help

D'oh.
This is correct.  I had looked everywhere in the folders, screensavers, Apps, etc. I had never looked UP at the top of the menu bar to see if it was there.  I was following the install instructions that showed it in the screensavers after install.
Once I clicked on that, I could install it from there and it appeared in screensavers.
All good now; thanks for the help.

No problem, was it the first time you tried it ? I thought that I popped a window the first time at launch, to setup various things and avoid that issue. In any case glad it's fixed, enjoy ;)


Could not find executable test_variant

After trying to compile the project as we did today in class, using the same commands, I was not able to build the "test" objective.
The commands I run were:
git clone --recursive https://github.com/GueimUCM/siplasplas.git
cd siplasplas && mkdir build && cd build
cmake ..
make run_example_variant
make test

That last make test threw:
UpdateCTestConfiguration  from :[directory]/siplasplas/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :[directory]/siplasplas/build/DartConfiguration.tcl
Test project [directory]/siplasplas/build
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: variant
Could not find executable [directory]/siplasplas/build/tests/test_variant
Looked in the following places:
[several directories]

1: Test command:
Unable to find executable: [directory]/siplasplas/build/tests/test_variant
1/2 Test #1: variant ..........................***Not Run   0.00 sec
test 2
    Start 2: linear_allocator
Could not find executable [directory]/siplasplas/build/tests/test_linear_allocator
Looked in the following places:
[several directories]

2: Test command:
Unable to find executable: [directory]/siplasplas/build/tests/test_linear_allocator
2/2 Test #2: linear_allocator .................***Not Run   0.00 sec

0% tests passed, 2 tests failed out of 2

Total Test time (real) =   0.00 sec

The following tests FAILED:
	  1 - variant (Not Run)
	  2 - linear_allocator (Not Run)
Errors while running CTest

This looks actually like a bug in the gmock.cmake script of Manu343726/cmake module. See the implementation of gmock_gtest_target() function I'm declaring the test as a call to the test executable. This was written this way since GTest embeds the test driver (GTest framework) in the executable itself, so you just have to launch it.
The issue is that I forgot to add a dependency between the test target (${ET_NAME} variable) and the executable target, so the latter is built when the former is invoked.
The solution should be as simple as adding that dependency explicitly through a call to add_dependencies().

We no longer manage gmock in that way, instead the imported target is wrapped in a gmock target, so just linking against that gmock target triggers the external project build. Like:
add_executable(MyUnitTest myunittest.cpp)

target_link_libraries(MyUnitTest PRIVATE gmock)

That's all. This triggers the external project download/configure/build and then the generated gmock library is linked against your target.


Spec text for discards as void bindings

This adds spec text for discards as void bindinds.

Hopefully we can consider _ as opposed to void, but this should suffice for initial specification text per the design noted in the explainer.


New Dashboard light mode

The light theme in the new Dashboard needs some changes:

Most components don't have borders
The component background color is the same as the page background color which makes it a bit off
The drawer consistently appears dark, leading to a stark contrast with the page's background color
Maybe we can change the primary color in light mode to another gradient of white instead of fully white?

The previous comments go for all pages in the Dashboard.

@zaelgohary for background, we changed it before to  #E5E5E5 for all

Update

Changed the navigation drawer to light on switch to light mode
Working on exposing an event when changing the theme

Update

Changed the Sidebar background to be light on light-mode instead of dark.
Changed the AppBar background to be light on light-mode instead of dark.
Changed the ToolTip background to be light on light-mode instead of dark.

Update

[x]  numbers need to be darker green

[x]  Can u make this outline icon like others (in both light and dark modes)

[x]  make sure the links in the drawer with dark green primary color)

Some buttons' colors are not good in light mode but need to fix it first in dark mode then check it.

All requested changes should be done.

side bar and app bar and tool tip changed to light
the links in the drawer with dark green

background changed

Verified:

Devnet
842ebef


Add prometheus pod labels for all pods

What this PR does / why we need it:
Prometheus chart did not support custom labels for all pods. We would like to have custom labels so that we can use kubernetes selectors in other parts of the system to match these special labels.
Which issue this PR fixes
N/A
Special notes for your reviewer:
@mgoodness, @gianrubio please check this :)
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md

/assign @mgoodness


Missing package names for windows 10 1803

article is tagged as applicable to 1803, but does not have a list of 1803 applications

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

ID: c9c3129d-3c8d-b508-f298-3333499bb180
Version Independent ID: 97b70720-82d8-60a4-3958-00ceed34aa1b
Content: How to keep apps removed from Windows 10 from returning during an update
Content Source: windows/application-management/remove-provisioned-apps-during-update.md
Service: w10
GitHub Login: @Heidilohr
Microsoft Alias: helohr

Thanks for your comment. You're right about the 1803 information is missing, but that's because we fixed the issue before version 1803, so this article technically only applies to versions 1703 and 1709. We're working on an update to make that clearer right now.

You'll have to create your own registry keys when upgrading from 1607.


[BUG] Compatibility with Spring Boot 3.1.0 and spring-data-elasticsearch 3.1.0

When upgrading our Spring Boot Projects to Spring Boot 3.1.0 there occurred an IllegalAccessException in
spring-data-opensearch/src/main/java/org/opensearch/data/client/orhlc/NativeSearchQueryBuilder.java
on field indicesOptions. This is because in spring-data-elasticsearch 5.1.0 this field became private in the base class BaseQueryBuilder.
spring-data-opensearch itself depends on spring-data-elasticsearch 5.0.5, where the problem does not occur yet. But when a Spring Boot app includes spring-data-opensearch as dependency, then Spring Boot's spring-boot-dependencies parent declares spring-data-elasticsearch 5.1.0 as managed dependency, overriding the dependency version:
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/3.1.0/spring-boot-dependencies-3.1.0.pom
The only valid workaround that works for us is explicitly declaring spring-data-elasticsearch 5.0.5 as dependency in every project (which is pretty cumbersome).
Here is an article about the general problem we have and several possible workarounds: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot
The long term solution would probably be to change the Code of NativeSearchQueryBuilder to avoid the IllegalAccessException.

@reta, I would like to work on this issue and I've already created a fork for that. I must simply create the PR when it's ready, or is there any previous process?

@renatosilvarosa sure please go ahead, thank you for taking it

I must simply create the PR when it's ready, or is there any previous process?

Just a pull request, thank you.

@renatosilvarosa there are quite a few demands to get that done, the pull request is out

@reta No worries, I had just started, and due to my lack of knowledge of the internals, I was taking some time to understand. I'll be glad to look into your PR and see how you resolved the issue.

Hi there. When a new version of the spring-data-opensearch with this fix is planned to be released or could you make this release soon? Will it work with the latest Spring Boot 3.1.1 as well?

@rosti-il should be there (on Central) soon, https://github.com/opensearch-project/spring-data-opensearch/releases/tag/v1.2.0


NoUnneededFinalMethodFixer - Add "private_methods" option

closes https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/4771

is there any technical or BC concern for not sending this to 2.15 though?

No, this is a SemVer requirement: backward compatible new features should be added in minor releases, not patch ones.

todo: make rule risky

👍 but I still believe adding a new option should only happen on master though.

done

PHPStan in analyzing the fixtures;
The command "php -d auto_prepend_file=dev-tools/vendor/autoload.php ./dev-tools/tools/phpstan analyse" exited with 0.
$ if [ -n "$CHANGED_PHP_FILES" ]; then ./dev-tools/vendor/bin/phpmd `echo "$CHANGED_PHP_FILES" | xargs | sed 's/ /,/g'` text phpmd.xml || travis_terminate 1; fi
/home/travis/build/FriendsOfPHP/PHP-CS-Fixer/tests/Fixtures/Integration/set/@Symfony_whitespaces.test-out.php:110	The class finalClass is not named in CamelCase.

this is not what we want I hope?


pcap-rewrite: split first fragment/packet keys for five tuple flow

split key data used for first fragment and data filtered against this first fragment for five tuple flow

Applied, thanks!


add bundled css

What does this PR do?
adds bundled css to head.pug
Description of Task to be completed?
Fixes the style issue
How should this be manually tested?
By running the application
Any background context you want to provide?
What are the relevant pivotal tracker stories?
Screenshots (if appropriate)
Questions:

Coverage remained the same at 30.886% when pulling 7be723506a09b903636f1c64531f11101cc5619e on chore/fix-head-to-includde-css into 05b5a2ff0af921a562572847cecb7cfc725c233c on develop.


Add a description

Hello,
consider adding a description. The current documentation assumes that people know what tailscale
is and what a tailscale coordination server does.
Even if they know, it would be cool to have a description about this.
(Because there may come a time where people prefer this Free Software solution over whatevery was there before. ;))

Hi @bernhardreiter,
Thanks for the suggestion. Just added it. What do you think?
Cheers,
Juan

Hi @juanfont,
yes, works for me! Thanks!
Three suggestions:

typo: propietary -> proprietary
public key exchange. Do you mean "public key-exchange" or "public-key exchange"? I guess the latter, but it is not entirely clear, maybe use "as an exchance point for cryptographic (public) keys".
"open source" as a technical term is often capitalized, just like "Free Software" should be. ;)

Done!
Thanks for the comments!!


Set up virtual instance of Spee.ch

Story: As a front end developer, I want to be able to run spee.ch locally so that I can work on the design, but I don't want to have to worry about setting up the back end and getting it running.
Solution: @Smurphonomics suggested deploying a virtual machine image so people can download and run for debugging with no issues on any device.  He suggested Virtual Box and Vagrant.  I spoke with @wilsonk and he suggested we set up a docker container.  @kauffj @lyoshenka any suggestions or input?

I'd lean towards docker. It's easier to maintain than a VM, esp when
things change. Let me know if you want help with this, or if you want to
figure it out. I'm not a docker expert but I've used it some.
On Mon, Nov 13, 2017 at 5:46 PM, Bill Bittner<EMAIL_ADDRESS>wrote:

Story: As a front end developer, I want to be able to run spee.ch locally
so that I can work on the design, but I don't want to have to worry about
setting up the back end and getting it running.
Solution: @Smurphonomics https://github.com/smurphonomics suggested
deploying a virtual machine image so people can download and run for
debugging with no issues on any device. He suggested Virtual Box and
Vagrant. I spoke with @wilsonk https://github.com/wilsonk and he
suggested we set up a docker container. @kauffj
https://github.com/kauffj @lyoshenka https://github.com/lyoshenka any
suggestions or input?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lbryio/spee.ch/issues/264, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWJIBwRnIP6HsRg0RTXSO1YHZo9oJjBks5s2MbbgaJpZM4QciEQ
.

Containers provide OS-level process isolation whereas virtual machines offer isolation at the hardware abstraction layer (i.e., hardware virtualization).  So in IaaS use cases machine virtualization is an ideal fit, while containers are best suited for packaging/shipping portable and modular software. Again, the two technologies can be used in conjunction with each other for added benefits—for example, Docker containers can be created inside VMs to make a solution ultra-portable.

https://www.upguard.com/articles/docker-vs.-vmware-how-do-they-stack-up

@Leopere, you might want to sync up with @jessopb 😃


Vector Filtered Aggregates return the default buffer init values when no rows match the filter predicate

Affected Version
Tested on 0.20.0
Description
Not sure if this is a bug
When executing a filtered aggregate that doesn't match any rows druid will return the init value of the aggregate involved. For example for the LongMaxVectorAggregator druid will return Long.MIN as the result of the aggregation because this is what the aggregator was initialized to https://github.com/apache/druid/blob/master/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxVectorAggregator.java#L39
Steps to reproduce

set druid.generic.useDefaultValueForNull=true
Run a query like

SELECT MAX(__time) as t1, MAX(__time) FILTER(WHERE dim1 = 'non_existing') as t2 FROM druid.foo

this is a filtered aggregate on a time column where the filter doesn't match anything. I'm not sure what the expected result should be here, but i was surprised to find that the actual result is
"t1":"2001-01-03T00:00:00.000Z", "t2":"-292275055-05-16T16:47:04.192Z"

It sounds like according to the documentation LongMax should return 0 as a default value when theres nothing to aggregate.

Interesting! NumericAnyVectorAggregator does it correctly by using a bit to differentiate initialized value vs a value from any row. May be, LongMaxVectorAggregator needs to do the same.
By the way, what is the output of the query if you set druid.generic.useDefaultValueForNull to false? It should be null ideally.

By the way, what is the output of the query if you set druid.generic.useDefaultValueForNull to false? It should be null ideally.

yup, in this case the planner uses the NullableNumericVectorAggregator which initializes the buffer with a null byte and returns null if no aggregation occurs.

Hey, can I take this one :)?

@abhishekagarwal87 do you know who the best person to reach out to about this issue is? Copying and pasting my email to the dev mailing list... I am not sure if this is actually a bug in the code or undocumented behaviour:

Hi Developers,
I am looking for some guidance on this situation described here: https://github.com/apache/druid/issues/10644. I am trying to understand if the behavior is expected and the documentation for the runtime parameter druid.generic.useDefaultValueForNull is not updated to reflect the behavior OR this is an actual bug in the engine.
As described in the issue, there are a couple of scenarios that don’t seem right according to the documentation:
Example when results are  Long.MIN_VALUE

perform a MAX aggregation function
on empty rows
druid.generic.useDefaultValueForNull=true

Query: 	 SELECT MAX(l1) FILTER(WHERE dim1 = 'non_existing') FROM druid.foo
Result:	 -9223372036854775808

Reference to explicitly set value in source code:
https://github.com/apache/druid/blob/master/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxAggregatorFactory.java#L56-L60
Example when results are  0

perform a SUM aggregation function
on empty rows
druid.generic.useDefaultValueForNull=true

Query: 	 SELECT SUM(l1) FILTER(WHERE dim1 = 'non_existing') FROM druid.foo
Result: 0

Reference to explicitly set value in source code:
https://github.com/apache/druid/blob/master/processing/src/main/java/org/apache/druid/query/aggregation/LongSumAggregatorFactory.java#L56-L60
From the Druid documentation link:
Property:      druid.generic.useDefaultValueForNull
Description: When set to true, null values will be stored as ‘’ for string columns and 0 for numeric columns. Set to false to store and query data in SQL compatible mode.
Default:        true
The documentation does not explicitly mention what the expected results of an aggregation query would be but I expected the results from both of the above queries to be 0; not Long.MIN_VALUE in some instances.
Should the documentation be updated or should the code be fixed? I can put in either fix, but want to know which the community thinks is appropriate.

Why 0?  If there are no matching rows, shouldn't the result be that no rows are returned, and not a value?

@benkrug I don't have much context as to why the results are what they are but I think that is the intentions of the runtime parameter druid.generic.useDefaultValueForNull; return a non-null value (when set to True) or NULL (when set to False).
Whether the non-null value should be 0 or Long.MIN_VALUE is what I am trying to figure out. In Presto SQL... this is what I get:

This is from the documentation:
When set to true, null values will be stored as '' for string columns and 0 for numeric columns. Set to false to store and query data in SQL compatible mode.

It worries that the default value gives the non SQL expected value (Null).

Why 0? If there are no matching rows, shouldn't the result be that no rows are returned, and not a value?

We should consider all codepaths, You could be running this as a filtered aggregate along with other columns that do have values.
It looks like in the case of default value replacement the aggregates are initialized with sentinel values that help the user distinguish "no result" because the plan can't return "null" in this case.
I think the behaviour should be documented so that its doesn't come as a surprise to users.

Hi @damnMeddlingKid , @ericxiao251, (and sorry I missed the mailing list thread)
I did document this behavior recently in #11188, which includes a new column that lists out all of the initial aggregator values in both modes, https://github.com/apache/druid/blob/master/docs/querying/sql.md#aggregation-functions.
Whether or not this is the most correct thing for min/max to be doing I would consider this fair game to be up for debate. As mentioned in this thread already, in SQL compatible null handling mode these aggregators are initialized to the null value, and so not aggregating any rows will produce the expected null result, which in my personal view seems like the only correct thing to do in the case where filters do not match, but that doesn't work for default mode of course.
As alluded to by @abhishekagarwal87, I don't think we could make the 'default' mode min/max aggregators return 0 either without storing some additional information to distinguish not aggregating values (so probably no longer using the primitive numeric base aggregators, or perhaps always using the nullable version and just coercing to 0 later?), or by dropping the very end values and assuming Long.MIN_VALUE and Long.MAX_VALUE don't legitimately exist and translating them to 0 in a finalizer, which would allow them to keep using the numeric primitive aggregator base classes.
"default" null handling mode is often unintuitive I think, especially in SQL queries, and for the most part SQL compatible null handling mode should have behavior that is more consistent with other databases and with what you would expect in SQL. I would much prefer long term to deprecate and eventually remove default value mode, so that this case of no matches always returns null, but it seems reasonable to discuss adjusting the default values for default value mode until then.
I don't have a strong opinion on the default value for min/max... what is the motivation to have 0 instead of an unlikely value returned when nothing matches? Or is this just confusion since none of this was previously explicitly documented so the only reference was the documentation on the two null handling modes?

Or is this just confusion since none of this was previously explicitly documented so the only reference was the documentation on the two null handling modes?

@clintropolis ah I missed the new documentation you created! I think that is exactly it, the documentation on the druid homepage (not Github) doesn't explain clearly the expected behaviour for the various aggregate functions and their defaults. If we could link your new documentation somewhere in the druid website in this section that would be great: https://druid.apache.org/docs/latest/configuration/index.html#sql-compatible-null-handling. I can put a PR up for that :).

I don't think I fully understand the downstream complications of an aggregation returning a null value, so I also don't have strong opinions about what the value should be when we see a null value.
When an aggregate result overflows, what are the results? Would it be LONG.MIN_VALUE/LONG.MAX_VALUE for example? Would this be the only confusing scenario if we used the two min and max values?

If we could link your new documentation somewhere in the druid website in this section that would be great: https://druid.apache.org/docs/latest/configuration/index.html#sql-compatible-null-handling. I can put a PR up for that :).

That sounds like a good idea.

When an aggregate result overflows, what are the results? Would it be LONG.MIN_VALUE/LONG.MAX_VALUE for example? Would this be the only confusing scenario if we used the two min and max values?

Do you mean, like, if a SUM or COUNT overflows? We aren't doing anything special to handle or detect integer overflow in sums, so it would overflow in the usual way (things would wrap around to negative, since integer math in Java is signed).

Awesome, I'll put up a PR to reference the new documentations soon.

We aren't doing anything special to handle or detect integer overflow in sums, so it would overflow in the usual way (things would wrap around to negative, since integer math in Java is signed).

Got it, I'm still new to the project :).


Introduce postscreen?!

Hi there,
what about postscreen? I had it running for quite some time and at least the use of blacklists from different providers repelled almost all attacks on my server. I had around 1 a week. With this server I get several a day.
I would be able to work on a PR next year. 34C3 First! ;)
Anyone interested?
For those who don't know postscreen:
Some more info from the Postscreen readme:

Most email is spam, and most spam is sent out by zombies (malware on compromised end-user computers). Wietse expects that the zombie problem will get worse before things improve, if ever. Without a tool like postscreen(8) that keeps the zombies away, Postfix would be spending most of its resources not receiving email.
The main challenge for postscreen(8) is to make an is-a-zombie decision based on a single measurement. This is necessary because many zombies try to fly under the radar and avoid spamming the same site repeatedly. Once postscreen(8) decides that a client is not-a-zombie, it whitelists the client temporarily to avoid further delays for legitimate mail.
Zombies have challenges too: they have only a limited amount of time to deliver spam before their IP address becomes blacklisted. To speed up spam deliveries, zombies make compromises in their SMTP protocol implementation. For example, they speak before their turn, or they ignore responses from SMTP servers and continue sending mail even when the server tells them to go away.
postscreen(8) uses a variety of measurements to recognize zombies. First, postscreen(8) determines if the remote SMTP client IP address is blacklisted. Second, postscreen(8) looks for protocol compromises that are made to speed up delivery. These are good indicators for making is-a-zombie decisions based on single measurements.
postscreen(8) does not inspect message content. Message content can vary from one delivery to the next, especially with clients that (also) send legitimate email. Content is not a good indicator for making is-a-zombie decisions based on single measurements, and that is the problem that postscreen(8) is focused on.

As the first layer, postscreen(8) blocks connections from zombies and other spambots that are responsible for about 90% of all spam. It is implemented as a single process to make this defense as inexpensive as possible.
The second layer implements more complex SMTP-level access checks with Postfix SMTP servers, policy daemons, and Milter applications.
The third layer performs light-weight content inspection with the Postfix built-in header_checks and body_checks. This can block unacceptable attachments such as executable programs, and worms or viruses with easy-to-recognize signatures.
The fourth layer provides heavy-weight content inspection with external content filters. Typical examples are Amavisd-new, SpamAssassin, and Milter applications.

CU,
Alex

count me in !   sounds super cool


Fix typo

Learn Build status updates of commit 0fc5db9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/app-service/app-service-undelete.md
:white_check_mark:Succeeded

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

#sign-off


several recommendations

Hi,
please allow me to recommend / ask for several changes:

Installing python requirements via pip is not a good way. Modern distributions do not even allow system-wide pip installations. It's usually better to user the package manager and install e.g. python3-gps / python3-prometheus-client.
The docs contain instructions to clone your repository, yet you give the ssh link, which does not work. Please give the https link.
What do I have to do to bind the exporter service on "::" instead of "<IP_ADDRESS>". IPv4 is legacy, the default should be an IPv6 enabled scenario.
systemd units should be put in /etc/systemd/system rather than /lib/systemd/system.

Regards
Jochen

Many thanks Jochen, I've implemented your recommendations. Best - Brendan


Brew upgrade fails from 1.4.0 -> 1.5.0

terrascan version: 1.5.0
Operating System: Ubuntu 20.04

Description
Brew upgrade fails from 1.4.0 -> 1.5.0
What I Did
❯ brew update
Already up-to-date.
❯ brew upgrade
==> Upgrading 1 outdated package:
terrascan 1.4.0 -> 1.5.0
==> Upgrading terrascan 1.4.0 -> 1.5.0
==> Downloading https://ghcr.io/v2/linuxbrew/core/go/manifests/1.16.3_1
Already downloaded: /home/ubuntu/.cache/Homebrew/downloads/8d4559c979577332d0d6bf268f396bbb087a73e79ba35dd1b78938f120c03e64--go-1.16.3_1.bottle_manifest.json
==> Downloading https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:5897db2f754dd7889b7ed262db7fc2b5c1d43e4148d66f1c5fbedb16c4e4fa55
Already downloaded: /home/ubuntu/.cache/Homebrew/downloads/464da5eb5b3107404242441584f51bab39317fcff93daf8aa85ae81bcd4f6abf--go--1.16.3_1.x86_64_linux.bottle.tar.gz
==> Downloading https://github.com/accurics/terrascan/archive/v1.5.0.tar.gz
Already downloaded: /home/ubuntu/.cache/Homebrew/downloads/71759663e77b1616452dc5f244634fc4dc1a8cbfe2718a601941bf9d185b2de3--terrascan-1.5.0.tar.gz
Error: SHA256 mismatch
Expected: fee8fc66a76e13e5a2f211b58bdc73745e0b97b29dcb272504fca5edd3c47b5c
  Actual: e969960d9748e50125359097f5004c34ccf72e638dd06d10204a62468d57b260
    File: /home/ubuntu/.cache/Homebrew/downloads/71759663e77b1616452dc5f244634fc4dc1a8cbfe2718a601941bf9d185b2de3--terrascan-1.5.0.tar.gz
To retry an incomplete download, remove the file above.

I did try to remove the file as suggested via the output from Homebrew but receive the same error message on subsequent 'brew upgrade'.

Strange...WFM. Maybe some of the other team members can try. Here's what I get:
$ brew upgrade terrascan
==> Upgrading 1 outdated package:
terrascan 1.4.0 -> 1.5.0
==> Upgrading terrascan 1.4.0 -> 1.5.0
==> Downloading https://ghcr.io/v2/homebrew/core/terrascan/manifests/1.5.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/terrascan/blobs/sha256:e17888a492ace8be4e980409ed5c1fbef37f0487c95aeb95a4c3b37d04dbaa8d
==> Downloading from https://pkg-containers-az.githubusercontent.com/ghcr1/blobs/sha256:e17888a492ace8be4e980409ed5c1fbef37f0487c95aeb95a4c3b37d04dbaa8d?se=2021-04-27T01%3A25%3A00Z&sig=5bKkxZ
######################################################################## 100.0%
==> Pouring terrascan--1.5.0.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/terrascan/1.5.0: 6 files, 78.4MB

After looking closer, I realized this was due to an issue we had during the 1.5.0 release. Submitted the appropriate SHA to homebrew in https://github.com/Homebrew/homebrew-core/pull/76081. @theseanodell tested and this now works for him, so closing this issue.


Grammatical changes

Description

Please include the summary of the changes and which issue is fixed. Also, list relevant contexts, dependencies that are requested for this change.

Fixes issue #(issue-link )
Type Of Change

Please delete options that are not relevant and mark the ones that are relevant.

[ ] Bug Fix: Non breaking change which fixes an issue.
[ ] New feature: Non breaking change which adds a new functionality ( module, enviroment etc).
[ ] Breaking change - Fixes a feature that would cause existing functionality to not work as expected.
[ ] Documentation - Module or general documentation.

Briefly Explain Why This PR Should Be Merged.
How Has This Been Tested ?

Please describe how you ran the test after effecting your changes. Also, add snapshots or screenshots of the working change as proof-of-work.

Checklist:

[ ] I have created a supporting issue for this PR.
[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests passed locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Hi! Thanks for the corrections! I look forward to your future contributions.


Initial fix for non-detection of OmniPath cards

Mellanox drivers provide a particular file in the /sys pseudo-filesystem that not all InfiniBand drivers do, and OmniPath drivers don't. This means that the InfiniBand detection fails to detect these cards.
This naïve fix makes OmniPath cards detectable by making the InfiniBand detection happy to ignore whether that file is missing.
It could probably use a look in future from someone with more expertise (or at least, more documentation) on the specific info provided by the driver.
This fixes #341 and I think also the downstream issue in the node_exporter: https://github.com/prometheus/node_exporter/issues/2023.

Ah. I had to do some finicky rebasing + merging, and I think that's where the test failures come from -- I tested before but not after, foolishly. I'll fix it up.


Help! UST not arrived in my BSC wallet

I made this transaction more than 30mins ago and it hasn't been credited. I need help please
E7948B88E1E2EC344B3BC78DCF15070279A3BCBA6E3DE64DF6D7E5C95915491C

I made this transaction more than 30mins ago and it hasn't been credited. I need help please
E7948B88E1E2EC344B3BC78DCF15070279A3BCBA6E3DE64DF6D7E5C95915491C

Hello, A support ticket has been opened for you with Support ticket number NM29WH. You should talk to a Terra money Dev on the LIVE SUPPORT PAGE So that your issue can be looked into. Thank you. CLICK HERE

I made this transaction more than 30mins ago and it hasn't been credited. I need help please
E7948B88E1E2EC344B3BC78DCF15070279A3BCBA6E3DE64DF6D7E5C95915491C

Hello, A support ticket has been opened for you with Support ticket number HFJE677G. You should talk to a Terra money Dev on the LIVE SUPPORT PAGE So that your issue can be looked into. Thank you. CLICK HERE

Hello @tonearmed1   , A support ticket has been opened for you with Support ticket number TB7833HH. You should talk to a Terra money Dev on the [Live support page]. So that your transaction and issues can be looked into. Thank you. [CLICK HERE]

BE CAREFUL!!!! Scammers posing as Terra developers or help centers scam you out of your money!!! Ignore them!!!!!

This is the scam site (or one of them) https://station-terramoney.info/


Split Bill - Unequal split of the total amount entered on the BNP

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:

Launch New Expensify app
Tap on FAB button
Select Split Bill
Tap on the currency
Select MMK currency
Enter an amount in the big number pad page
Click on the Next button
Select a couple of attendees from the list
Tap the Next confirmation button

Expected Result:
In the final confirmation screen next to each attendee should be an equal split of the total amount entered on the BNP
Actual Result:
Split Bill is not shared equally when User select MMK currency
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.63-0
Reproducible in staging?: Y
Reproducible in production?: Y
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/f808b149-5b02-410c-baaf-75030c24fe7a
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Split Bill - Unequal split of the total amount entered on the BNP
What is the root cause of that problem?
If we are going to split the MMK 3 to 3 participants or split some money that currency's decimals is 0, currencyUnit is set as 1 and totalInCurrencySubunit is set as 3.
And Ideally amountPerPerson should be set as 0.75 but it is set as 1 because of Math.round().
https://github.com/Expensify/App/blob/1bdc5acc12f982b4f6e37bfadf9060ac3d2d3b3c/src/libs/IOUUtils.js#L15-L29
This is the first root cause.
And then minimumFractionDigits is the second root cause.
In the code below if the currency isn't RSD, the minimumFractionDigits is set as undefined. And when minimumFractionDigits is undefined, the actual number of fraction digits used depends on the currency.
So we couldn't get the correct value.
https://github.com/Expensify/App/blob/1bdc5acc12f982b4f6e37bfadf9060ac3d2d3b3c/src/libs/CurrencyUtils.js#L127C95-L119-L128
What changes do you think we should make in order to solve the problem?
We should remove the Math.round() in the code here.
      function calculateAmount(numberOfParticipants, total, currency, isDefaultUser = false) {
          const currencyUnit = Math.min(100, CurrencyUtils.getCurrencyUnit(currency));
-         const totalInCurrencySubunit = Math.round((total / 100) * currencyUnit);
+         const totalInCurrencySubunit = (total / 100) * currencyUnit;
          const totalParticipants = numberOfParticipants + 1;
-         const amountPerPerson = Math.round(totalInCurrencySubunit / totalParticipants);
+         const amountPerPerson = totalInCurrencySubunit / totalParticipants;
          let finalAmount = amountPerPerson;
          if (isDefaultUser) {
              const sumAmount = amountPerPerson * totalParticipants;
              const difference = totalInCurrencySubunit - sumAmount;
              finalAmount = totalInCurrencySubunit !== sumAmount ? amountPerPerson + difference : amountPerPerson;
          }
-         return Math.round((finalAmount * 100) / currencyUnit);
+         return (finalAmount * 100) / currencyUnit;
      }

And then also we should change the code here.
    return NumberFormatUtils.format(BaseLocaleListener.getPreferredLocale(), convertedAmount, {
        style: 'currency',
        currency,
-       minimumFractionDigits: currency === 'RSD' ? getCurrencyDecimals(currency) : undefined,
+       minimumFractionDigits: 2,
    });

What alternative solutions did you explore? (Optional)
None.

Thanks @hungvu193 am closing


⚠ Bofrost.fr has degraded performance

In a5ce40b, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1559 ms

Resolved: Bofrost.fr performance has improved in 331ed53 after 9 minutes.


Having trouble installing and running Night

I followed the tutorial on the GH Pages and installed with Replit. It still doesn't recognize the command night, and I cannot run any files. Any advice?

After building, in the shell tab, run these commands.
night_install_check() { read -p "REPL name: " name && cd && cd $name && cd night/build && export PATH="$(pwd):$PATH" && echo "Now it works, if it says command not found, run these commands again."; }
echo $PATH | grep "night/build" || night_install_check

When it asks for your repl name, use the repl name that shows up in the shell tab (without the ~/)

This is just for Replit, not other devices

Thank you, I'll try it out.

Thank you!