[kie-issues#1330] FEEL functions that expect List parameters, should coerce single item to a List

Closes: https://github.com/apache/incubator-kie-issues/issues/1330
According to the TCK tests, context and context merge are missing the following functionalities:

context should throw an error when providing objects with the same keys
context and context merge should be invocable with a single element

@yesamer @baldimir
I'm not 100% sure of the underlying problem.
From the spec, I see that both contextand context merge requires a list of contexts.
I agree that the list could contain only one single item, but regardless the dmn model should define it as list, e.g.
[context_parameter] instead of context_parameter.
WIth this fix, we are basically

create a new "method" that accept a single element (not defined by DMN spec)
behind the scene, invoke the correct one, with a single-element list.

If my understanding is correct, it would mean that users could create an invalid model, that works only with our implementation.
Does this make sense ? Am I wrong on some assumption ?

@gitgabrio I agree with you, but the point is that the TCK tests expect that kind of behavior. That means other vendors that successfully perform the TCK tests already implemented that. So, the alternative to merging this PR is to raise this point to the TCK meeting and double-check if those tests are correct or not, considering that the specs don't define those methods specifically.

@gitgabrio I agree with you, but the point is that the TCK tests expect that kind of behavior. That means other vendors that successfully perform the TCK tests already implemented that. So, the alternative to merging this PR is to raise this point to the TCK meeting and double-check if those tests are correct or not, considering that the specs don't define those methods specifically.

Yup, exactly.
IIUC the process, those tests does not comes from the committee itself, but from the tck group that, again IIUC, does not have any real ownership on the specs.
If those tests does not reflect the actual spec, then they are invalid, and I'm not sure why they are there and why, if, that behavior has been implemented.
If all the above is true, IMO, those tests (and all the others that does not reflect the actual spec) should be deleted.

Ok, let's put this on hold and raise the point at the TCK meeting

PR job #1 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-drools -u https://github.com/apache/incubator-kie-drools/pull/5997 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/drools/job/main/job/pullrequest_jobs/job/drools-pr/job/PR-5997/1/display/redirect
Test results:

PASSED: 22041
FAILED: 2

Those are the test failures:

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[153]
[Evaluating: 'context([{key: "name", value: "John Doe"},{"key": "age", "value": null}])'] expected: null but was: {"age"=null, "name"="John Doe"}

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[154]
[Evaluating: 'context([{key: "name", value: "John Doe"},{"key": "age", "value": null}])'] expected: null but was: {"age"=null, "name"="John Doe"}

PR job #3 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-drools -u https://github.com/apache/incubator-kie-drools/pull/5997 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/drools/job/main/job/pullrequest_jobs/job/drools-pr/job/PR-5997/3/display/redirect
Test results:

PASSED: 22047
FAILED: 1

Those are the test failures:

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[324]
[Evaluating: 'concat("abc")'] expected: "abc" but was: null

Is this ready for review after the discussions? The coercion from list with a single item to single item and vice versa is defined in the spec in <IP_ADDRESS>.4 Type conversions. The TCK tests are valid.

@baldimir Still a WIP

PR job #5 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-drools -u https://github.com/apache/incubator-kie-drools/pull/5997 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/drools/job/main/job/pullrequest_jobs/job/drools-pr/job/PR-5997/5/display/redirect
Test results:

PASSED: 22138
FAILED: 48

Those are the test failures:

org.kie.dmn.core.DMNRuntimeTest.ex61(boolean)[1]
[Message [id=0, level=ERROR, path=Ex_6_1.dmn, line=159, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum(NBA Pacific.bonus points)': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _decisionbonuspointsliteralexpression, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Ex_6_1.dmn, line=103, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'mean(NBA Pacific.wins)': The parameter 'list', in function mean(), unable to sum the elements which is required to calculate the mean. (DMN id: _5d95b79e-1500-4206-95c3-123831f7aabe, FEEL expression evaluation error) ]] Expecting value to be false but was true

org.kie.dmn.core.v1_4.DMN14specificTest.dMNv14Ch11Example2(VariantTestConf)[1]
[Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]] Expecting value to be false but was true

org.kie.dmn.core.v1_4.DMN14specificTest.dMNv14Ch11Example2(VariantTestConf)[2]
[Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1056, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum([Loan Info.Qualifying Monthly Payment, Propert... [string clipped after 50 chars, total length is 155]': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _f0f68868-ef1c-455d-a438-fd91c7378b16, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1053, column=-1   text=DMN: Error evaluating context extry 'Housing Expense' on context 'Eligibility Parameters' (DMN id: _d4558837-ad20-4ed3-8099-e5142be3797c, Error evaluating context or context entry) ]Message [id=0, level=WARNING, path=Recommended Loan Products.dmn, line=452, column=-1   text=DMN: No rule matched for decision table 'Min Credit Score' and no default values were defined. Setting result to null. (DMN id: _a6e2c692-4a0c-4385-bbc3-7280e94a8760, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=827, column=-1   text=DMN: Unrecoverable error evaluating context extry 'Required Credit Score' on context 'Eligibility': Cannot invoke "Object.toString()" because "r" is null (DMN id: _fbf39f7b-79c3-470c-82ff-62d685f1f297, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1140, column=-1   text=DMN: Error while evaluating node 'Required Credit Score': the declared result type is 'DMNType{ http://www.trisotech.com/definitions/_736fa164-03d8-429f-8318-4913a548c3a6 : tCreditScore }' but the actual value 'null' is not an instance of that type (DMN id: _9da73807-1031-4622-9b65-f1fbe8b1b7ed, Error evaluating node) ]Message [id=0, level=ERROR, path=Recommended Loan Products.dmn, line=1116, column=-1   text=DMN: Error evaluating context extry 'formatted row' on context 'Format Row' (DMN id: _5ccce417-75fd-4d60-b014-695bb847cb31, Error evaluating context or context entry) ]] Expecting value to be false but was true

org.kie.dmn.feel.documentation.ADocFEELExamplesTest.test
sum( [1,2,3] ) = 6

org.kie.dmn.feel.lang.examples.ExamplesTest.loadExample1064
expected: 5500.00 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[117]
[Evaluating: 'sum([ 1, 2, 3 ])'] expected: 6 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[118]
[Evaluating: 'sum([ 1, 2, 3 ])'] expected: 6 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[119]
fEELEventListener.onEvent( );Never wanted here:-> at org.kie.dmn.feel.runtime.BaseFEELTest.expression(BaseFEELTest.java:81)But invoked here:-> at org.kie.dmn.feel.lang.impl.FEELEventListenersManager.lambda$notifyListeners$0(FEELEventListenersManager.java:75) with arguments: [InvalidParametersEvent{getSeverity()=ERROR, nodeName=sum, message=The parameter 'list', in function sum(), an element in the list is not a number., actualParameters={n=[[]]}, paramNameInError=list, paramProblem=an element in the list is not a number, getSourceException()=null}]

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[120]
fEELEventListener.onEvent( );Never wanted here:-> at org.kie.dmn.feel.runtime.BaseFEELTest.expression(BaseFEELTest.java:81)But invoked here:-> at org.kie.dmn.feel.lang.impl.FEELEventListenersManager.lambda$notifyListeners$0(FEELEventListenersManager.java:75) with arguments: [InvalidParametersEvent{getSeverity()=ERROR, nodeName=sum, message=The parameter 'list', in function sum(), an element in the list is not a number., actualParameters={n=[[]]}, paramNameInError=list, paramProblem=an element in the list is not a number, getSourceException()=null}]

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[123]
[Evaluating: 'product([ 2, 3, 4 ])'] expected: 24 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[124]
[Evaluating: 'product([ 2, 3, 4 ])'] expected: 24 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[129]
[Evaluating: 'mean([ 1, 2, 3 ])'] expected: 2 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[130]
[Evaluating: 'mean([ 1, 2, 3 ])'] expected: 2 but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[331]
[Evaluating: 'all( [true, false] )'] expected: false but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[332]
[Evaluating: 'all( [true, false] )'] expected: false but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[333]
[Evaluating: 'all( [true, true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[334]
[Evaluating: 'all( [true, true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[335]
[Evaluating: 'all( [false,null,true] )'] expected: false but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[336]
[Evaluating: 'all( [false,null,true] )'] expected: false but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[337]
[Evaluating: 'all( [] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[338]
[Evaluating: 'all( [] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[355]
[Evaluating: 'any( [true, false] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[356]
[Evaluating: 'any( [true, false] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[357]
[Evaluating: 'any( [true, true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[358]
[Evaluating: 'any( [true, true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[359]
[Evaluating: 'any( [false,null,true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[360]
[Evaluating: 'any( [false,null,true] )'] expected: true but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[361]
[Evaluating: 'any( [] )'] expected: false but was: null

org.kie.dmn.feel.runtime.FEELFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[362]
[Evaluating: 'any( [] )'] expected: false but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[33]
[Evaluating: 'nn sum( [] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[34]
[Evaluating: 'nn sum( [] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[35]
[Evaluating: 'nn sum( [ null ] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[36]
[Evaluating: 'nn sum( [ null ] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[37]
[Evaluating: 'nn sum( [ null, null ] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.KieFEELExtendedFunctionsTest.instanceTest(String, Object, Severity, FEEL_TARGET, Boolean, FEELDialect)[38]
[Evaluating: 'nn sum( [ null, null ] )'] expected: 0 but was: null

org.kie.dmn.feel.runtime.functions.extended.RangeFunctionTest.evaluateWithInvalidFunctionInvocationNode
Expected 'retrieved.isLeft()' from, [all( [true, false] )..all( [true, false] )]

org.kie.dmn.legacy.tests.core.v1_1.DMNRuntimeTest.ex61(VariantTestConf)[1]
[Message [id=0, level=ERROR, path=Ex_6_1.dmn, line=109, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'sum(NBA Pacific.bonus points)': The parameter 'list', in function sum(), an element in the list is not a number. (DMN id: _decisionbonuspointsliteralexpression, FEEL expression evaluation error) ]Message [id=0, level=ERROR, path=Ex_6_1.dmn, line=73, column=-1   text=DMN: FEEL ERROR while evaluating literal expression 'mean(NBA Pacific.wins)': The parameter 'list', in function mean(), unable to sum the elements which is required to calculate the mean. (DMN id: _5d95b79e-1500-4206-95c3-123831f7aabe, FEEL expression evaluation error) ]] Expecting value to be false but was true

org.kie.dmn.ruleset2dmn.ChurnRulesFromSPSSModelerTest.test
expected: "T" but was: null

org.kie.dmn.signavio.SignavioTest.zipFunctions
Expecting actual not to be null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[3]
[Evaluating: 'all([ true, true, true ])'] expected: true but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[7]
[Evaluating: 'any([ false, true, false ])'] expected: true but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[9]
[Evaluating: 'any([ false, false, false ])'] expected: false but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[41]
[Evaluating: 'product( [ 2, 3, 4 ] )'] expected: 24 but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[44]
[Evaluating: 'product( [] )'] expected: 0 but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[258]
[Evaluating: 'zip(["id", "value"], [["23a3e98", "c45da1b"], [40, 120]])'] expected: [{"id"="23a3e98", "value"=40}, {"id"="c45da1b", "value"=120}] but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[270]
[Evaluating: 'avg([3,5])'] expected: 4 but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[271]
[Evaluating: 'avg([3,4,5])'] expected: 4 but was: null

org.kie.dmn.signavio.feel.runtime.FEELExtendedFunctionsTest.instanceTest(String, Object, Severity)[272]
[Evaluating: 'avg([4,5])'] expected: 4.5 but was: null

@gitgabrio @baldimir Ready to be reviewed


Issue #9851 - Unexpected Paste Operations on SQL Script

Folowing Karl Burtram's suggestion for issue #9851, I performed the upgrade for the latest release (1.16.1), however the problem persists. Couldn't it be related to any Extension I use?
Also, I can record the issue happening if somehow it may help. Thanks a lot!

Definitely please try running without any extensions and see if the problem persists. You can do this easily by passing the --disable-extensions parameter to the process through the command line.
e.g. on Windows it'd look like this
%USERPROFILE%\Programs\Azure Data Studio\bin\azuredatastudio.cmd --disable-extensions


Fix webdash and add test

The web dashboard was broken on master from a recent PR. This fixes that and adds a test to make sure the webdash bundle is being served.

you forgot to run make tidy


apple: Fixing file deletion, view drawings as image

fixes #649
You can view drawings as image in macOS
https://user-images.githubusercontent.com/2370497/112770078-d696d980-8ff2-11eb-86dd-a4ebfe578c05.mov
fixes #648

@tvanderstad when you get a sec could you green this PR by adding Windows enumeration for the errors that were missing b4?


Enhance auto-data-store to support global / non-session storage.

Auto-data-store currently stores to session storage - which is great for keeping track of user-submitted data. It would be really useful if it could also store to global variables - this would let teams build 'settings' pages to configure the prototype.
As it is now, a settings page built with auto-data-store can only be controlled from the same computer, and if the session gets cleared (such as a user visiting a start page), then the settings get cleared too.
Auto-data-store is so nearly good for settings pages, except for this issue. As it is, users still need to implement the storage manually, or hack auto-data-store to store globally.
Suggestion for how it could work:
We currently support _foobar for variables that shouldn't be stored. In a similar way we could support namespacing for global variables. Possible option: global_foobar.

Here's a screenshot of a recent settings page I made. This page allows researchers to enable or disable certain features during a research session to make the prototype more responsive to user input / test different scenarios.

Thanks Ed, looks like a really useful thing to investigate. How are your globals set in the first place?

so... for my prototype I built a hacky way to initialise variables on start. For this feature, I think we'd want a clean way to set a load of defaults.
I also built a thing to write these settings to a file, and read from them when starting to get some persistent storage. This wouldn't really work on Heroku, but could be done on PaaS.

I would certainly value the ability to manage global configuration options via non-session-based storage. For example, this would allow us (service teams) to create an interface to change taxonomies, character counts, sign-in methods, version routing, validation options and so on, while the app is in use.
Changing configuration on the fly is particularly useful in Wizard of Oz style experiments.


scratch folder may result in 'Initialization goal failed' in swi-prolog pack

I installed logtalk pack in swi-prolog with root user.
?- pack_info(logtalk).
Package:                logtalk
Title:                  Logtalk - Object-Oriented Logic Programming Language
Installed version:      3.16.0
Installed in directory: /usr/lib/swi-prolog/pack/logtalk
Author:                 Paulo Moura<EMAIL_ADDRESS>Maintainer:             Paulo Moura<EMAIL_ADDRESS>Packager:               Paulo Moura<EMAIL_ADDRESS>Home page:              https://logtalk.org/
Download URL:           https://logtalk.org/files/swi-prolog/packs/logtalk-3.16.0.tgz
Provided libraries:     logtalk
true.

When I start to run use_module(library(logtalk)). in swipl using common user, a warning is produced
?- use_module(library(logtalk)).
Warning: /usr/lib/swi-prolog/pack/logtalk/logtalk-3.16.0/integration/logtalk_swi.pl:24:
	/usr/lib/swi-prolog/pack/logtalk/logtalk-3.16.0/core/core.pl:23326: Initialization goal failed
true.

I find that this is caused by the scratch folder, when I chown the folder to the common user, the warning is gone.
➜  logtalk sudo chown -R vimos:vimos /usr/lib/swi-prolog/pack/logtalk/logtalk-3.16.0/scratch
➜  logtalk swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 7.6.4)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

?- use_module(library(logtalk)).
true.

?- ^D
% halt

Maybe this scratch_directory needs to be user specific to avoid such warning.

The pack sets both the LOGTALKHOME and LOGTALKUSER environment variables to the location of the pack and indeed expects the $LOGTALKUSER/scratch directory to be user-writable. Any reason to install the pack as root but run it as a non-admin user? Note that the pack is handy for some deployment scenarios but not advised for development. But you can override the scratch directory by adding to your .swiplrc the following code:

That makes good sense, thank you for the explanation!


build-thirdparty.sh has bad gcc link

Describe the bug
build-thirdparty.sh assume gcc is in /bin/gcc if there is no palo-toolchain/gcc. But, in many Linux distribution gcc is in /usr/bin/gcc. Actually, if default gcc is used, use "gcc" directly from PATH.
To Reproduce
Steps to reproduce the behavior:

build-thirdparty.sh
See error
./build-thirdparty.sh: line 114: /bin/gcc: No such file or directory

Expected behavior
Screenshots
Desktop (please complete the following information):

OS:  Ubuntu
Version: 16.04

Additional context
After fix #231

commit： ae19fbfc8b741a9cd70c780e6f70b9e9a08bb493 has fixed all the issues.

commit： ae19fbfc8b741a9cd70c780e6f70b9e9a08bb493 has fixed all the issues.


Can't get keys from leader

Hello Michael,
I have just followed this example of yours to learn something about stateful sets in OpenShit and I found the follower pods can’t get keys from the leader due to a bad hostname construction (I think) compared to what DNS is able to resolve: mehdb-0.axa-partners-chatbot-hogar-preprod-axa-services-es instead of mehdb-0.mehdb.axa-partners-chatbot-hogar-preprod-axa-services-es.svc.cluster.local.
There you have the output of my test:
ramon@bionic-beaver:~/OpenShift $ oc get sts
NAME      DESIRED   CURRENT   AGE
mehdb     3         3         34m
ramon@bionic-beaver:~/OpenShift $ oc scale sts mehdb --replicas=4
statefulset "mehdb" scaled
ramon@bionic-beaver:~/OpenShift $ oc get pods
NAME      READY     STATUS    RESTARTS   AGE
mehdb-0   1/1       Running   0          36m
mehdb-1   1/1       Running   0          35m
mehdb-2   1/1       Running   0          33m
mehdb-3   1/1       Running   0          1m
ramon@bionic-beaver:~/OpenShift $ oc logs mehdb-3
2019/01/29 11:49:52 mehdb serving from mehdb-3:9876 using /mehdbdata as the data directory
2019/01/29 11:49:52 I am a follower shard, accepting READS
2019/01/29 11:50:02 Checking for new data from leader
2019/01/29 11:50:02 Can't get keys from leader due to Get http://mehdb-0.axa-partners-chatbot-hogar-preprod-axa-services-es:9876/keys: dial tcp: lookup mehdb-0.axa-partners-chatbot-hogar-preprod-axa-services-es on <IP_ADDRESS>:53: no such host
2019/01/29 11:50:12 Checking for new data from leader
2019/01/29 11:50:12 Can't get keys from leader due to Get http://mehdb-0.axa-partners-chatbot-hogar-preprod-axa-services-es:9876/keys: dial tcp: lookup mehdb-0.axa-partners-chatbot-hogar-preprod-axa-services-es on <IP_ADDRESS>:53: no such host
ramon@bionic-beaver:~/OpenShift $ oc run -i -t --rm dnscheck --restart=Never  --image=quay.io/mhausenblas/jump:0.2 -- nslookup mehdb
If you don't see a command prompt, try pressing enter.
Name:      mehdb
Address 1: <IP_ADDRESS> mehdb-2.mehdb.axa-partners-chatbot-hogar-preprod-axa-services-es.svc.cluster.local
Address 2: <IP_ADDRESS> mehdb-1.mehdb.axa-partners-chatbot-hogar-preprod-axa-services-es.svc.cluster.local
Address 3: <IP_ADDRESS> mehdb-0.mehdb.axa-partners-chatbot-hogar-preprod-axa-services-es.svc.cluster.local
Address 4: <IP_ADDRESS> mehdb-3.mehdb.axa-partners-chatbot-hogar-preprod-axa-services-es.svc.cluster.local
I wonder if it would be easy for you to explain the root cause of this error and suggest how it can be fixed.
Thank you in advance,
Ramon Cisternas

Hi Michael, I'm getting almost the same error has reported here above "Can't get keys from leader due to Get http://mehdb-0.default:9876/keys: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)".
I think this is a DNS issue or the way you construct the leader's URL. Since the leader can't be resolved as "mehdb-0.default", but instead works calling it as "mehdb-0.mehdb.default", I think the right way to construct its URL is pod_name.service.namespace.
So I would change this line of code
url := "http://" + leaderShard + "." + ns + ":" + port + "/keys"

to
url := "http://" + leaderShard + "." + "THE SERVICE NAME FROM YAML" + ":" + ns + ":" + port + "/keys"

Could you please verify your code at your end?
Thanks for the job you did so far, it helped me to demo the  StatefulSet behaviour (a part from not being able to accepting keys from the leader ;-) )

I have the aforementioned fix in place, ie. in main.go:
-	url := "http://" + leaderShard + "." + ns + ":" + port + "/keys"
+	url := "http://" + leaderShard + "." + "mehdb" + "." + ns + ":" + port + "/keys"

However I'm hitting another issue (open /mehdbdata/test/content: no such file or directory):
oc run -i -t --rm jumpod --restart=Never --image=quay.io/mhausenblas/jump:0.2 -- sh
If you don't see a command prompt, try pressing enter.
~ $ echo "test data" > /tmp/test
~ $ curl -sL -XPUT -T /tmp/test mehdb:9876/set/test
open /mehdbdata/test/content: no such file or directory

This looks like a permission issue:
oc exec -it mehdb-0 -- /bin/bash
bash-4.4$ ls -alh /mehdbdata/
total 12K
drwxr-xr-x. 2   99   99 4.0K Nov 15 05:24 .
drwxr-xr-x. 1 root root 4.0K Nov 15 13:34 ..
bash-4.4$ touch /mehdbdata/test
touch: cannot touch '/mehdbdata/test' Permission denied
bash-4.4$ ls -lZ /mehdbdata/ -d
drwxr-xr-x. 2 99 99 system_u:object_r:nfs_t:s0 4096 Nov 15 05:24 /mehdbdata/
bash-4.4$ id 2
uid=2(daemon) gid=2(daemon) groups=2(daemon)

Thanks @jeffhoek! I'm a little unsure what you want me to do? I can't reproduce it.

I was able to get it running on OpenShift 3.11, with the follow steps:
oc create sa mehdb
oc adm policy add-scc-to-user privileged -z mehdb

then in app.yaml need:
      serviceAccountName: mehdb


Weird formatting for method names

Hi!
I've written the following code which I find to be very readable:
[HttpGet("dosinglanes")]
public async Task<ActionResult<IReadOnlyCollection<GetProductListResponseModel>>> GetProductsOnDosingLanes()
{
    await Task.CompletedTask;
    return Ok();
}

However, csharpier turns this into the following:
[HttpGet("dosinglanes")]
public async Task<
    ActionResult<IReadOnlyCollection<GetProductListResponseModel[]>>
> GetProductsOnDosingLanes()
{
    await Task.CompletedTask;
    return Ok();
}

Which I find to be very unreadable. The > GetProductsOnDosingLanes() is a very.. unique way of formatting this code.
I would like Csharpier to keep the code as is. What are your thoughts on this?
I could simply add a // csharpier-ignore, but I don't think this code should be formatted :)

I've implemented a temporary workaround by using .csharpierrc like this:
# Some long API method definitions are easier to read when on one line.
printWidth: 120

But this is not ideal for me, because the "default" print width is fine by me, except for this case.
I know formatting is a never-ending discussion, so feel free to close this issue if you believe this is issue is a matter of preference and the .csharpierrc is a good enough fix. Otherwise, let's have a discussion :D

Perhaps it would be possible to apply .csharpierrc rules for specific files/directories, including wildcards? so like /**/*Controller.cs would only have a longer printWidth.

I believe you can make that work with .editorconfig. As of 0.26.0 csharpier supports reading editorconfig files.
I agree that the method isn't formatted very well. Maybe something like this?
[HttpGet("dosinglanes")]
public async
    Task<ActionResult<IReadOnlyCollection<GetProductListResponseModel>>>
    GetProductsOnDosingLanes()
{

Or if there is only a single generic parameter never break, which I believe would result in this no matter how long the method name gets
[HttpGet("dosinglanes")]
public async Task<ActionResult<IReadOnlyCollection<GetProductListResponseModel>>> GetProductsOnDosingLanes()
{

I'll have to play around a bit with other sample code to see how both of those end up, or if there are any other possiblities.

Current formatting in OP breaks the Rectangle rule, and it doesn't feel good in the middle of a generic type.

Maybe something like this?

public async
    Task<ActionResult<IReadOnlyCollection<GetProductListResponseModel>>>
    GetProductsOnDosingLanes()
{

Seems ok, altough maybe I'd keep the return type on first line:
public async Task<ActionResult<IReadOnlyCollection<GetProductListResponseModel>>>
    GetProductsOnDosingLanes()
{

This made me think of a new concept that could solve many of csharpier not-so-pretty edge cases. It'll need more thinking and design but it has potential:
CSharpier should avoid breaks that create widows or orphans.
I borrow these terms from typography, what I mean for code is: lines that are very short, so the break doesn't actually save much.
In this example, leaving public async alone on a line is only 12 characters. Maybe that's not worthy of breaking and the return type should be left on the same line.
A similar argument could be made for the method name (so keep everything on one line as you suggest), although 26 characters might be enough to justify the break.
As a counter-example, if the method was named Apply(), even if the line was over the limit it would be silly to break it on its own line.
This concept could help here, and many other instances.
This example from #672 has many lines with 3 or 5 characters:
class ClassName
{
    void MethodName()
    {
        var searchRequest = new SearchDescriptor<ElasticsearchProduct>().WithAggregations(
            o =>
                o.WithFilter(
                    key,
                    f =>
                        f.WithFilter(fd => filter)
                            .WithAggregations(
                                ad =>
                                    ad.WithTerm(
                                        key,
                                        cd =>
                                            cd.WithField(facetField).WithSize(MaximumCategoryFacets)
                                    )
                            )
                )
        );
    }
}

Let's use the same breaking logic, but avoid breaks that leaves less than 10 chars of syntax on a single line (also adjusted the chaining to match more recent CSharpier releases):
class ClassName
{
    void MethodName()
    {
        var searchRequest = new SearchDescriptor<ElasticsearchProduct>()
            .WithAggregations(o =>
                o.WithFilter(
                    key,
                    f => f
                        .WithFilter(fd => filter)
                        .WithAggregations(ad =>
                            ad.WithTerm(
                                key,
                                cd => cd.WithField(facetField).WithSize(MaximumCategoryFacets)
                            )
                        )
                )
            )
        );
    }
}

I think it's an improvement.
Note that I choose not to apply a minimum length rule to one argument in a list of arguments or to one method call in a chain of calls. I think that would hurt readability.

Let's use the same breaking logic, but avoid breaks that leaves less than 10 chars of syntax on a single line:

I'm really curious if there may be an easy way to implement this. Although it probably needs to be applied selectively. Some of the parameters in your example are less than 10 chars. But those are part of a group, where o => is not. Definitely something worth exploring more!

Has anyone found a workaround or fix for this?
Also encountering really weird method formatting here but can't find a config option to disable it.
public async Task<
        PagedResult<LegalProcedureReason, Embedded<LegalProcedureReason>>
    > GetLegalProcedureReasonsAsync(bool bypassCache, CancellationToken token)
    {

I'd rather see something like this:
    public async Task<PagedResult<LegalProcedureReason, Embedded<LegalProcedureReason>>>
	    GetLegalProcedureReasonsAsync(bool bypassCache, CancellationToken token)
    {


Which UI Library to use

When I created this project I used Material Web Components for Angular rather than Angular Material that we are more used to. There are advantages to both but we should probably decide on one soon before we have too many customizations to the UI.

Matt and I noticed this when we met today. We managed to get stuff done with MWC but it was a little different. I think that because of software design, not only would I likely be more comfortable with Material, but future maintainers as well.

Some things to consider:

Assuming we want to continue with the design in our figma mockups, we will want a bottom app bar component. Neither library has one at the moment but it is definitely planned in MDC and there are already some examples someone made that we could probably pick up and use right away. See https://github.com/material-components/material-components-web/issues/2659
For auth in Firebase, there are various libraries to provide some of the basic UI.

The official UI library from Google but without any specific Angular support so it would be work to integrate it
A simple Angular library for the official UI
A more complex Angular library that uses Angular Material and requires it. If we want to use this library it could be a reason to choose Angular Material.

I would also prefer Angular Material. In terms of UI libraries, both FirebaseUI_Angular and ngx-auth-fairebaseui provide a lot more features. FirebaseUI-Angular has a troubleshoot section on their main page that exposes a few problems we might run into and how to go around them.

When you say "in terms of UI libraries," do you mean the authentication UI libraries or UI libraries in general?

I meant the authentication UI like the "Sign in with google" button, etc

It looks like we have decided to continue with Angular MDC.


i18n(zh-cn): Update routing.mdx

Description (required)
Update routing.mdx
Related issues & labels (optional)

#8894
Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
guides/routing.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


cron & git input user experience

Right now cron and git inputs require users to manually set their names, and they are exposed as top-of-DAG repos into which content ("magically") appears. This different from how all other top-of-DAG repos work.
There are a few ways in which this could be made a bit smoother/more consistent:

Automatically generate input/repo names (eg
Hide cron and git repos (store data in branches on the output repo? put them in some sort of "pachyderm namespace"?)
Don't special-case these repos, -- either create some notion of an ingestion pipeline ("spout") and use those, or deploy a k8s service outside pachyderm that just writes data to a completely vanilla repo (ie how we recommend people implement spouts today)

Related to the third option #2958


Hyperlink doesn't work for equations' labels in Julia's jupyter notebook

thanks @PooyaFa would you mind dropping the notebook with issues into this issue as a file and I will take a look?

Thanks.
https://github.com/QuantEcon/sphinxcontrib-jupyter/issues/136#issuecomment-436052896

Is this still an issue @PooyaFa? The hyperlinks seem to be working on the live site.

Hi. I think it’s not an issue anymore.
On Thu, Jul 11, 2019 at 2:54 AM mmcky<EMAIL_ADDRESS>wrote:

Is this still an issue @PooyaFa https://github.com/PooyaFa? The
hyperlinks seem to be working on the live site.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/QuantEcon/sphinxcontrib-jupyter/issues/135?email_source=notifications&email_token=AKSTQPTCB6EHY622USQOZP3P637MBA5CNFSM4GBSTZ52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZWFXVI#issuecomment-510417877,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKSTQPQWAKQCEVM2ERPA6STP637MBANCNFSM4GBSTZ5Q
.

--
Pooya R. Ravari
PhD student in Economics at UBC
https://sites.google.com/view/pooyarravari


No Prism for Table.

I was looking for this just now as it's what I need and I can't find it.

I omitted Table somewhat intentionally as its type seemed a bit unwieldy. That being said I'm happy to add it if you need it.

Fixed in 0.6.


Update gradle version

Hi.
I've tried to build the library with Java 11, but it failed because gradle is too old.
So I've updated the gradle version.
Thanks.

Thanks! looks good.


DISTX-39. Fix cleanup failure if delete happens too early.

If during cluster install, cleanup task can fail through creating cluster modification bean (as CM client cannot be created yet)
that is just a quick fix , a cluster related cleanup is not a fatal one, so just catching and logging the error.
With a longer term solution (not too long term ... I mean like next week) is to create an another interface for ClusterApi that can be called without creating CM client or just call the cleanup if a specific cluster state is satisfied

retest this please


Feature | Add Storybook to Vivo

Fixes:<PHONE_NUMBER>849518
Description of changes
Added packages and reorganized components so that they contained and can be displayed in a storybook.
Notes for Reviewers
This is still a draft PR. Need to work on getting the build to pass.
See instructions in the README under the new section for development
Testing
The instructions for using Vivo are in the README. Take it for a run and see if it works! Also check out the storybook build by running the storybook command in the README and visiting the components.

Is there a pattern you'd recommend to reviewing this? 121 files and 44k lines is a lot to digest, are some of these big .lock files?

Why do we have both a package-lock.json and a yarn.lock file?

Artifact from some npm commands. Deleted in f8cf3e867e44fc3d93328d0cf95bb452109f1b7c

Is there a pattern you'd recommend to reviewing this? 121 files and 44k lines is a lot to digest, are some of these big .lock files?

Most are moves with modifications to components path that reflects the new "calyptia-vivo" namespacing (since vivo is already taken as an npm org)


Can you add an index to the search?

Can you add an index to the search?
now,the search is so slow when has large bucket

https://scoop-docs.now.sh/apps/

https://scoop-docs.now.sh/apps/

no is that, i use 'scoop search xx' is so slow

Searching is slow, yes

Out of frustration I created a fast drop-in replacement for scoop search:
https://github.com/shilangyu/scoop-search
Returns identical output to scoop, just 50 times faster.


Minor error in PrimitivesNexxim

line 1055 of the new  primitive nexxim code is commented out when it shouldnt be, tried pushing a fix from pycharm!

Hi @seeyouatcloudbase ,
Please contact me if you have problems pushing your branch


Feature request: property to disable "default" avatar list

In our app, we use "custom" avatars/cards to open the story modal using InstagramStoriesPublicMethods as a ref. The default avatar list is not visible since we didn't set the imgUrl property for any story.
However, even if it is not visible for the users, the ScrollView for the avatars is still rendered. Would it be possible to add a property to disable this completely? Or to only render the ScrollView if there's at least one story containing the imgUrl?
The related code is here:
https://github.com/birdwingo/react-native-instagram-stories/blob/main/src/components/InstagramStories/index.tsx#L210-L225
If no prop will be added, it can be automatically checked using something simple like this:
// Render the avatar list if at least one story has an image
const renderAvatarList: boolean = data.some(story => Boolean(story.imgUrl));

Hello, you can use the newest version of library. There was added new property hideAvatarList


IX adapter has priceFloors module support

IX bid adapter supports priceFloors module , since prebid version 4.32.0.

Hi, is this just a docs update?

Hi @MartianTribe,  Yes , just a docs update


fix several bottle prototypes not having solution visuals

About the PR

Adds SolutionContainerVisuals component to 'BaseChemistryEmptyBottle' (Plus stuff to make it work.).
Media

Before:

After:

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

fix: Fixed several bottles not correctly displaying contained solutions.

Shouldn't this be on BaseChemistryEmptyBottle? The only other things that inherit it after the empty bottle variants.

Shouldn't this be on BaseChemistryEmptyBottle? The only other things that inherit it after the empty bottle variants.

What do you mean? There are 4 empty bottle variants that need separate values for the SolutionContainerManager 'fillBaseName' field. 'bottle-1-', 'bottle-2-', 'bottle-3-' etc.

I don't know of any other changes I can make, lemme know If it needs more.

I'm assuming that linter fail is something I can ignore?


No presence appears on Discord

Hey!
I just installed the plugin and restarted VSCode to no avail. Here are the logs: https://pastebin.com/8dUzpjW9
I'm running ZorinOS 16.2 (ZorinOS is based of Ubuntu)
Thanks in advance.

47e554b18c4c311ac938be0076c08f6241cf3e63 should fix this

If it still doesn't work, please answer this question
Discord version: (PTB/Stable/Canary) (Version)
Flatpak/Snap/Normal:

Issue persists after update to v5.1.13
Discord Stable 213510 (8831bfd) Host 0.0.28 Linux 64-Bit (5.15.0-76-Generic)
Normal (.deb)

I can't really boot up a VM now, i will look into this tomorrow

Oh, and, can you run
ls $XDG_RUNTIME_DIR

? and tell me if you are using Wayland or X

I'm using X.

Alright, i think we can rule out that it is caused by the VSCord itself and not the discord-rpc lib itself

can you send me then new error log that you got after updating to the latest version?

[4:34:53 PM] [ERROR] Encountered following error while trying to login: RPC_COULD_NOT_CONNECT: Could not connect
    at /home/david/.var/app/com.visualstudio.code/data/vscode/extensions/leonardssh.vscord-5.1.13/node_modules/.pnpm/@xhayper+discord-rpc@1.0.20/node_modules/@xhayper/discord-rpc/dist/transport/IPC.js:111:20
[4:34:53 PM] [INFO] [002] Destroyed Discord RPC client
[4:34:53 PM] [INFO] Successfully logged in to Discord with client ID<PHONE_NUMBER>63617802
[4:34:53 PM] [INFO] Discord Rich Presence for VS Code activated.
[4:34:53 PM] [INFO] Registered Discord Rich Presence commands

ahh, could not connect but connect in the next moment, i have seen this before but don't understand why it would fail

I have no idea either :shrug:
Other "Discord Presence" apps (not extensions in vscode) can connect to Discord just fine.

Do you know how to setup a development version of vscord? i think it would be best if we try to debug it together, since this bug is very hard to replicate

Sorry, but I don't know how to do that.
I can also try spinning up a VM with the same OS and versions to see if it's just something on my machine.

Sure, you can do that, if possible, join the discord, i might be able to guide you on how to set up a dev environment for the extension

This was caused by using flatpak/snap version of VSCode


consulting。。。

Dear author, may I ask if you have written your graduation thesis related to this research ? With the idea of learning from you, could you please share your existing papers for me to learn? (Except for the paper---PYRO-NN, which is mentioned on GitHub) , thanks a lot !

Mee to !

You can find some Papers which built on the framework on the Repository for the Layers. However, that is a good hint, to include the paper list also in the main repository.
Here are some Papers which use the framework:
https://ieeexplore.ieee.org/abstract/document/9103110/
https://www5.informatik.uni-erlangen.de/Forschung/Publikationen/2018/Syben18-DNN.pdf
https://www5.informatik.uni-erlangen.de/Forschung/Publikationen/2018/Syben18-PLR.pdf


Update README.md

Thank you for adding this! Looks like a great paper. Mind putting it under the Hit finding and potency prediction section?

done :)

Thank you!


feat: add neuralsearch

https://github.com/algolia/algoliasearch-client-javascript/pull/1450#pullrequestreview-1352822756

moved to https://github.com/algolia/api-clients-automation/issues/1456


feat: Implement util to conditionally run lint based on Svelte version and SvelteKit routes etc

This PR introduces the getSvelteContext function. This function will be invoked at the beginning of every rule before the release of eslint-plugin-svelte v3. It enables the conditional execution of linting based on factors such as the Svelte version SvelteKit route　etc. By doing so, it allows users can use recommended config regardless of the Svelte version they are using. As a result, unnecessary rules will be effectively disabled automatically.
After merging this PR and applying the changes to all rules, I plan to update the recommended config and release v3. Consequently, I will close https://github.com/sveltejs/eslint-plugin-svelte/pull/957.

@ota-meshi
Could you please review the policy of the PR? If there are no issues, I believe I can handle the remaining tasks on my own.


Set Up Computer Vision Package for SAP AI Core

Tutorials: https://developers.sap.com/tutorials/cv-package-aicore-setup.html
Write here how you think we can improve the tutorial ...
There are 3 issues on the tutorial.

"pip install torch==1.10 torchvision" doesn't work at step4.
due to package dependency, I managed with torchvision==0.11.1
incorrect python script at step 13

ai_api_client = AIAPIV2Client(
    base_url = aic_service_key["serviceurls"]["AI_API_URL"] + "/v2/lm", # The present AI API version is 2
    auth_url=  aic_service_key["url"] + "/oauth/token",
    client_id = aic_service_key['clientid'],
    client_secret = aic_service_key['clientsecret']
)

The above code should be the below one.
ai_api_client = AICoreV2Client(
    base_url = aic_service_key["serviceurls"]["AI_API_URL"] + "/v2", # The present AI API version is 2
    auth_url=  aic_service_key["url"] + "/oauth/token",
    client_id = aic_service_key['clientid'],
    client_secret = aic_service_key['clientsecret']
)

Hi @YoheiFukuhara,
thanks for reporting the bugs.
Point 1: Did you face any errors during installation with the command provided in the tutorial?
torchvision has no strict version requirements as seen in the pip command you shared. torchvision==0.11.1 is the version that gets installed with pytorch==1.10.0 as of now. That should be ok.  Is there any change required in the tutorial?
Point 2: has been fixed with PR #18741.

Hi @kannankumar

Point 1: Did you face any errors during installation with the command provided in the tutorial?
Yes, I did.  Though I didn't keep my logs at that time, I remember the pip installation failure with pip install torch==1.10 torchvision.
If you succeed with pip install torch==1.10 torchvision, then how about adding my solution as a remark?

Yea sure we can surely add your solution as a remark if that is missing.
Could you share what was your solution? what command(s) did you execute?
Also would be helpful to give some details :

OS
Python version
torch version

We would like to understand the details so we can find and solve the root cause of the problem, if it is something other than torchvision package dependency.
Thanks.

I deleted my environments, since it was on cloud.
I used GCE on Google Cloud.
So the below information may be incorrect.

OS: Debian
Python: 3.9.13
torch: 1.10

I executed pip install torch==1.10 torchvision==0.11.1.

@kannankumar Any updates? Please close this issue if it has been resolved.

As there have been no updates, I am assuming this issue is closed.  Please reopen it if needed.


OCM-2394 | fix: Delete classic and hosted-cp account roles automatically if -y flag is set

https://issues.redhat.com/browse/OCM-2394

/retest


User should reenter his PIN code after X time of inactivity

When a user has been inactive for X time or the app is restarted, a user should reenter (confirm) his password upon opening the app. E-mail is stored, so only the PIN code should be entered.

@TTA777 Any thoughts on this? What is the ideal idle time before a user should reenter his pincode?

Should this be P0?

I think there's a security consideration making this a P0 in the ideal case


Package control not working

On a Mac, hit CMD + SHIFT + P and installed package control.
Following your instructions to install PowerShell brings up nothing, I type Install Package and nothing populates or does anything.

Wrong repo.
see: https://github.com/wbond/package_control/issues/1612


IEDriver not starting from Selenium Server when specifying webdriver.ie.driver via seleniumArgs

Hi,
There seems to be an issue with running Protractor Tests in IE11 when specifying the seleniumServerJar, seleniumPort & the IE webdriver location via seleniumArgs.
Here is what I have in my Protractor conf file:
seleniumServerJar: './node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.2.0.jar',
seleniumPort: 4444,
seleniumArgs: ["-Dwebdriver.ie.driver=C:/Projects/MyProject/ProtractorTests/node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer3.2.0.exe"],
capabilities: {
        browserName: 'internet explorer',
        platform: 'ANY',
        version: '11'
    },

What I have done

webdriver-manager update --ie
checked the path/filename passed in seleniumArgs
ran the above settings with chrome and firefox specified in capabilities (minus seleniumArgs) and everything worked
ran the above settings with chrome and firefox specified in capabilities (with seleniumArgs)  and it didn't work

Problem
When I run the tests I get the following error message:
[11:12:37] E/launcher - Error: Error: Server terminated early with status 1
    at __dirname.start.opt_timeoutMs.address_.Promise.resolve.then.resolveCommandLineFlags.then.earlyTermination.catch.e (c:\Projects\MyProject\ProtractorTests\node_modules\selenium-webdriver\remote\index.js:252:52)
    at process._tickCallback (internal/process/next_tick.js:103:7)
[11:12:37] E/launcher - Process exited with error code 100

The issue seems to be with the argument, but I cannot understand what the problem is, others seem to have had success with this.
What I am trying to achieve
Simplicity for my team members running IE tests locally. I don't want to specify an environment PATH as all of my team will checkout to the same directory below C:/ so it would just be another setup step. Ideally I would have liked the path passed in seleniumArgs to be relative and not absolute but that is a nice to have until I get this working...
...any ideas?

Node Version: 7.5.0
Protractor Version: 5.1.1
Browser(s): Internet Explorere 11
Operating System and Version Windows 7 (64bit)

Just added the below environment path and removed the argument specifying the path from seleniumArgs:
C:\Projects\MyProject\ProtractorTests\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer3.2.0.exe
Same error as I heav already posted...
If I remove the path and run I get the error:
 [11:49:29] E/launcher - The path to the driver executable must be set by the webdriver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://selenium-release.storage.googleapis.com/index.html
[11:49:29] E/launcher - WebDriverError: The path to the driver executable must be set by the webdriver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://selenium-release.storage.googleapis.com/index.html
    at Object.checkLegacyResponse (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\lib\error.js:505:15)
    at parseHttpResponse (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\lib\http.js:509:13)
    at __dirname.execute.request.then.doSend.then.response (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\lib\http.js:440:13)
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebDriver.createSession()
    at Function.createSession (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\lib\webdriver.js:777:24)
    at createDriver (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\index.js:167:33)
    at Builder.build (c:\Projects\Unity\ProtractorTests\node_modules\selenium-webdriver\index.js:632:14)
    at Local.getNewDriver (c:\Projects\Unity\ProtractorTests\node_modules\protractor\built\driverProviders\driverProvider.js:52:33)
    at Runner.createBrowser (c:\Projects\Unity\ProtractorTests\node_modules\protractor\built\runner.js:194:43)
    at events_1.EventEmitter.run.q.then.then (c:\Projects\Unity\ProtractorTests\node_modules\protractor\built\runner.js:338:29)
    at _fulfilled (c:\Projects\Unity\ProtractorTests\node_modules\q\q.js:834:54)
    at Promise.then.Q.nextTick.self.promiseDispatch.done (c:\Projects\Unity\ProtractorTests\node_modules\q\q.js:863:30)
    at Promise.__dirname.Promise.promise.promiseDispatch (c:\Projects\Unity\ProtractorTests\node_modules\q\q.js:796:13)
    at c:\Projects\Unity\ProtractorTests\node_modules\q\q.js:604:44
[11:49:29] E/launcher - Process exited with error code 199

So the real problem appears not to be with the argument (which clearly works as the driver seems to be getting picked up in both cases) but instead with just running the Protractor test via Selenium Standalone Server/IEDriver?

This is a tricky one, and our documentation could be better about the support here. What you actually want is to supply jvmArgs to the localSeleniumStandAloneOpts property of your config
  localSeleniumStandaloneOpts: {
    jvmArgs: [
      '-Dwebdriver.ie.driver=<path-to-ie>'
    ]
  },

I'm going to go ahead and close this issue. Please direct further usage/debugging questions to StackOverflow. Thanks!

@NickTomlin - thanks for your help! Yeah, I think the documentation needs updating. I didn't consider for a second that I was passing the argument to the wrong place...
This has got me to the next stage now. Still not working but I am confident it's my local config and not Protractor! Off to StackOverflow I go.


Audio Trimmer not loading in safari version ( 15.0 )

Wavesurfer.js version(s):

3.2.0

The browser and operating system version(s):

OS: macOS

Browser: Safari (15.0)

In safari when I try to load audio in wavesurfer at that time it gives an error.

This error occurs only in the mentioned browser. please let me know how can I resolve this error.

@meetgoyani007 may you try with the latest wavesurfer version and try again?

@entonbiba I tried with latest  version but still getting same error.
Thanks

@meetgoyani007 ok, can you provide some sample code I'll test it on safari

@entonbiba Here is sample code please review it and let me know where I wrong.
HTML:

<audio id="song" style="display: none" preload="false" src="{{audioTrimmer.audioURL}}"></audio>

TS:
wavesurfer: any;

let wavesurferOptions: any = {
      container: '#kingAudioTrimmer',
      minPxPerSec: 2,
      barGap: 0,
      partialRenter: true,
      autoCenter: true,
      waveColor: '#374168',
      progressColor: '#374168',
      cursorColor: '#1980FF',
      responsive: !0,
      loopSelection: !0,
      mediaType: 'audio',
      backend: 'MediaElement',
      hideScrollbar: !0,
      height: 256,
      cursorWidth: 2,
      pixelRatio: 1,
      normalize: true,
      barWidth: 3,
      // barRadius:5,
      // mediaControls: !0,
      plugins: [
        TimelinePlugin.create({
          container: "#wave-timeline"
        }),
        RegionPlugin.create({})
      ]
    };

this.wavesurfer = WaveSurfer.create(wavesurferOptions);

this.wavesurfer.load(document.querySelector('#song'), []);

Solution for me and with all audio issues in Safari since 15.x is: Go to Safari menu->developer->experimental->deactivate GPU Process: Media (if you don't see Developer, you have to activate it in Safari preferences first.
Hope this helps you, too


Crm457 1360 metrics

Description of change
MONITORING - Exporting metrics for Redis Queues and Sidekiq

[x] Add Prometheus Client and Metrics Endpoint
[x] Configure Service to be able to link to ServiceMonitor

closing in favour of https://github.com/ministryofjustice/laa-crime-application-store/pull/185


ci: do not run commitlint on "/retest all"

The commitlint job is not used normally, so there is no need to run it
when all CI jobs need retesting.

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)
/retest all: run this in case the CentOS CI failed to start/report any test
progress or results

@mergifyio rebase


Improve JWT documentation

Please provide a guide on what is required from our side, and then you should add a quick start guide. Currently, I am stuck not knowing where to start.
Thank you :)

Hi @caniko. Are you wanting to make changes to the JWT code or just trying to run Stargate with JWT based auth?
If you're trying to run Stargate have you seen our docs here? These provide more info about JWT support along with a quick start guide using Keycloak and docker compose as an example (we picked Keycloak for ease of use but you can swap in your auth provider). If you would like to see some improvements to the linked docs can you please open an issue at https://github.com/stargate/docs and we'd be happy to help make those changes.

Run Stargate with JWT based auth. I have a Django server with JWT authentication, and wanted to use the same token for authentication for the Stargate API. Django uses a secret to generate the tokens, so I want to share this secret with Stargate for authentication.
I could not find a way to do this on the docs.
I am using K8ssandra.

Have you looked at the example here? To make this work you'll need to run Stargate with -Dstargate.auth.jwt_provider_url=http://your-auth-provider-url we have a docker-compose example here. Then for every request from your Django to Stargate you would add the JWT to the X-Cassandra-Token header like this.
Stargate will then take the JWT from the request header and validate it against the auth provider URL you set on startup. The claim from the JWT will then be used to query Cassandra which will authorize based on the role and permission set up in your cluster.

FYI, the request to Stargate will be from the client-side (with JWT from Django), and not the Django server; moreover, I believe that the design still holds! Thank you!
This should be described explicitly in documentation.
Any ideas on how I can use JWT on K8ssandra with this configuration? I believe that it is currently limited to table-based authentication only.
Also, just because I am curious. Is it possible to have several JWT providers?

This should be described explicitly in documentation.

This should all be described in the docs with examples but if something is missing please feel free to open an issue in https://github.com/stargate/docs so we can get it added.

Any ideas on how I can use JWT on K8ssandra with this configuration? I believe that it is currently limited to table-based authentication only.

It looks that functionality isn't currently available in k8ssandra so you'll need to directly edit https://github.com/k8ssandra/k8ssandra/blob/main/charts/k8ssandra/templates/stargate/stargate.yaml#L91-L95 to include the necessary system properties.

Also, just because I am curious. Is it possible to have several JWT providers?

Currently, no, but you could fork stargate and update io.stargate.auth.jwt.AuthnJwtService#validate to support multiple providers.

FYI I've logged https://github.com/k8ssandra/k8ssandra/issues/1179 for adding the functionality to k8ssandra

Great! Now that this has been merged, is this supposedly possible without manual edition?

Yes, now that they've made the change in that PR you can add the properties I referenced above without needing to fork.

@dougwettlaufer, is this configuration correct?
cassandra:
version: "3.11.10"
cassandraLibDirVolume:
storageClass: local-path
size: 5Gi
allowMultipleNodesPerWorker: true
heap:
size: 1G
newGenSize: 1G
resources:
requests:
cpu: 1000m
memory: 2Gi
limits:
cpu: 1000m
memory: 2Gi
datacenters:

name: dc1
size: 1
racks:

name: default
kube-prometheus-stack:
grafana:
adminUser: admin
adminPassword: admin123
stargate:
enabled: true
replicas: 1
heapMB: 256
cpuReqMillicores: 200
cpuLimMillicores: 1000
java_opts: -Dstargate.auth_id=AuthJwtService -Dstargate.cql_use_auth_service=true -Dstargate.auth.jwt_provider_url=http://<IP_ADDRESS>:8000/api-token-auth/

I'm not very familiar with k8ssandra config but the java_opts seem right. Although you'll probably need to change the host in jwt_provider_url to point to a kubernetes service or hostname for your auth provider since localhost will try to look inside of the container in the stargate pod.


Can't connect to localhost:8080

Hi, I'm doing this command from readme.md
docker run -d -p 49160:22 -p 49161:1521 -p 8080:8080 -e ORACLE_ENABLE_XDB=true wnameless/oracle-xe-11g
Than trying to access http://localhost:8080 from browser sending username/pass=XDB/xdb does not works
Same as
curl -u XDB:xdb http://localhost:8080

Did you get the Unauthorized message?

Same problem here, I get the Unauthorized message 😢

You probably need to use APEX to access xdb. I will update the readme.md to show how to do it.


Cloudflare worker to host JSON

Perhaps GitHub release is sufficient, investigate if Cloudflare worker is required

Implemented in github actions.
Uploads to https://graphregistry.pages.dev/TheGraphNetworksRegistry_v0_1_0.json
Deployment is done by the entire directory. You can't seem to upload a single file, which is not ideal if we want to keep all historical JSONs in one place.


Raise HTTPError to help with debuging

The translate and detect methods will raise an HTTPError when Google replys with an
unsuccessful (error) code. This prevents the JSON parser from attempting to parse an
HTTP document sent with the error message. This also allows developers to have direct
access to the response data including the status code and error page.
Bulk translations will not raise an error but instead have the erroneous result
replaced with "HTTPError<status_code>".
This replaces the vague and undescriptive error raised by the JSON parser in previous
versions.

Closing this issue in favor of #181.


Nacos Config with yaml file not in sequence

我们鼓励使用英文，如果不能直接使用，可以使用翻译软件，您仍旧可以保留中文原文。
We recommend using English. If you are non-native English speaker, you can use the translation software.
Which Component
Nacos Config
Describe the bug
spring-cloud-starter-alibaba-nacos-config with yaml file convert data will not in sequence，
my project (a basic spring cloud project ) change to use spring-cloud-with-alibaba,use Nacos to alternative Eureka and Config, I found yml file can't convert in sequence.
so make my shiro config will wrong
is the same issue on Nacos Project : https://github.com/alibaba/nacos/issues/1910
To Reproduce
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
MacOS
Spring Cloud 2.1.0
jdk1.8

抱歉，我的英文实在不好，此处我主要使用中文来沟通，后续补充英文翻译版
我之前发现这个问题，然后issue提交到Nacos这个repo上，但后来经过调试，发现Spring Config没有问题，是因为在载入的过程中，默认使用的是properties（Spring Config会对格式进行转换），但同样是properties , Nacos Config 也会存在无序的问题，我查询了源码，发现转换的过程中解析是存储成properties 最后 properties 再转换成map，问题就在于转换成properties的时候顺序乱了
由于我的项目时候shiro，shiro在url过滤上是按照顺序来检查的，在更换的过程由于上述的问题，导致鉴权不符合预期。

Thank you for you report, we will enhance it before next version release & contributors are welcome!

@fangjian0423 I fixed this on my branch,but only for 2.1.0.RELEASE , how can I commit my code on this repo ?

@fangjian0423 I fixed this on my branch,but only for 2.1.0.RELEASE , how can I commit my code on this repo ?

of course & welcome, refer https://github.com/alibaba/spring-cloud-alibaba/wiki/如何贡献代码#配置-spring-cloud-标准的代码格式 to create pr to fix it.

fixed code is only for tag 2.1.0.RELEASE,master is not the same

@fangjian0423 I try made code on master branch,but IDEA tell me maven dependency wrong, can't build on only master

@fangjian0423 hi，sorry bother you, I need this feature  on  spring-cloud-alibaba 2.1.x,how long it take ?

@fengshunli will finish it.

To ensure that the configuration files are orderly, there are two implementations: the first inherits Properties, overrides the put method, uses LinkedIn HashSet for storage, and the second directly uses LinkedIn HashSet or LinkedIn HashMap for receiving

@fengshunli will fix it.

To ensure that the configuration files are orderly, there are two implementations: the first inherits Properties, overrides the put method, uses LinkedIn HashSet for storage, and the second directly uses LinkedIn HashSet or LinkedIn HashMap for receiving

@fangjian0423 hi，sorry bother you, I need this feature on spring-cloud-alibaba 2.1.x,how long it take ?

@fangjian0423 hi，sorry bother you, I need this feature on spring-cloud-alibaba 2.1.x,how long it take ?

wait for codereview. We'll be able to use it tomorrow.

@fengshunli Maybe there need some refactor. you can refer PropertySourceLoader.


Reformat difference column

Draw line for 95% confidence intervals
Vertically offset lines for multiple comparisons

@jwildfire add screenshot here please

The 4th column here is the requested format for the difference column.

Tackled point two in my latest PR and might save the error bars for a second PR because I'm honestly not sure where these numbers are coming from to draw the diamonds let alone what I need to add for each diamond. At a high level:
I think I need to add a high_conf_* and low_conf_* for every pair type into the raw data, and add those key value pairs to chart.pairs (maybe?) then I can use those to draw a line for each diamond? Just jotting down some prelim ideas, gotta dig a little bit.

O🤨🤪c8🤪🤪🤪🤪6
😀😀doozie
Eseeeeeee5

E
😄🤪—
You arerrrr receiving this because you were mentioned.
Reply4 to 5this email6 directly, view it on GitHub
https://github.com/jwildfire/forest-plot/issues/7#event-3970869407, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AA4COX7QQP3PGIK4EIHA3X3SO24LDANCNFSM4TCN3SXA
w.

Yeah 😏🙃5745


[SYSTEMML-1104] Can set max heavy hitters to be printed with statistics from MLContext

Builds on PR #286
Ping @deroneriksson

Thank you @nakul02. LGTM.


180 Fix camera preview when trying to create an overlapping command

This also addresses a bug where the camera preview is only visible once (i.e. you couldn't go back and see what the movement looks like). This is done by actually writing the command to the command panel.

Locks are necessary on Camera (please use SetPosition, SetScale, and SetRotation) so that preview is not blocked by the constant updating of pre-existing commands.

Locks feel a bit weird to me, but I don't see other ways to really make this work with what we've got now. I think we'll discuss this a bit more during our meeting, but overall I'm approved.


sysstat: 12.6.2 -> 12.7.4

Description of changes
~https://nvd.nist.gov/vuln/detail/CVE-2022-39377~ (already addressed in 12.6.2: https://github.com/sysstat/sysstat/commit/c1e631eddc50c04e4dcea169ba396bee2bd6b0ab)
https://nvd.nist.gov/vuln/detail/CVE-2023-33204
Will hopefully be able to patch 23.05.
Also built pkgsMusl, pkgsStatic, pkgsCross.aarch64-multiplatform variants successfully.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Upstream calls 12.7.x "development" versions, apparently: http://sebastien.godard.pagesperso-orange.fr/
but 12.6.2 was the last "stable" version, so maybe 🤷🏽

Well, the alternative would be to use the patch from #248788. Really don't know which is preferable.


client: remove public class fields

This PR removes public class fields from both JavaScript clients, because this feature is not supported in Safari<14.1.
This produced issues on iPhone 6 and iPad mini 2, reported by @markusgritsch in #334.

Codecov Report
Base: 68.52% // Head: 68.40% // Decreases project coverage by -0.12% :warning:

Coverage data is based on head (7b3e5e2) compared to base (9a64ce6).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #335      +/-   ##
==========================================
- Coverage   68.52%   68.40%   -0.12%
==========================================
  Files          68       68
  Lines        5163     5163
  Branches     1163      878     -285
==========================================
- Hits         3538     3532       -6
- Misses       1349     1361      +12
+ Partials      276      270       -6

Impacted Files
Coverage Δ

lona/events/input_event.py
69.86% <0.00%> (-2.74%)
:arrow_down:

lona/html/abstract_node.py
87.40% <0.00%> (-1.58%)
:arrow_down:

lona/view_runtime_controller.py
62.42% <0.00%> (-1.22%)
:arrow_down:

lona/view.py
60.13% <0.00%> (-0.68%)
:arrow_down:

lona/html/widget_data.py
58.37% <0.00%> (-0.48%)
:arrow_down:

lona/html/node.py
74.28% <0.00%> (ø)

lona/html/widget.py
59.25% <0.00%> (ø)

lona/html/node_list.py
84.87% <0.00%> (ø)

lona/html/data_binding/select2.py
68.07% <0.00%> (ø)

lona/shell/commands/lona_server_state.py
0.00% <0.00%> (ø)

... and 1 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Thanks a lot @fscherf for your fast fix! I can verify that it works fine on my iPhone 6 now.

@markusgritsch: I released 1.12.3, so you can use the fix in your project


res.json().data doesn't work

I tried it locally in a slightly different context, but I could never get any result with
res.json().data

But if I replace it with
res.json()

everything works fine.

I signed it!

What does "I tried it locally in a slightly different context" mean? What context is that?
The only context that matter w/r/t the HeroService is the chapter sample itself. I'm sorry but your claim of error and your proposed changes are simply not correct.
The HTTP Chapter code works as demonstrated by the plunker link in the chapter itself. That plunker is generated directly from the sample
You can see that the HeroService code really is
  getHeroes () {
    return this.http.get(this._heroesUrl)
                    .map(res => <Hero[]> res.json().data)
                    .do(data => console.log(data)) // eyeball results in the console
                    .catch(this.handleError);
  }

If I had to guess, I'd say that you were targeting your own web api which returns response data in a different shape ... perhaps a response that lacks the wrapper object with a data property that this sample presupposes.
The chapter warns several times that you have to adjust to the actual characteristics of your API.
I'm closing until you can provide evidence that the chapter and sample are actually wrong.

Ok, now I see. The sample data is wrapped in a 'data' key. Mmmh, surprising and not really needed. When reading the chapter I thought I always have to call json().data so that data is not referring to the structure of the returned json.
So any reason why you got this data thing in the sample data? Why not just have:
[     { "id": "1", "name": "Windstorm" },     { "id": "2", "name": "Bombasto" },     { "id": "3", "name": "Magneta" },     { "id": "4", "name": "Tornado" }   ]

Mmmh, surprising and not really needed.

This is because returning [] directly from a JSON/REST endpoint is not valid JSON.
In other words, if you wanna be RESTful, this is needed.

This is because returning [] directly from a JSON/REST endpoint is not valid JSON.

That's not true, see: http://stackoverflow.com/a/5034547

It's valid JSON. The problem is that it is insecure JSON on the wire.
See this OWASP security guideline on the subject

Right, sorry my statement was misleading. Security is the reason. Also, see this SO post: http://stackoverflow.com/questions/3503102/what-are-top-level-json-arrays-and-why-are-they-a-security-risk

@steinsag Sorry for the confusion. It is easy to overlook the data property on the response in the sample API.
The real take-away should be: look closely at the details of your web api before unpacking the result object.
I tried to make that point. It doesn't always register.