Fixes to cucumber step identification

The cucumber reporter was showing incorrect stacktraces in situations such as when using Background steps.
In order to correct this problem, the "combined" (background + normal) set of steps for a given scenario must be stored when the TestCasePrepared event arrives from Cucumber, and then used to resolve the actual sourceLocation of the needed step, based on the index of the step being executed.
Once the sourceLocation is discovered, the actual step definition must be looked up from the gherkin feature document, rather than the scenario, because steps such as Background ones aren't contained within the current scenario's pickle.
Fixes #111
Fixes #112

@BorisOsipov can you double check this change?

I had quick check and for me it still fails on Scenario Outline
ERROR: Cannot read property 'steps' of undefined
phantomjs
Type    at CucumberEventListener.onTestCasePrepared (C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:199:44)
    at emitOne (events.js:120:20)
    at EventEmitter.emit (events.js:210:7)
    at TestCaseRunner.emit (C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:51:27)
    at TestCaseRunner.emitPrepared (C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:79:10)
    at TestCaseRunner.<anonymous> (C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:154:10)
    at Generator.next (<anonymous>)

See feature file example https://github.com/BorisOsipov/wdio-cucumber4-issue/blob/master/passing.feature

I'll take a quick look and add a test case for this.
Sent from TypeApp
On 17 May 2018, 10:42, at 10:42, Boris Osipov<EMAIL_ADDRESS>wrote:

I had quick check and for me it still fails on Scenario Outline
ERROR: Cannot read property 'steps' of undefined
phantomjs
Type    at CucumberEventListener.onTestCasePrepared
(C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:199:44)
   at emitOne (events.js:120:20)
   at EventEmitter.emit (events.js:210:7)
at TestCaseRunner.emit
(C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:51:27)
at TestCaseRunner.emitPrepared
(C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:79:10)
at TestCaseRunner.<anonymous>
(C:\Temp\wdio-cucumber4-issue\node_modules\wdio-cucumber-framework\node_modules\cucumber\src\runtime\test_case_runner.js:154:10)
   at Generator.next (<anonymous>)

See feature file example
https://github.com/BorisOsipov/wdio-cucumber4-issue/blob/master/passing.feature
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/webdriverio/wdio-cucumber-framework/pull/125#issuecomment-389808772

Still fails for me<EMAIL_ADDRESS>ERROR: Cannot read property 'type' of undefined
chrome
Type    at CucumberReporter.getUniqueIdentifier (integrationtests\node_modules\wdio-cucumber-framework\build\reporter.js:303:23)
    at CucumberReporter.handleBeforeStep (integrationtests\node_modules\wdio-cucumber-framework\build\reporter.js:102:27)
    at emitMany (events.js:127:13)
    at CucumberEventListener.emit (events.js:204:7)
    at CucumberEventListener.onTestStepStarted (integrationtests\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:159:18)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:191:7)
    at TestCaseRunner.emit (integrationtests\node_modules\cucumber\src\runtime\test_case_runner.js:51:27)
    at TestCaseRunner.<anonymous> (integrationtests\node_modules\cucumber\src\runtime\test_case_runner.js:135:10)
    at Generator.next (<anonymous>)
    at Generator.tryCatcher (integrationtests\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (integrationtests\node_modules\bluebird\js\release\generators.js:97:49)
    at TestCaseRunner.<anonymous> (integrationtests\node_modules\bluebird\js\release\generators.js:201:15)
    at TestCaseRunner.aroundTestStep (integrationtests\node_modules\cucumber\lib\runtime\test_case_runner.js:210:22)
    at integrationtests\node_modules\cucumber\src\runtime\test_case_runner.js:202:18
    at Generator.next (<anonymous>)
------------------------------------------------------------------
[chrome #0-0] Session ID:<PHONE_NUMBER>436d08e2f841f802dfdcc7
[chrome #0-0] Spec: integrationtests\src\features\checkPoint\checkpoint.feature
[chrome #0-0] Running: chrome
[chrome #0-0]
[chrome #0-0] [CHECKPOINT]
[chrome #0-0]
[chrome #0-0]     Check elements
[chrome #0-0]       !! I am logged as<EMAIL_ADDRESS>with password "tutu"
[chrome #0-0]       !! I click on the element "#validate-button"
[chrome #0-0]       !! I expect that the attribute "autofocus" from element "#code1" is "true"
[chrome #0-0]       !! I expect that element ".codes-input input" does appear exactly "6" times
[chrome #0-0]       !! I expect that element "body" contains the text "Code de ..."
[chrome #0-0]
[chrome #0-0]         Errors
[chrome #0-0]
[chrome #0-0]             Cancel
[chrome #0-0]
[chrome #0-0]
[chrome #0-0] 5 pending (6s)
[chrome #0-0]

Scenario:
Feature: [CHECKPOINT]

  Background:
    Given I execute special request "/url"

  Scenario: Check elements
    When I am logged as<EMAIL_ADDRESS>with password "tutu"
    And I click on the element "#validate-button"
    Then I expect that the attribute "autofocus" from element "#code1" is "true"
    And I expect that element ".codes-input input" does appear exactly "6" times
    And I expect that element "body" contains the text "Code de ..."

  Scenario: Errors
    When I click on the element "#validate-button"
    And I click on the element "#validate-button"
    Then I expect that element "body" contains the text "Veuillez saisir ..."

    When I set "9" to the inputfield "#code1"
    And I set "9" to the inputfield "#code2"
    And I set "9" to the inputfield "#code3"
    And I set "9" to the inputfield "#code4"
    And I set "9" to the inputfield "#code5"
    And I set "9" to the inputfield "#code6"
    And I click on the element "#validate-button"
    And I wait on element "#globalError" for 10000ms to be visible
    And I pause for 1000ms
    Then I expect that element "body" contains the text "Le code ..."

    When I set "t" to the inputfield "#code1"
    Then I expect that element "#code1" is empty

  Scenario: Cancel
    When I click on the element "#validate-button"
    And I click on the element "#validate-button"
    And I click on the element "#cancel-button"
    Then I expect that the url is "http://url"

I am the only one to reproduce the problem ?

I have the same issue as @BorisOsipov:
ERROR: Cannot read property 'steps' of undefined
chrome
Type    at CucumberEventListener.onTestStepPrepared (integrationtests\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:186:44)
    at emitOne (events.js:101:20)
[...]
------------------------------------------------------------------
[chrome #0-16] Session ID: a9758084af4f82afac38fda1bac8d97a
[chrome #0-16] Spec: integrationtests\src\features\login\connectWithAccessToken.feature
[chrome #0-16] Running: chrome
[chrome #0-16]
[chrome #0-16] [LOGIN]
[chrome #0-16]
[chrome #0-16]     login with accessToken By url & by header
[chrome #0-16]
[chrome #0-16]         login with accessToken By url & by header
[chrome #0-16]
[chrome #0-16]
[chrome #0-16]

Scenario:
  Scenario Outline: login with accessToken By url & by header
    Given I generate the global "<userType>" accessToken with username "<username>" and password "<currentPassword>"
    When I open "/fo/v1/user/show" with generated Access Token sent by url
[...]

@lrocheWB there is a pending PR with a fix

Hi all,
I am facing the same issue after updating to "wdio-cucumber-framework": "2.1.0".
Any update?

@martinotu I'm in the same boat.
ERROR:` Cannot read property 'steps' of undefined
internetexplorer
Type    at CucumberEventListener.onTestStepPrepared (C:\DEV\ember\home-ui\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:186:45)
    at emitOne (events.js:121:20)
    at EventEmitter.emit (events.js:211:7)
    at TestCaseRunner.emit (C:\DEV\ember\home-ui\node_modules\cucumber\lib\runtime\test_case_runner.js:94:29)
    at TestCaseRunner.emitPrepared (C:\DEV\ember\home-ui\node_modules\cucumber\lib\runtime\test_case_runner.js:127:12)
    at TestCaseRunner.<anonymous> (C:\DEV\ember\home-ui\node_modules\cucumber\lib\runtime\test_case_runner.js:219:14)
    at Generator.next (<anonymous>)
    at Generator.tryCatcher (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\generators.js:97:49)
    at TestCaseRunner.<anonymous> (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\generators.js:201:15)
    at TestCaseRunner.run (C:\DEV\ember\home-ui\node_modules\cucumber\lib\runtime\test_case_runner.js:236:22)
    at Runtime.<anonymous> (C:\DEV\ember\home-ui\node_modules\cucumber\lib\runtime\index.js:113:51)
    at Generator.next (<anonymous>)
    at Generator.tryCatcher (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\generators.js:97:49)
    at Runtime.<anonymous> (C:\DEV\ember\home-ui\node_modules\cucumber\node_modules\bluebird\js\release\generators.js:201:15)

Same here, can't develop testing framework due to this. Any updates? ;)

For all questions above and onward
Feel free to help implement https://github.com/webdriverio/wdio-cucumber-framework/pull/126
if you want to have the fix for that.

Any Update Please

Any update on this issue (wdio-cucumber-framework@~2.1.0.)?
ERROR: Cannot read property 'type' of undefined
chrome
Type    at CucumberReporter.getUniqueIdentifier

I found another bug related to the same, when I use background in he terminal shows the steps in green (as completed) as soon as start, and if the step definition has a function that validates more than one thing or action, it doesn't execute them, execute just the first one, but the scenario doesn't fail.

+1 for this issue

merged but nothing has been fixed?

please see #126


chore(tracelog): logging with trace

Motivation
Logging with trace in all modules.
Modifications

[x] Logging with span in inner mudule.
[x] Passing trace id with http header.
[x] Carry request id with tcp package.
[ ] TODO, apply with trace in Raft.

Types of changes

[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Bugfix (non-breaking change which fixes an issue)
[x] Documentation Update (if none of the other choices apply)
[ ] So on...

Verifying this change

[x] Make sure that the change passes the testing checks.

This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

[x] Master
[x] MetaNode
[x] DataNode
[x] ObjectNode
[x] AuthNode
[x] LcNode
[ ] Blobstore
[x] Client
[x] Cli
[x] SDK
[x] Other Tools
[x] Common Packages
[ ] Dependencies
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[ ] doc-not-needed
[x] doc-complete

Review Expection

[ ] in-two-days
[x] weekly
[ ] free-time
[ ] whenever

There has many conflicts, create merge request later.


support for defaulting of CR fields

Feature Request
Some CRs need a way to set some fields to default values.
Please add a facility to the operator-sdk to manage this situation. From a developer perspective a stub field defaulting method should be generated and the developer needs to fill it up. Requesting the generation the generation of this method should be optional for the operator-sdk generate controller command
Is your feature request related to a problem? Please describe.
As I said some CRs require defaulting of fields, as of now every developer of an operator has to come up with its own solution.
Describe the solution you'd like
I believe there are multiple ways to implement this, but perhaps the most kubernetes-pure would be via a MutatingAdmissionController. The generated operator could provide a http endpoint to listen for these MutatingAdmissionController webhook calls. Regardless the user experience should be the one defined above.

As discussed in https://github.com/operator-framework/operator-sdk/issues/1217#issuecomment-476407298 we'll be using the upstream controller-runtime APIs for mutating admission webhooks.
Example:
https://github.com/kubernetes-sigs/controller-runtime/blob/5e3a6da770e2f16f8ce9b0905eaa74974fe7a4c0/examples/builtins/mutatingwebhook.go
We just need to add the scaffolding,docs and examples.

/remove-lifecycle stale


Inline feeEstimationRegressionSpecInner

Suggestion to #4206

Thanks @Anviking!
LGTM.
I've cherry-picked the commit from this PR into #4206.


Graceful failure if a supported editor isn't running

Things fail in a confusing way if a supported editor is not already running when trying to use GhostText.
Steps to reproduce:

Install Firefox addon from https://addons.mozilla.org/en-US/firefox/addon/ghosttext/
Navigate to a webpage containing a text box.
Click the GhostText button in the Firefox toolbar.  The text box turns blue.
Install atomic-chrome package for Emacs.
Start atomic-chrome with (atomic-chrome-start-server).
Try clicking the GhostText button in Firefox again.
Observe that a message pops up in the browser saying "Connected", the GhostText icon has a green "ON" label, and a new buffer opens in the editor.  Hurrah!
Try to edit text in the browser.  Observe that it is transferred to the editor.  Spendid!
Try to edit text the editor.  Observe that it is not transferred to the browser.  Oh.

The order is wrong, you should first start the server, then click on the button once.

Sure, I figured that out in the end, but it would be better not to be able to get into that situation.  It's inconsistent that you can toggle syncing on an off by clicking the icon, but only if syncing is working properly.

This has been fixed in v21.

This has been fixed in v21.


Task Runner E2E Workflow - Add aggregated accuracy to GitHub Summary

Example run - https://github.com/noopurintel/openfl/actions/runs/11813954816

LGTM


Fixed small bug with recycler view duplicating created challenges whe…

…n clicking back from camera screen

I'm not sure if this addresses the issue...


Linux "sudo lsusb -v"  fails

Device Information
System Model or SKU
[ ] Framework Laptop 16 (AMD Ryzen™ 7040 Series)
BIOS VERSION
3.0.5
Issue also present on 3.0.3
Windows:
N/A
Linux:
Open a terminal and run the following command
sudo dmidecode --string bios-version
03.05
DIY Edition information
Memory: Manufacture and SKU
Kingston Fury Impact: Part Number: KF556S40-32
2x making 64GB total.
 Is standalone mode enabled in the BIOS?

[ ] No

Describe the bug
The USB chips hang and reset themselves. I suspect USB chip firmware bugs.
EC console shows TIMEOUT and RESET messages.
In a Linux terminal window:
"sudo lsusb -v"
It hangs at the line:
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
The EC then detects a timeout and resets the Genesys chip.
Steps To Reproduce
Steps to reproduce the behavior:
In a Linux terminal window:
"sudo lsusb -v"
It hangs at the line:
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
Expected behavior
In a Linux terminal window:
"sudo lsusb -v"
It should continue to display all devices immediately and not hang.
Screenshots
N/A
Operating System (please complete the following information):

OS/Distribution: Linux/Ubuntu
Version: 24.04
Linux Kernel Version: uname -a  6.12.0  <- Mainline compiled kernel.

Additional context
Add any other context about the problem here.

I've experienced this with 03.04 too

The USB chips hang and reset themselves. I suspect USB chip firmware bugs.
EC console shows TIMEOUT and RESET messages.
In a Linux terminal window:
"sudo lsusb -v"
It hangs at the line:
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
The EC then detects a timeout and resets the Genesys chip.

Could you please post a full log of EC console and lsusb?

In FW16 BIOS 3.0.3 there was EC console output when the "sudo lsusb -v" was used.
Now with FW16 BIOS 3.0.5 there is no each EC console output when the "sudo lsusb -v" was used.
I cannot downgrade to BIOS 3.0.3 to prove this as BIOS 3.0.5 is not downgradable.
Does anyone know what EC command I need to use to turn the USB chip resets debug back on?
The "sudo lsusb -v" still hangs for a while (about 60 seconds) before skipping the Genesys Logic part and continuing down the other components.
This problem should be 100% reproducible where you are in Linux.

lsusb-v.txt
Interestingly, after the "sudo lsusb -v" the "Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub" disappears permanently from "lsusb" output, until one power cycles the laptop.
No useful output on EC console.

The EC then detects a timeout and resets the Genesys chip.

Why do you think this is happening?

Port/Peripheral information
2. Empty
3. Empty
4. Empty

This hub is exactly connected to these three ports.
To make sure we align here: 2 is middle right, 3 is lower right, 4 is lower left.
The hub is also connected to the dGPU interposer. Have you got a dGPU installed?
Can you try to see if these ports are working for you? And whether lsusb is fine when something is connected vs nothing connected?

@JohnAZoidberg
I would be happier if you has a FW16 AMD and confirmed that you are able to reproduce the problem I am seeing.
If you follow the 5 easy steps to reproduce it, you should see the problem for yourself.
If you cannot reproduce the problem, I will probably need to RMA the mainboard as it is unique to me then.

With all slot cards removed, no PSU power. No usb devices plugged into the slots.
Note the problem is also present if tested with the laptop keyboard removed.

Power off laptop.
Power on laptop.
Login to Ubuntu 24.04
Open terminal windows.

lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 0e8d:e616 MediaTek Inc. Wireless_Device
Bus 001 Device 006: ID 32ac:0018 Framework Laptop 16 Keyboard Module - ISO
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

sudo lsusb -v
....
Hangs at "Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub" for about 60 seconds.

lsusb
Initially might hang for a while also.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 0e8d:e616 MediaTek Inc. Wireless_Device
Bus 001 Device 006: ID 32ac:0018 Framework Laptop 16 Keyboard Module - ISO
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Notice the line missing from lsusb:
"Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub"
It stays missing until you reboot the laptop.
It is this disappearance of the Genesys Logic USB 3.2 hub that makes me believe that there is a bug in the firmware of the Genesys Logic device.

Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
.... long wait...
Couldn't open device, some information will be missing

[114843.017542] xhci_hcd 0000:c4:00.3: Timeout while waiting for setup device command
[114848.350153] xhci_hcd 0000:c4:00.3: Timeout while waiting for setup device command
[114848.553427] usb 2-2: device not accepting address 5, error -62
[114853.896731] xhci_hcd 0000:c4:00.3: Timeout while waiting for setup device command
[114859.228956] xhci_hcd 0000:c4:00.3: Timeout while waiting for setup device command
[114859.432260] usb 2-2: device not accepting address 6, error -62
[114859.440639] usb usb2-port2: unable to enumerate USB device

I can reproduce as well. Thanks for the bug, I'll keep investigating.

Also can reproduce this. We will work with our vendor to see if they can fix this. We are going to continue to track this internally.
This hub is internally connected to the bottom left, and mid/bottom right ports only.


Patches the downloaded sql file, fixes #74

Tells SQL while importing to store the tables in DYNAMIC rowformat, which supports unlimited size keys.

Perfect! Hope it works!


Support the :-> shorthand

A very common pattern is to just extract one value from the database, which in re-frame I'd do with :->
(reg-sub
 ::my-value
 :-> :some-keyword)

Writing just :some-keyword results in the subscription returning the parameter vector just like in re-frame, so supporting this syntax would be very helpful.
cf https://github.com/day8/re-frame/blob/dd18854498b6a5e51ed09bfcbd193d9dd84d8381/src/re_frame/core.cljc#L259-L271
I'd be happy to help implementing this

Interesting, I've never used this syntactic sugar before, but do see its benefit.
You're welcome to submit a PR for it


LLVM ERROR: Cannot select: intrinsic %llvm.nvvm.shfl.sync.bfly.i32 Aborted

Hi I tried to train a quantized model fitting my VRAM as I have a GTX 1070ti, but I got this error that I did not have on a friend's computer who has an RTX 2070 (so same VRAM but more recent) :

I found that people were having a similar issue on other posts (such as https://github.com/state-spaces/mamba/issues/173) but the only real solution was to buy a new GPU, is it really the only way ?
I am using a conda env I set up with the commands on the GitHub main page.
I found this on the main page so it should work with my gpu :

Like I know it's linked to the gpu architecture and the compute capability (6.1 for the gtx 1070ti) but isn't there a way to change some lines in the code of the packages to make it work ?
Thanks for your help,

I think try installing the first ever release (under tags) of Unsloth - it might or might not work

Running into the same issue:
Unsloth 2024.8 patched 32 layers with 32 QKV layers, 32 O layers and 32 MLP layers.
Unsloth: Will map <|im_end|> to EOS = <|end_of_text|>.
/usr/local/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:1601: FutureWarning: `clean_up_tokenization_spaces` was not set. It will be set to `True` by default. This behavior will be depracted in transformers v4.45, and will be then set to `False` by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884
  warnings.warn(
num_proc must be <= 1. Reducing num_proc to 1 for dataset of size 1.
Detected kernel version 4.18.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.
==((====))==  Unsloth - 2x faster free finetuning | Num GPUs = 1
   \\   /|    Num examples = 1 | Num Epochs = 1
O^O/ \_/ \    Batch size per device = 4 | Gradient Accumulation steps = 4
\        /    Total batch size = 16 | Total steps = 1
 "-____-"     Number of trainable parameters = 41,943,040
🦥 Unsloth: Will patch your computer to enable 2x faster free finetuning.
==((====))==  Unsloth 2024.8: Fast Llama patching. Transformers = 4.44.0.
   \\   /|    GPU: Tesla P100-PCIE-16GB. Max memory: 15.888 GB. Platform = Linux.
O^O/ \_/ \    Pytorch: 2.3.0+cu121. CUDA = 6.0. CUDA Toolkit = 12.1.
\        /    Bfloat16 = FALSE. FA [Xformers = 0.0.26.post1. FA2 = False]
 "-____-"     Free Apache license: http://github.com/unslothai/unsloth
trainable params: 41,943,040 || all params: 8,072,204,288 || trainable%: 0.5196
  0%|          | 0/1 [00:00<?, ?it/s]LLVM ERROR: Cannot select: intrinsic %llvm.nvvm.shfl.sync.bfly.i32

Wait P100s don't have bfloat16 - you have to change fp16 = True and bf16 = False during training


Page crashes on mobile (android, iOS) when loading long audio file

Nature of issue?

[x] Found a bug

Most appropriate sub-area of p5.js?

[x] Sound

Which platform were you using when you encountered this?

[x] Mobile/Tablet (touch devices)

Details about the bug:

p5.js version: 0.10.2
Web browser and version: chrome mobile 79.0.3945.93 (official built) (32-bit),
Operating System: Android 10
Steps to reproduce this:

var song;
var songUrl = "https://aquapsy.s3.ca-central-1.amazonaws.com/store/c12f652ea5855acf0c1f5d9302f17f26.mp3";
 // it is about 37 minutes long song

function preload(){
    song = loadSound(songUrl, playsound,'', whileLoading);
    };

function playsound(e){
};

function whileLoading(e){
};

someButton.addEventListener("click", function(){
  song.play();
});

Everything works fine on a laptop on different browsers (songs can be long).
And everything works well on laptop and mobile/tablet if a song is short (I noticed that important not the size of the file, but duration). 10 minutes song is okay, but that 37 minutes song on mobile/tablet after the sound is loaded the page crashes and reloads. On android, it says: "Aw, Snap! Something went wrong while displaying this webpage.."
Seems after loadSound() is finished, it crashes, I do not start play or anything like that.
What is the problem?
Thank you very much!

Hi @isaac-computer, I was searching a lot about this issue and I think someone mentioned even in some P5 discussion. Seems the problem is with the RAM of the device. When you have a long file, it loads the file, then decodes it. Even if you have 1 hour of .mp3 file, it will decode into .wav and that will be like 500mb or something really big, so most smartphones will just crash due to not enough memory.
There is one library that tries to solve it https://github.com/Rich-Harris/phonograph
But it did not help me..., was still crashing with long files.
I even tried to break manually long file into small ones, play them one after another, but for some reason buffer was still overfilling and I could not remove already played fragments from the buffer, so it was crashing.
As I understand P5 Sound and other similar libraries build on top of Web Audio API and there is a fundamental issue there.
So, for now, for long files, I just use HTML5 Audio elements, it works well on many browsers and smartphones. It buffers a bit and then start playing it.
But I could not build any visualization with  that would work on Safari, but I just saw examples for Chrome: https://www.youtube.com/watch?v=IBHpSkGZtNM
Also, it may be useful for someone who works with audio and Ruby on Rails, I found this cool gem to create .wav files from just an array (or work with .wav in general, I have not explored all functionality yet) https://wavefilegem.com
If you find any other solutions, please let me know) Thank you!

@estafaa, as you said every .mp3 file will be converted into .wav. right? Actually I'm facing the same issue. my question is what if load the wave file instead of .mp3. Will it solve the issue?

@DeveloperChallenge if you convert .mp3 to .wav you will have a big size file (depends on a length and quality/resolution), so it should be the same load on the memory. But you can try it and test on different devices.


Running C++ exported functions from go-ext-wasm fails.

I am trying to call basic  "main()" functions in some c and cpp based wasms from go-ext-wasm:
...

result, err := instance.Exports["main"](1,1)
if err != nil { panic(err) }

...

But go-ext-wasm returns:
panic: Failed to call the `main` exported function.

Is there some way other way to run main()?

It seems this problem is more generic then just calling main - the same panic is returned when calling any C++ function exported like so:
To run our C++ based framework, we need to invoke an exported function pred() in a WASI standalone Webassembly binary compiled using Emscripten. The main() and pred() functions are defined as follows in the cpp file:
extern "C" {
    int pred() __attribute__((used));
    int pred() {
        printf("Running pred()\n");
        double *prediction = cpwbart();
        double result = prediction[0] + mu;
        return (0);
    }
}

int main() {
    printf("Running main()\n");
    double *prediction = cpwbart();
    double result = prediction[0] + mu;
    return (0);
}

We call pred() as follows:
	importObject := wasm.NewDefaultWasiImportObject()
	imports, err := importObject.Imports()
	if err != nil { panic(err) }

	err = importObject.Extend(*imports)
	if err != nil { panic(err) }

	bytes, err := wasm.ReadBytes("bart_snapshot1.wasm")
        if err != nil { panic(err) }

	module, err := wasm.Compile(bytes)
	if err != nil { panic(err) }

	instance, err := module.InstantiateWithImportObject(importObject)
	if err != nil { panic(err) }

	defer instance.Close()

	fmt.Println(instance.Exports); // pred is available in the exports

	message, err := instance.Exports["pred"]()
	if err != nil { panic(err) }

        // result: panic: Failed to call the `pred` exported function.

Maybe related to the Wasmer issue here: https://github.com/wasmerio/wasmer/issues/1024 ?

As I WASI ABI functions can now be invoked using https://github.com/wasmerio/wasmer/pull/1036, I also tried to call a WASI function from go-ext-wasm with a build based on that PR:
[dependencies]
wasmer-runtime-c-api = { git = "https://github.com/wasmerio/wasmer", branch = "feature/experimental-wasi-invoke" }

Yet the resulting go-ext-wasm lib with its new libwasmer_runtime_c_api.so still results in:
result: panic: Failed to call the `pred` exported function.

So I expect there is still some go-ext-wasm specific issue at play? Or the way I seek to incorporate the Wasmer PR is off , that's certainly a possibility too!

As @MarkMcCaskey said, I'm not sure it is expected to call an exported function with WASI. WASI expects one entry point, which is a _start function.
I tried the following:
#include <stdio.h>

extern "C" {
  int hello() __attribute__((used));
  int hello() {
    printf("Hello from an exported function!");

    return 42;
  }
}

int main(int argc, char **argv)
{
  if (argc < 2) {
    printf("Hello, WASI!\n");
  } else {
    printf("Hello, %s!\n", argv[1]);
  }
}

Calling _start (i.e. main) works well, but calling hello correctly returns 42 (exactly wasm.I32(42)) but Hello from an exported function! isn't printed on stdout.
@MarkMcCaskey Any idea why?

As @MarkMcCaskey said, I'm not sure it is expected to call an exported function with WASI. WASI expects one entry point, which is a _start function.

I understand. But seeing that, for instance, Emscripten strongly moves towards a WASI ABI, it helps to be able to invoke other functions. And helps us easily interface with several machine learning libraries.
The exported function problem is indeed exactly what we encounter too - your example code works perfectly with the lastest Wasmer when hello is invoked through the cli, but not yet through go-ext-wasm.
Also, thanks again for all of the work you (and the Wasmer team) are putting in. It is much appreciated!

As @MarkMcCaskey said, I'm not sure it is expected to call an exported function with WASI. WASI expects one entry point, which is a _start function.

I do understand. Yet seeing that the WebAssembly ecosystem moves towards general use of the WASI ABI, it helps to be able to invoke other functions outside of main().

Hello from an exported function! isn't printed on stdout.

Probably that's the result of the missing "\n", I expect this will work:
printf("Hello from an exported function!\n");
I sought to replicate our own issue with a minimal example was well, as the issue we encounter differs from yours. Do let me know if you'd prefer it if I open a new issue for the following.
The C++ code to replicate our issue:
#include <stdio.h>
#include <string>

extern "C" {
int big_data_function() __attribute__((used));
int big_data_function() {
    std::string itv = R"~~~~(
    200 200 23
    3
    1 13 0 0
    2 0 0 15794.29427
    )~~~~";
    std::fwrite(itv.c_str(), 1, 50, stdout); // print first 50 bytes
    return (0);
}
}

int main(int argc, char **argv)
{
        printf("Hello, WASI!\n");
}

Compile with:
wasic++ -O3 test1.cpp -o test1.wasm

Then successfully run test1.wasm with the latest Wasmer CLI:
> wasmer run test1.wasm -i big_data_function

WARNING: Invoking a function with WASI is not officially supported in the WASI standard yet.  Use this feature at your own risk, things may not work!

200 200 23
3
1 13 0 0
2 0 0 15794.29427
big_data_function returned [I32(0)]

But when running the same function from go-ext-wasm using the following code:
package main

import (
	"fmt"
	 wasm "github.com/wasmerio/go-ext-wasm/wasmer"
)
func main() {
	importObject := wasm.NewDefaultWasiImportObject()
	imports, err := importObject.Imports()
	if err != nil { panic(err) }

	err = importObject.Extend(*imports)
	if err != nil { panic(err) }

	bytes, err := wasm.ReadBytes("test1.wasm")
       if err != nil { panic(err) }

	module, err := wasm.Compile(bytes)
	if err != nil { panic(err) }

	instance, err := module.InstantiateWithImportObject(importObject)
	if err != nil { panic(err) }

	defer instance.Close()

	fmt.Println(instance.Exports);

	 message, err := instance.Exports["big_data_function"]()
	 if err != nil { panic(err) }

     fmt.Println(message)
}

for now still using the wasi_snapshot_preview1 workaround...
> wasm2wat test1.wasm > test1.wat  && sed -i 's/wasi_unstable/wasi_snapshot_preview1/g' test1.wat && wat2wasm test1.wat > test1.wasm
> go run test1.go

...  It does seems to have to do with invoking C++ functions and/or libs from go-ext-wasm. Basic C code works fine, generally.

Can you check the exported function exists:
big_data_function, exists := instance.Exports["big_data_function"]

if false == exists {
    panic("The exported function doesn't exist")
}

message, err := big_data_function()

// …

Sure! When I do the following:
   ...
	fmt.Println(instance.Exports);

	big_data_function, exists := instance.Exports["big_data_function"]

        if false == exists {
            panic("The exported function doesn't exist")
        } else {
            fmt.Println("Exported function *exists*")
        }

        fmt.Println(big_data_function)
    ...

I get:
map[_start:0x49cc80 big_data_function:0x49cc80]
Exported function *exists*
0x49cc80

Followed, of course, by, the panic: Failed to call the 'big_data_function' exported function. later on in the code.
`
If I can help out in any other way, just let me know!

It seems I was looking in the wrong direction: the panic did not result from any C or C++ code related issues. It was my own Go code all along. Specifically, some leftover code from extending the import object in an earlier version of our module:
        importObject := wasm.NewDefaultWasiImportObject()
	imports, _ := importObject.Imports()
	importObject.Extend(*imports)
        instance, _ := module.InstantiateWithImportObject(importObject)

That messed up the import object. So changing it into:
        importObject := wasm.NewDefaultWasiImportObject()
        instance, _ := module.InstantiateWithImportObject(importObject)

... solved the issue. As always, thanks for your support and feedback!

Also, exported functions do indeed not seem to print to stdout, either with or without trailing '\n' - don't know what is happening there.

Closing the issue since the initial problem is solved :-). We are looking at the other issue.


ASP.NET Core 2.2 to 3.0 migration

We're getting close to 3.0 Preview 1. Here is some information that I shared with our testers which I believe will also be relevant for customers.
The following changes need to be made to project files to upgrade from ASP.NET Core 2.x to 3.0.

Update <TargetFramework> to netcoreapp3.0

Remove the <PackageReference> to Microsoft.AspNetCore.All and Microsoft.AspNetCore.App.

Preview 1 Known Issue - workaround for NuGet/Home#7342 - projects which do not start with <Project Sdk="Microsoft.NET.Sdk.Web"> will get compiler or runtime errors due to missing Microsoft.AspNetCore.* assemblies. This is most often the case for test projects and class libraries. The workaround is to add the following to the .csproj file.

	<ItemGroup>
	   <FrameworkReference Include="Microsoft.AspNetCore.App" />
	</ItemGroup>

Update the Version on remaining <PackageReference>'s to Microsoft.AspNetCore.* packages to 3.0.0-preview-18579-0053 (or whatever the Preview 1 build number ends up being)

If there is no such version of the package, this may be one of the packages which has been deprecated in 3.0. Many of these are part of Microsoft.AspNetCore.App and do not need to be referenced individually anymore.
TODO: document a complete list of packages we no longer produce. Rough draft here: https://github.com/aspnet/AspNetCore/issues/3756

Some APIs were removed from Microsoft.AspNetCore.App between 2.x and 3.0. You may need to add <PackageReference> items if you are using API from packages listed in https://github.com/aspnet/AspNetCore/issues/3755

Notable mentions: Entity Framework Core and System.Data.SqlClient are no longer part of Microsoft.AspNetCore.App.
Preview 1 Known Issue - the assemblies shipping in Microsoft.AspNetCore.App has not been finalized yet and will change before 3.0 RTM. We intend to remove a few more assemblies, most notably Newtonsoft.Json.

I'm using visual studio 2019 build 16.3 and I've a .net standard library targeting netstandard2.1, when i add
  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App"/>
  </ItemGroup>

the project throw error error NETSDK1073: The FrameworkReference 'Microsoft.AspNetCore.App' was not recognized is there any work around to resolve this?


New CloudSearch features

http://aws.amazon.com/about-aws/whats-new/2012/11/04/amazon-cloudsearch-adds-features-for-tuning-result-ranking/

AwsSum is now deprecated in favour of the offical aws-sdk from Amazon.


Added custom slope fitting functionality

If this pr is succesfull it gives users the ability to apply their custom functions  to scipy.curve_fit and closes #26

I am happy, tests are happy and if you are happy too @thht feel free to merge :)


Add async context function to tests module

As a user of the nio library when writing tests I might want to run an asynchronous function within a synchronous function and wait for the result.  This function acts as a synchronous wrapper around the asynchronous function.
This is either an alternative to #369 or a complement. It lets me use the normal busted it function and write code like this:
it('Does something, function()
	local tree = nio.tests.with_async_context(adapter.discover_positions, tempfile)
	local result = tree:to_list()
	assert.are.same(expected, result)
end)

Here the function adapter.discover_positions is asynchronous, so we wrap it in nio.tests.with_async_context to provide it with an asynchronous context. The resulting call is synchronous and can be used in tests. We can pass arguments to the wrapped function and we return its result to the caller.
Why not use nio.tests.it instad? nio.tests.it runs the entire tests in an asynchronous context, which messes up error reporting, at least when used with the real busted. And it turns all assertion failures into errors when they should be test failures instead.

LGTM thanks again for the PR!


About the Parameters' meaning in the CTCBeamDecoder fuction!

Hi,
In the Class CTCBeamDecoder, there are many parameters:
__init__(self, labels, model_path=None, alpha=0, beta=0, cutoff_top_n=40, cutoff_prob=1.0, beam_width=100,num_processes=4, blank_id=0, log_probs_input=False):
and I want to know alpha,beta,cutoff_top_n,cutoff_prob, these four parameters' meaning and its' use.
Thank you!

@ryanleary @joemathai @KarimTarabishy @SeanNaren Can anybody help me? Thank you!


Trying to insert a new entity with childs throws DbUpdateException

This has been an issue for a long time: You cannot insert an entity if it has new instances of relationships there are two issues:
using System.Collections.Generic;
using Microsoft.Data.Entity;

namespace EfNestedInsertTest
{
    #region Entities

    public class JobType
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public IList<Person> People { get; set; }
    }

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public int JobType_Id { get; set; }
        public JobType JobType { get; set; }

        public IList<Pet> Pets { get; set; }
    }

    public class Pet
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public int Person_Id { get; set; }
        public Person Person { get; set; }
    }

    #endregion

    public class MyContext : DbContext
    {
        public DbSet<Person> People { get; set; }
        public DbSet<JobType> JobTypes { get; set; }
        public DbSet<Pet> Pets { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                "Data Source=localhost\\SQLEXPRESS;Initial Catalog=EfTest;Password=yourpass;user id=sa;MultipleActiveResultSets=true;");

            base.OnConfiguring(optionsBuilder);
        }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.UseSqlServerIdentityColumns();

            builder.Entity<Person>().ToTable("Person");
            builder.Entity<Person>().Key(p => p.Id);

            builder.Entity<Person>()
                .Reference(p => p.JobType)
                .InverseCollection(x => x.People)
                .ForeignKey(c => c.JobType_Id);
            builder.Entity<Person>()
                .Collection(p => p.Pets)
                .InverseReference(p => p.Person)
                .ForeignKey(p => p.Person_Id);

            builder.Entity<JobType>().ToTable("JobTypes");
            builder.Entity<JobType>().Key(jt => jt.Id);

            builder.Entity<Pet>().ToTable("Pets");
            builder.Entity<Pet>().Key(p => p.Id);
        }
    }

    public class Program
    {
        public void Main(string[] args)
        {
            var context = new MyContext();
            var nick = new Person
            {
                Name = "Nick",
                JobType = new JobType
                {
                    Name = "LeadDev"
                },
                Pets = new List<Pet>
                {
                    new Pet {Name = "Peanut"},
                    new Pet {Name = "Gypsy"},
                    new Pet {Name = "Daisy"},
                    new Pet {Name = "Shooter"},
                }
            };

            context.People.Add(nick);
            context.SaveChanges();
        }
    }
}

This occurs in many-to-one relationships.

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Person_JobType_JobType_Id". The conflict occurred in database "EfTest", table "dbo.JobTypes", column 'Id'.

No exception is thrown if the foreign key is not present in the model. However, the jobtype still doesn't get persisted.
StackTrace:
   at Microsoft.Data.Entity.Update.ReaderModificationCommandBatch.Execute(IRelationalTransaction transaction, IRelationalTypeMapper typeMapper, DbContext context, ILogger logger)
   at Microsoft.Data.Entity.Update.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection)
   at Microsoft.Data.Entity.Storage.RelationalDatabase.SaveChanges(IReadOnlyList`1 entries)
   at Microsoft.Data.Entity.ChangeTracking.Internal.StateManager.SaveChanges(IReadOnlyList`1 entriesToSave)
   at Microsoft.Data.Entity.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess)
   at Microsoft.Data.Entity.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess)
   at Microsoft.Data.Entity.DbContext.SaveChanges()
   at EfNestedInsertTest.Program.Main(String[] args) in C:\WS\ef7\src\EfNestedInsertTest\Program.cs:line 100

If I use an existing jobtype instead:
var context = new MyContext();
            var nick = new Person
            {
                Name = "Nick",
                JobType_Id = 1,
                Pets = new List<Pet>
                {
                    new Pet {Name = "Peanut"},
                    new Pet {Name = "Gypsy"},
                    new Pet {Name = "Daisy"},
                    new Pet {Name = "Shooter"},
                }
            };

            context.People.Add(nick);
            context.SaveChanges();

No exception is thrown, however no pets are persisted and the pets' generated Person_Id stays at "-1" while nick's Id got updated to it's identity value.
I wasn't sure If I needed to create 2 different issues.

Hey,
Currently in EF7 Add() only adds the single object and does not traverse related objects - so you need to add each object individually or use the TrackGraph method. We have https://github.com/aspnet/EntityFramework/issues/2726 to track working out how we best support the "add this graph of objects" scenario.
~Rowan

You just gave a new meaning to my entire life. :smile:


Misc typo

This line: 17. Repeat steps 15 and 16 for row 3 to add fields
should be: 17. Repeat steps 15 and 16 for row 2 to add fields

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

ID: 865c6fff-f9f0-a385-15b0-4b93cd1982a7
Version Independent ID: 8a0af785-5196-3de8-9e70-e987a8d63061
Content: Walkthrough: Designing a Report from Multiple Tables - Dynamics NAV
Content Source: dynamics-nav/Walkthrough--Designing-a-Report-from-Multiple-Tables.md
Product: dynamics-nav-2018
GitHub Login: @jswymer

Hi! Thank you for your feedback! The step has been corrected and the topic will be updated with one of the next doc refreshes.


Implementation for #1161

Implementation for #1161

Codecov Report

Merging #1162 into master will increase coverage by 0.57%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1162      +/-   ##
============================================
+ Coverage     88.04%   88.62%   +0.57%
============================================
  Files            69       49      -20
  Lines          1046      791     -255
  Branches         71       55      -16
============================================
- Hits            921      701     -220
+ Misses           88       63      -25
+ Partials         37       27      -10

Impacted Files
Coverage Δ
Complexity Δ

...va/de/zalando/zally/integration/zally/Violation.kt

...ando/zally/integration/validation/ApiValidation.kt

...zalando/zally/integration/reports/ReportService.kt

...ly/integration/validation/PullRequestValidation.kt

.../zally/integration/config/JsonPostgresqlDialect.kt

...lando/zally/integration/github/PullRequestEvent.kt

...ndo/zally/integration/config/StringJsonUserType.kt

.../zalando/zally/integration/ValidationController.kt

...a/de/zalando/zally/integration/ReportController.kt

...e/zalando/zally/integration/zally/ViolationType.kt

... and 10 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 3d20991...5774419. Read the comment docs.

:+1:

:+1:

@WilliamTwill Thanks for your great contribution, and sorry for the bad support in the last month. I like your request and think we should merge it. However, before I would like to understand your label-approach. Can you please elaborate on how reviews are supposed to be labeled and what do you exactly want to achieve with that?

@WilliamTwill Thanks for your great contribution, and sorry for the bad support in the last month. I like your request and think we should merge it. However, before I would like to understand your label-approach. Can you please elaborate on how reviews are supposed to be labeled and what do you exactly want to achieve with that?

@tkrop So the change is two-fold.
Exposure of Prometheus metrics. In general this means Zally can be monitored by prometheus (and visualized with for example Grafana). By using these metrics, we can for example auto-scale Zally server in a kubernetes cluster based on the usage metrics coming from Prometheus if there are many teams validating their API changes at the same time.
Custom labels. As of right now, my change will allow the passing of a key-value pair when requesting a validation. These labels are also exposed within the prometheus metrics. In our specific case we pass the git branch (feature/x, master, etc) as a key-value pair ({"branch": "feature/x"}) so that we can distinguish validations in the database (and thus the exposed prometheus metrics).
On top of these metrics we have built a Grafana dashboard for our dev teams which shows how many (must, should, may) violations their services have. Of course we also inject any violations coming back from Zally into merge requests directly as comments (as per #648 (comment)). So our devs can immediately spot violations during the dev cycle.
The reason we also publish the API violation results to a dashboard is to prove we work using high-quality standards to outside the teams.

Hi there,
Please wait with approving/merging this PR. We are having some performance issues with this PR and the database. I will come back with some data.

So after some searching, testing and trying different approaches this is what I came up with.
So the current query that is used to fetch the data to create the metrics (found here), retrieves all the entries and labels inside of the custom_labels_mapping and the entries for it in the api_review tables.
This creates a heavy load on the database, but next to that it also creates a high cardinality of labels within Prometheus which in the end degrades performance of Prometheus.
So my idea to solve this is to add an extra WHERE IN clause in the subquery where you can specify which label values you want to monitor for metrics. This way it's scalable and the user can define by them self how much they want to monitor, but also determine how far they can stretch it with their database.
I will prepare this change tomorrow and add it to this PR.

Had a quick chat with @Carnifexje and in the end he implemented the change for me.
I would like to confirm the change works and database is acting normal again. This also solves the cardinality for Prometheus.

Hi @WilliamTwill sorry for the long delay again.
@vadeg and I had a discussion about the implementation and agree that it definitely provides value for the community. We currently, in some way misuse the authorization to distinguish use cases by storing and utilizing the creator where a label would have been a cleaner approach. Still we are not sure about the complexity the additional table for the labels adds.
Wouldn't it be sufficient to just support a single label field in the review table? @vadeg has a suggestion he likes to explain.
Anyhow, one last think I'm currently missing in this pull request is to document the effective changes to the API. @WilliamTwill Can you please update the API specification in https://github.com/zalando/zally/blob/master/server/zally-server/src/main/resources/api/zally-api.yaml?
Thanks in advance
Tronje

@WilliamTwill thank you for your contribution and sorry for a very long delay.
Zally uses JPA as an abstraction layer on top of database. For tests Zally uses HyperSQL DB, but in the docker containers it uses Postgres and migration scripts are written for Postgres. Despite the fact that in memory databases are good for tests, lack of features in these databases enforces to make some design decisions. In this case this decision is having a separate table for labels which I think can be done in a more elegant way.
Postgres supports JSON data type which can contain JSON object. In addition, it has many JSON operators and functions.  The combination of both fits perfectly this use case. Instead of a separate table for labels, labels can be stored together with reviews in a separate column.
If continue with this approach, then we need to remove HyperSQL DB from unit tests and replace this database with Postgres using TestContainers.
The downside of this approach that it would not be possible to start Zally for development without a Postgres server running. In our current world with Docker this should not be a problem at all.
The benefit of this solution is that we would remove a boundary which enforces us to use only generic SQL which fits for all databases and allow to use features of specific database.

Closed because of inactivity. Labels task is moved into a separate issue #1323


fix footnote to show correct scenario (techexp_comp)

closes #93

scenario and scenario_source capture the currently selected values of the scenario and scenario source selectors, so it's easy to utilize that here
unlike data_up, subdata_up does not contain any scenario information, so it cannot be taken from there (as I tried in #105)
data_up only contains one year, so it's still possible to pull the correct year from it as before

@jdhoffa I have tested this using @AlexAxthelm's new Docker branch #109


Cannot build apps with plugins using CocoaPods

Problem description
Due to an incompatibility of the current iOS platforms (3.2.1, 2.9.0) with a newly updated version of CocoaPods used by our build service provider, app builds will fail when an app uses a Cordova plugin that has a CocoaPods dependency (e.g. tabris-plugin-firebase). We are working on a fix for our next release.
Workaround
As a workaround, a script can be setup to install the older CocoaPods version compatible with the currently available platforms. Please mind that the setup of the older CocoaPods version takes a long time, build time will be increased by ~10 minutes.
Create a file:
cordova/scripts/setup_cocoapods_repository.sh
... with contents:
#!/bin/sh
if [[ "$OSTYPE" == "darwin"* ]]; then
  echo "Setting up CocoaPods compatible with tabris <= 2.9.0/3.2.1 ..."
  sudo gem install cocoapods -v '1.5.3'
  pod setup
fi

And add:
  <hook type="before_platform_add" src="scripts/setup_cocoapods_repository.sh" />

inside the <widget/> element of your cordova/config.xml.
Environment

Tabris.js version: 3.2.1, 2.9.0
OS: iOS

We have updated tabris 3.x nightly to use cordova 9.0 which should enable cocoapod support. please give it a try.

CocoaPods are now supported thanks to Cordova update.


NetApp Detail: Volume Dashboard / space used column does not reflect current fill grade as graphic

Volume dashboard shows a incomplete grade of filling in the table of volumes
To Reproduce
Open the NetApp Detail: Volume
Expected behavior
Last column in table should reflect the current fill-state of volume in conjunction to value
Actual behavior
Graph shows always the same fill-state

Possible solution, workaround, fix
Set an override property for the "space used" column "Standard options > Max" and set the value to 100

thanks for reporting @florianmulatz - this should be fixed now

confirmed - is working as expected now! Thx


Batching actions

I needed to be able to mark specific actions as "skipped" so that a larger action could encapsulate smaller ones without notifying subscribers of incoherent state. I created redux-skip-by-action for this purpose - unit tests are pending, QA tests passing, and any feedback would be really appreciated.
Thanks.

In my view this hurts predictability.
What is the use case compared to just firing one action instead of many?

Instead, the “Redux approach” to this would be to create a batching action creator:
function batchActions(...actions) {
  return {
    type: 'BATCH_ACTIONS',
    actions: actions
  };
}

// usage
store.dispatch(
  batchActions(
    doSomething(),
    doSomethingElse()
  )
);

and a higher order reducer:
function enableBatching(reducer) {
  return function batchingReducer(state, action) {
    switch (action.type) {
    case 'BATCH_ACTIONS':
      return action.actions.reduce(reducer, state);
    default:
      return reducer(action, state);
    }
  }
}

// usage
let store = createStore(enableBatching(reducer));

We might want to add this to the docs..

I solved this with a middleware that acts on action yielding generators.

@gaearon I have a situation where I need to set a property (action creator 1), validate via external service the new value of the property (action creator 2), get the initial state via external service of another object based on that property, and then set that object in the state as well (action creator 3), and then finally validate the entirety of the new state via another external service (action creator 4). The place where things fell apart for me was the external service parts - if I allow subscribers to receive a notification after action 1, they receive an incoherent state, but I kept finding myself pushed to make the async calls in the reducers in order to move in the direction you described.
If I'm reading your suggestion right, I basically need to create a list of actions to run at the end of a promise chain that gets dispatched all at once. Rather than dispatching actions to the store to get updated state, I use getState initially and run my reducer manually against that "copy" to build the list of simple object actions that will ultimately be run in the store. Does this sound right?
This all felt a bit manual to me before, but I think that does pretty drastically improve the predictability of things.

@gaearon That's a much better solution - thanks for the direction, feel free to close this.

Also, note that the arguments in your higher order reducer for the passthrough are reversed - should be reducer(state, action)

I also noticed that it's better to use batchingReducer recursively to enable combining batched actions into larger groups.
function enableBatching(reducer) {
  return function batchingReducer(state, action) {
    switch (action.type) {
    case 'BATCH_ACTIONS':
      return action.actions.reduce(batchingReducer, state);
    default:
      return reducer(state, action);
    }
  }
}

Good points. Want to publish this as a package?

Will do - I'll take care of it tonight and ping you.

Added to GH and published on npm - let me know your thoughts: https://github.com/tshelburne/redux-batched-actions

https://github.com/rackt/redux/commit/12661e5c76153a4c327908687d7f9d8d80c35b5c

works well with middleware too: https://www.npmjs.com/package/redux-chain

A bit late here, but one more independently created alternative for reducing notifications from Redux is https://www.npmjs.com/package/redux-notification-enhancer. Throttling and ability to disable actions in one package.


[need help] plugin.LoadDefaultAssembly() lock an assembly. How can I do change this?

After run this code I can't delete the assembly. How I can change this behavior?
using (PluginLoader plugin = PluginLoader.CreateFromAssemblyFile(assembly.FullName, sharedTypes: new[] { typeof(IPlugin) }))
{
    Type type = plugin.LoadDefaultAssembly().GetTypes().FirstOrDefault(t => typeof(IPlugin).IsAssignableFrom(t) && !t.IsAbstract);

    if (type != null)
    {
        IPlugin activatedPlugin = (IPlugin)Activator.CreateInstance(type);
        DirectoryInfo di = new DirectoryInfo(assembly.FullName);
        activatedPlugin.InitSettings(di.Parent.FullName);
    }
}

After this code it should possible delete the assembly.

This also happens when I try the Hot reload example. Should I open a separate issue? If the dll is locked, you can't recompile a new version :/

Yes please, you can create a separate issue. You have any solution/idea for this problem?
My project works great with this library and Hangfire. Only delete assebly after the first call, that don't work at the moment.

This behavior is not configurable because the lower-level assembly loading APIs used in this library (the ones provided by .NET Core itself) do not offer a way to change this behavior. Once an assembly is loaded into a process for use, it is locked until that process exist.
This library attempts to workaround when hot reloading is enabled by reading the entire assembly from disk and loading into memory, but as noted, this doesn't always work. Also, this approach causes memory leaks so is not recommended in production.

But then how is hot reloading useful if we can't replace the dll?

@zHaytam I'm not entirely sure why it doesn't always work, but my hunch is one process is trying to write to the file while the other is reading.

I have released two updates since my last comment on this thread. Update 0.3.2 addressed issues with hot reloading.
@GENiALi - does using hot reload address your concern?
https://github.com/natemcmaster/DotNetCorePlugins/blob/370d3558e675e195728d02df5c9bf2f59d258a51/samples/hot-reload/HotReloadApp/Program.cs#L13-L14


Fix typos in comments

Fixes typos in the comments in consensus-related files.

Codecov Report

Merging #3267 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #3267   +/-   ##
========================================
  Coverage    70.12%   70.12%
========================================
  Files          674      674
  Lines        53607    53607
========================================
  Hits         37593    37593
  Misses       16014    16014

Impacted Files
Coverage Δ

src/ripple/app/consensus/RCLConsensus.h
80% <ø> (ø)
:arrow_up:

src/ripple/app/consensus/RCLCxTx.h
16.66% <ø> (ø)
:arrow_up:

src/ripple/consensus/DisputedTx.h
95.89% <ø> (ø)
:arrow_up:

src/ripple/consensus/LedgerTiming.h
92% <ø> (ø)
:arrow_up:

src/ripple/consensus/Consensus.h
89.94% <ø> (ø)
:arrow_up:

src/ripple/app/consensus/RCLConsensus.cpp
59.32% <ø> (ø)
:arrow_up:

src/ripple/consensus/ConsensusParms.h
100% <ø> (ø)
:arrow_up:

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 0c6d380...550ee40. Read the comment docs.


Unity issue with CS0570

I get a issue in Unity with the error message:
Assets\VYaml\Runtime\Parser\Utf8YamlTokenizer.cs(38,30): error CS0570: 'T' is not supported by the language
I use 2022.2.18f1 and 2021.3.24f1 test and got the same error

@Whimsyduke Please check your player settings.
Perhaps the API Compatibility Level should be .NET standard, not .NET 4.x.

Yes, its this reason. I found it in other place and fogot to replay,sorry.


.feed Command Fails to work with feeds that use .xml feeds; throws Unknown Rss Feed error

My friend, the owner of a server, tried to use my self-hosted Nadeko to set up a feed utilizing Steam News' feed, which is in the forme of a .xml. Instead of accepting the link, the feed parser tried to pass off the requested link as an Rss and threw an XmlException instead. The command and link are shown below the thrown exception for demonstration.

System.Xml.XmlException: Unknown Rss Feed
at Microsoft.SyndicationFeed.Rss.RssFeedReader.d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.SyndicationFeed.Rss.RssFeedReader.d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at NadekoBot.Modules.Searches.Searches.FeedCommands.d__2.MoveNext()
14:48:34 CommandHandler | Command Executed after 0/0/0.422s
User: SP33D#8631 [192303473478467584]
Server: Gamez [225661388528287744]
Channel: staff [364085727996149762]
Message: .feed http://store.steampowered.com/feeds/news.xml

https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fstore.steampowered.com%2Ffeeds%2Fnews.xml
I don't know how ms wrote their reader, but w3 doesn't like it. Maybe rebuilding it yourself with a different parser will yield success...

#1628 we'll track it here


Add binaries used by docker

Signed-off-by: John Howard<EMAIL_ADDRESS>@soccerGB Adds the additional binaries not listed which docker needs. Note strictly mkfs.ext4 is shared and already in the list, but I didn't explicitly mention it was required by docker (for the dynamic sandbox management update shortly to be PR'd).

@jhowardmsft,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


handle emojis on the server training side

This is the line that breaks:
https://github.com/RasaHQ/rasa_nlu/blob/master/rasa_nlu/utils/__init__.py#L337
The error is: builtins.UnicodeEncodeError: 'utf-8' codec can't encode characters in position xxx: surrogates not allowed

Yeah, that means either you have malformed input that is not valid unicode or the unicodedata version that you are using doesn't contain the specific character you want to encode.
What version of python are you using and what version of unicode data is available?
import unicodedata
unicodedata.unidata_version

this was just a note to fix this 🙂 it's handled with rasa nlu not running as a server, just not when it's run as a server.
Thanks for the reply though


Error on yarn start

Followed install instructions here:  https://github.com/contentacms/contentajs/blob/master/docs/install.md
Error on yarn start:
yarn start
yarn run v1.7.0
warning package.json: No license field
error Command "start" not found.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

node --version
v10.7.0
yarn --version
1.7.0

On my Mac:
/contenta/contentacms << installed contenta_jsonapi
/contenta/contentjs << installed this here, contents as follows:
config  << has local.yml
node_modules
package.json
yarn.lock
I ran yarn start from within /contenta/contentjs

Update:  reinstalled using this instead of composer:
curl -Lo contenta.tar.gz https://github.com/contentacms/contentajs/archive/master.tar.gz`

First yarn start complained babel is missing.
Ran npm install
Second yarn start has lots of these errors:
SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.<anonymous> (/Users/rick/Sites/_learning/drupal/contenta/contentajs/site/lib/helpers/app.js:48:27)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/rick/Sites/_learning/drupal/contenta/contentajs/site/lib/helpers/workers/web.js:12:13)
undefined:1
undefined

Thanks @rick02840 for the feedback. This is deeply appreciated. It seems that there is a problem getting some configuration from your Contenta CMS. The error code is making it hard to debug. I'll see if I can have more explicit errors.
In the mean time, have you verified that nodejs has networking and can talk to Drupal?

Hi Mateu,
I do not know that much about nodejs, so not sure how to test it has networking, etc.
I can confirm these things:
My contentacms is running fine on my local here:  http://contentacms:8888   and I see the api working here:  http://contentacms:8888/admin/api  I use MAMP locally.
My contentajs in in a separate folder on my Mac, outside of the contentacms, like this:
Sites/
contentacms/
contntentajs/
My contntentajs/config/local.yml has this in it:
cms:
  host: http://contentacms:8888

cors:
  origin:
    # It's OK to use '*' in local development.
    - '*'

That is per instructions here ("Configure"):  https://github.com/contentacms/contentajs/blob/master/docs/install.md
Hmmmm...  wonder how it knows to use local.yml ?
Other info:
node -v
v9.11.2
yarn -v
1.7.0
Thanks,
Rick

Same issue here.It looks like api path is setup to /jsonapi or taken from .env file - but .env file is missing from git repo. It looks like api paths must be provided in .env file as well or it uses an empty array... Can you provide an example .env file please?
Below code snippet from file: contentajs-master/lib/helpers/app.js:48:27
const jsonApiPrefix = .get(process, 'env.jsonApiPrefix', '/api');
const jsonApiPaths = JSON.parse(.get(process, 'env.jsonApiPaths', '[]'));
SyntaxError: Unexpected token u in JSON at position 0     at JSON.parse (<anonymous>)     at Object.<anonymous> (/Users/lukaschowis/Projects/JS/contentajs-master/lib/helpers/app.js:48:27)     at Module._compile (module.js:652:30)     at Object.Module._extensions..js (module.js:663:10)     at Module.load (module.js:565:32)     at tryModuleLoad (module.js:505:12)     at Function.Module._load (module.js:497:3)     at Module.require (module.js:596:17)     at require (internal/module.js:11:18)     at Object.<anonymous> (/Users/lukaschowis/Projects/JS/contentajs-master/lib/helpers/workers/web.js:12:13)

There is an initial handshake between Contenta CMS and Contenta JS to pass some configuration along. That process seems to be breaking due to validation of the response. I will take a look and try to reproduce.

@swr82 @rick02840 make sure JSON-RPC 2.0 Core module on the cms side is enabled :)

@smira2000 it is enabled :)

@smira2000 @swr82 this was an issue in Contenta CMS. That should be fixed now. That may require for you to re-install or apply the fix.
Can anyone re-try and confirm the fix?

Hi @e0ipso,

Can anyone re-try and confirm the fix?
No, still an issue with JSON RPC:
https://github.com/contentacms/contenta_jsonapi/issues/309#issuecomment-415775196

@smira2000  Sorry been off this for a while, back on.
I did not have JSON-RPC 2.0 Core enabled.  I did that but it did not help, still get the same yarn start errors as reported Jul 22.  Above it says the fix is in Contenta CMS.  I tried reinstalling with the quick install this time and got this error at the end:
The Quick Install uses SQLite to install Contenta CMS. This is not suited for production sites.
> scripts/install-sqlite.sh 'contentacms'
./scripts/install.sh: line 23: contentacms/vendor/drush/drush/drush: No such file or directory
 ERROR  Drush is required to install Contenta CMS. Please install Contenta CMS using Composer. See http://www.contentacms.org/#install
Script scripts/install-sqlite.sh handling the install:with-sqlite event returned with error code 5
./contentacms-quick-installer.sh: line 31: user-login: command not found
./contentacms-quick-installer.sh: line 32: runserver: command not found

But I do have composer and drush:
drush --version
 Drush Version   :  8.1.15
composer --version
Composer version 1.5.1

Other info:
php -version
PHP 7.0.15
node --version
v8.11.3

My previous local Contenta CMS is running fine:  http://contentacms:8888/admin/api
Assuming re-install of Contenta CMS is the fix, I will try doing that with the normal install when I get a chance.  Just reporting this for now.

@rick02840 please provide the full path to the installer instead of just contentacms. For instance /tmp/contentacms.
There are 2 new videos linked in the README now, maybe those can help.


[$500] Web - Settings - Unable to log out after being redirected to ND from OD by clicking on workspace

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

Version Number: 1.4.18-4
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Log out of ND
Log into OD with an account that has an existing workspace without a bank account
Click on "Continue setup" in the inbox task or Settings> Workspace > User's workspace
After being redirected to ND, click on the avatar and sign out

Expected Result:
User is logged out and the home screen is displayed
Actual Result:
The page refreshes and the user is still logged in
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/e5cde966-c16e-4e16-8e2b-c61991efbe8f
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0152728ca06936b7d2
Upwork Job ID:<PHONE_NUMBER>973801472
Last Price Increase: 2023-12-29

Proposal
Please re-state the problem that we are trying to solve in this issue.
User is not getting signed out after being redirected to ND from OD
What is the root cause of that problem?
We are using a transition url with shortLivedAuthToken to redirect from oldDot to newDot. We are using exitTo param for navigating to a screen immediately after signIn. The transition url route is mapped to loadLogOutPreviousUserPage.
https://github.com/Expensify/App/blob/5c5c862a10b75214899da32333a7f3a694e38be3/src/libs/Navigation/AppNavigator/AuthScreens.tsx#L268-L272
TheLogOutPreviousUserPage has an effect which handles the exitTo param in transition url. Note that we are directly navigating to exitTo route from transition route.
https://github.com/Expensify/App/blob/5c5c862a10b75214899da32333a7f3a694e38be3/src/pages/LogOutPreviousUserPage.js#L57-L65
When user closes the Connect Bank Account modal, screen goes back to the transition URL. So if user tries to signout at this point, the page reloads with transition url which will again invoke signInWithShortLived access token which inturn will sign the user back in.
What changes do you think we should make in order to solve the problem?
We should reset the transition route before navigating to exitTo route in LogOutPreviousUserPage . This prevents the screen from going back to transition route on closing the modal.
if (exitTo && exitTo !== ROUTES.WORKSPACE_NEW && !props.account.isLoading && !isLoggingInAsNewUser) {
    Navigation.isNavigationReady().then(() => {
      Navigation.goBack(ROUTES.HOME);
      Navigation.navigate(exitTo);
  });
}

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

Expected right now

@MitchExpensify As explained in the proposal above this seems to be a bug on client side which re-authenticates the user using the short lived auth token just because we are not clearing the used transition url. This bug will also cause below screen to be shown when user tries to signout when the short lived token has expired. Both of these results are not as per expectation.

Could you please shed some light on why this is the expected behaviour at the moment or point to a discussion where this is discussed in detail?

I initially misunderstood the issue, I think this fits into Wave 9 because its related to the redirect introduced in that wave

@abdulrahuman5196 Do you think this looks like it will need to be handled internally?

Reviewing now

@aswin-s I am unable to fully understand your proposal. I assume you are saying we using the same exitTo url during transition and during logout as well, which is causing the user to re-signin.
And in the change mentioned, you are just routing to home before navigating to exitTo which seems to be a workaround IMO.

Let me elaborate the series of events once again

User logs into old dot, taps on the "Continue setup" for bank account button
Gets redirected to Newdot with a url of the pattern

https://staging.new.expensify.com/transition?accountId=123&email&user%40gmail.com&shortLivedAccessToken=1234&exitTo=bank-account%2Fnew%3FpolicyID%3D72D1

Note that the route being used is /transition
On NewDot '/transion' route is being handled by LogInWithShortLivedAuthTokenPage & loadLogOutPreviousUserPage components. It logsOut previous user and signins in again using the short lived token in the Url. This is a regular GET url and could pasted any time within the validity of shortAuthToken to signOut current user and login again.
After signin there is an effect in loadLogOutPreviousUserPage which basically redirects the user to the exitRoute. In this case it is /bank-account/new. This is a drawer page that opens on top of ReportActionScreen.
So navigation route changes from /transition to /bank-account
At this point user cancels the action and signs out
SignOut action closes the drawer and goes back in history, which takes user back to transition url
Page gets reloaded using the transition url which triggers a re-login

If you see above steps it is quite evident that the transition should have been from /transition -> /r/reportId (Home) -> /bank-account. The reason user goes back to transition url is because the home route is not set before navigating directly to a drawer screen. Thats the reason why user needs to navigate to ROUTES.HOME before navigating to an exitRoute. This could further be verified by simply closing the modal and checking the url in address bar.
https://github.com/Expensify/App/assets/6880914/7d8648f4-c228-4005-a339-a92aec23a466
Let me know if you have any further questions.

Next step here is for @abdulrahuman5196 to review @aswin-s 's resopnse

@abdulrahuman5196 Any feedback on above comment?

Reviewing now

REviewing now. thanks for the detailed explanation.

The proposal here https://github.com/Expensify/App/issues/33731#issuecomment-1871852199 and extended explanation here https://github.com/Expensify/App/issues/33731#issuecomment-1887559200 seems reasonable. But still wondering about routing to home and then routing to bank page.
@MitchExpensify  Could you kindly involve internal engineer worked on Authentication and Session to double confirm, If the the thought process of the proposal is fine or is the transition url expected to behave someway different in this case requiring a different fix?

Could you kindly involve internal engineer worked on Authentication and Session to double confirm, If the the thought process of the proposal is fine or is the transition url expected to behave someway different in this case requiring a different fix?

This seems like a good question for @marcaaron or @cead22

The proposal looks good to me, and it's the only one we have for now that makes this work the way it should.
I understand navigating to home feels like a workaround, and if we have a way to set the home route or to remove the transition page from the navigation stack without navigating to home, those could be good fixes too. If we don't have a way to do either or no other way to accomplish this, then navigating to home is better than the bug, so I think we can go with the proposal and add a comment above Navigation.goBack(ROUTES.HOME); to explain why we're doing that

Thank you for the confirmation @cead22 .
@aswin-s 's proposal here https://github.com/Expensify/App/issues/33731#issuecomment-1871852199 looks good and works well. @aswin-s Kindly update your proposal as well on the new discussions. Would be helpful for future reference.
🎀 👀 🎀
C+ Reviewed

@abdulrahuman5196 Updated my proposal with additional details

@MariaHCD @abdulrahuman5196 I'm unable to reproduce this issue anymore. Looks like it got fixed over here.

Oh nice catch, I'll defer to @MariaHCD or @abdulrahuman5196 to confirm before closing or not

Yes. I don't see this issue anymore.

Nice, since this is no longer reproducible, I'd agree with closing this out.


No obj.key template lookup and clone merge.

Merging an object into a template will cause an array aggregation of objects if the template is not cloned for the merge.
This may also cause cross pollination as objects merged from the template will be added to objects merged into the same template from another object.
Screencast from 03-09-24 10:05:50.webm
Template lookup for object key is fraught with danger. There is no control to prevent a wrong template being looked up, and the warning if a template is not found cannot be stored because many object keys may not have a matching template.

@simon-leech can we see the test workspace for this?


Feature: publish the CLI as a single file

Is your feature request related to a problem? Please describe.
Related to https://github.com/netlify/netlifyctl/issues/151, https://github.com/netlify/cli/pull/1521 and https://github.com/netlify/cli/pull/1522
Describe the solution you'd like
Publish the CLI as a single executable file under the repo releases
Describe alternatives you've considered
Keep using npm install -g netlify-cli
Additional context
Meant to address some of the concerns of users when migrating from https://github.com/netlify/netlifyctl to the CLI
Can you submit a pull request?
Yes

Closing as stale. Please re-open if needed


Add Type Definition Provider support

From https://github.com/Microsoft/vscode/pull/19699 . Add support to the language server protocol for type definition providers

How does this differ from textDocument/definition...or is this the same thing? Am I missing something here?

var x = foo();

goto type definition having x selected takes you to the return type of foo.

So why was this closed? I don't see a textDocument/typeDefinition request in the new specification.md file in the gh-pages branch. Which commit "fixes" this issue?

It got implemented as proposed request / responses in the vscode-languageserver-node library. I will reopen and close when we move the md part here.

Ah, okay. Thank you for clarifying, Dirk!

@dbaeumer Okay to close since this got merged into the specification with 39b118153e7f9ecada27a01a1837edd1823ccfcd?

Closing. @rcjsuen thanks for reminding.


McProtocollib does not run

When I wanted to enable mcprotocolib I got it in the console
Disconnected: Bye!
Disconnected: Server closed

I'm not sure what you mean by "enable" MCProtocolLib, but that output comes from running the included unit tests. If you are just building an MCProtocolLib jar, that is expected to happen as part of the process.


CORS support fails when using POST + application/json

It fails due to OPTIONS pre-flight request.

One possible fix is to accept Content-Type: text/plain on the POST

fixed in https://github.com/atramos/serverless-jax-rs/commit/44c04f6b05892c7393c276f01497400e9da254db


Add meta-keys() XSLT function

Document the new meta-keys() XSLT function (see Stroom issue 3128).

Waiting on this to be merged
https://github.com/gchq/stroom/pull/3130


maintainers: Add Nikolay, Roman, and Rene

As stated in the email to the EVE and EVE-TSC mailing lists.

Commit message: Niklay -> Nikolay
=D

Commit message: Niklay -> Nikolay =D

Oops - fixed.

Welcome!


support for matching before, after, and skip_if attributes that span newlines

This is just my quick crack at it.  Here are some notes:

to ensure backwards-compatibility, the injector will use the existing line-by-line match behavior, and only use the new full-text matching behavior if the existing behavior does not match.
the first thing the new matching does is join the lines back up again, which is inefficient; it would be much more reasonable to pass the original content into indexByLocation.  I just wanted to have as little/clear of a footprint as possible for this PR, so I didn't change that call signature, but you will probably want to do so.
The skip_if aspect of the support was a simple change that could have been done independently; as far as I could see, there wasn't any particular reason to be doing a lodash find of a regex match on each separate line of the content other than to be consistent with the other behavior, so I changed it to just call match on the whole content.  (I don't think this will have a negative performance impact, except perhaps in the case where skip_if exists and would have been matched relatively early in the document? idk.  If you think there might be a concern there, we could add a flag to select which behavior.)
this PR would address #91.

Fantastic! thanks! ❤
If not too much to ask -- can you add the logic you've described to the docs? No need to understand how the docs gets built (its automatic).
Just add a section in FAQ about multiline matches and I'll take care of the rest

@jondot: I pushed a commit adding a FAQ item

Perfect! amazing work 👍

Hi, would it be possible to add some examples to this MR? It was pretty hard figuring out how the syntax works for multi-line regex I had tried at least like 15 times until it worked (found your comment in a ticket and pretty much modified your example and adjusted it to mine)
So I wanted to use this regex (js): /^const routes = \[[^\]]*$/m
Tested it in an online regexp tester seemed to work fine, however it didn't work in hygen. In the end this was the working regex: const routes = \[[^\]]*Routes, (without slashes or anything just plain text.
It looked like this:
---
inject: true
to: src/router/index.js
after: const routes = \[[^\]]*Routes,
eof_last: false
---

example input:
import blala from bblba
import blala from bblba

const routes = [
    qwfeqwgfeRoutes,
    rwetretrwetRoutes,
    rewtrwetRoutes,
    rewtRoutes,
    ewtwRoutes,
    etrwetwreRoutes,
].filter(randomfunction);

fdasasdfdsaf
dsafasdfdsafsda
fsadfsdafasd

and I wanted to put after this
const routes = [
    qwfeqwgfeRoutes,
    rwetretrwetRoutes,
    rewtrwetRoutes,
    rewtRoutes,
    ewtwRoutes,
    etrwetwreRoutes,

PS: I originally almost have given up and wanted to seek out for help (hence this ticket) but happily it could be resolved by myself and since I almost finished writing this ticket, decided to write the ticket but with the solution I found for my problem. Hopefully it will help somebody that has similar struggles.
Thanks for both of your work btw, it's an amazing tool!
Peace! ✌


preserve_host

Summary

Kong version ($ kong version) 2.4.1
A concise summary of the bug.
set preserve_host =true，in service i get host   is   route host:service port

Steps To Reproduce

service  config
hosts <IP_ADDRESS>
port 8086
path /
2.
route  config
preserve_host =true
hosts www.aaa.com
path /
3.
in my web service （<IP_ADDRESS>:8086）（asp.net mvc 5），i get request url is www.aaa.com:8086.  i want get it is www.aaa.com

Additional Details & Logs

Kong debug-level startup logs ($ kong start --vv)
Kong error logs (<KONG_PREFIX>/logs/error.log)
Kong configuration (the output of a GET request to Kong's Admin port - see
https://docs.konghq.com/latest/admin-api/#retrieve-node-information)
Operating system

kong version 2.5.0

Hello @wdqzdd,
It seems to me that the preserve_host property is unrelated with your issue. That property is used to adjust the Host when matching via host. Your problem is not the host, but the port.
What is happening is that your webservice is listening to http traffic from a non-default http port (8086). The only way to communicate with a device listening on port 8086 is by sending traffic through that port. So you will always receive requests on port :8086 if that's where your service is listening.
The only way to solve this is by moving your service to the default http ports - 80 for HTTP or 443 for HTTPS traffic.


Threading in WPF with TDLib 1.8

I do have the WPF application that do the very simple parsing of incoming messages and display them in the grid. Part of the process, for sure, is getting chats. It works just well with TDLib v.1.7.x, but few days ago I decide to upgraded the app to use the version 1.8.1, and now the GetChat method just stop working.
The message from the TDLib routed using simple event to the main window class. The event contains the message id and chat id. When message received in the main window, I'm getting the chat (_client is TDLib itself here, just for simplification):
private void OnNewMessageReceived(object sender, TelegramClient.NewMessageReceivedEventArgs e)
{
......
    var tdChat = await _client.ExecuteAsync(new TdApi.GetChat { ChatId = chatId });
}

and this part is never ending, so it looks like the thread blocking.
So my question is: how to work with TDLib 1.8 regarding threading? Am I have to execute all TDLib code in the main WPF thread?

What TDLib wrapper do you use? ExecuteAsync isprovided by your wrapper and isn't an interface, provided by TDLib.

@levlam I'm bit confused. The ExecuteAsync is part of the TdClient, which part of the packages\tdlib\<IP_ADDRESS>\lib\netstandard2.0\TdLib.dll
Am I in the wrong GitHub project?
I'm using following packages:
    <PackageReference Include="TDLib" Version="<IP_ADDRESS>" />
    <PackageReference Include="tdlib.native" Version="1.8.1" />

For tdsharp see https://github.com/egramtel/tdsharp/issues/28. It describes the cause of the issue, which was supposed to be fixed already.
Also. since TDLib 1.8 updates for all clients needs to be received in the same thread, which could affect tdsharp usage of TDLib.


Middleware design

Background
Previously when we were developing pystargazer, a middlebox based translation framework was proposed. The general idea was, we might tag a certain event/message to be 'translated', then a middlebox could receive this event and translate it, then put it back to the queue with the message body translated.
There's another use case now. Youtube live event should be scheduled to be sent at a specific time. In pystargazer, we spawn a scheduled task internally. Then we timely persist pending tasks into disk. However, stargazer-reborn now takes a microservice approach, and this internal scheduling implementation is considered obscure and hard to maintain.
Concept
A message can be tagged to be processed by a middleware, and is put into the mq. A message is considered to be not ready if there's any middleware tag attached on it. An IM adapter won't process any message that is not ready.
A middleware receives message tagged with its identifier. It process the message, removes the tag, and put the message back into the mq.
Implementation

We change the main exchange type to topic.
Normal messages conform with the * pattern.
Tags are attached after the original message topic with the pattern #.{identifier}, such as foo.delay and bar.delay.translate.
Special fields are required to pass parameters to middleware. Such as x-delay-at, x-translate-from.

Potential middleware

translate - call deepl to translate twitter body
delay - delayed message (capable of removing previously scheduled message by x-delay-id.
youtube-live-check - delay until x-channel-id live is started.

Any thoughts? @George-Miao

LGTM


Write empty requirements in test deployments

This is in service of remote packaging work

SHIP-467

[SHIP-467]


Reproducible C++ builds

I've found two issues when trying to make a cpp-library build reproducible (i.e. produce the same binary output from the same source files):

The order of objectFiles in LinkerSpec is not deterministic. In the case where there is more than one input file, the linker may link the objects in a different order on different build hosts. This results in a different output. Probably sorting the List before invoking the compiler is the solution? Not sure whether this should be in LinkerSpec or in GccLinkerArgsTransformer or if there is workaround I can use for now without patching the gradle source?

I'd like to add compiler args like "-fdebug-prefix-map=${project.rootdir}=." to remove the project directory from the debug symbols, but this changes the build cache key due to the absolute path to the rootdir and defeats caching. I think I'd like a way of adding CommandLineArgumentProviders to the compile tasks somehow. I can work around this by forcing debuggable=false on the compile tasks instead, but this removes all debugging symbols from the resulting library which is not great.

Context
I'm using gradle to build a small jni shared library that is included inside the jar file of a java-library. Unfortunately this java library is included over 100 other subprojects. Because the .so file changes across build machines, the runtime classpath of the unit tests changes and stops the build cache from working.
Your Environment
I'm using gradle 6.3 on Linux.

Thanks for opening this issue. Your points are very good. The object files ordering should be constant between builds. For the -fdebug-prefix-map flag, we should add modelling around this to include the behaviour in the caching key as opposed to the flag itself. It seems the modelling would be something like: no prefix vs prefix from the root directory.
My feeling would be to prefix from the project directory, is there a reason you are prefixing from the root directory?

I haven't thought about it too much or done any real testing here, but I thought rootDir made more sense in the context of a multi-project build: if you try to debug a binary that is linked from multiple other sub-projects then you hopefully only need to point the debugger at the rootDir in order for it to find all the source files. If the paths are relative to each project instead, it could get very confusing if there are two source files with the same name in different projects.

Good point, that make sense. The best solution right now, which is not great would be to ensure all paths are the same for all machines. You could mount the sync folder to a known location and build from there. On Windows, you can mount a folder to a virtual drive to create a common path. It's not the best, but it work around the issue for now.


Match statements don't match lines with carriage returns

I've been using your ES postfix grok patterns for quite some time. Amazing work! After upgrading to ES 5.5 I noticed that postfix messages were no longer getting tagged. After a bit of debugging I noticed that the following match:
match          => [ "syslog_message", "^%{POSTFIX_SMTP}$" ]
Doesn't match syslog_messages ending with newlines or carriage returns. If I feed the following message to logstash:
"message" => "Aug 31 00:00:03 foo01 postfix/smtp[9147]: 30D232017FA<EMAIL_ADDRESS>relay=mail.foo.com[<IP_ADDRESS>]:25, delay=1.1, delays=0.04/0/0.03/1, dsn=2.6.0, status=sent (250 2.6.0<EMAIL_ADDRESS>[InternalId=306728030] Queued mail for delivery)\r"
It spits out a _grok_postfix_smtp_nomatch. If I change the match to include carriage returns and newlines:
match          => [ "syslog_message", "^%{POSTFIX_SMTP}(\r|\n|$)" ]
It works as expected. I'm debating between altering the match or using gsub in my syslog input filter to remove carriage returns. Have you by any chance come across this? If so, which method did you use to get everything working? Thanks again for the amazing work!

The newline should not be there, it's not part of the format generated by postfix, but somehow inserted by your pipeline. You should research the way your postfix logs get into logstash, and find out why the newline ends up in your data, and then fix that issue (or file a bug for it).
 When you send your logging through an IM service that automatically, converts each occurrence of foo :(bar) into foo ☹bar), we can't cope with that either. Your input data should be correct :)


Remove global preinstall script

There are a lot of systems where the user has no rights to install packages globally. It isn't needed for gulp anyway, since it's installed locally anyway.

Cheers for this :+1: