OCaml 5.3 support

Using OCaml 5.3, archetype fails to build with:
#=== ERROR while compiling archetype.1.5.2 ====================================#
# context              2.4.0~alpha1~dev | linux/x86_64 | ocaml-variants.5.3.0+trunk | file:///home/opam/opam-repository
# path                 ~/.opam/5.3/.opam-switch/build/archetype.1.5.2
# command              ~/.opam/5.3/bin/dune build -p archetype -j 1 @install
# exit-code            1
# env-file             ~/.opam/log/archetype-14-c06b60.env
# output-file          ~/.opam/log/archetype-14-c06b60.out
### output ###
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/ast.pp.ml --impl src/ast.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/ast.ml", line 588, characters 2-8:
# 588 |   effect          : instruction option;
#         ^^^^^^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/gen_decompile.pp.ml --impl src/gen_decompile.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/gen_decompile.ml", line 429, characters 7-13:
# 429 |   type effect = [
#              ^^^^^^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/gen_model.pp.ml --impl src/gen_model.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/gen_model.ml", line 1493, characters 48-54:
# 1493 |       match transaction.transition, transaction.effect with
#                                                        ^^^^^^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/model.pp.ml --impl src/model.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/model.ml", line 4196, characters 5-11:
# 4196 | type effect = Eadded of ident | Eremoved of ident | Eupdated of ident
#             ^^^^^^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/printer_ast.pp.ml --impl src/printer_ast.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/printer_ast.ml", line 1155, characters 98-104:
# 1155 |     (pp_option (fun fmt x -> Format.fprintf fmt "effect {@\n  @[%a@]@\n}@\n" pp_instruction x)) t.effect
#                                                                                ^^^^^^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/printer_pt.pp.ml --impl src/printer_pt.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/printer_pt.ml", line 935, characters 34-35:
# 935 | let pp_to fmt ((to_, when_, effect) : (lident * expr option * expr option)) =
#                                         ^
# Error: Syntax error
# (cd _build/default && .ppx/6275b1ab6a7c2471cccae8471136173f/ppx.exe --cookie 'library-name="archetype"' -o src/typing.pp.ml --impl src/typing.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
# File "src/typing.ml", line 6232, characters 74-75:
# 6232 | let for_effect ~(ret : A.type_ option) (kind : ekind) (env : env) (effect : PT.expr) =
#                                                                                ^
# Error: Syntax error

Thank you for reporting this issue!
I’ve just pushed a fix for it. It seems that effect has become a reserved word in ocaml, which was causing the build errors. Could you confirm if the fix resolves the problem on your end?
Additionally, do you think this warrants an immediate release, or can it wait for the next scheduled one? Let me know your thoughts.
Best regards,

I can confirm that the fix_ocaml5 branch compiles correctly with OCaml 5.3. Thanks!
Concerning a release, i would almost always encourage an early release as it allows more testing to happen early as well as allowing users to install your package using the default (latest) compiler in opam.
The Release Candidate of 5.3 is planned to be released next week.

Thank you for taking the time to verify compatibility with OCaml 5.3 and for reporting this issue.
We’ve submitted a pull request to fix the problem: https://github.com/ocaml/opam-repository/pull/27127.
I’ll close this issue as it’s now resolved. Thanks again for letting us know!


Naive question about tutorial

Hi,
Thanks for developing this package. Its very useful for people who wants to get started with machine learning in genomics.
I have a very naive question about Getting Started tutorial.  I would like to know whats the specific role of "deepsea_TF_intervals.txt" file in training the model. Are you using the deepsea_TF_intervals file to predict the CTCF binding sites ? or the model is trained on certain number of CTCF peaks and tries to predict the rest ? in this case whats the role of deepsea_TF_intervals ?
Thanks,
Goutham A
PS: Is there any google groups to ask some methodological or theoretical questions ?

Hi Goutham,
Thanks for your question! The intervals file is used to specify the intervals from which Selene draws samples. In this case, we are restricting the regions to sample from to the regions that contain at least one transcription factor (any TF, not just CTCF)--those regions will contain other chromatin features, so at the end of training the model should still "see" all chromatin features that it wants to predict. The restriction of intervals in this situation just speeds up the time it takes to train for this particular dataset (compared to sampling from the whole genome, which would cause the model to encounter more regions with only histones/very few chromatin features).
Hope that clears things up a bit - thank you for trying out the tutorial! Let us know if you have more questions/comments (if unrelated to the getting started tutorial, please feel free to post as a separate issue).
We don't currently have a google group, but I'll look into whether it makes sense to set one up! Thanks for the suggestion.

Thanks for the explanation. I am just getting started with ML.
At the begging of the tutorial, from point 2 "2. Load the training data and divide it into training and validation sets." Presumably "distinct_features.txt" is split into training and validation set and deepsea_TF_intervals.txt is a test set ? Is my understanding correct ?

No, deepsea_TF_intervals.txt is the regions from which we are allowed to sample. sorted_GM12878_CTCF.bed.gz should be split into training, validation, and testing sets. Could you link to the part in the tutorial description that you found confusing, in case we need to adjust the language there?
The key point to know is that sorted_GM12878_CTCF.bed.gz is a compressed BED file of all the "positive samples" that Selene will generate for training. That is, this is the list of regions for which we have the CTCF measurements. deepsea_TF_intervals.txt does not contain any information about whether a CTCF peak was present - it is only a list of regions from which we would like to draw positive or negative samples. The reason it is named deepsea_TF_intervals is because this is the list of regions sampled from in the original DeepSEA paper. I realize that the TF_intervals part is confusing, sorry about that!
As for the Google groups question you had in the initial post, we do not plan to create one at this time. Unfortunately, we do not have the bandwidth to support it currently, but maybe in the future.
(Apologies for the delayed response - I was out of office last week.)

@kathyxchen @gouthamatla Can this be closed?

can re-open if needed


New package: GorillaDevs.Ferium version 4.5.0

Pull request has been created with komac v2.0.3 :rocket:

Resolve: #137328

@stephengillie @ST-DDT @RokeJulianLockhart @theRookieCoder

/AzurePipelines run

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping @Exorcism0666, I'll get a notification.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

/AzurePipelines run

Does anybody know what the Validation-Executable-Error label refers to? It doesn't have a description.

Does anybody know what the Validation-Executable-Error label refers to? It doesn't have a description.
EDIT:

Validation-Executable-Error
During installation testing, the test was unable to locate the  primary application. Make sure the application installs correctly on all  platforms. If your application does not install an application, but  should still be included in the repository, add a comment to the pull  request to get the Windows Package Manager engineers to investigate.
Source: https://learn.microsoft.com/en-us/windows/package-manager/package/repository

Though I still don't understand what that means, because the installation sure works for me.

I think the application can't be installed on several architectures like x86, x64, arm64, amd64, etc.... (I may be talking nonsense, but anyway)

Automatic Validation ended with:

No errors to post.

(Automated response - build 706.)

@wingetbot waivers Add Validation-Executable-Error

Our validation pipeline was really designed with Windows Forms in mind, and gets confused by CLI applications. So it needs a human to verify.

@wingetbot waivers Add Validation-Executable-Error

Manual Validation ended with:

(Automated response - build 716.)

Manual Validation ended with:

5:02:57 PM:
2024-02-08 17:02:56.243 [FAIL] Installer failed security check. Url: https://github.com/gorilla-devs/ferium/releases/download/v4.5.0/ferium-windows-msvc.zip Result: 0x80004005

(Automated response - build 720.)

Hi @Exorcism0666,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.
(Automated response - build 720.)

Hi @Exorcism0666,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.
(Automated response - build 729.)

Automatic Validation ended with:

Installation failed with exit code -1978335187 2024-02-12 15:03:57.062 [FAIL] Installer failed security check. Url: https://github.com/gorilla-devs/ferium/releases/download/v4.5.0/ferium-windows-msvc.zip Result: 0x80004005 MSI (s) (00:9C) [15:03:39:058]: Windows Installer installed the product. Product Name: Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.38.33135. Product Version: 14.38.33135. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 0. MSI (s) (00:D8) [15:03:39:948]: Windows Installer installed the product. Product Name: Microsoft Visual C++ 2022 X64 Additional Runtime - 14.38.33135. Product Version: 14.38.33135. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 0. [0E9C:178C][2024-02-12T15:03:37]w363: Could not create system restore point, error: 0x80070422. Continuing...

(Automated response - build 729.)

@wingetbot run

Automatic Validation ended with:

No errors to post.

(Automated response - build 745.)

@wingetbot waivers Add Validation-Executable-Error


When the code will be released?

Thanks for the heads up, and haven't been updating the code, it will be posted by December!

Hi, our code has been uploaded to https://github.com/xilin1991/ClusterNet.


Add PostProcessingEffect allowing use of luma.gl screen space passes

Target Use case

luma.gl supports a growing list of effects (or passes). While some of those effects contain custom code that extracts depth buffers and modifies rendering, most of them are simple screen space effects that can be applied on the final framebuffer.
Allowing deck.gl users to import and apply such luma.gl effects would be quite cheap to implement and offer additional control of the visual output.
We could build an example with a drop-down list of effects that the user could try out.

Proposed feature
import {Deck, PostProcessingEffect} from<EMAIL_ADDRESS>import {BloomPass} from<EMAIL_ADDRESS>
new Deck({
 layers: ...,
 effects: [new PostProcessingEffect({
   pass: BloomPass,
   intensity: ...,
   radius: ...
 }),
 ...
});

Implementation:

The current rendering code would check if any PostProcessingEffect instances are specified before starting rendering.
If so it would render to a Framebuffer instead of the deck.gl framebuffer.
After rendering is done, start a luma.gl MultiPassRenderer with the resulting framebuffer and the passes specified in the effects.

Limitations

At this time we only support postprocessing on the entire screen, not per viewport.
At this time, we only support pure screen space passes from luma.gl

To Do List

[ ] Add label and assign to milestone
[ ] Coding
[ ] Doc update
[ ] What’s new update
[ ] Test

@jianhuang01


feat: get jx step populate working with google secrets manager

needs tests
/hold

/test all

/lgtm


refactor: Refactor QueryTable to use react-table [WIP]

SUMMARY
Re-reverts https://github.com/apache/incubator-superset/pull/10981, which was reverted due to the issue https://github.com/apache/incubator-superset/issues/11096. Uses custom TableView component based on react-table library.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

@zuzana-vej This PR is related to the issue https://github.com/apache/incubator-superset/issues/11096. Could you please verify that it works as you expect?
@graceguo-supercat In the same issue you reported that View results button doesn't work. Could you please verify that it works on this branch?

Codecov Report

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

@@            Coverage Diff             @@
##           master   #11216      +/-   ##
==========================================
- Coverage   61.49%   59.95%   -1.54%
==========================================
  Files         828      392     -436
  Lines       39145    24544   -14601
  Branches     3589        0    -3589
==========================================
- Hits        24073    14716    -9357
+ Misses      14892     9828    -5064
+ Partials      180        0     -180

Flag
Coverage Δ

#javascript
?

#python
59.95% <ø> (-1.07%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/databases/commands/create.py
31.91% <0.00%> (-59.58%)
:arrow_down:

superset/db_engine_specs/hive.py
53.90% <0.00%> (-30.08%)
:arrow_down:

superset/views/database/mixins.py
59.64% <0.00%> (-22.81%)
:arrow_down:

superset/db_engine_specs/presto.py
69.76% <0.00%> (-12.32%)
:arrow_down:

superset/db_engine_specs/mysql.py
79.59% <0.00%> (-12.25%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/databases/api.py
81.38% <0.00%> (-7.98%)
:arrow_down:

superset/databases/dao.py
94.11% <0.00%> (-5.89%)
:arrow_down:

superset/views/database/validators.py
78.94% <0.00%> (-5.27%)
:arrow_down:

... and 453 more

Continue to review full report at Codecov.

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


Failed to get module version from ${packageJsonPath}

patch-file  don't find package.json for module @quasar/quasar-app-extension-qoverlay
package.json location is<EMAIL_ADDRESS>npx patch-files@latest <EMAIL_ADDRESS>file:///home/zeph/.npm/_npx/c636e39941a2a9a5/node_modules/patch-files/src/lib/get-module-version.js:18
      `Failed to get module version from ${packageJsonPath}`
                                           ^

ReferenceError: packageJsonPath is not defined
    at getModuleVersion (file:///home/zeph/.npm/_npx/c636e39941a2a9a5/node_modules/patch-files/src/lib/get-module-version.js:18:44)
    at async createPatches (file:///home/zeph/.npm/_npx/c636e39941a2a9a5/node_modules/patch-files/src/create-patches.js:21:21)
    at async patchFiles (file:///home/zeph/.npm/_npx/c636e39941a2a9a5/node_modules/patch-files/src/patch-files.js:6:5)

Node.js v20.17.0

Thanks for raising this issue, I was able to reproduce it. The reason it fails is the file path resolution logic does not handle cases where npm module names have "@" in them.
I won't have time to work on this, but if you'd like to put up a PR with tests for this case I'll carve out time to review.

The fix for this has been released in 6.0.5, thank you! @Zeph33 would you like to be added to a CONTRIBUTORS.md file?

The fix for this has been released in 6.0.5, thank you! @Zeph33 would you like to be added to a CONTRIBUTORS.md file?

Yes, if you want


Don't expect magic byte in received addresses

Here's what I did:

Ran at2plus_test.py, let it fetch initial status, and left it running.
Launched that AirTouch2+ app on my phone, and used it to change the fan speed of my airtouch unit.

at2plus_test.py receives a status message and errors out:
Read payload of size 8: 55:55:9f:80:33:c0:00:12
ValueError: Unexpected address byte: expected 0xb0, got 0x9f
Failed reading header, trying again
Read payload of size 8: 23:00:00:00:00:0a:00:01
ValueError: Message header magic is invalid

There's several other 8-byte payloads that also, obviously, complain about invalid header magic. But put together they do look a lot like a valid AC status message (0x23).
The protocol documentation only says this about the address for received messages:

When receiving from AirTouch, last byte of address will be 0x80 or 0x90 (for Extended message).

I'm getting the impression the controller only uses an address of 0xb0 0x80 when it's replying to the client that requested the status, and a different address otherwise (perhaps 0x9f represents an automatic status message as a result of a status change?). The way I read the documentation though, the first byte of the address from the controller is undefined.
So this PR simply ignores the first byte of the address in received messages. Repeating the above test with this branch, after changing the fan speed the test script outputs this:
Read payload of size 8: 55:55:9f:80:35:c0:00:12
Read payload of size 18: 23:00:00:00:00:0a:00:01:10:12:50:c1:02:b2:00:00:80:00
Read payload of size 2: f0:bc
Handling status message

            id: 0
            power: 1
            mode: 1
            fan_speed: 2
            set_point: 18.0
            temperature: 19.0
            turbo: False
            bypass: False
            spill: False
            timer: True
            error: 0

        id: 0
        name: Daikin
        start_group: 0
        group_count: 4
        supported_modes: [<AcSetMode.AUTO: 0>, <AcSetMode.HEAT: 1>, <AcSetMode.DRY: 2>, <AcSetMode.FAN: 3>, <AcSetMode.COOL: 4>]
        supported_fan_speeds: [<AcFanSpeed.AUTO: 0>, <AcFanSpeed.LOW: 2>, <AcFanSpeed.MEDIUM: 3>, <AcFanSpeed.HIGH: 4>]
        setpoint_limits:
        cool:
        min: 16
        max: 16

        heat:
        min: 16
        max: 16

Updated AC 0 with value
            id: 0
            power: 1
            mode: 1
            fan_speed: 2
            set_point: 18.0
            temperature: 19.0
            turbo: False
            bypass: False
            spill: False
            timer: True
            error: 0

Finished handling status message

Worth noting that very shortly afterwards another status message is received by the test script, this time with an address of 0xb0 0x80. Huh.
Read payload of size 8: 55:55:b0:80:28:c0:00:12
Read payload of size 18: 23:00:00:00:00:0a:00:01:10:12:50:c1:02:b2:00:00:80:00
Read payload of size 2: cf:59

There's several other 8-byte payloads that also, obviously, complain about invalid header magic. But put together they do look a lot like a valid AC status message (0x23).

Because if it fails to read a header, it continues to try and read the next 8 bytes as a header, with the assumption that eventually it'll find the header of the next message. So yes, you'll see all the bytes of the 0x23 message as it goes through them, 8 at a time.

The way I read the documentation though, the first byte of the address from the controller is undefined

This could be true, they really don't like being explicit...
I don't like the idea of silently ignoring that byte, so far we've identified it's either 0xb0 (as the spec says) or 0x9f. I'd rather add it to a list of magic bytes we expect could go there (currently [0xb0, 0x9f]). I want the software to crash whenever something unexpected happens so people actually notice and have to complain to get it fixed, and then I can learn more about how it actually works. The most helpful and useful thing to do would be to understand when each of 0xb0 and 0x9f is sent in the responses and what it means. Could you please have a go at adding in some logs that print something like GOT 0xXX IN FIRST BYTE OF ADDRESS? Then you can play around with changing fan speed and setpoint from the test script, the app, the control panel etc... See if there's any pattern to when you get 0xb0 and when you get 0x9f. I'd rather be methodical and learn what's going on than just ignore the byte to make it work.

I don't like the idea of silently ignoring that byte

That's fair. I was going for being as precise as the documentation, but can totally see why you'd want to be more explicit. :)
No problem. I'll make sure I do some testing that exercises both group and AC status packets, from the test script, a different remote client and the app. And anything else I can think of in the next few days.

I'll come back to this after some more testing.


TextRender GUI is unavailable

this problem keep persisting even though i use Autohotkey version 2

It's not implemented at the moment due to lack of users

ooh, i see. hope that can be implemented

So to clarify, the TextRender GUI would be an application that generates TextRender code. Currently, you can use TextRender based off the code examples I've given.
If you'd like some examples, you can run the ones in the test folder.
If you need some idea of how to use TextRender, see the Quick Start here https://github.com/iseahound/TextRender/wiki/Quick-Start#textrender-tutorial

Likely won't be implemented as I don't like designing GUIs.


add strong name key

please add the strong name key

sorry, my mistake. i mean add .snk to the assembly.
How to: Sign an Assembly with a Strong Name

by the way, do you know any repository which can parse swagger.json and generate wcf code

what is the strong name going to fix in your case?

I understand you issue that you need strong name for the assembly.
You can download the src and create anyname.snk file.
Then open properties -> go to Signing tab --> Check Signing the assembly --> add path for anyname.snk.
Build project.
Now you have Strong Name = True in DLL.

@samomin46  thanks for your reply.


Decide where to host the website (vercel or github pages probably?)

Look specifically to host an Astro project.

@Sergih28
GitHub Pages stands out due to its simplicity, cost-free setup, and seamless integration with Git repositories. Especially suited for static websites with minimal JavaScript, it offers an uncomplicated environment for projects requiring straightforward hosting without usage limitations. While Vercel provides more extensive language and framework support, GitHub Pages' ease of use and compatibility with simple static sites makes it a strong contender for initial hosting considerations.


boards: arm: twr_ke18f: Add pinctrl dts properties

Add pinctrl-0 properties for configuration of peripherals like UARTs, I2C, SPI, FTMs, etc.  These settings are based on what is defined in the board/pinmux.c file.
Signed-off-by: Henrik Brix Andersen<EMAIL_ADDRESS>

Looks like we are missing pinctrl-0 for:

adc0
dac0

Not sure if you wanted pinctrl-0 for analog pins (which are configured for analog by default) or not, since I did not see any in #34144. I have added the analog pinctrl-0 properties now.

@galak Anything blocking this?

@galak Anything blocking this?

Nope, reviewing it now.

Do we need to add:
&ftm2 {
   pinctrl-0 = <...>;
}

@henrikbrixandersen ping on my &ftm2 question.

@henrikbrixandersen ping on my &ftm2 question.

You are right. I wonder if it would be best to just add that (and move the PWT pinctrl-0 property) to the tests/drivers/pwm/pwm_loopback/boards/twr_ke18f.overlay file?

@galak I have moved the sample-specific pinctrl-0 properties to the sample overlays.


StarRocks driver will not load: superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: StarRocksEngineSpec

using superset 3.0.2 with superset quickstart single image via https://superset.apache.org/docs/quickstart
2023-12-05 10:50:10 <IP_ADDRESS> - - [05/Dec/2023:18:50:10 +0000] "GET /health HTTP/1.1" 200 2 "-" "curl/7.88.1"
2023-12-05 10:50:29 CommandException
2023-12-05 10:50:29 Traceback (most recent call last):
2023-12-05 10:50:29   File "/app/superset/databases/commands/test_connection.py", line 133, in run
2023-12-05 10:50:29     with database.get_sqla_engine_with_context(
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/contextlib.py", line 119, in __enter__
2023-12-05 10:50:29     return next(self.gen)
2023-12-05 10:50:29   File "/app/superset/models/core.py", line 423, in get_sqla_engine_with_context
2023-12-05 10:50:29     yield self._get_sqla_engine(
2023-12-05 10:50:29   File "/app/superset/models/core.py", line 440, in _get_sqla_engine
2023-12-05 10:50:29     self.db_engine_spec.validate_database_uri(sqlalchemy_url)
2023-12-05 10:50:29   File "/app/superset/db_engine_specs/base.py", line 1920, in validate_database_uri
2023-12-05 10:50:29     sqlalchemy_uri.get_driver_name(), set()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 624, in get_driver_name
2023-12-05 10:50:29     return self.get_dialect().driver
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 679, in get_dialect
2023-12-05 10:50:29     entrypoint = self._get_entrypoint()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint
2023-12-05 10:50:29     cls = registry.load(name)
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
2023-12-05 10:50:29     raise exc.NoSuchModuleError(
2023-12-05 10:50:29 sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:starrocks
2023-12-05 10:50:29
2023-12-05 10:50:29 The above exception was the direct cause of the following exception:
2023-12-05 10:50:29
2023-12-05 10:50:29 Traceback (most recent call last):
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
2023-12-05 10:50:29     rv = self.dispatch_request()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
2023-12-05 10:50:29     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
2023-12-05 10:50:29     return f(self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 127, in wraps
2023-12-05 10:50:29     raise ex
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 121, in wraps
2023-12-05 10:50:29     duration, response = time_function(f, self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/utils/core.py", line 1526, in time_function
2023-12-05 10:50:29     response = func(*args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/utils/log.py", line 255, in wrapper
2023-12-05 10:50:29     value = f(*args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 93, in wraps
2023-12-05 10:50:29     return f(self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/databases/api.py", line 908, in test_connection
2023-12-05 10:50:29     TestConnectionDatabaseCommand(item).run()
2023-12-05 10:50:29   File "/app/superset/databases/commands/test_connection.py", line 178, in run
2023-12-05 10:50:29     raise DatabaseTestConnectionDriverError(
2023-12-05 10:50:29 superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: StarRocksEngineSpec
2023-12-05 10:50:29 2023-12-05 18:50:29,545:WARNING:superset.views.base:CommandException
2023-12-05 10:50:29 Traceback (most recent call last):
2023-12-05 10:50:29   File "/app/superset/databases/commands/test_connection.py", line 133, in run
2023-12-05 10:50:29     with database.get_sqla_engine_with_context(
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/contextlib.py", line 119, in __enter__
2023-12-05 10:50:29     return next(self.gen)
2023-12-05 10:50:29   File "/app/superset/models/core.py", line 423, in get_sqla_engine_with_context
2023-12-05 10:50:29     yield self._get_sqla_engine(
2023-12-05 10:50:29   File "/app/superset/models/core.py", line 440, in _get_sqla_engine
2023-12-05 10:50:29     self.db_engine_spec.validate_database_uri(sqlalchemy_url)
2023-12-05 10:50:29   File "/app/superset/db_engine_specs/base.py", line 1920, in validate_database_uri
2023-12-05 10:50:29     sqlalchemy_uri.get_driver_name(), set()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 624, in get_driver_name
2023-12-05 10:50:29     return self.get_dialect().driver
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 679, in get_dialect
2023-12-05 10:50:29     entrypoint = self._get_entrypoint()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint
2023-12-05 10:50:29     cls = registry.load(name)
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
2023-12-05 10:50:29     raise exc.NoSuchModuleError(
2023-12-05 10:50:29 sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:starrocks
2023-12-05 10:50:29
2023-12-05 10:50:29 The above exception was the direct cause of the following exception:
2023-12-05 10:50:29
2023-12-05 10:50:29 Traceback (most recent call last):
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
2023-12-05 10:50:29     rv = self.dispatch_request()
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
2023-12-05 10:50:29     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
2023-12-05 10:50:29   File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
2023-12-05 10:50:29     return f(self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 127, in wraps
2023-12-05 10:50:29     raise ex
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 121, in wraps
2023-12-05 10:50:29     duration, response = time_function(f, self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/utils/core.py", line 1526, in time_function
2023-12-05 10:50:29     response = func(*args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/utils/log.py", line 255, in wrapper
2023-12-05 10:50:29     value = f(*args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/views/base_api.py", line 93, in wraps
2023-12-05 10:50:29     return f(self, *args, **kwargs)
2023-12-05 10:50:29   File "/app/superset/databases/api.py", line 908, in test_connection
2023-12-05 10:50:29     TestConnectionDatabaseCommand(item).run()
2023-12-05 10:50:29   File "/app/superset/databases/commands/test_connection.py", line 178, in run
2023-12-05 10:50:29     raise DatabaseTestConnectionDriverError(
2023-12-05 10:50:29 superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: StarRocksEngineSpec
2023-12-05 10:50:29 <IP_ADDRESS> - - [05/Dec/2023:18:50:29 +0000] "POST /api/v1/database/test_connection/ HTTP/1.1" 422 265 "http://localhost:8080/databaseview/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"
2023-12-05 10:50:41 <IP_ADDRESS> - - [05/Dec/2023:18:50:41 +0000] "GET /health HTTP/1.1" 200 2 "-" "curl/7.88.1"

manually installed starrocks driver.
atwong@Albert-CelerData ~ % docker exec -it superset bash
superset@8a414c46c3de:/app$ pip install starrocks
Defaulting to user installation because normal site-packages is not writeable
Collecting starrocks
  Downloading starrocks-1.0.5-py3-none-any.whl (10 kB)
Requirement already satisfied: mysqlclient<3,>=2.1.0 in /usr/local/lib/python3.9/site-packages (from starrocks) (2.1.0)
Requirement already satisfied: sqlalchemy-utils<0.39,>=0.38.3 in /usr/local/lib/python3.9/site-packages (from starrocks) (0.38.3)
Requirement already satisfied: sqlalchemy<2,>=1.4 in /usr/local/lib/python3.9/site-packages (from starrocks) (1.4.36)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.9/site-packages (from sqlalchemy<2,>=1.4->starrocks) (3.0.1)
Installing collected packages: starrocks
Successfully installed starrocks-1.0.5

[notice] A new release of pip is available: 23.0.1 -> 23.3.1
[notice] To update, run: pip install --upgrade pip

there was no instruction on how to load additional database drivers.   Had to use the docker-compose version.


L3-dependent L7 rule causes all traffic on that L4 port at the selected endpoint to be redirected to the proxy

With the following rules:
            [&{EndpointSelector:{"matchLabels":{"any:foo":""}} Ingress:[{FromEndpoints:[{"matchLabels":{"any:foo":""}}] FromRequires:[] ToPorts:[{Ports:[] Rules:<nil>} {Ports:[{Port:80 Protocol:TCP}] Rules:0x1a6e400}] FromCIDR:[] FromCIDRSet:[] FromEntities:[] aggregatedSelectors:[]}] Egress:[] Labels:[] Description:},
            &{EndpointSelector:{"matchLabels":{"any:foo":""}} Ingress:[{FromEndpoints:[] FromRequires:[] ToPorts:[{Ports:[{Port:80 Protocol:TCP}] Rules:<nil>}] FromCIDR:[] FromCIDRSet:[] FromEntities:[] aggregatedSelectors:[]}] Egress:[] Labels:[] Description:},

The Rules pointer above is:
          &api.L7Rules{
                  HTTP: []api.PortRuleHTTP{
                          {Method: "GET", Path: "/"},
                  },
                  L7Proto: ParserTypeHTTP.String(),
          }

I would expect the above to generate an L3-dependent L7 BPF key to redirect traffic from "foo" on port 80 to the proxy, plus a plain L4 BPF key for other traffic on port 80 which does not redirect to the proxy. However, as of master today (presumably including Cilium 1.4 and earlier as well), the plain L4 key also redirects to the proxy, meaning that all L4 traffic on that port is redirected unnecessarily.
Furthermore, the traffic on that L4 port from sources not described in the policy should also be allowed, however there are no "allow all" L7Rules generated:
filter.L7RulesPerEp:
map[{"matchLabels":{"any:foo":""}}:{HTTP:[{Path:/ Method:GET Host: Headers:[]}] Kafka:[] DNS:[] L7Proto:http L7:[]}])

This would result in L7 deny when the L4-only rule should allow the traffic, for example from the world to the same port (port 80 in the example above).
The core problem is that in the L4PolicyMap layer, the two rules above are folded together into the same L4Filter. When generating the proxy redirects, we check if l4.IsRedirect() to determine whether to redirect all traffic on that port to the proxy, regardless of the l3 selectors for the L7 redirects:
https://github.com/cilium/cilium/blob/714ebac9d6dd8ce6fe9110ae7a3c2e7261002523/pkg/endpoint/bpf.go#L162
...
https://github.com/cilium/cilium/blob/714ebac9d6dd8ce6fe9110ae7a3c2e7261002523/pkg/endpoint/bpf.go#L171
...
https://github.com/cilium/cilium/blob/714ebac9d6dd8ce6fe9110ae7a3c2e7261002523/pkg/endpoint/bpf.go#L211-L220
Possible regression.
Related: #3509

The commented-out tests in #7411 reveal this bug.


Migrating from react

I'm trying to migrate to preact. Using typescript. I want to import react like I was importing before: import * as React from 'react';. My tsconfig.json looks like this:
{
    "compilerOptions": {
        "jsx": "react",
        "rootDir": ".",
        "target": "es5",
        "lib": ["es2015", "dom"],
        "module": "commonjs",
        "sourceMap": true,
        "experimentalDecorators": true,
        "typeRoots": [],
        "types": [],
        "baseUrl": "",
        "paths": {
            "react": ["node_modules/preact"],
            "react-dom": ["node_modules/preact"]
        }
    },
    "files": [
        "./src/index.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

There is @types/react in my project. I want to ignore react types and use preact.d.ts. The error I see is:  File ".../dist/preact.d.ts" is not a module.

Also @karaxuna, to help your specific problem, you can just let Webpack do the aliasing and let TypeScript continue to think it's using React under the hood.

Agreed - much better to let webpack do the aliasing, since then it will be applied properly to modules within node_modules that import React.


Use speaking artifact name

I suggest to change the name of the ouput files which is library-x.y.z.* at the moment. This is not very self explanatory when I have a list of dependencies such as on VersionEye. To change the name just define the following property in the build.gradle of the library module:
archivesBaseName = "aboutlibraries"

This will the produce the following output files:
~/.gradle/caches/modules-2/files-2.1/com.mikepenz.aboutlibraries/aboutlibraries/x.z.y/hash/aboutlibraries-x.y.z.pom
~/.gradle/caches/modules-2/files-2.1/com.mikepenz.aboutlibraries/aboutlibraries/x.z.y/hash/aboutlibraries-x.y.z.aar
~/.gradle/caches/modules-2/files-2.1/com.mikepenz.aboutlibraries/aboutlibraries/x.z.y/hash/aboutlibraries-x.y.z-sources.jar

The Gradle dependency would be this:
compile 'com.tundem.aboutlibraries:aboutlibraries:x.y.z'

I know it kind of redundant since the string "aboutlibraries" already appears in the group id. I cannot tell what people agree on as best practice - I did not duplicate the archivesBaseName in my library. You might consider renaming the group id as well in a future release.

:+1:


Migrate to Airship v15.2.0

Details

Upgrades our Airship SDK version to v15.2.0

Bumps our minimum iOS version to 13 (for airship)
Bumps our target Android API level to 33 (for airship)
Bumps @react-native-camera-roll/camera-roll to ~5.0.1 (for Android 33)

Fixed Issues
$ Part of https://github.com/Expensify/Expensify/issues/259220
Tests
Only iOS and Android need to be tested
Regression test notifications

Do a fresh install of NewDot
Log in
Verify you're prompted to accept a permission for notifications
Accept the permission
Send a message to your account from a chat you do not have open (you must select a different chat first)
Verify a notification displays for the message

Regression test attachments on Android

Log into NewDot on Android
Send a .mp4, .mp3 and .jpg attachment to the iOS user
Verify the attachments are uploaded successfully

Regression test file downloads on iOS

Log into NewDot on iOS
Download the attachments that were received
Verify the attachments were successfully downloaded to your camera roll

Offline tests
None
QA Steps
Same as Tests

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover 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 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 / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] 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)
[ ] I followed proper code patterns (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 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

[ ] 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:

[ ] 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 correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] 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 followed the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] 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
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] 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(themeColors.componentBG)

[ ] 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 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 author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Weirdly enough, it looks like external media access is still working on Android 13 without any changes even though the android migration guide says we should be using READ_MEDIA_IMAGES, READ_MEDIA_VIDEO AND READ_MEDIA_AUDIO permissions. I'll still put in a change to request those permissions anyways.

Alright on further investigation, permission checks for READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE do nothing on Android 13 and always return never_ask_again. I've added a check to skip that on that version.

Building an AdHoc version of the app now to test.

Use the links below to test this build in android and iOS. Happy testing!

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/16360/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/16360/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/16360/NewExpensify.dmg
https://16360.pr-testing.expensify.com

Yes, will do it in some time.

Reviewer Checklist

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

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] 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)
[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 checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] 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
[x] I verified proper code patterns were followed (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 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] 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 correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 verified that this PR follows the guidelines as stated in the Review Guidelines
[x] 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)
[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] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] 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)
[x] 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)
[x] All JSX used for rendering exists in the render method
[x] 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

[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(themeColors.componentBG)

[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 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.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

iOS
https://user-images.githubusercontent.com/85645967/228632270-b28c0aa5-4447-4838-91b4-895248c7fb91.mp4

Android
https://user-images.githubusercontent.com/85645967/228629648-dd5c85d3-a6fc-48a4-b582-36d83a4b8bb1.mp4
https://user-images.githubusercontent.com/85645967/228629686-e87fcf28-ce04-4647-b40c-110aac91adfd.mp4

Install iOS from this link shows integrity could not be verified error.
Android link works and tests well!

Thanks for reviewing @Santhosh-Sellavel. Just confirming that we handled the iOS testing internally, which explains the missing video.

Lets make sure to test this one thoroughly once on staging.

: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.

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.2.93-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
failure ❌

Testing staging v1.2.93-4

Android ✅

iOS ⏳

🚀 Deployed to production by https://github.com/thienlnam in version: 1.2.93-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This PR caused a regression, the NotificationResponseEvent signature has been changed: PushReceivedEvent (notification) is replaced by PushPayload (pushPayload).


some stdlib packages have no documentation

Some of the standard library packages have no documentation. We should have some kind of descriptive text for all of the standard library packages.
The following packages are missing documentation:

capsicum
collections
encode
math
strings
term

This issue could be broken out into one issue per package to make it easier to farm out the work.

I can take care of this.

@agtugo is there any assistance we can provide? if you have questions on what things do, please ask in the beginners help stream on the Pony Zulip.

Not at the moment. Thanks for the link and the help. It's my first time in a open source project but I have experience in the private sector.


Edge case for loader refetch errors (offline mode?)

Ok, this one's tricky and I'm not sure what do about it. I got an email from one of my users with a situation they ran into on my site:

I just recently pulled up a ton of blog posts to read offline on a flight which worked just fine...until I scrolled to the bottom of the page. Here is an example of the error:
500 - Oh no, something did not go well.
"/blog/how-to-give-rendering-control-to-users-with-prop-getters" is currently not working. So sorry.
Context:

I loaded up a bunch of blog posts pre-flight in Safari
Turned off Wifi
Verified I still could access the previously loaded page
Closed laptop and awaited flight
Aboard flight started reading said posts
Reads to the bottom...and...
Haha! No more blog post for you! Look at this nice error page instead!!

Here's what I said to them:

The reason this happens is because when you reach the bottom of the article it marks it as "read" in the database. This is a mutation and Remix automatically refetches all data on the page to keep everything up-to-date (like the team rankings which changed because of your read). When that data fetch fails, remix renders my error boundaries which gives you the Kent grimacing 😬 face 😅

Like I said, I'm not sure what to do about this, but I think what I might want is the ability to say: "go ahead and refetch the data, but if it fails, then ignore it" ?? maybe? Definitely open to other ideas here. I'm not sure whether a change is needed in remix...
Thinking about the use case more holistically, if I wanted to build an offline supported version of my app, I would need some way to tell Remix to not attempt to make network requests when the user is offline.

Are there any plans for Remix apps to leverage Service Workers? This case could then be handled by responding to the app that the request was received and 200 All Good, while the SW deals with the reconnection/resending in the background.

Are there any updates on this issue? I am studying remix, and my only concern so far is that it might not be suitable for PWA apps that needs some offline functionalities (yet).

I am using fetcher to load data periodically on a page to refresh it with latest information from the server. I am not sure how to handle network errors in this case. Currently if the browser goes offline while refresh is in progress, the error thrown is caught by error boundary, but in this case I would still like to show user the stale data. I am not sure if I am doing things in the "Remix way" so apologies in advance. Thanks.


pattern jumps in Mothership FTW - Strobe / TiTaN not correct

http://www.a1k0n.net/code/jsxm/#mothershipftw-stroberev2.xm
Something isn't quite right with the Dxx or Bxx command here; might be an order of operations issue.

ohhhhhhhhh, the command parameter for Dxx is actually decimal (BCD). Huh!

fixed by 89e6b9c554cea3ec5a09c2928bffc5fd3c8e25a2


Disable school and programs by default

Disable school and program by default
Addresses these issues:  #65 #64

Removed restriction on accessing config APIs. Now users have full access to config APIs.
Updated menu items visibility based on the configuration file. Certain menu items are now hidden or shown based on the configuration settings.
Adjusted admin columns visibility to align with the configuration file. Admin columns are now dynamically hidden or shown based on the configuration settings.

Screen shots
Before

After

Have you tested this ?
YES
Breaking changes

None

@OlivierJM this Pr is building on my local but not in production

@brianmuks can we also dynamically remove it from lookups so that we don't fetch extra data we don't need to display.

Sure!

@brianmuks can we also dynamically remove it from lookups so that we don't fetch extra data we don't need to display.

@OlivierJM this is now done !

Okay, fine


An error in iconv() : incomplete multibyte character

I am trying to learn php-imap-client.
I am on PHP 7.2.3.
I just got this error:
iconv(): Detected an incomplete multibyte character in input string in C:\Apache24\htdocs\ssilence\ImapClient\IncomingMessage.php on line 589

We do not officially support PHP5+

Yes we support php 5


content: buckets of milk and cavefish

What has been done?

added item interactions for the following items: cavefish, buckets of milk

Has your code been documented?
Yes, where necessary

overall looks good, thanks for the contribution to the project.


Remove redundant parameters from conv_general_dilated_p

The lhs_shape and rhs_shape parameters were left over from a very early JAX version, when the transpose rule did not have access to the input avals.
Still up for discussion: do we need defbilinear2 or should we just modify defbilinear and update the handful of other places where it's called?

Still up for discussion: do we need defbilinear2 or should we just modify defbilinear and update the handful of other places where it's called?

The latter option sgtm!


feat: add topup auction

The main design flaw I see here is that the starting bid must always be above the minimum price (next_bid_min in validate_bid()). As this is a charity auction, we should probably allow people to place bids below the starting price. Eventually, even smaller bids on an expensive NFT will add up.
To achieve this, I suggest introducing general_data.reserve_price. In the case of English, reserve_price will be set to next_bid_min, so the first bid must always meet the reserve price (bots)
In the case of topup, we can accept bids below the reserve_price and use next_bid_min for the bid step calculation. Once the auction closes, we can transfer the frozen funds if the aggregated bids >= reserve price, otherwise unfreeze the funds
wdyt?

Generally introducing a reserve price is a good idea and could be a nice stimulus for user activity. On the other hand lacking a reserve price is definitely not a design flaw. I think of it as an additional feature we can easily implement. I'll create an issue for later so this doesn't get lost

Another missing feature is beneficiary_address - since this is for charity, we could provide the option to set a different address which will be receive the funds. This address will be publicly visible, and will help to a certain extent in preventing the risk of the seller keeping the funds for himself.
But this could also be an issue for future implementation, if you prefer it that way.
I still need to check tests before final review

Another missing feature is beneficiary_address - since this is for charity, we could provide the option to set a different address which will be receive the funds. This address will be publicly visible, and will help to a certain extent in preventing the risk of the seller keeping the funds for himself.
But this could also be an issue for future implementation, if you prefer it that way.
I still need to check tests before final review

yes, makes absolute sense. please add that to the issue I created (or create a new one)


fix: Updated readme Cumulative Excess Plot: case

Test change in readme file and see if it reflects on deployed site.

@chen-chen-stat and @aemabe - the readme.rmd runs fine on my laptop/desktop, without any hardcoding :-)

@Lovemore-Gakava For some reason, some checks failed. It seems that it has something to do with renv.

@Lovemore-Gakava For some reason, some checks failed. It seems that it has something to do with renv.

Let's address this in a new issue branch #74


User updates status for multiple recommendations/actions/indicators

As a user
I want to update the status for a group of recommendations/actions/indicators I selected from the (filtered) recommendations/actions/indicators list
So I don't have to repeatedly update the status for each and single one of them

This issue was moved to dumparkltd/hr-nmrf-client#41


Can not change locale for menubar constructed via XMLList within declarations

Changing local for menubar has no affect whicih content is defined in XMLList including resources.
It behaves different from flex.
live test : click
related with #545
When you click the button the locale is going to change.
You have to define resource file and add the tokens

en : switchLocale = Switch Locale
tr : switchLocale = Dili Değiştir

Test Case Source code :
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.apache.org/royale/spark"
			   xmlns:mx="library://ns.apache.org/royale/mx"
			   paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
			   creationComplete="init()"
			   height="100%" width="100%"
			   >

	<fx:Metadata>
		[ResourceBundle("messages")]
	</fx:Metadata>

	<fx:Script>
		<![CDATA[

			import mx.resources.ResourceManager;
			import mx.collections.XMLListCollection;
			import mx.events.FlexEvent;
			import mx.events.MenuEvent;

			[Bindable]
			public var menuBarData2:XMLListCollection = new XMLListCollection();

			protected function creationCompleteHandler2(event:FlexEvent):void
			{

				var roleInfo:String = "ADMIN";

				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData2.source = menuDataXMLList;

				menuBarData2.refresh();

			}

			protected function itemClickHandler(event:MenuEvent):void {
			}

			private function init():void {
				resourceManager.localeChain = ["en_US"];
			}

			private function changeLocale():void {
				var locale:String = resourceManager.localeChain[0];
				if(resourceManager.localeChain[0] != "en_US") {
					resourceManager.localeChain = ["en_US"];
				} else {
					resourceManager.localeChain = ["tr_TR"];
				}
			}

			private function dummyMethod(event:MouseEvent):void {
			}

		]]>
	</fx:Script>

	<fx:Declarations>
		<fx:XMLList id="menuDataXMLList">
			<menuitem label="label-1">
				<menuitem label="label-1-1"/>
				<menuitem label="label-1-2"/>
			</menuitem>
			<menuitem label="{resourceManager.getString('messages', 'switchLocale')}" id="admin" >
				<menuitem label="label-2-1"/>
				<menuitem label="label-2-2"/>
				<menuitem label="{resourceManager.getString('messages', 'switchLocale')}" id="admin" />
			</menuitem>
		</fx:XMLList>
	</fx:Declarations>

	<s:layout>
		<s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" paddingTop="10" paddingBottom="20" />
	</s:layout>

	<s:Button label="{resourceManager.getString('messages', 'switchLocale')}" click="changeLocale()"/>

	<mx:MenuBar id="menuBar_fx_Declarations" width="100%" dataProvider="{menuBarData2}" horizontalCenter="0"
				itemClick="itemClickHandler(event)"
				labelField="@label"
				creationComplete="creationCompleteHandler2(event)"/>
</s:Application>

It isn't obvious to me why the code in creationCompleteHandler2 doesn't just set the XMLList in the single XMLListCollection in menuBarData2.  What is the purpose of these lines?
				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData2.source = menuDataXMLList;

				menuBarData2.refresh();

You are right for asking because it does not have meaning here. And it also is not related with the bug.
This is the original if you are interested in, I did not worked on converting because not necessary.
			public function applyFilters():void {

				var roleInfo:String = ModelLocator.getInstance().currentUser.roleinfo;

				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				tmpXmlList = RoleFilters.deleteRoledMenuItems(tmpXmlList, roleInfo);

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData.source = menuDataXMLList;

				// trace("Refreshing menubar...");
				menuBarData.refresh();

			}

Does it have an affect on the bug @aharui ?

The Flash runtime had a way of detecting changes to XML nodes.  The browser runtimes do not and I'm not really sure we want to emulate that in Royale.  Two other options are:

make sure setting XMLListCollection.source triggers a CollectionEventKind.RESET and that the emulation classes respond to it
Create an XMLBinding class that watches some object for an event and performs some action on another object.

However, I am not able to understand if there is something important about the way your code runs that would cause those strategies to not work.  For example, if you must work on copies of the XMLList then listening to the original XMLList won't help.  Or if you must change the XMLListCollection source instead of swapping in an entirely new XMLListCollection.
On the other hand, if you already have a change event and/or code running via the change event, it might be quicker for you to just modify that code.  For example, I assume your code knows when the locale changes, and it can fetch the XMLList, apply filters and put the result in a new XMLLIstCollection and replace the old one.

@aharui I wonder if you had time to look to the running case ? Or am I spending time for preparing live case for nothing ?
If so tell me so it may save really pretty much of my time.
For your comments, putting an xml logic into language change function is not a correct approach regarding the coding logic so not an option.
I am going to work on the 1 and 2 to understand and see what can i do and let you know.
Thanks.

I set   the dataprovider of the menubar to directly xml variable menuDataXMLList without manipulating it in any creation function to see if it will refresh after language change and I can say no. Am I missing something ?
<mx:MenuBar id="menuBar_fx_Declarations" width="100%" dataProvider="{menuDataXMLList}" horizontalCenter="0"
				itemClick="itemClickHandler(event)"
				labelField="@label"
				/>

I would not choose remote debugging unless I could not reproduce the problem locally.  I think most people want the simplest test case possible that can run locally when debugging.  In fact, I would prefer that your test cases do not use resources unless it truly is a bug in the ResourceManager.  I think the ResourceManager is now working and using resources just adds complexity to the test case.  I have to take time to simplify the test case as I do not have the resource bundle handy.  It is often simple enough to test just by replacing strings at runtime.  Here is the simplified test case I used:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.apache.org/royale/spark"
			   xmlns:mx="library://ns.apache.org/royale/mx"
			   paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
			   creationComplete="init()"
			   height="100%" width="100%"
			   >

	<fx:Script>
		<![CDATA[

			import mx.resources.ResourceManager;
			import mx.collections.XMLListCollection;
			import mx.events.FlexEvent;
			import mx.events.MenuEvent;

			[Bindable]
			public var menuBarData2:XMLListCollection = new XMLListCollection();

			protected function creationCompleteHandler2(event:FlexEvent):void
			{

				var roleInfo:String = "ADMIN";

				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData2.source = menuDataXMLList;

				menuBarData2.refresh();

			}

			protected function itemClickHandler(event:MenuEvent):void {
			}

			private function init():void {
			/*
				resourceManager.localeChain = ["en_US"];
				*/
			}

			[Bindable]public var switchLocale:String = "Switch Locale";

			private function changeLocale():void {
			/*
				var locale:String = resourceManager.localeChain[0];
				if(resourceManager.localeChain[0] != "en_US") {
					resourceManager.localeChain = ["en_US"];
				} else {
					resourceManager.localeChain = ["tr_TR"];
				}*/
				switchLocale = "Locale Switched";

				var newDP:XMLListCollection = new XMLListCollection(menuDataXMLList);
				menuBarData2 = newDP;

			}

			private function dummyMethod(event:MouseEvent):void {
			}

		]]>
	</fx:Script>

	<fx:Declarations>
		<fx:XMLList id="menuDataXMLList">
			<menuitem label="label-1">
				<menuitem label="label-1-1"/>
				<menuitem label="label-1-2"/>
			</menuitem>
			<menuitem label="{switchLocale}" id="admin" >
				<menuitem label="label-2-1"/>
				<menuitem label="label-2-2"/>
				<menuitem label="{switchLocale}" id="admin" />
			</menuitem>
		</fx:XMLList>
	</fx:Declarations>

	<s:layout>
		<s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" paddingTop="10" paddingBottom="20" />
	</s:layout>

	<s:Button label="{switchLocale}" click="changeLocale()"/>

	<mx:MenuBar id="menuBar_fx_Declarations" width="100%" dataProvider="{menuBarData2}" horizontalCenter="0"
				itemClick="itemClickHandler(event)"
				labelField="@label"
				creationComplete="creationCompleteHandler2(event)"/>
</s:Application>

The attempt you made to use dataProvider="{menuBarData2}" would not work because, as I mentioned above, XML in the browser does not have change notification.  IOW, changing nodes in the XML does not dispatch events that the binding system can listen for.  Changing locales should (if it doesn't that would be worth fixing).  So the goal is to run your applyFilter method when the locale changes, which could be as simple as calling applyFilter from the changeLocale method.

So in the simplified test case I posted, I just replaced the XMLListCollection in changeLocale.  I think that's the simplest workaround for you.  I think you could modify your applyFilter to assign an XMLListCollection, but maybe there is something I'm missing.  Other approaches will take more time to implement.

fwiw I did think of something I might explore at some point as a potential solution for the XML notifier issue, that could have zero weight (which is what we want for regular XML use, I don't think we should be checking in each area the changes things by default whether we need to notify) unless it was needed.
I wondered about the function notifier function doing some funky non-actionscript stuff to wrap the current instance methods like the way Language closure does, or (possibly better) to apply an upgraded prototype (which wraps the original prototype methods) to the current instance before it returns the notifier function. It might be possible to emulate it and still have it work for type checks etc, but I need to investigate it.

If by zero-weight you mean that we wouldn't modify the XML and XMLList source code, that is certainly possible in JS.  IMO, the level of difficulty might change depending on whether you want a general purpose solution or just to handle the common scenario of "a bunch of XML nodes changed, now update a list".
The reason I'm suggesting a workaround for now is that I think the workaround is likely to be simpler yet just as effective as a fancier solution.  Even though a few nodes changed, it could be less code to just replace the entire XMLListCollection rather than propagate change nodes from each changing node.
While I'm thinking of it, in case it helps if you do work on it, there are a few places where it would be most tempting to try to add XML change notification.  Inside XMLListCollection is an XMLListAdapter which I think manages XML notification in Flash as well.  It could actually replace the setAttribute and setChild methods with wrappers and dispatch some sort of notification.
The other place is in Binding.  We don't currently have an XMLWatcher, but we could put one together that replaces setAttribute and setChild on a node.

I am really having difficulties while trying to understand you @aharui  but not because of the spoken language

I would not choose remote debugging unless I could not reproduce the problem locally. I think most people want the simplest test case possible that can run locally when debugging.

I prepared the live demo of the simplest test case. Not the real application. Because you told me that the cases I provided are not working. Is it possible you did think that I wanted you to debug real application ?

In fact, I would prefer that your test cases do not use resources unless it truly is a bug in
the ResourceManager. I think the ResourceManager is now working and using resources just adds complexity to the test case. I have to take time to simplify the test case as I do not have the resource bundle handy. It is often simple enough to test just by replacing strings at runtime.

The bug is related with resources alex. My problem is not changing value of xml in a function. Resources must do exist in test case. If I remove resources and "simplify" the case I did in the source, this is a different bug not mine.

So in the simplified test case I posted, I just replaced the XMLListCollection in changeLocale. I think that's the simplest workaround for you. I think you could modify your applyFilter to assign an XMLListCollection, but maybe there is something I'm missing. Other approaches will take more time to implement.

As I said before, putting xml manipulation in to the "changelocale" is thing I will never want to see in my design.  You do not have any idea about the real application architecture. There are lots of components related which each other and classes. Change locale is somewhere in one component ant the menu is another component somewhere in hierarchy.
I think there is a misunderstanding here. This issue is not related with changing XML and refreshing the component according to the new xml. If there is bug with XML modification it should be discussed under different topic.
My issue is related with the locale change.

If you have an issue with locale change, then create a test case I can run locally that uses a bundle I have (like one from Flex) that exposes the issue.  If it is notifications, it should not be necessary to involve MenuBar or XML.  Maybe a string in a Label.
Almost all of the past examples you've sent that involve resources have been simplified by using string substitution.  So that's what I did to this example, and sure enough, the MenuBar did not update, so I proposed a workaround.
I don't recall asking you to host live examples of these scenarios.  I would only look at live examples if I could not reproduce a problem locally because locally I have all of the source so I know there aren't any side-effects from other modules and can re-compile with a change if needed.
For your TitleWindow issue, I just looked at the call stack and could see that it was another case of s:TextArea.   I'm not going to first try remote debugging.  It just isn't efficient for me.  I'm sorry you don't like the way I work.  You are welcome to tell me not to help you anymore and get someone else to help you.

This test case indicates to me that locale changes do in fact update the XML.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.apache.org/royale/spark"
			   xmlns:mx="library://ns.apache.org/royale/mx"
			   paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
			   creationComplete="init()"
			   height="100%" width="100%"
			   >
	<fx:Metadata>
		[ResourceBundle("containers")]
	</fx:Metadata>

	<fx:Script>
		<![CDATA[

			import mx.resources.ResourceManager;
			import mx.collections.XMLListCollection;
			import mx.events.FlexEvent;
			import mx.events.MenuEvent;

			[Bindable]
			public var menuBarData2:XMLListCollection = new XMLListCollection();

			protected function creationCompleteHandler2(event:FlexEvent):void
			{

				var roleInfo:String = "ADMIN";

				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData2.source = menuDataXMLList;

				menuBarData2.refresh();

			}

			protected function itemClickHandler(event:MenuEvent):void {
			}

			private function init():void {
				resourceManager.localeChain = ["en_US"];
			}

			[Bindable]public var switchLocale:String = "Switch Locale";

			private function changeLocale():void {
				var locale:String = resourceManager.localeChain[0];
				if(resourceManager.localeChain[0] != "en_US") {
					resourceManager.localeChain = ["en_US"];
				} else {
					resourceManager.localeChain = ["es_ES"];
				}

				trace(menuDataXMLList.toXMLString());

				/*
				var newDP:XMLListCollection = new XMLListCollection(menuDataXMLList);
				menuBarData2 = newDP;*/

			}

			private function dummyMethod(event:MouseEvent):void {
			}

		]]>
	</fx:Script>

	<fx:Declarations>
		<fx:XMLList id="menuDataXMLList">
			<menuitem label="label-1">
				<menuitem label="label-1-1"/>
				<menuitem label="label-1-2"/>
			</menuitem>
			<menuitem label="{resourceManager.getString('containers', 'noColumnsFound')}" id="admin" >
				<menuitem label="label-2-1"/>
				<menuitem label="label-2-2"/>
				<menuitem label="{resourceManager.getString('containers', 'noRowsFound')}" id="admin" />
			</menuitem>
		</fx:XMLList>
	</fx:Declarations>

	<s:layout>
		<s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" paddingTop="10" paddingBottom="20" />
	</s:layout>

	<s:Button label="{resourceManager.getString('containers', 'noRowsFound')}" click="changeLocale()"/>

</s:Application>

Does this not output the changed strings for you?

I pushed some changes to that changing XMLListCollection.source will update the MenuBar.  I'm not clear on what your restrictions are in terms of updating the XMLListCollection, but updating the source in this example works.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.apache.org/royale/spark"
			   xmlns:mx="library://ns.apache.org/royale/mx"
			   paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
			   creationComplete="init()"
			   height="100%" width="100%"
			   >
	<fx:Metadata>
		[ResourceBundle("containers")]
	</fx:Metadata>
	<fx:Declarations>
			<mx:XMLListCollection id="menuBarData2" source="{menuDataXMLList}"/>
	</fx:Declarations>

	<fx:Script>
		<![CDATA[

			import org.apache.royale.events.ValueChangeEvent;
			import mx.resources.ResourceManager;
			import mx.collections.XMLListCollection;
			import mx.events.FlexEvent;
			import mx.events.MenuEvent;

			protected function creationCompleteHandler2(event:FlexEvent):void
			{

				var roleInfo:String = "ADMIN";

				/*
				var tmpXmlList:XMLListCollection = new XMLListCollection();
				tmpXmlList.source = menuDataXMLList;

				menuDataXMLList = tmpXmlList.source.copy();

				menuBarData2.source = menuDataXMLList;

				menuBarData2.refresh();
				*/

			}

			protected function itemClickHandler(event:MenuEvent):void {
			}

			private function init():void {
				resourceManager.localeChain = ["en_US"];
				resourceManager.addEventListener("change", xmlbinding);
			}

			private function xmlbinding(event:Event):void
			{
				dispatchEvent(ValueChangeEvent.createUpdateEvent(this, "menuDataXMLList", null, menuDataXMLList));
			}

			[Bindable]public var switchLocale:String = "Switch Locale";

			private function changeLocale():void {
				var locale:String = resourceManager.localeChain[0];
				if(resourceManager.localeChain[0] != "en_US") {
					resourceManager.localeChain = ["en_US"];
				} else {
					resourceManager.localeChain = ["es_ES"];
				}

				trace(menuDataXMLList.toXMLString());

			}

			private function dummyMethod(event:MouseEvent):void {
			}

		]]>
	</fx:Script>

	<fx:Declarations>
		<fx:XMLList id="menuDataXMLList">
			<menuitem label="label-1">
				<menuitem label="label-1-1"/>
				<menuitem label="label-1-2"/>
			</menuitem>
			<menuitem label="{resourceManager.getString('containers', 'noColumnsFound')}" id="admin" >
				<menuitem label="label-2-1"/>
				<menuitem label="label-2-2"/>
				<menuitem label="{resourceManager.getString('containers', 'noRowsFound')}" id="admin" />
			</menuitem>
		</fx:XMLList>
	</fx:Declarations>

	<s:layout>
		<s:VerticalLayout gap="10" paddingRight="10" paddingLeft="10" paddingTop="10" paddingBottom="20" />
	</s:layout>

	<s:Button label="{resourceManager.getString('containers', 'noRowsFound')}" click="changeLocale()"/>

	<mx:MenuBar id="menuBar_fx_Declarations" width="100%" dataProvider="{menuBarData2}" horizontalCenter="0"
				itemClick="itemClickHandler(event)"
				labelField="@label"
				creationComplete="creationCompleteHandler2(event)"/>
</s:Application>

In the example, I use a custom event listener to listen for the locale change and fake an update event on the XMLList, but the way the XMLList is set in the MenuBar is much simpler than what I think you are doing.  This example was written to prove that the updating source would work, and not to work in your usage. So now you should have the option of replacing the XMLListCollection or updating the XMLListCollection.source.

I checked the sample case and can confirm that after adding the fake event handler locale change refreshes menu with the new locale but this time tree crashes.

You can use #562 as sample case


安装不上。

What steps will reproduce the problem?
mongodb  is not installed ??
What is the expected result?
What do you get instead?
Additional info

Q
A

Fecshop version
1.1.3.?

PHP version

Operating system

提供的信息太少了吧？mongo没装就装上呀，一步步按照文档来

使劲装


Fix mutation legend and annotations for unsorted samples

Recently I provided a bug fix for wrongly assigned annotations if samples are resorted. I forgot to properly handle the situation when samples are unsorted. This is now fixed.
Furthermore, the legend for Genomic Alterations was not correctly displayed for patches with width or height other than 1. For example, a rectangle of width=0.5 and height=0.5 was not centered in the background rectangle. This is now also fixed.
Please increase the version number, because otherwise pip won't install the newer version unless a "force" argument is added to force a reinstallation.

I didn't increase the version number since 0.3.0 has never been released to PyPI. The current master branch has a minor issue with legends and I will try to fix it and then release asap. Thanks!


Consider switching to Roboto font on the website instead of IBM Plex Sans

Duplicates
Latest version

[X] I have searched the existing issues
[X] I have tested the latest version

Summary 💡
I believe that Roboto is a better option as it is more readable and visually appealing than IBM. Additionally, Roboto is already downloaded on the website for the components, which means you do not have to download an extra font.
Examples 🌈
No response
Motivation 🔦
No response

Hey @MrHBS, appreciate you opening the issue! It's important to separate entities here, though: Material UI is one of our libraries (the flagship, most famous one) that implements Material Design v2, which has Roboto as the official typeface. That's an optional download still because we want to allow flexibility for our dev community. On the flip side, IBM Plex Sans is the typeface of choice for the MUI company branding (website + documentation). You don't need to download it at all!
I think I do get where you're coming from though and am seeing an opportunity for clarifying what I've just shared further to more people in a scalable way. I'm not sure though if I keep this issue close for the time being or not, as there isn't necessarily one change that will resolve this concretely.
Does that helps for now?


Remote Name now prints user@address.

run integration tests

run integration tests

great sorry for mistake  and thx for fixing


[#3853]  Add MapUtils

Codecov Report

Merging #3854 into master will decrease coverage by 0.03%.
The diff coverage is 26.66%.

@@            Coverage Diff             @@
##           master    #3854      +/-   ##
==========================================
- Coverage   40.98%   40.94%   -0.04%
==========================================
  Files        2187     2188       +1
  Lines       71063    71063
  Branches     9763     9762       -1
==========================================
- Hits        29123    29097      -26
- Misses      39184    39205      +21
- Partials     2756     2761       +5

Impacted Files
Coverage Δ

...ootstrap/plugin/jdbc/bindvalue/BindValueUtils.java
88.09% <0%> (+4%)
:arrow_up:

...tor/CassandraStatementExecuteQueryInterceptor.java
0% <0%> (ø)
:arrow_up:

...cluster/zookeeper/ZookeeperClusterDataManager.java
65.3% <100%> (ø)
:arrow_up:

...r/zookeeper/ZookeeperClusterDataManagerHelper.java
78.18% <100%> (ø)
:arrow_up:

...a/com/navercorp/pinpoint/common/util/MapUtils.java
50% <50%> (ø)

...npoint/rpc/server/SimpleServerMessageListener.java
80% <0%> (-20%)
:arrow_down:

...p/pinpoint/rpc/client/WriteFailFutureListener.java
56.25% <0%> (-18.75%)
:arrow_down:

...vercorp/pinpoint/rpc/packet/ServerClosePacket.java
52% <0%> (-16%)
:arrow_down:

...vercorp/pinpoint/rpc/packet/ClientClosePacket.java
55.55% <0%> (-11.12%)
:arrow_down:

...rp/pinpoint/rpc/server/PinpointServerAcceptor.java
84.96% <0%> (-5.27%)
:arrow_down:

... and 6 more

Continue to review full report at Codecov.

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


Change bindgen version from 0.59.2 to 0.57.

The toolchain version currently used for the IceCap build does not
accept the code generated by bindgen 0.59.2.

I'm now not sure that this change is required. I couldn't reproduce the failure after make clean and rm */Cargo.lock just now, though I thought I had before. Is there any state that survives through  make clean and rm */Cargo.lock?

I don't think rm */Cargo.lock is sufficient to remove all state, as we have deeply nested directory trees.  You should use make clean-cargo-lock which removes all lock files instead.
Nevertheless, I think there's no harm in merging this, even if it apparently is no longer strictly needed, right?

Let's wait for a second opinion, though, before merging this.  @mathias-arm are you happy with the version bump?

Second opinion obtained.  +1+1 = +1 reached, merging.

I don't think rm */Cargo.lock is sufficient to remove all state, as we have deeply nested directory trees. You should use make clean-cargo-lock which removes all lock files instead.

make clean-cargo-lock seems to just do rm -f */Cargo.lock:
https://github.com/veracruz-project/veracruz/blob/59864749459683d240b617d7396b653a0200b157/workspaces/Makefile#L56

Ah, I was thinking of the old build system where the top-level Makefile used to recursively call clean-cargo-lock for various system components.  With the move to workspaces, it seems the situation has become simpler...


Collect data while loging in to store in database

I am trying to collect some of the data from the steam profile as the user logs into store in the database to control different users permissions. I am having some issues getting the data to write to the database, I am editing inside of the 'steamauth.php' file. thank you in advanced!
edited code

Sorry to resolve my issue but would like to leave my findings for other people, the edits are made in the same file, same block.


hai i was able to coonect to my steve webserver using postman but still my esp32 is not connecting

          hai i was able to coonect to my steve webserver using postman but still my esp32 is not connecting

my serial monitor is giving me errror
[AO] info (.pio/libdeps/esp32dev/ArduinoOcpp/src/ArduinoOcpp/Core/OcppSocket.cpp:31): Disconnected
can someone help please
Originally posted by @rathourcode in https://github.com/matth-x/ArduinoOcpp/issues/138#issuecomment-1527323090

Sorry for jumping in later. Continuing the discussion in #138 and closing this.


Errors in bt_music_sender_write example

There seem to be a couple of errors in the bt_music_sender_write:
You define StarWars10_raw and StarWars10_raw_len in your sketch, but your example data is called StarWars30!
Please check your example data sample again. On my test system (M5Stack M5Paper and M5 Atom Echo) your original example data plays twice as fast as it should.
After following your instructions to create my own stereo 44100 16-bit PCM sample data (from a random star wars ringtone sample) in audacity and converting with xxd, my sample plays at the right speed as TwoChannelSoundData.

I corrected the compile errors


Callouts - Visual design

Callouts

@shea-fitz Has anything changed for this?

@shea-fitz Has anything changed for this?

Very few changes

looks like: icon styling and rounded borders?

@MaximumCrash Mind if I take this one?

@isaacpearl as soon as #112 is completed you're clear to start this one. If I catch up I'll take it.

@isaacpearl I've caught up. I'll take this off your hands.

Closed by #244


Proposing alternative static factory methods, enforcing nullability instead of throwing errors and making ErrorOr objects truely immulable

Hi,
I've played around with this library a bit and liked it very much. However, I had a few issues, so I decided to make a few tweaks and propose them here.
I understand if some of those decisions are made by design, and those changes are irrelevant to you, but personally, I would prefer them. Therefore, I would be happy if some of the following ideas could be included in the future.
Adding static factory methods
This is the most important to me as I prefer having methods always return the most abstraction possible (e.g. IEnumerable instead of List, if I do not intend to have the User modify the array): It is impossible to return ErrorOr objects with an interface as TValue at the moment. This is due to implicit operators not supporting interfaces. Therefore the following would not compile:
IEnumerable<string> enumerable = new List<string>();
ErrorOr<IEnumerable<string>> errorOrEnumerable = enumerable;

My proposal would be supporting a static factory method like this in addition to the current implicit conversions (of course, making constructors public would solve the problem too):
IEnumerable<string> enumerable = new List<string>();
ErrorOr<IEnumerable<string>> errorOrEnumerable = ErrorOr.Ok(enumerable);

Enforcing nullability
To me, it feels a bit strange that a library about flow control and avoiding exceptions throws exceptions everywhere.
Therefore, using the nullability features of c#, it would be possible to force the user to use an IsError before a nullable value is compiled. Example:
if (errorOrWithError.IsError)
{
    IReadOnlyList<Error> errors = errorOrWithError.Errors;
    Error error = errorOrWithError.FirstError;
}
else
{
    Person result = errorOrWithError.Value;
}

would compile, but without the if check, we cannot get to the Properties (using the MemberNotNullWhen attribute). The exceptions should probably be kept to avoid confusion in projects without enabled nullable types.
Making ErrorOr immutable
To me, the ErrorOr object should be immutable as it is only a vessel for errors or a value. For example, a list of errors should be created independent of creating an ErrorOr object; after returning the created ErrorOr object, it should not be able to add or remove errors anymore. Therefore, I propose making the ErrorOr struct read-only, using Error[] internally and exposing only an IReadOnlyList for Errors and in the Switch / Match statements.

Hi @OleRoss, thanks for taking the time and looking into the library! I like some of your ideas. I'm super busy ATM but hopefully I'll have time in a week or two to take a deeper look and play around with it. I'll be sure to let you know and pick your brain when I do 🤙

Hey @OleRoss, I liked some of your suggestions. I've added an ErrorOr.From method (a rename of your ErrorOr.Ok). I've also updated the implementation of retrieving the errors so that it doesn't throw exceptions. I agree that returning a read-only list is a safer approach. However, it would break the fluent syntax of simply returning a list and having the implicit converter turn it into an ErrorOr object and require returning ErrorOr.Fail. Take a look at the PR I just completed, and let me know what you think!

Hi @amantinband,
thanks for taking a closer look :)
I do like the idea of returning errors instead of exceptions, it is really consistent in the context of this library.
The Error.From is perfect for me.
Also, thanks for thinking about the immutability, but I understand your reasons for fluently which prevent this.
I think this answers my completion, thanks again!


OpenCV dependnecies update.

Looks like CMake issue: https://stackoverflow.com/questions/74162633/problem-compiling-from-source-opencv-with-mvsc2019-in-64-bit-version


Move sql_compound_identifier_to_expr  to ExprPlanner

Which issue does this PR close?

Part of #11473
Rationale for this change

Moving the planning of compound_identifier to ExprPlanner, this change does not include planning for compound_identifier in outer query

What changes are included in this PR?

Moved the planning of compound expression to ExprPlanner
Updated testcases & example to to add CoreFunctionPlanner as User defined planner.

Are these changes tested?
Existing test cases
cargo test

Are there any user-facing changes?
No

Weired that checks are failing, same are passing for me locally. Need to investigate

@jayzhan211 I apologize for any confusion caused by submitting multiple reviews. I was mistaken in believing I had the latest changes from the main branch. This revision incorporates the most recent updates.


client: add timeout for scanRegions

Signed-off-by: luancheng<EMAIL_ADDRESS>
What problem does this PR solve?
current pdTimeout(3s) is too small for backup & restore Scenario
so need set timeout outside
What is changed and how it works?
add timeout argument in scanRegions function
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Code changes
Side effects

Breaking backward compatibility

Related changes

Need to cherry-pick to the release branch
Need to update the documentation
Need to be included in the release notes

Codecov Report

Merging #1895 into master will decrease coverage by 0.16%.
The diff coverage is 60%.

@@            Coverage Diff             @@
##           master    #1895      +/-   ##
==========================================
- Coverage   77.96%   77.79%   -0.17%
==========================================
  Files         163      163
  Lines       16330    16333       +3
==========================================
- Hits        12731    12706      -25
- Misses       2597     2621      +24
- Partials     1002     1006       +4

Impacted Files
Coverage Δ

client/client.go
68.37% <60%> (-1.52%)
:arrow_down:

pkg/testutil/operator_check.go
88.88% <0%> (-11.12%)
:arrow_down:

pkg/metricutil/metricutil.go
90.62% <0%> (-9.38%)
:arrow_down:

server/schedulers/shuffle_hot_region.go
57.6% <0%> (-3.27%)
:arrow_down:

pkg/etcdutil/etcdutil.go
88.4% <0%> (-2.9%)
:arrow_down:

server/member/leader.go
78.06% <0%> (-2.05%)
:arrow_down:

server/grpc_service.go
57.32% <0%> (-1.73%)
:arrow_down:

pkg/btree/btree.go
86.14% <0%> (-0.81%)
:arrow_down:

server/tso/tso.go
81.34% <0%> (+2.23%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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

/merge


Does Azure Repos support LFS authentication over SSH?

[Enter feedback here]
Doc says:

Azure Repos currently does not support using SSH in repos with Git LFS tracked files.

As I understand this, Azure Repos does dot support git-lfs-transfer over SSH. But it's not clear to me, if Azure Repos support HTTPS authentication over SSH for LFS git-lfs-authenticate? I.e. a user does not need to enter extra HTTPS credentials when Git remote URL is over SSH?

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

ID: 033d16c9-e917-4339-24c3-8d8389dac0da
Version Independent ID: 01484745-a314-e496-931d-00b7fe52be30
Content: Work with large files in your Git repo - Azure Repos
Content Source: docs/repos/git/manage-large-files.md
Service: azure-devops-repos
Sub-service: azure-devops-repos-git
GitHub Login: @vijayma
Microsoft Alias: vijayma

@xmedeko -- Ondrej, thank you for your question.  Please consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

@vijayma -- Vijay, please look into this issue.


OpenSUSE Builds (by CI)

Add OpenSUSE to CI for

[ ] build testing, and
[ ]  release packaging

We are testing for different ubuntu versions as well as fedora, so i think that OpenSUSE builds are unnecessary thus closing this one