ObjectGraph not entirely validated with WebAPI

When calling a POST action of a controller with an object that is a complex type with sub types, there is only the root validator for the complex type that is validated. Subproperties are not validated.
The cause seems to be in the file FluentValidationModelValidatorProvider.cs where we get the validators for the property being validated. If we are getting the validators for a property, then a break is yielded and no validator are returned so the validator for my complex type property is not returned.
If I comment the following code in FluentValidationModelValidatorProvider.GetValidators :
if (IsValidatingProperty(metadata))
{
    yield break;
}

Then it is validating all the entire graph as expected.
Here is the code to reproduce this issue :
public class TestController : ApiController
{
    [Route("~/api/create-test")]
    public IHttpActionResult CreateTest(TestRequest testRequest)
    {
        if (!ModelState.IsValid)
        {
            return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
        }

        var testResponse = new TestResponse {TestString = testRequest.TestString};
        return ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, testResponse));
    }

    [Validator(typeof(TestRequestValidator))]
    public class TestRequest
    {
        public string TestString { get; set; }
        public TestSubRequest TestSubRequest { get; set; }
    }

    [Validator(typeof(TestSubRequestValidator))]
    public class TestSubRequest
    {
        public string TestSubString { get; set; }
    }

    public class TestResponse
    {
        public string TestString { get; set; }
    }

    public class TestRequestValidator : AbstractValidator<TestRequest>
    {
        public TestRequestValidator()
        {
            RuleFor(entity => entity.TestString).NotNull().WithMessage("TestString shoud not be null");
        }
    }

    public class TestSubRequestValidator : AbstractValidator<TestSubRequest>
    {
        public TestSubRequestValidator()
        {
            RuleFor(entity => entity.TestSubString).NotNull().WithMessage("TestSubString shoud not be null");
        }
    }
}

Call it with this json object:
    {
        "TestString" : null,
        "TestSubRequest" : {
            "TestSubString" : null
        }
    }

Does it work correctly if you use a SetValidator call within the TestRequestValidator, rather than specifying a ValidatorAttribute on TestSubRequest?

Hi,
Thank you I didn't know about the SetValidator Method :(
Thought that validators where found by attributes or IOC within the object graph.
Is there a limitation that you are aware to remove the ValidatorAttribute on TestSubRequest while specifying SetValidator on TestRequest.TestSubRequest ?
I will need to post sub object as well in other scenarios and so I have to keep ValidatorAttribute on my sub object as well.
Thank you

I checked without the ValidatorAttribute and specifying the SetValidator on the TestRequest object and it works.
If I set both ValidatorAttribute and SetValidator, it works fine, both validators are called.
But if I have a property with a collection of TestSubRequest, and use SetCollectionValidator then only the validator for the childs are called, and the parent is not validated.

Cleanup: Closing this due to the lack of activity in the past year. Feel free to re-open if this is still an issue. Thanks!


[Frontend][TFLite] ADD_N operator

added support for ADD_N operator
refactored some of the ADD code

@FrozenGene, @siju-samuel, @u99127 Please review.

@tqchen Could you please help in merging this PR?


Creating a menu is tedious with .class files littered everywhere

Make it so that it does not leave as big of a class footprint

It doesnt matter right now.


Update chap6-chapter_convolutional-neural-networks of Paddle

Hello,we update the code based on paddlepaddle for the chapter4:chapter_convolutional-neural-networks.

Thanks. Closing this PR per https://github.com/d2l-ai/d2l-zh/pull/1186#issuecomment-1211490440


portal helper problem with pehkui mod

the portal helper will create a new portal when lit the same size as the original  portal if tried to connect with a bigger portal.

How far away is the other portal?

just around 2-4 blocks away

Odd

nevermind i played with the config and it worked


Request: Hosted Example?

I'm having some trouble getting it to work and it would be great if there was a hosted basic example page i could reffer to, maybe using https://pages.github.com/ ?
Thanks

There is. You can find it here: http://steveathon.github.io/bootstrap-wysiwyg/


Wrong URL to Teams Admin Center

Article mentions that TAC URL is https://admin-teams.microsoft.net/ and in reality it's https://admin.teams.microsoft.com

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

ID: 05173ea8-db7c-a20d-3783-178b3d649190
Version Independent ID: 05173ea8-db7c-a20d-3783-178b3d649190
Content: Configure SIP Gateway - Microsoft Teams
Content Source: Teams/sip-gateway-configure.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Fixed. Should go live tomorrow.


Managing size of modal editor view

Is there in Ketcher Reaction option for managing the size of Editor form,
currently, the form is too big?
Example

Dear @dmoskalenko-datagrok ,
The size of Ketcher Editor form is managed by parent DOM element. for details please look  at https://github.com/epam/ketcher/discussions/583#discussioncomment-841139


can we bounding box bows

https://www.youtube.com/watch?v=jvOaUF1Sl5c guys look at this MAGNETIC ARROW WHAAAAAAAAAAAAAAT

projectile aimbot uses bbox already if im not mistaken

lol.....................................

i hav eno clu how proejctile code work ( i got 64% onm matnhs test) but i dont think it EXists


fix(site:tint-glow): get stuck at the bottom fast scroll

had to do a few more things to get it right


Show custom TensorBoard package installation prompt

Show custom prompt for TensorBoard instead of using data science installer prompt

[ ] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[ ] Title summarizes what is changing.
[ ] Has a news entry file (remember to thank yourself!).
[ ] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[ ] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).
[ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #14929 (1a25996) into main (c54e912) will decrease coverage by 0%.
The diff coverage is 44%.

@@          Coverage Diff           @@
##            main   #14929   +/-   ##
======================================
- Coverage     65%      65%   -1%
======================================
  Files        557      557
  Lines      26178    26193   +15
  Branches    3714     3715    +1
======================================
+ Hits       17040    17045    +5
- Misses      8444     8454   +10
  Partials     694      694

Impacted Files
Coverage Δ

src/client/common/installer/productPath.ts
24% <20%> (-1%)
:arrow_down:

src/client/common/installer/productInstaller.ts
44% <25%> (-1%)
:arrow_down:

src/client/common/installer/productService.ts
100% <100%> (ø)

src/client/common/installer/serviceRegistry.ts
100% <100%> (ø)

src/client/common/types.ts
100% <100%> (ø)

src/client/common/utils/localize.ts
91% <100%> (+<1%)
:arrow_up:


[WIP] Integrate pseudo features to support top-level multi-features

Sorting features and other behavior becomes complicated when multi-features (disconnected entries sharing an identical ID, representing a single entity) are also top-level features (have no Parent feature). The GenomeTools library handles this using pseudo-features, which I have avoided (hoping I could ignore them) until now.

[ ] Full test coverage? Any additional tests that could easily be added?
[ ] API documentation up-to-date? Docstring examples?
[ ] Is the CHANGELOG up-to-date?

Codecov Report

Merging #59 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #59   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          17     17
  Lines         894    905   +11
  Branches      211    212    +1
=====================================
+ Hits          894    905   +11

Impacted Files
Coverage Δ

tag/feature.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Inflector::camelize" method is deprecated and will be dropped in doctrine/inflector 2.0

Remaining indirect deprecation notices (25866)

  25866x: The "Doctrine\Common\Inflector\Inflector::camelize" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API.
    1724x in ComposerLockControllerTest::testComposerLockSvgExplicit from App\Tests\Controller\Badge
    1724x in GitAttributesBadgeControllerTest::testGitAttributesSvgExplicit from App\Tests\Controller\Badge
    1724x in GitAttributesBadgeControllerTest::testGitAttributesAction from App\Tests\Controller\Badge
    1724x in ComposerLockControllerTest::testComposerLockAction from App\Tests\Controller\Badge
    862x in LicenseControllerTest::testLicenseActionSvgExplicit from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestStableActionPngRedirectSvg from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestUnstableActionSvgExplicit from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestStableActionSvgExplicit from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestUnstableAction from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestVStableAction from App\Tests\Controller\Badge
    862x in VersionControllerTest::testLatestStableAction from App\Tests\Controller\Badge
    862x in SuggestersControllerTest::testSuggestersActionSvgExplicit from App\Tests\Controller\Badge
    862x in SuggestersControllerTest::testSuggestersAction from App\Tests\Controller\Badge
    862x in LicenseControllerTest::testLicenseActionPngRedirectSvg from App\Tests\Controller\Badge
    862x in LicenseControllerTest::testLicenseAction from App\Tests\Controller\Badge
    862x in DependentsControllerTest::testDependentsAction from App\Tests\Controller\Badge
    862x in CircleCiControllerTest::testCircleCiForBranch from App\Tests\Controller\Badge
    862x in CircleCiControllerTest::testCircleCi from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsActionPngRedirectSvg from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsTotalActionSvgExplicit from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsActionSvgExplicit from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsMonthlyAction from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsDailyAction from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsTotalAction from App\Tests\Controller\Badge
    862x in DownloadsControllerTest::testDownloadsAction from App\Tests\Controller\Badge
    862x in DependentsControllerTest::testDependentsActionSvgExplicit from App\Tests\Controller\Badge
    6x in PackagistControllerTest::testSearch from App\Tests\Controller

This is weird, since doctrine/inflector 2 is already available, and camelize method is still there.

If you see the log in dev mode you can discover the deprecation errors!

I opened a PR on knplabs/packagist-api to use inflector 2, it should solve this issue


kube: remove legacy client in Istiod

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@howardjohn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-security-k8s-tests_istio

integ-telemetry-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-telemetry-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-security-k8s-tests_istio

integ-telemetry-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-telemetry-k8s-tests_istio

integ-operator-controller-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-operator-controller-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-security-k8s-tests_istio

integ-telemetry-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-telemetry-k8s-tests_istio

integ-operator-controller-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-operator-controller-tests_istio

integ-multicluster-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-pilot-k8s-tests_istio

release-test_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test release-test_istio

lint_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test lint_istio

integ-distroless-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-distroless-k8s-tests_istio

integ-mixer-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-mixer-k8s-tests_istio

integ-ipv6-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-security-k8s-tests_istio

integ-telemetry-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-telemetry-k8s-tests_istio

integ-operator-controller-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-operator-controller-tests_istio

integ-multicluster-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-multicluster-k8s-tests_istio

integ-galley-k8s-tests_istio
10cc4c956c38dafe801cb42fe14e346d8238ed0c
link
/test integ-galley-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

integ-ipv6-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-ipv6-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

integ-ipv6-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

integ-ipv6-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-security-k8s-tests_istio

integ-multicluster-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

integ-ipv6-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-security-k8s-tests_istio

integ-multicluster-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-multicluster-k8s-tests_istio

integ-mixer-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-telemetry-k8s-tests_istio

unit-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test unit-tests_istio

integ-galley-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-galley-k8s-tests_istio

integ-distroless-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-distroless-k8s-tests_istio

integ-operator-controller-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-operator-controller-tests_istio

release-test_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test release-test_istio

lint_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test lint_istio

integ-ipv6-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-ipv6-k8s-tests_istio

integ-security-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-security-k8s-tests_istio

integ-multicluster-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-multicluster-k8s-tests_istio

integ-mixer-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-mixer-k8s-tests_istio

integ-pilot-k8s-tests_istio
1e4255a5d49c9907372313919eea1dfb5b361291
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


"auto" value does not work with react-router (or any other context-based APIs)

Since the addition of "auto", any components rendered inside of a Spring that uses 'auto' as a value do not receive the "router" context, resulting in bugs:

This is likely due to the psuedo-portal approach of the fixAuto file.
I have a suspicion that this is due to not using ReactDOM.render instead of ReactDOM.createPortal (the latter preserves context). Any other ideas? Happy to help with a fix, just need to figure out what direction we'd want to go in.

@taylorlapeyre could you try with @4.2.1-beta.0 ? It should be fixed now. It attempts to render out the middlewares result instead of relying on a promise, thereby the fragment ends up in the same render-tree, which hopefully doesn't break context.

@drcmda Yes, I'll give it a shot!

@drcmda it's working beautifully now!

@drcmda Will test with router and styled-components w/ ThemeProvider, will update

Totally works now!

Update: tried this a little more and it seems that when the portal is created, the style of the page is (very briefly) removed. When you have custom fonts you can observe fonts changing back to serif font.

font-family is set on :root. Also, the Spring and animated.div should not (?) affect the rest of the page, right? There's 2 frames in that video where the whole page's font-family resets for some reason.

Spring and animated.div are just regular components, must be something else. The portal renders off-screen in a div set to position:static;visibility:hidden;, but it isn't shown, we pick bounds and then the element renders like always, with auto being overwritten by the new bounds. I couldn't imagine any of it would have an impact on the font-family. Here's some info on how fout can come about: https://www.paulirish.com/2009/fighting-the-font-face-fout/

closing this for now, should something else come up i can reopen

@drcmda yep, issue was unrelated after all, spring works great now after ditching styled-components' injectGlobal for font injection


Enhance watcher unit test

closed due to maintenance effort and the newly added test case will be covered in this issue https://github.com/kyma-project/lifecycle-manager/issues/330


Revise some of the docs, add information about upgrading

I was reviewing some of the docs and noticed a few things that could be improved.
The changes to the Status: Stable section of the README stem from thinking about other kinds of changes that we must reasonably make from time to time that could prevent a user from easily being able to upgrade to a newer version of the suite. I figured being very explicit about this in this document is best for clarity and transparency.
This also adds a section to the README that describes the machinery of the thing and also includes a sequence diagram to show what's going on inside the test runner.

ping @smaye81


Updated workflows to run with updated macOS

Updated workflows to run with updated macOS runners

@spcaipers-arm @soumeh01 In macos-12 the Swig 4.2.1 was installed but in macos-13 unfortunately it's not there anymore, can we install it? https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md

Yes, We already extended the action to install SWIG. https://github.com/Open-CMSIS-Pack/devtools-build-action/pull/6
But we have some different compatibility issues w.r.t new version of Open-CMSIS-Pack/devtools-build-action


[3.0] release CPU to run StreamObserver methods

What is the purpose of the change
#9225

Codecov Report

Merging #9226 (4105114) into 3.0 (b06e5c2) will decrease coverage by 0.11%.
The diff coverage is n/a.

:exclamation: Current head 4105114 differs from pull request most recent head 63d67ab. Consider uploading reports for the commit 63d67ab to get more accurate results

@@             Coverage Diff              @@
##                3.0    #9226      +/-   ##
============================================
- Coverage     65.03%   64.91%   -0.12%
- Complexity      329      330       +1
============================================
  Files          1206     1206
  Lines         51799    51799
  Branches       7725     7698      -27
============================================
- Hits          33689    33627      -62
- Misses        14489    14528      +39
- Partials       3621     3644      +23

Impacted Files
Coverage Δ

.../remoting/api/SingleProtocolConnectionManager.java
61.53% <0.00%> (-23.08%)
:arrow_down:

...dubbo/common/status/support/LoadStatusChecker.java
46.15% <0.00%> (-15.39%)
:arrow_down:

.../protocol/tri/ServerOutboundTransportObserver.java
64.51% <0.00%> (-12.91%)
:arrow_down:

...ache/dubbo/remoting/transport/AbstractChannel.java
75.00% <0.00%> (-12.50%)
:arrow_down:

.../remoting/transport/netty4/NettyServerHandler.java
58.13% <0.00%> (-9.31%)
:arrow_down:

.../common/threadpool/serial/SerializingExecutor.java
70.37% <0.00%> (-7.41%)
:arrow_down:

.../org/apache/dubbo/rpc/protocol/tri/WriteQueue.java
68.75% <0.00%> (-6.25%)
:arrow_down:

...mmon/threadpool/support/AbortPolicyWithReport.java
78.94% <0.00%> (-5.27%)
:arrow_down:

...pache/dubbo/remoting/transport/AbstractServer.java
57.14% <0.00%> (-4.29%)
:arrow_down:

...a/org/apache/dubbo/rpc/filter/AccessLogFilter.java
65.38% <0.00%> (-3.85%)
:arrow_down:

... and 27 more

Continue to review full report at Codecov.

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


Set Cassandra compaction window size according to TTL

Requirement - what kind of business use case are you trying to solve?
I am using Docker image jaegertracing/jaeger-cassandra-schema for creating a keyspace in Cassandra for Jaeger data.
When filling a Cassandra cluster with a schema using non-default TTL as a parameter, it would be great to provide for better performance on large datasets by setting the appropriate compaction_window_size according to the rule of thumb of max 50 buckets per table.
Problem - what in Jaeger blocks you from solving the requirement?
The current implementation allows using a custom TTL but has a hard-coded compaction_window_size of 1 hour for TTL of 2 days.
In case when TTL is set to a large value like 180 days, the recommended compaction window size is ~4 days (according to max 50 buckets per table: 180 / 50 = 3.6).
This can be worked around later with an ALTER TABLE command, however, this requires additional effort.
Proposal - what do you suggest to solve the problem or improve the existing situation?
a) support passing compaction_window_size to the docker image in a similar manner as $trace_ttl;
b) calculate compaction_window_size based on $trace_ttl value.

@yurishkuro Is it up to work?

yes

@yurishkuro I have commented on issues which has been stale for long and ere they ready to work can comment there

@yurishkuro Is the the issue still relevant if yes, i would love to give it a look.

@akstron Yes, but I think one good follow-up is to add a comment to the Compaction Window config field with the advice from official docs (I rephrased since we don't split unit and size):

Ideally, operators should select a compaction window size that produces approximately less than 50 windows. For example, if writing with a 90 day TTL, a 3 day window would be a reasonable choice.

You mean this right?

Ideally, operators should select a compaction window size that produces approximately less than 50 30 windows. For example, if writing with a 90 day TTL, a 3 day window would be a reasonable choice.

I can raise a PR with this update and close this issue.

I meant 50

Why 50? I mean, the recommendation is 20-30. Or is it just that the difference is not much so that's okay?


Update README.md

Please provide enough information so that others can review your pull request:
Motivation
Explain the motivation for making this change. What existing problem does the pull request solve?
Test plan
Demonstrate the code is solid. Example: the exact commands you ran and their output, screenshots / videos if the pull request changes UI.
Make sure you test on both platforms if your change affects both platforms.
The code must pass tests.
Code formatting
Look around. Match the style of the rest of the codebase. Run yarn lint --fix before committing.

Closing as stale


all pages meta description and keywords

edit all pages meta description and keywords missing

@Yousaf-Sadiq It's 2024 already. Why do you still ask about meta keywords?
Meta keywords was removed by Google, you don't need to add meta keywords to your website.
If you have used Yoast SEO plugin on WordPress, they don't use meta keywords too https://yoast.com/meta-keywords/
Ref: https://www.randgroup.com/insights/meta-keywords-is-officially-dead/#:~:text=Search engines have evolved to,engine ranking algorithm at all.
It's useless in 2024


Add ability to retry requests

Example usage:
$curl = new Curl();
$curl->setRetry(function($instance) {
    // Retry when request times out.
    return $instance->retries < 3 && $instance->error === CURLE_OPERATION_TIMEOUTED;
});

#200

/**
 * Set Retry
 *
 * @access public
 * @param  $decider
 */
public function setRetry(callable $decider)
{
}

I prefer the retry as a standard feature, it can be a parameter that the user can set also, but a default retry value should be included, no one needs to handle connections error if the curl class itself could deal with it.

Also To me interess this too much,
Maybe is possible write it on "completeCallback" that is already existed.. ?

Retry is currently possible.
$url = 'https://www.example.com/';
$data = array('foo' => 'bar');
$retries = 0;

$curl = new Curl();
$curl->error(function($instance) use (&$curl, &$retries, $url, $data) {
    if ($retries < 2) {
        $retries += 1;
        $curl->post($url, $data);
    }
});
$curl->post($url, $data);

Very Thanks Sir,
there a method of execute again the last curl-request ?
i want don't pass $url/$data in use(), because i have a long, very long script /12-15 curl request) and every is different - no only post or only get , there are a mix.
another question, &$curl, &$retries, $url, $data , must be global vars ?
so make if i use it in a method of a my class ? so is $this->retries, $this->curl etc.
Thanks,

@KTP95 - yes Curl::exec().
$retries = 0;
$curl = new Curl();
$curl->error(function($instance) use (&$curl, &$retries) {
    if ($retries < 2) {
        $retries += 1;
        $curl->exec();
    }
});
$curl->post('http://www.example.com/', array('foo' => 'bar'));

@leopucci - so the logic you'd like is if $instance->error, automatically retry?

@zachborboa
Your approach is nice.
The user can treat retry by himself now.
But what if the user just send a :
$curl = new Curl();
$curl->post('https://www.example.com/', array('foo' => 'bar'));
Then he does not have any retry feature.
retry 1 time more by default, if he does not want to retry, he need to set this explicity to 0.
$curl = new Curl();
$curl->retry=0;
$curl->post('https://www.example.com/', array('foo' => 'bar'));

I would push against making this a "standard" feature.  It "is" standard, in a way.  Figure, you need to determine what IS an "error," also, many APIs require a pause between retries, or possibly data changes (signed time-stamps, etc).  So making a "standard" retry system would be disadvantageous compared to using the framework in the way it was designed.  Two ways this can be handled:
// Standard Error Retry (similar to above).
$curl = new Curl();
$curl->retries = 3;
$curl->error(function($curl) {
    if ($curl->retries-- > 0) $curl->exec();
});
$curl->post('https://www.example.com/', array('foo' => 'bar'));

Or with own error detection:
$curl = new Curl();
$curl->retries = 3;
$curl->complete(function($curl) {
    if (/* some error detection using $curl */) {
        // Set Curl vars for Error state (I actually hate this, access violations, but alas).
        if ($curl->retries-- > 0) {
            $curl->exec();
        } else {
            // Throw or raise error?  Set OTHER error variables?
        }
    }
});
$curl->post('https://www.example.com/', array('foo' => 'bar'));

Note how neither require using (use), and can be any callable (so if this is getting called in an object, it can be an object method, etc).

The retry mechanism is necessary for one great HTTP Client.
As you know, Guzzle HTTP support RetryMiddleware to help developer to define their application when to retry or resend request.
    Middleware::retry(
            function (
                $retries,
                RequestInterface $request,
                ResponseInterface $response = null
            ) {
                // Limit the number of retries to 2
                if ($retries <= 2 && (null === $response || $response->getStatusCode() >= 500)) {
                    return true;
                }

                return false;
            },
            function ($retries) {
                $retries++;

                return $retries * $retries * 200;
            }
        );

Implemented as
$curl->setRetry($max_retries);

or
$curl->setRetry(function ($instance) {
    return $instance->retries < 3;
});

Implemented as
$multi_curl->setRetry($max_retries);

or
$multi_curl->setRetry(function ($instance) {
    return $instance->retries < 3;
});

in #468

Nice～


[SD-170] Single line primary nav

Issue: https://digital-vic.atlassian.net/browse/SD-170
What I did

Added the feature flag primaryNavNowrap, to selectively add a class for preventing long primary nav link titles from wrapping to multiple lines.

How to test

Cypress

Checklist

For all PR's

[ ] I've added relevant changes to the project Readme if needed.
[ ] I've updated the documentation site as needed.
[ ] I have added unit tests to cover my changes (if not applicable, please state why in a comment)

For new components only

[ ] I have added a story covering all variants
[ ] I have checked a11y tab in storybook passes
[ ] Any events are emitted on the event bus

I think it would work best to merge develop in after a patch release in a different PR, just makes this PR hard to read

Oh yeah, this was branched off develop and I changed the base 😕 Let me fix that

Closed in favour of #1287 (branched from wrong base)


Redirected user if 403 error received

Signed-off-by: sudeeptarlekar<EMAIL_ADDRESS>Notion card
https://www.notion.so/saeloun/Employees-shouldn-t-be-able-to-access-the-project-detail-page-ced94d36a30644edb7a0108aa24ab845
Summary
Redirect user back to index pages if error returned by Apis.
Type of change

[ x ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Tested on local setup, with employee record in database
Checklist:

[ x ] I have manually tested all workflows
[ x ] I have performed a self-review of my own code

@sudeeptarlekar If a user enters a URL like project/:id then it navigates to the project but also throws a toast error here. I don't think he should be shown a toast message. Just the redirect would work. The same thing for clients also. @supriya3105 What do you think about this?

How would user know, why he got redirected?

How would user know, why he/she got redirected?

If we wanna do it this way then the error toast message should be user-friendly. Also if an employee visits invoices or payments he/she is just redirected. So whatever we decide can we make the behavior consistent for all the routes? cc @supriya3105

How would user know, why he/she got redirected?

If we wanna do it this way then the error toast message should be user-friendly. Also if an employee visits invoices or payments he/she is just redirected. So whatever we decide can we make the behavior consistent for all the routes? cc @supriya3105

We should show the toast error message. The message should let the user know that they cannot access the page as they do not have the permission for it. I will add a design for this with correct error message. Also, the same should be applied across all pages.
@sudeeptarlekar @apoorv1316

@supriya3105 are you creating a new ticket for message, or should I add changes for same here?

@supriya3105 are you creating a new ticket for message, or should I add changes for same here?

@apoorv1316 @sudeeptarlekar
In case the user tries to access the project or client details page using the URL, the redirect the user to project list or client list page respectively. Display a toast message saying that
“You are not authorized to access the page. Please reach out to your administrator for help.”

Fixed

Are we still missing something here? Is it good to merge.
cc: @supriya3105

@sudeeptarlekar Apoorv is testing the multiple workspace scenario today. accordingly to the test results, we will merge this PR.


Marshal / Unmarshal with custom tag should fall back to normal json tag in mixed-tag scenario?

Overview
When marshaling json it's useful to define custom struct tags to define json keys for various situations. For example, for key compression or unmarshaling from different sources with different keys.
When a struct contains a foreign struct, and the foreign struct is out of our control, we can't tag it properly with custom tags. When marshaling uses jsoniters's TagKey functionality, this causes the code to ignore the foreign struct's json tag, and the struct's actual property names are used instead. Example for illustrative purposes:
type MyStruct struct {
	Attr01 int           `json:"attr01,omitempty" small:"a1,omitempty"`
	Second ForeignStruct `json:"foreign,omitempty" small:"for,omitempty"`
}

type ForeignStruct struct {
	Attr02 int `json:"attr02,omitempty"`
	Attr03 int `json:"attr03,omitempty"`
}

func exampleMarshal() {
	structs := []MyStruct{MyStruct{1, ForeignStruct{}}}
	jsonc := jsoniter.Config{TagKey: "small"}.Froze()
	bytes, _ := jsonc.Marshal(structs)
	fmt.Println(string(bytes))
}

func main() {
	exampleMarshal()
}

produces the output [{"a1":1,"for":{"Attr02":0,"Attr03":0}}] which shows the json tag of the embedded struct is being ignored as if it didn't exist at all.
Expected Behavior
I think it should fall back to the normal json tag instead of behaving as though it isn't there. Thoughts?

IMO it's behaving correctly. You have to tag full chain with the same tag.

I think there's a workround, maybe you can register an extension to meet your demand.
type MyExtension struct{
	jsoniter.DummyExtension
}

func (e *MyExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor) {
	// I assume that your "ForeignStruct" is defined in the "main" package
	if structDescriptor.Type.String() != "main.ForeignStruct" {
		return
	}

	// define the field name marshall to, and unmarshall from
	binding := structDescriptor.GetField("Attr02")
	binding.ToNames = []string{"attr02"}
	binding.FromNames = []string{"attr02"}

	binding = structDescriptor.GetField("Attr03")
	binding.ToNames = []string{"attr03"}
	binding.FromNames = []string{"attr03"}
}

func exampleMarshal() {
	structs := []MyStruct{MyStruct{1, ForeignStruct{}}}
	jsonc := jsoniter.Config{TagKey: "small"}.Froze()
	// register the extension to your Config
	jsonc.RegisterExtension(&MyExtension{})
	bytes, _ := jsonc.Marshal(structs)
	fmt.Println(string(bytes))
}

Seems a little bit complicated though.


Invalid "unknown rule selector" error message in some cases

There seems to be an invalid "unknown rule selector" error message when unknown --select  keyword prefix matches a known keyword.
Current Ruff version is 0.0.254.
Can be replicated without config file, or defining the similar setting in the config. Demonstrating command line only is easier.
This looks OK:
$ ruff check --select "X" .
error: Unknown rule selector `X`

This looks OK (doesn't remove first character)
$ ruff check --select "XX" .
error: Unknown rule selector `XX`

This gives broken token (UG instead of BUG):
$ ruff check --select "BUG" .
error: Unknown rule selector `UG`

Similarly:
$ ruff check --ignore "FAIL"
error: Unknown rule selector `AIL`

Also this fails (eating two characters):
$ ruff check --select "PLX" .
error: Unknown rule selector `X`

B and F are legit selectors, and so are PL, PLC, PLE, ...
Bonus -- I think this is OK :smile:
$ ruff check --select ""
error: Unknown rule selector ``

Same effect when:

using config file
using --ignore switch / setting, and maybe others

Additionally the message written to stderr is missing a newline, which is a bit annoying.

Hm yeah, I guess the message here is confusing but the logic is "correct". When we match BUG, we match B to flake8-bugbear, then attempt to find the UG rule within the flake8-bugbear rule set.

Thanks for the quick response.
I think printing the whole token would be nicer to end-user, even when the whole alphabetic prefix is legit.
For example this feels weird:
$ ruff check --ignore ANN555
error: Unknown rule selector `555`

Yeah totally agree.


Module outputs in terraform.tfvars file

Is there a possible way to use the output of a module in another module in a terraform.tfvars file ? Any example will be greatly appreciated.

Closing as duplicate of #297.


Define MVP visualisations for QLFS and NEET

Action @taz-chiles @luke-strange @gilesdring to plan in more detail based on existing PPT presentation

QLFS I have reviewed https://odileeds.sharepoint.com/sites/OpenInnovationsPrivate/Shared Documents/Projects/2023/YFF - Phase 2/Examples of analysis/April Labour Market Release.pptx?web=1
There are 3 charts we could probably create:

unemployment - raised as ticket #39
economic activity - raised as ticket #40
economic activity by gender - raised as ticket #41

There is another chart of pay by region - I'm not sure we've seen this data.
There may be other elements to graph:
e.g. YFF were interested in rates of long-term unemployment - this is not in the pack, but propose we create it.

NEET I have reviewed:
https://odileeds.sharepoint.com/sites/OpenInnovationsPrivate/Shared Documents/Projects/2023/YFF - Phase 2/Examples of analysis/LMS.pptx?web=1
There are 2/3 charts

Overall NEET rates raised as ticket #43
EIA breakdown by gender #44
Unemployment rate by gender #45

Closing this on the basis of yesterday's discussions...


$toMillis('19700104170040', '[Y0001][M01][D01][H01][m01][s01]') fails with: JSONata mapping error

$toMillis('19700104170040', '[Y0001][M01][D01][H01][m01][s01]') fails with
JSONata mapping error: Invalid value for DayOfMonth (valid values 1 - 28/31): 0
However, it does work on try.jsonata.org

The regex being generated is not interpreting the input string correctly. I'll look into this.
However, please note, the value provided by try.jsonata.org<PHONE_NUMBER>) is also incorrect as that date is 1970-03-15T20:04:00.000Z not 1970-01-04T17:00:40.000Z which is 320440000
Because we aren't parsing the input correctly, we are getting a day of month value of 0, hence the error mentioned.

@crshnburn The regex being created using ([0-9]+) ends up capturing 197001041 as the year and the D (days of month) ends up as zero. I was able to get the correct answer by adding the lines commented out below in the DateTimeUtils.java but this breaks other tests (so it is the wrong approach):
            case DECIMAL: {
                String regex = "[0-9]+";
//                if (formatSpec.mandatoryDigits > 0) {
//                  regex = "[0-9]{"+formatSpec.mandatoryDigits;
//                  if (formatSpec.optionalDigits > 0) {
//                    regex += ","+(formatSpec.mandatoryDigits+formatSpec.optionalDigits);
//                  }
//                  regex += "}";
//                }

For example, the $toMillis('2018', '[Y1]') in toMillisFunctionTest is expected to return<PHONE_NUMBER>000...

@czimmet I've checked in code with the following hack:
res = generateRegex(part.component,part.integerFormat);

...
private static MatcherPart generateRegex(char component, Format formatSpec) {

...
            case DECIMAL: {
                String regex = "[0-9]+";
                switch(component) {
                  case 'Y': {
                    regex = "[0-9]{2,4}";
                    break;
                  }
                  case 'M': //
                  case 'D': //
                  case 'H': //
                  case 'h': //
                  case 'm': //
                  case 's': {
                    regex = "[0-9]{1,2}";
                    break;
                  }
                  default: {
                    break;
                  }

                }
                if (formatSpec.ordinal) {

This passes all existing tests and works for your example as well.
To try this, you can:
cd JSONata4Java
mvn clean install

Then use the ./target/JSONata4Java-2.4.1-jar-with-dependencies.jar in your classpath
Please let me know if this works for your needs and close this issue. Thanks

Thank you!   Worked perfectly.


Backticks broke JS on IE

IE version 11.306.10586.0 UV 11.0.31 on Win10x64

This breaks the es6 interpolation - happy to fix it for ie11 but we will need to use concatenation here instead


implement suspicious comment

See issue #186 :)

Hi @lukaselmer, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@lukaselmer, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Great work, thanks!


Refactor proof generation functions

This change introduces the proof package which helps to generate
inclusion and consistency proofs. The new proof.Nodes type replaces the
old []NodeFetch and the Rehash function.
Key improvements:

Uses []compact.NodeID natively, no need to convert from []NodeFetch up the stack.
Stricter handling of ephemeral nodes: proof.Nodes allows only one whereas a
[]NodeFetch could have arbitrary runs of rehashes.
Concise naming: proof.Inclusion and proof.Consistency return proof.Nodes.
Shorter code.

Addresses #3. Repeats https://github.com/google/trillian/pull/2576.

It might be easy to review commit by commit to follow some logic. There are a few mechanical copy-paste commits.

LGTM, @mhutchinson would you like to have a look over?


Add CLI Usage to README

Documents CLI installaton for the README.

Thanks! I saw in the origin thread that file:// handling in the graph is pretty poor, so probably the cli endpoint will want a flag to toggle breaking up file://. But that's a separate change


Download the PSI-AVA dataset

I was trying to download the data from http://<IP_ADDRESS>/PSI-AVA/ using wget. It was connected, but after waiting for a while, turned out
"HTTP request sent, awaiting response... Read error (Connection timed out) in headers."
Could you tell me how to download the dataset?

You should be able to download the dataset using wget -r http://<IP_ADDRESS>/PSI-AVA/. Please let us know if you still have issues.

Hello, we have modified our download links. You can now download a compressed archive with wget or from the provided Google Drive link. Please check the updated download instructions in the README file and let us know if you are still having trouble.


definitions from db and quizzes

to test:
go to the reader and click on the

A bug exists with the bookmarks feature:

bookmark/unbookmark a page
flip page
the old bookmarks will be maintained.

The reason for this is because all persistent data is captured within a single local storage variable. This will be solved by moving towards a less monolithic auth system next sprint.


⚠ Département GEGI website (prod) has degraded performance

In 62d0e71, Département GEGI website (prod) (https://www.usherbrooke.ca/genie-electrique-informatique/) experienced degraded performance:

HTTP code: 200
Response time: 999 ms

Resolved: Département GEGI website (prod) performance has improved in 1110f28.


[PROPOSAL] I'd like to propose an adding a AGE API Server

Hello Everyone. I want to propose adding a AGE API Server Project.
It has the function of requesting a query in Cypher or GraphQL form from an existing RDB such as Oracle or MySQL and receiving the result in the requested form. To store related metadata and configure basic data, AGE and This product utilizes Graphizer. To achieve this, we are setting up the project to be undertaken and devising the architecture. As a result, it is an API to increase the usability of AGE.
It is currently in the planning stage, and you can see the basic concept through the README of the repository. And this PR is a kind of proposal, so I just made this PR as a draft and allowed edits by maintainers.
Currently, we are in the planning stage and have requested PR through Branch. Therefore, it should never be merged into Master Branch.
If you have any question or suggestion, I'd be thankful.
Thank you. And have a nice day.

I've created a full stack "AGE viewer" that has a frontend sending pure cypher to an API backend.
For example.
This frontend URL
https://age-playground.rebelsoft.com/graph/playground?q=MERGE (v1%3AHELLO)-[e%3ATO]->(v2%3AWORLD)
RETURN *
makes this API call
https://age-playground.rebelsoft.com/api/graph/playground/cypher?q=MERGE (v1%3AHELLO)-[e%3ATO]->(v2%3AWORLD)
RETURN *
and the result is in JSON
{
    "sql": "\n            SELECT * FROM cypher('playground', $$\n                MERGE (v1:HELLO)-[e:TO]->(v2:WORLD)\nRETURN *\n            $$) AS (v1 agtype, e agtype, v2 agtype)\n        ",
    "data": [
        {
            "v1": {
                "id":<PHONE_NUMBER>553281,
                "label": "HELLO",
                "properties": {}
            },
            "e": {
                "id":<PHONE_NUMBER>263937,
                "label": "TO",
                "end_id":<PHONE_NUMBER>974593,
                "start_id":<PHONE_NUMBER>553281,
                "properties": {}
            },
            "v2": {
                "id":<PHONE_NUMBER>974593,
                "label": "WORLD",
                "properties": {}
            }
        }
    ]
}

@aked21 @dehowef @eyab What are your thoughts on @mingfang ?

@mingfang Wow! I am impressed with it. I think that this has great potential.

Okay your proposal is intetesting but this commit wipes the entire repo @yjy44

@yjy44 I'm afraid that the API_Server branch was created incorrectly. I will have to close this PR, recreate the branch, and then you can resubmit this PR against that branch. The new branch will be called PROPOSAL_API_Server. Additionally, I think you should consider looking into the work @mingfang has done.

@yjy44 The branch PROPOSAL_API_Server is now available for your PR. You will need to clean out all of the unnecessary files prior to adding anything. Please make sure that is done with a PR specifically stating that before anything else. Then you can use PRs to add in your stuff.


build: :arrow_up: Update obsidian dependency

Possibly breaking, bumping to 3.0.0 in case

[x] I agree to the contribution guidelines laid out here in the readme.

@phibr0 based on #36, I've bumped the version to 3.0.0, as a potentially breaking change.
I do not have time (or familiarity with Obsidian anymore) to test. So I think publishing a breaking change version is warning enough.
Once release, perhaps you or @Vinzent03 could make an announcement on the discord?

I think @SkepticMystic needs to publish a new release on npm, not sure how I would do that.


Raytrace Forking Strategy

This issue has come up in the discussion about adding polarization and I had been reading some of the other issues relating to this in regards to r & t. For now, I am not advocating and specific changes or improvements, but rather want to have a single place for this discussion.
My main concern is that the current stochastic branching between a reflection and transmission and its extension to e & o rays of polarization or orders a grating is not the most effective way to address these problems. The is not to criticize the choice but rather I want to ask if it positions the code for solving the largest number of problems and how can we guide implementation to be most useable.
My main points are:

It would be just as easy to run two "experiments" with each one tracing a branch and then combine the results.
The quantity needed to determine the branching must be calculated. It could just as easily be carried through to modify the final result of a single fork. (for example carrying along Reflectivity and then associating it with the ray rather than counting rays at the end).
Comparison to a random number is not really free because it causes decisions to be made during execution that might impact the optimizations that could be done especially with regard to the data structures that hold the results.
Most importantly, it removes control from the user on the statistics of the data from each branch. Why not just let the user pick how many rays in each branch?

To me, it would seem that if I had two branches and one was the primary and one the secondary, it would be better to calculate enough rays for the main branch to get the accuracy I needed and the set a smaller number for the secondary branch as this might be only for unwanted light or system monitoring and not need the accuracy of the first. Or maybe it was orders of a grating and I need the same number for each to determine the resolution even though the intensities are vastly different.
I also see a need at some point for a raytrace that doesn't just branch but forks and both parts are traced. This has specific application to imaging and interferometry applications where coherent combinations of the two paths are combined including the phase information to generate quantities like the PSF or fringe intensity.  The implementation of this kind of raytrace should not replace the raytrace for deterministic paths, but rather be an enhancement to enable modeling of specific imaging (coherent ghosting for example), interferometry and birefringent systems. Such a raytrace might also be used for scattered light, although that probably doesn't need the phase information required of the other cases.
Thoughts?

Dear @mattderstine

I also see a need at some point for a raytrace that doesn't just branch but forks and both parts are traced. This has specific application to imaging and interferometry applications where coherent combinations of the two paths are combined including the phase information [..]

let me repeat the question from the former thread: why do you think such a combination is impossible with the current stochastic raytrace (after adding phase information etc indeed)? In fact this is exactly why I wish to use OpticSim in most of my use cases, and I do not see the problem.

Most importantly, it removes control from the user on the statistics of the data from each branch. Why not just let the user pick how many rays in each branch?

I believe this is a good point, the only necessary enhancement is to add the means how to control this by the user, perhaps by some additional interface properties, but why not. You know from my #276 reasoning that I wish this to be, in line with pre-#276 OpticSim, by default decided automatically based on pow. But changing it to user-overriden fraction shall be a minor change.

I would like to focus of this discussion to be around point 3. The others are really just explanations of the problems with a stochastic approach.  These have implications for issues #266, #267 and #141 as well as the advanced topics of #276. I'd like to understand what would help provide the underpinning for progress on those problems.

With point 3 I fully agree. However, seeded PRNG shall solve for that perfectly, right?

@hrobotron. No.Item 3 is not about the random number. It is about the uncertainty and complexity of the data structure needed to capture the raytrace data. I'd like to hear from the software experts on the costs associated with this. If the raytrace is along a fixed path, the data structures can be static and preallocated.  This is not the case for raytraces that fork dynamically. The costs for doing this for a dyanamic fork are real, but are they large?  For my implementations, they are but I'm not a world class coder. Perhaps there is a way. This is what item 3 and this issue is about.

@hrobotron. No.Item 3 is not about the random number. It is about the uncertainty and complexity of the data structure needed to capture the raytrace data. I'd like to hear from the software experts on the costs associated with this. If the raytrace is along a fixed path, the data structures can be static and preallocated. This is not the case for raytraces that fork dynamically. The costs for doing this for a dyanamic fork are real, but are they large? For my implementations, they are but I'm not a world class coder. Perhaps there is a way. This is what item 3 and this issue is about.

OK, I misunderstood, I thought you were talking about optimization of optical assembly, not the raytracer itself. But your reference to data structures makes this clear. I am of no use for this point at the moment, first I need to familiarize with OpticSim design to see how actually the rays and results are allocated and stored.

There are several issues packaged together here.

should the code should be refactored so users can choose deterministic or stochastic ray tracing in a convenient way.
how does stochastic branching interact with polarized computations in particular.

Currently, the stochastic branching decision logic is buried in the process intersection functions for the different types of interfaces. This is inconvenient from a user perspective and maybe from a software engineering one as well. Changing from stochastic to deterministic tracing, or allowing both reflection and refraction paths to be taken simultaneously, requires rewriting each processintersection function.There are currently 4 processintersection functions that matter for this topic
@cdhf submitted PR #101 which allowed the user to deterministically specify whether to take the reflected or refracted path at a FresnelInterface. But this only works for FresnelInterface. Not sure if this would even apply to the grating and hologram interface types.
Regardless, this is clearly a stopgap and not satisfying as a long term general solution. There are other unintuitive/hacky aspects to the FresnelInterface pointed out by @cdhf in issue #174. But many thanks to @cdhf for doing the code spelunking necessary to make this temporary deterministic path fix work.
We could abstract the code which makes the stochastic/deterministic decision into a function independent of the processintersection functions, let's call it choosepath for now. Then we could extend the interface specification for OpticalInterface to include a flag for choosing stochastic/deterministic/forking ray tracing on a per surface basis, as is currently possibly due to PR #101. Each processintersection function would be pass the flag along with the power in the reflected and refracted paths to the choosepath function which would return the appropriate rays. If the stochastic flag is set the path is chosen randomly according to power (any compelling reason to allow a user defined function to make the choice?). If the reflected/refracted flag is set then the specified path is always taken. And if the all flag is set then both paths are taken.
However allowing this choice to be made on a per surface basis makes it difficult, if not impossible, to properly compute power if different choices are made at different surfaces. For Monte Carlo sampling the power along a path is proportional to the source power*probability(path). For all path and deterministic sampling the power is takes into account attenuation at each surface and is stored in the power for each ray. The system currently currently computes this even though we don't use this value. But if you mix stochastic and deterministic/all path, with some surfaces having one type and some having another, it's not at all clear how you unscramble the values to get a realistic power estimate. Perhaps this should be a warning in the documentation that it's up to the user to make sense of this because the system won't.
This would also require rewriting the trace function in LensAssembly.jl because it currently assumes a single ray path is returned by processintersection. Power would have to be accounted for differently in the trace function for CSGOpticalSystem, which records ray power per pixel. Currently it uses sourcepower because stochastic tracing is assumed.
I don't have time to make these changes now but I would be willing to advise and answer questions. Would either of you be willing to take this on?
On to the polarization issue. I initially thought that we could compose Chimpan's polarization matrices as the ray traverses the system and then store a list of P matrices at each pixel, one for each input ray. Then after the fact one could change the electric field vector of the input ray and compute the polarized output simply by multiplying by the appropriate P matrix. This should be much faster than repeating the entire ray trace.
However, this doesn't work with the stochastic sampling we currently use because the sampling is based on power. For polarized light this isn't known until the input electric field is known. Figuring out if this can somehow be salvaged would take some thought.
Once the sampling is abstracted into a choosepath function we could use an alternative stochastic choice mechanism for polarization, using something other than power to make the branch choice, that wouldn't require the electric field to be specified at ray trace time.
Or we could bite the bullet and not save the P matrices at each pixel in the detector and instead propagate the electric field vector during the ray trace. Which shouldn't be much slower than the non-polarized tracing we are doing now.
Any thoughts on how to proceed?

Dear @BrianGun

I don't have time to make these changes now but I would be willing to advise and answer questions. Would either of you be willing to take this on?

from my side: I'd prefer first to participate in writing and testing of the polarization.
Then maybe we will all (or at least me) learn the internals and maybe also worked our example of pow impact on stochastic forking, see below. Then maybe I could feel ready to first get some opinion on deterministic approach and then maybe contribute.

On to the polarization issue. I initially thought that we could compose Chimpan's polarization matrices as the ray traverses the system and then store a list of P matrices at each pixel, one for each input ray. Then after the fact one could change the electric field vector of the input ray and compute the polarized output simply by multiplying by the appropriate P matrix. This should be much faster than repeating the entire ray trace.
However, this doesn't work with the stochastic sampling we currently use because the sampling is based on power. For polarized light this isn't known until the input electric field is known. Figuring out if this can somehow be salvaged would take some thought.

Yes, exactly that was my point. Thank you for listening.

Or we could bite the bullet and not save the P matrices at each pixel in the detector and instead propagate the electric field vector during the ray trace. Which shouldn't be much slower than the non-polarized tracing we are doing now.

Yes, that's what I propose in #276. Propagate the E vector, plus the scalar value DoP (0<=DoP<=1) to allow for unpolarized light (with unpolarized source as a good default which shall satisfy that no polarization will be completely neglected, although not reflecting the proper power ratios for stochastic mixture). And indeed to record the P-matrices to be able to check against well proven Chipman's method.

@BrianGun and @hrobotron
I'm going to put off stating an opinion on a way forward until I look at OpticSim more. I've invested too much time in discussing issues without being able to make helpful suggestions based upon knowledge of the what code is really in place.
You have, however, confirmed my concerns about the code and the issues hint at larger difficulties ahead if this issue is not addressed with care.  Taking the easy way at this point will certainly cripple the functionality of OpticSim.  I see this also as being a question of the main function of OpticSim. If this is primarily for illumination applications (for example LightTools) then stochastic analysis should be basis of how it works with little attention to functions like wavefront analysis and polarization's impact on image performance. On the other hand, if the objective is to model complicated systems that approach the diffraction limit, the choices are different.  In these cases, just propagating the electric field is insufficient.
I'll be back with more after I can knowledgeably write about the choices @BrianGun describes.

OpticSim is not biased toward illumination applications or wavefront analysis. Ideally it will do both well.
It's important to keep in mind the magnitude of the code changes we're talking about. The trace function in LensAssembly.jl is 38 lines long. The trace function in OpticalSystem.jl is 73 lines long. processintersection in Fresnel.jl is 54 lines. It is almost exclusively these functions which need to be changed with very minor changes elsewhere. And even the changes to these functions should be small, at least to make them handle polarization (given my current understanding of polarization).
The code that generates rays and tracks the ray tracing process is highly modularized and independent of the vast majority of the rest of OpticSim. For example, if sequential ray tracing was something everyone wanted we could write a sequential trace function in 50-100 lines of code. We didn't write it because we didn't need it for our application.
Even if we threw out these functions and started from scratch we're not talking about much code. Once we understand what we want to do and how to do it this should be straightforward.  A few days of programming and testing, maybe a week. Most of the work will be in figuring out what and how, not in the programming itself.
We don't have to write code with giant switch statements that handle every possibility: polarization, wavefront analysis, illumination, etc.. Instead we can dispatch the trace and processintersection functions on the type of the ray and use different rays for different analyses. The current type for optical rays is OpticalRay{T,N}. We could change this to OpticalRay{T,N,P} where P encodes the type of analysis to be done: OpticalRay{Float64,3,Polarization}, OpticalRay{Float64,3,Illumination}, etc.
Then the user decides what analysis to do by creating the appropriate type of ray to begin the ray tracing process.

Hi @BrianGun,
I'm about to put your goal of being all things to all users to the test. :-)
I'd like to address some approaches to your question about how to manage the apparent inconsistency between the stochastic raytrace and the P matrix method of addressing polarization.
The basic question is what properties of the light are attached to the ray?  Is  the ray is carrying a power-like quantity (intensity, radiance, specific intensity are all power-like. I'll just reference them as "power") and amplitude or E-field (which I'll reference as field).  For most ray tracing, the ray can be used for either depending upon what is convenient. So convenient that we forget that they are not identical.
The approach for stochastic raytracing, as I understand it, in OpticSim is to make decisions based upon the power as to which rays to trace. This breaks the assumptions on the ray that enable the field to be treated identically to the power.  I believe this was part of the discussion with @cdhr on how to manage measuring power between stochastic and deterministic raytrace; specifically, I seem to remember some discussion about addressing appodization properly. (For some reason I can no longer see those issues or I would have read them carefully and referenced them).
This is at the heart of the problem with using the P matrix with the stochastic raytrace. The P matrix is a field related quantity.  One solution to this issue is to carry more information along with the stochastic raytrace so that the field behavior can be recovered. I consider this to be easy to implement but ultimately confusing. It also has the potential to lead to a raytrace that is not great for power raytraces and not great for amplitude retraces because extra data is being carried along that is only relevant to power or amplitude.  There are other choices that I will outline.
First, let me describe examples of analysis based on power and field and show how they are different.  I'll then describe some of the choices and advantages and disadvantages.
Consider a very simple system: a partially reflecting/transmitting surface. Let's assume that there is an 20/80 power reflection to power transmission.  Now trace 10 rays with identical starting conditions as if this was a stochastic sampling of the emitter distribution. (delta function space distribution with delta function angular distribution and the rays carry power). There will about 2 rays reflected and 8 rays transmitted.  This means that the reflected path has 20% of the power and the transmitted path has 80%. This is pretty trivial so far.
However, what has happened to the field?  In this case, the reflected field is two rays, from an identical direction, location and source in the reflected path. How should these be combined?  Addition and squaring is wrong because they come from the same source. It would give a power 2 times higher than than interpreting the ray as power.  However, if the rays came from different sources (say were combined by another beamspitter before our example system, and their phase and wavelength were the same, then adding and squaring gives just the right answer and the power based interpretation is incorrect.  This is equivalent to the situation that you identify where the P matrix will be inconsistent in the stochastic raytrace.
I can think of several solutions to this dilemma.

Track the information for both power and field quantities in this same raytrace.
Get rid of the stochastic raytrace and replace it with alternatives that better preserve the ability of the ray to represent power and field.
Write multiple raytraces that are focused on the problems being investigated. For example a power centric raytrace could have stochastic sampling and Mueller matrix polarization tracing while a field centric raytrace would forgo stochastic sampling and use the P matrix.  The power and field raytraces could then be optimized for their main application area, scattering and illumination in the former and image quality and detailed investigation of interference in the latter.  Naturally, the application area of the two (or more) raytraces would overlap, for example it appears @hrobotron uses power raytraces to model interferometers. Users are always going to find the best way to solve their problem.

Some ideas on how to implement each approach

Stochastic branching
a. In this case, the power splitting ratio for each stochastic fork needs to be calculated and stored for each fork in the raytrace so that the field centric analsyis can reconstruct the fields (assuming the phase information is stored already).  My recommendation would be write analysis functions that show how to use this information to perform accurate field analysis because of the confusion as to how to extract the physical quantities from the model output.
b. Remove the power based test and gain a statistical advantage. Make all branching with fixed ratios,chosen by the user, so that the number of rays in each branch matches the desired statistical requirement. This information would then be combined with the actual R or T at the interface to determine the powers or fields.  It would not need to be stored on a per ray basis because all are the same. This probably runs faster than the 1a but is less friendly to the user who is only interested in power and doesn't care to a priori  address the statistics of their runs.
Eliminate stochastic branching.
a. In this case, create analysis functions that enable a fixed number of rays to go one direction and a fixed number the other. This ends up with the same analysis functions as 1b above. It is likely faster than 1b but it would not model systems with an indeterminate numbers of possible branch opportunities well (for example light leaking from a hollow cylinder). This raytrace is becoming more field centric and less power centric.
b. Create a raytrace that forks and follows all paths. This would work well for field systems (especially for walkoff from birefringent materals and mulitiple orders from gratings) but like 2a, is a problem for some illumination and scattering problems.
Multiple raytraces. I'll add a sequential raytrace to the options as it would make field centric analysis for many systems much simpler and efficient.

I fear that this is still pretty confusing. As you can surmise, I have been focusing on field-centric problems and my desire to have solutions that work for them. I believe @hrobotron has been most interested in power-centric solutions and so finds my recommendations needlessly complicated. And it is true that one could write raytraces that are field centric and then derive all of the power centric metrics from the underlying field parameters as I was originally advocating. The question is if this is really the best way to solve the widest range of problems.  I have become convinced while thinking about these problems that there are illumination and scattering problems for which this is decidedly not the case. Or to be succinct , some illumination problems should be solved with stochastic raytraces, but stocastic raytraces are very inefficient for most field centric analyses.
Ultimately, you'll have to decide where your and your colleagues' interest lie and focus on creating the infrastructure to solve those problems. The rest of us can only hope that it will be close enough to solve ours or be willing to take the time to create what we need.


[Bug] 1 positional argument expected by 'AppDatabase.new', but 0 found. Try adding the missing argument.

I am trying to follow the setup guide while trying to set up the Drift instance for flutter.
I got error message at first Missing concrete implementation of 'getter GeneratedDatabase.schemaVersion'. Try implementing the missing method, or make the class abstract.
After implementing the schemaVersion getter as described by error, The error now changed to following
1 positional argument expected by 'AppDatabase.new', but 0 found.
Try adding the missing argument.

My Code is exact same as the setup guide except with following table definition
class WaterIntakes extends Table {
  IntColumn get id => integer().autoIncrement()();
  IntColumn get amount => integer()();
  DateTimeColumn get date => dateTime().withDefault(currentDateAndTime)();
}

Please help me solving this issue or point me to where am going wrong.
My dependancies are
  drift: ^2.15.0
  sqlite3_flutter_libs: ^0.5.20
  path_provider: ^2.1.2
  path: ^1.9.0

and dev dependacies are
  drift_dev: ^2.15.0
  build_runner: ^2.4.8

Thanks

Below the partial AppDatabase snippet, the guide also contains this complete one:
@DriftDatabase(tables: [TodoItems])
class AppDatabase extends _$AppDatabase {
  AppDatabase() : super(_openConnection());

  @override
  int get schemaVersion => 1;
}

LazyDatabase _openConnection() {
  // the LazyDatabase util lets us find the right location for the file async.
  return LazyDatabase(() async {
    // put the database file, called db.sqlite here, into the documents folder
    // for your app.
    final dbFolder = await getApplicationDocumentsDirectory();
    final file = File(p.join(dbFolder.path, 'db.sqlite'));

    // Also work around limitations on old Android versions
    if (Platform.isAndroid) {
      await applyWorkaroundToOpenSqlite3OnOldAndroidVersions();
    }

    // Make sqlite3 pick a more suitable location for temporary files - the
    // one from the system may be inaccessible due to sandboxing.
    final cachebase = (await getTemporaryDirectory()).path;
    // We can't access /tmp on Android, which sqlite3 would try by default.
    // Explicitly tell it about the correct temporary directory.
    sqlite3.tempDirectory = cachebase;

    return NativeDatabase.createInBackground(file);
  });
}

I wanted to present the information step-by-step to avoid overwhelming new users, but I've seen similar reports so clearly I didn't do a good job at that. I'll point out that the example isn't complete in more obvious ways.

I've pushed a change hopefully making this clearer - if the complete snippet still doesn't work for you please let me know.


Creativecommons.org/register is misdirecting

cc.org/register redirects here: https://creativecommons.org/2005/05/27/registerfortheilawconferenceatharvarduniversityberkmanlawcenterjune22242005/

It can't find it so WordPress is doing its best and sending us somewhere with "register" in the url.
Where should it go to?

Probably https://summit.creativecommons.org/index.php/register/ I think. Thanks!

Done.


Missing Link

Missing link under the "See Also" section.

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

ID: 6235a3a8-d9b3-fe3d-af72-d7dd19e388b8
Version Independent ID: 7c19cbbe-1b4d-915e-a93f-5a8292013dee
Content: Custom Web API skill in skillsets - Azure Cognitive Search
Content Source: articles/search/cognitive-search-custom-skill-web-api.md
Service: cognitive-search
GitHub Login: @LuisCabrer
Microsoft Alias: luisca

This doc bug will be fixed shortly.


Fixed nighly build of wasm-bindgen-futures

The nightly features stdsimd was recently just split into multiple features.
Specifically we now need the stdarch_wasm_atomic_wait feature for the atomics target.
See https://github.com/rust-lang/rust/pull/117372.

Looks like this is related to https://github.com/fzyzcjy/flutter_rust_bridge/pull/1727. Thanks for fixing!
P.S. Error I saw:
error[E0658]: use of unstable library feature 'stdarch_wasm_atomic_wait'
  --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.39/src/task/multithread.rs:38:13
   |
38 |             core::arch::wasm32::memory_atomic_notify(
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #77839 <https://github.com/rust-lang/rust/issues/77839> for more information
   = help: add `#![feature(stdarch_wasm_atomic_wait)]` to the crate attributes to enable
   = note: this compiler was built on 2024-02-05; consider upgrading it if it is out of date

error[E0635]: unknown feature `stdsimd`
  --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.39/src/lib.rs:33:49
   |
33 | #![cfg_attr(target_feature = "atomics", feature(stdsimd))]
   |                                                 ^^^^^^^

Some errors have detailed explanations: E0635, E0658.
For more information about an error, try `rustc --explain E0635`.
error: could not compile `wasm-bindgen-futures` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

Related: https://github.com/rustwasm/wasm-bindgen/issues/3830


Feature/token new requirements

This pr changes the jwt token implementation as discussed on monday. I also added some more tests and reworded the Principal api a bit.
If you find time, build it localy, run the tests and maybe see if the api works.


Fix #439

This is the proposed change for #439

#439

Sorry, only just remembered this. General question: can you just include the subpath within the definition of the query itself? I think we talked about this in Discord, but I'm not remembering now.

Unfortunately in the query definition it goes in the body of the call and it does not accept "/", it seems that the only accepted way is in the URL

That's obnoxious! Thanks for the fix then - I'll port it over to 4.x. That said, I can't merge at the moment as I'm running out the door, but will do so sometime over the weekend. Nice work and good find!

Not a problem


Create Wildcard_Matching.java

Leetcode-44 Wildcard Matching Solution in java

Ok I'll do it in Python

Removed the Wildcard_Matching.java file.


Non-failing validation returns nil messages instead of empty Array

Given the example from the Readme  (which was working in 0.2):
require 'dry-validation'

class Schema < Dry::Validation::Schema
  key(:email) { |email| email.filled? }

  key(:age) do |age|
    age.none? | (age.int? & age.gt?(18))
  end
end

schema = Schema.new

errors = schema.call(email<EMAIL_ADDRESS>age: nil).messages

puts errors.inspect
# []

The errors variable should be [] but is nil on 0.3.0

🙇🏻